第3章  函数

3-8 编写函数把华氏温度转换为摄氏温度,公式为:C = (F - 32) * 5/9 在主程序中提示用户输入一个华氏温度,转化后输出相应的摄氏温度。

#include<iostream>
using namespace std;double CF(double F)  //华氏温度转换为摄氏温度
{return 1.0*5/9*(F-32);
}int main()
{double F;cout<<"请输入华氏温度:";cin>>F;cout<<CF(F)<<endl;return 0;
}

3-9 编写函数判别一个数是否是一个质数,在主程序中实现输入输出。

#include<iostream>
#include<cmath>
using namespace std;bool isprime(int x)
{if(x<=1)  return false;for(int i=2;i<=sqrt(x);i++){if(x%i==0)return false;}return true;
}int main()
{int x;cout<<"请输入一个数:";cin>>x;if(isprime(x))  cout<<x<<"是质数。"<<endl;else   cout<<x<<"不是质数。"<<endl;return 0;
}

3-10 编写函数求两个整数的最大公约数和最小公倍数。

#include<iostream>
#include<cmath>
using namespace std;int gcd(int a,int b)   //求最大公约数
{int t;if(a<b){t=a;a=b;b=t;}while(b!=0){t=a%b;a=b;b=t;}return a;
}int main()
{int x,y;cout<<"请输入两个整数:";cin>>x>>y;int g=gcd(x,y),l=x*y/g;cout<<x<<"和"<<y<<"的最大公约数是:"<<g<<endl;cout<<x<<"和"<<y<<"的最小公倍数是:"<<l<<endl;return 0;
}

3-13 用递归的方法编写函数求Fibonacci级数,公式为Fn = Fn-1+Fn-2(N>2),F1 = F2 = 1,观察递归调用的过程。

#include<iostream>
using namespace std;int fib(int n)
{if(n==1||n==2)return 1;elsereturn fib(n-1)+fib(n-2);
}int main()
{int n;cout<<"请输入一个大于2的整数:";cin>>n;cout<<fib(n)<<endl;return 0;
}

3-14 用递归的方法编写函数求n阶勒让德多项式的值,在主函数中实现输入输出。递归公式为

#include<iostream>
using namespace std;float p(int n,int x)
{if(n==0)return 1;else if(n==1)return x;elsereturn ((2*n-1)*x*p(n-1,x)-(n-1)*p(n-2,x))/n;
}int main()
{int n,x;cout<<"请输入正整数n、x:";cin>>n>>x;cout<<n<<"阶勒让德多项式:"<<"P"<<n<<"("<<x<<")"<<"="<<p(n,x)<<endl;return 0;     }

3-15 编写递归函数getPower计算x的平方,在同一个程序中针对整型和实型实现两个重载的函数:

int getPower(int x,int y);           //整型形式,当y<0时,返回0

double getPower(double x,int y);    //实型形式

在主程序中实现输入输出,分别输入一个整数a和一个实数b作为底数,在输入一个整数m作为指数,输出a的m次方和b的m次方。另外请读者思考,如果在调用getPower函数计算a的m次方时希望得到一个实型的结果(实型结果表示范围更大,而且可以准确表示m<0时的结果),该如何调用?

#include<iostream>
using namespace std;int getPower(int x,int y)
{if(y==0)return 1;else if(y==1)return x;else if(y<0)return 0;elsereturn x*getPower(x,y-1);}double getPower(double x,int y)
{if(y==0)return 1;else if(y==1)return x;else if(y<0)return 1.0/x*getPower(x,y+1);  //表示负次幂时出现的结果elsereturn x*getPower(x,y-1);
}int main()
{int a,m;double b;cout<<"请输入一个整数和一个实数作为底数:";cin>>a>>b;cout<<"请输入一个整数作为指数:";cin>>m;cout<<"a^m="<<getPower(a,m)<<endl;cout<<"b^m="<<getPower(b,m)<<endl;return 0;
}

3-17 編写一個可以计算梯形面积的重载函数,格式为trapezoid(upper,base,height),upper、base与height可同为int或double,传回值的型态皆为double。(梯形面积=(upper+base)*height/2)。

#include<iostream>
using namespace std;double trapezoid(int upper,int base,int height)
{return (double)(upper+base)*height/2;  //转换为double型数据
}double trapezoid(double upper,double base,double height)
{return (upper+base)*height/2;
}int main()
{int x,y,z;double u,b,h;cout<<"请输入整型的上底、下底、高:";cin>>x>>y>>z;cout<<"该梯形面积为:"<<trapezoid(x,y,z)<<endl;cout<<"请输入实型的上底、下底、高:";cin>>u>>b>>h;cout<<"该梯形面积为:"<<trapezoid(u,b,h)<<endl;return 0;
}

注:第一个trapezoid函数的形参都为int整数型,计算出的梯形面积也会保持int型,故要进行一下类型转换,转为double型,从而符合该函数的返回类型。

本专栏为本人大二C++课程的习题作业和一些学习经验的分享,供大家参考学习。如有侵权请立即与我联系,我将及时处理。


参考书籍为:C++语言程序设计 第五版 -清华大学出版社- 郑莉,董渊、C++语言程序设计 第五版 -清华大学出版社- 郑莉,董渊(学生用书)

