C++语言程序设计第五版 - 郑莉(第三章课后习题)
第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++语言程序设计第五版 - 郑莉(第三章课后习题)相关推荐
- C++语言程序设计第五版 - 郑莉(第九章课后习题)
第9章 群体类和群体数据的组织 9-1 编写程序提示用户输入一个班级中的学生人数 n,再依次提示用户输入 n 个人在课程 A 中的考试成绩,然后计算出平均成绩,显示出来.请使用本书第 9 章中的数组 ...
- C++语言程序设计第五版 - 郑莉(第二章课后习题)
第2章 C++简单程序设计 2-25 编写一个完整的程序,实现功能:向用户提问"现在正在下雨吗?",提示用户输入Y 或N.若输入为Y,显示"现在正在下雨.": ...
- C++语言程序设计第五版 - 郑莉(第八章课后习题)
第8章 多态性 8-4 请编写一个计数器 Counter类,对其重载运算符"+". #include <iostream> using namespace std;cl ...
- 郑莉java课后答案,Java语言程序设计(郑莉)第三章课后习题答案
<Java语言程序设计(郑莉)第三章课后习题答案>由会员分享,可在线阅读,更多相关<Java语言程序设计(郑莉)第三章课后习题答案(10页珍藏版)>请在人人文库网上搜索. 1. ...
- 第三章 函数 C++语言程序设计第五版 - 郑莉
本专栏为C++学习笔记,参考书籍为:C++语言程序设计 第五版 -清华大学出版社- 郑莉 B站视频:https://space.bilibili.com/702528832/video PPT与代码已 ...
- C++语言程序设计第五版 - 郑莉-绪论(一)
本专栏为C++学习笔记,参考书籍为:C++语言程序设计 第五版 -清华大学出版社- 郑莉 B站视频:https://space.bilibili.com/702528832/video PPT与代码已 ...
- C++语言程序设计第五版 - 郑莉(第六章课后习题)
第6章 数组.指针与字符串 6-20 实现一个名为 SimpleCircle 的简单圆类.其数据成员 int* itsRadius 为一个指向其半径值的指针,存放其半径值.设计对数据成员的各种操作 ...
- C++语言程序设计第五版 - 郑莉(第四章课后习题)
第4章 类与对象 4-9设计并测试一个名为rectangle的矩形类,其属性为矩形的左下角与右上角坐标,根据坐标能计算矩形的面积. #include <iostream> using n ...
- C++语言程序设计第五版 - 郑莉(第七章课后习题)
第7章 继承与派生 7-5 定义一个基类 Shape,在此基础上派生出 Rectangle 和 Circle,二者都有 getArea()函数计算对象的面积.使用 Rectangle类创建一个派生类 ...
- C++语言程序设计第五版 - 郑莉(第五章课后习题)
第5章 数据的共享与保护 5-7定义一个Cat类,拥有静态数据成员 numOfCats,记录Cat的个体数目:静态成员函数getNumOfCats(),读取numOfCats.设计程序测试这个类,体 ...
最新文章
- tcmalloc mysql 缓存_Tcmalloc优化Mysql内存管理
- 数据库抽取,生成CSV文件导出,CSVUtils工具类
- Python的pyroute2网络模块
- finalshell连接超时怎么解决_电脑无线网络连接不上怎么回事 电脑连不上无线网络的解决方法...
- mysql 工具图形学_[计算机图形学]贝塞尔曲线
- 运行iDT算法代码及后续特征编码
- linux 计划任务 实例,计划任务 cron 的配置和实例
- 基于ArcEngine与C#的鹰眼地图实现
- 收藏~10年软件测试人员的工作方法进阶汇总
- java 解析二进制_Java二进制指令代码解析
- NeurIPS 2021 | 医学图像GAN生成,在Noisy Data上训练出超越监督学习的模型
- 2018年烽火通信c语言笔试题,2018-9-19 烽火通信C++面经
- 【操作系统】结合哲学家进餐问题分析如何预防死锁
- 阿里新供应链架构解读
- 小议ARM Cortex-m0/m4系列的总线差异
- php获取微信授权,微信开发之网页授权获取用户信息(二)
- css_径向渐变 radial-gradient()/css generator样式生成器
- UNIX时间及相关概念
- Linux iio驱动学习
- 神通数据库connect by用法