编译环境:Visual Studio 2019、Dev-C++

C++语言程序设计第五版 - 郑莉(第三章课后习题)相关推荐

  1. C++语言程序设计第五版 - 郑莉(第九章课后习题)

    第9章  群体类和群体数据的组织 9-1 编写程序提示用户输入一个班级中的学生人数 n,再依次提示用户输入 n 个人在课程 A 中的考试成绩,然后计算出平均成绩,显示出来.请使用本书第 9 章中的数组 ...

  2. C++语言程序设计第五版 - 郑莉(第二章课后习题)

    第2章  C++简单程序设计 2-25 编写一个完整的程序,实现功能:向用户提问"现在正在下雨吗?",提示用户输入Y 或N.若输入为Y,显示"现在正在下雨.": ...

  3. C++语言程序设计第五版 - 郑莉(第八章课后习题)

    第8章 多态性 8-4 请编写一个计数器 Counter类,对其重载运算符"+". #include <iostream> using namespace std;cl ...

  4. 郑莉java课后答案,Java语言程序设计(郑莉)第三章课后习题答案

    <Java语言程序设计(郑莉)第三章课后习题答案>由会员分享,可在线阅读,更多相关<Java语言程序设计(郑莉)第三章课后习题答案(10页珍藏版)>请在人人文库网上搜索. 1. ...

  5. 第三章 函数 C++语言程序设计第五版 - 郑莉

    本专栏为C++学习笔记,参考书籍为:C++语言程序设计 第五版 -清华大学出版社- 郑莉 B站视频:https://space.bilibili.com/702528832/video PPT与代码已 ...

  6. C++语言程序设计第五版 - 郑莉-绪论(一)

    本专栏为C++学习笔记,参考书籍为:C++语言程序设计 第五版 -清华大学出版社- 郑莉 B站视频:https://space.bilibili.com/702528832/video PPT与代码已 ...

  7. C++语言程序设计第五版 - 郑莉(第六章课后习题)

    第6章   数组.指针与字符串 6-20 实现一个名为 SimpleCircle 的简单圆类.其数据成员 int* itsRadius 为一个指向其半径值的指针,存放其半径值.设计对数据成员的各种操作 ...

  8. C++语言程序设计第五版 - 郑莉(第四章课后习题)

    第4章  类与对象 4-9设计并测试一个名为rectangle的矩形类,其属性为矩形的左下角与右上角坐标,根据坐标能计算矩形的面积. #include <iostream> using n ...

  9. C++语言程序设计第五版 - 郑莉(第七章课后习题)

    第7章  继承与派生 7-5 定义一个基类 Shape,在此基础上派生出 Rectangle 和 Circle,二者都有 getArea()函数计算对象的面积.使用 Rectangle类创建一个派生类 ...

  10. C++语言程序设计第五版 - 郑莉(第五章课后习题)

    第5章  数据的共享与保护 5-7定义一个Cat类,拥有静态数据成员 numOfCats,记录Cat的个体数目:静态成员函数getNumOfCats(),读取numOfCats.设计程序测试这个类,体 ...

最新文章

  1. tcmalloc mysql 缓存_Tcmalloc优化Mysql内存管理
  2. 数据库抽取,生成CSV文件导出,CSVUtils工具类
  3. Python的pyroute2网络模块
  4. finalshell连接超时怎么解决_电脑无线网络连接不上怎么回事 电脑连不上无线网络的解决方法...
  5. mysql 工具图形学_[计算机图形学]贝塞尔曲线
  6. 运行iDT算法代码及后续特征编码
  7. linux 计划任务 实例,计划任务 cron 的配置和实例
  8. 基于ArcEngine与C#的鹰眼地图实现
  9. 收藏~10年软件测试人员的工作方法进阶汇总
  10. java 解析二进制_Java二进制指令代码解析
  11. NeurIPS 2021 | 医学图像GAN生成,在Noisy Data上训练出超越监督学习的模型
  12. 2018年烽火通信c语言笔试题,2018-9-19 烽火通信C++面经
  13. 【操作系统】结合哲学家进餐问题分析如何预防死锁
  14. 阿里新供应链架构解读
  15. 小议ARM Cortex-m0/m4系列的总线差异
  16. php获取微信授权,微信开发之网页授权获取用户信息(二)
  17. css_径向渐变 radial-gradient()/css generator样式生成器
  18. UNIX时间及相关概念
  19. Linux iio驱动学习
  20. 神通数据库connect by用法

热门文章

  1. 使用强制推送,Luca——Jenkins的开发者抹掉了Github上1个月的提交
  2. Android VideoView 无法播放https网络视频问题
  3. 365天挑战LeetCode1000题——Day 049 非递增顺序的最小子序列 贪心
  4. html实现纸张撕边效果,PS图片处理教程:PS撕边效果,脸部撕纸效果
  5. KubeEdge 超详细部署记录问题记载6.28
  6. 学习linux可以考虑做的岗位
  7. A.一个部族,一个民族,一个弗雷尔卓德(素数筛+线段树)
  8. 数学和英语不好,能当程序员吗?
  9. 解决浏览器兼容新问题
  10. Matlab工业检测之尘埃统计