C++函数编程20道习题汇总含其详细程序解答

上传人:积*** 文档编号:120185214 上传时间:2022-07-16 格式:DOC 页数:16 大小:103.50KB
收藏 版权申诉 举报 下载
C++函数编程20道习题汇总含其详细程序解答_第1页
第1页 / 共16页
C++函数编程20道习题汇总含其详细程序解答_第2页
第2页 / 共16页
C++函数编程20道习题汇总含其详细程序解答_第3页
第3页 / 共16页
资源描述:

《C++函数编程20道习题汇总含其详细程序解答》由会员分享,可在线阅读,更多相关《C++函数编程20道习题汇总含其详细程序解答(16页珍藏版)》请在装配图网上搜索。

1、第1题:编写两个函数,函数功能分别是:求两个整数的最大公约数和最小公倍数,规定输入输出均在主函数中完毕。 样例输入:15 25样例输出:5 75 #includeint gys(int a,int b)int i;for(i=a;i0;i-)if (a%i=0&b%i=0) return i;break;int gbs(int a,int b)int i;for(i=a;i+)if(i%a=0&i%b=0) return i;break;int main()int a,b,c,d;cinab;c=gys(a,b);d=gbs(a,b);coutc d;return 0;第2题:编写函数fact

2、ors(num, k),函数功能是:求整数num中涉及因子k的个数,如果没有该因子则返回0,例如:32=22222,则factors(32,2)=5。规定输入输出均在主函数中完毕。 样例输入:42 样例输出:2 样例输入:83 样例输出:0 #includeint factors(int num,int k)int n=0,a;a=num%k;while(a=0)n+;num=num/k;a=num%k;return n;int main()int num,k,b;cinnumk;b=factors(num,k);coutbendl;return 0;第3题:编写函数,函数功能是:计算n的阶乘

3、,规定输入输出均在主函数中完毕。样例输入:5 样例输出:120、#includeint jc(int n)int a,b=1;for(a=1;an;s=jc(n);couts;return 0;第4题:编写函数,函数功能是:计算k以内(涉及k)最大的10个(局限性10个则是所有的)能被13或17整除的自然数之和。规定输入输出均在主函数中完毕。样例输入:500 样例输出:4622#includeint sum(int k) int n,c=0,s=0;for(n=k;n0;n-)if(n%13=0|n%17=0)c+;s+=n;if(c=10)break;return s;int main()i

4、nt k,s;cink;s=sum(k);coutsendl;return 0;第5题:编写函数,函数功能是:根据下列公式求的值(直到某一项的值不不小于给定精度e为止),精度e由键盘输入,规定输入输出均在主函数中完毕。 样例输入:0.0005样例输出:3.14058#includedouble pai(double e)double s,a,k,p;s=1;a=1/3.0;for(k=2;k+)s+=a;a=a*(k/(k*2+1);if(ae;p=pai(e);coutpendl;return 0;第6题:编写程序求规定使用函数,函数功能是:求某个数的阶乘。n由键盘输入,输入输出均在主函数中

5、完毕。注意:0!=1。样例输入:3 样例输出:10 #includeint jc(int a)int s=1,i;if(a=0)s=1;elsefor(i=1;in;for(k=0;k=n;k+)s=jc(k);sum+=s;coutsumendl;return 0;第7题:求数列 规定使用函数计算该序列的前N项和SN,直到SN 不小于q为止,q由键盘输入,输入输出均在主函数中完毕。样例输入:50 样例输出:50.4167、#includefloat sum(float q)float s=0,a,n;for(n=1;sq;s=sum(q);coutsendl;return 0;第8题:求数列

6、的前n项和 规定使用函数,函数功能是:计算数列的每一项,n由键盘输入。累加过程和输入输出均在主函数中完毕。样例输入:50 样例输出:1.96079#includefloat myx(int n)float a;int i,s=0;for(i=1;in;for(i=1;i=n;i+)s+=myx(i);coutsendl;return 0;第9题:编写函数fun(num),其中num是一种n位数,函数功能是:求整数num的后n-1位,如果num是一位数则返回0,规定输入输出均在主函数中完毕。 样例输入:9 样例输出:0 样例输入:6734 样例输出:734 样例输入:1000 样例输出:0 样例

7、输入:10101 样例输出:101 #include#includeint jw(int x)int a,n,m;if(xx;c=jw(x);coutcendl;return 0;第10题:编写函数,函数功能是:判断输入的字符与否为数字字符。如果是,则输出YES,否则输出NO,规定输入输出均在主函数中完毕。样例输入:5样例输出:YES 样例输入:B样例输出:NO #includeusing namespace std;int pdsz(char n)int flag;if(n=0&n=9)flag=1;elseflag=0;return flag;int main()char n;n=getc

8、har();if(pdsz(n)=1)coutyes;elsecoutno;return 0;第11题:编写函数,函数功能是:将两个两位数的正整数a、b合并成一种整数c,合并规则是将a的十位和个位分别放在c的千位和个位,将b的十位和个位分别放在c的百位和十位。a、b由键盘输入,输入输出均在主函数中完毕。 样例输入:45 12样例输出:4125 #include#includeint hb(int a,int b)int q,g,m,c;q=a/10;g=a%10;m=b*10;c=q*1000+m+g;return c;int main()int a,b,c;cinab;c=hb(a,b);c

9、outcendl;return 0;第12题:求数列的前n项和规定使用函数,函数功能是:计算数列的每一项,n由键盘输入。累加过程和输入输出均在主函数中完毕。样例输入:10 样例输出:0.382179#include#includedouble dx(double n)double a,b,c;a=pow(-1,n+1);b=n*(n+1);c=a/b;return c;int main()double n,s=0,i,a;cinn;for(i=1;i=n;i+)a=dx(i);s+=a;coutsendl;return 0;第13题:求数列的前n项和规定使用函数,函数功能是:计算数列的每一项,

10、n由键盘输入。累加过程和输入输出均在主函数中完毕。样例输入:3 样例输出:123#include#includeint an(int n)int s=0,m,a,i;for(i=1;in;for(i=1;i=n;i+)a=an(i);sum+=a;coutsumendl;return 0;第14题:求满足的n的最大值,规定使用函数,函数功能是:计算n的立方,k由键盘输入。累加过程和输入输出均在主函数中完毕。样例输入:10000 样例输出:13#include#includeint lf(int x)int a;a=x*x*x;return a;int main()int k,s=0,i,n=0

11、,a;cink;for(i=1;sk;i+)a=lf(i);s+=a;n=i-2;coutnendl;return 0;第15题:求数列直到相邻两项之差的绝对值不不小于1E-6为止。规定使用函数,函数功能是:计算数列的每一项,x由键盘输入。累加过程和输入输出均在主函数中完毕。样例输入:0.21 样例输出:1.1#include#includefloat sn(float x,float n)float s=1,i,a=1,b=1,m;for(i=1;ix;for(k=1;k+)n+;p=sn(x,n);q=sn(x,n+1);if(fabs(q-p)1E-6)break;coutpendl;r

12、eturn 0;第16题:运用级数展开式计算cosx直到某一项的绝对值不不小于0.00001为止。规定使用函数,函数功能是:计算数列的每一项,x由键盘输入。累加过程和输入输出均在主函数中完毕。样例输入:0 样例输出:1 样例输入:3 样例输出:-0.989992 #include#includedouble an(double x,double n)double a,b,k,c=1,d,e;a=pow(-1,n);b=pow(x,2*n);for(k=1;kx;for(i=1;i+)p=an(x,i);s+=p;if(fabs(p)0.00001)break;coutsendl;return

13、0;第17题:运用级数展开式计算sinx直到某一项的绝对值不不小于0.00001为止。规定使用函数,函数功能是:计算数列的每一项,x由键盘输入。累加过程和输入输出均在主函数中完毕。样例输入:0 样例输出:0 样例输入:3 样例输出:0.14112#include#includedouble an(double x,double n)double f,a,b,i,c=1,d;a=pow(-1,n+1);b=pow(x,2*n-1);for(i=1;ix;for(i=1;i+)p=an(x,i);s=s+p;if(fabs(p)0.00001)break;coutsendl;return 0;第1

14、8题:编写程序求Fibonacci数列的前n项阶乘之和,即。规定使用函数,函数功能是:求某个数的阶乘。n由键盘输入,输入输出均在主函数中完毕。注意:#include#includeint jc(int x)int a=1,k;for(k=1;kn;a=1;b=1;s=2;for(i=3;i=n;i+)j=a+b;k=jc(j);s+=k;a=b;b=j;coutsendl;return 0;样例输入:6 样例输出:40450第19题:求数列 其中分母为n以内(涉及n)的素数。规定使用函数,函数功能是:计算数列的每一项,n由键盘输入。累加过程和输入输出均在主函数中完毕。 样例输入:50 样例输出

15、:1.66165 #include#includefloat an(int n)float a,b=0,c,d;int i;a=0;for(i=1;in;for(i=1;i=n;i+)a=an(i);s+=a;coutsendl;return 0;第20题:编写程序求m和n之间(涉及m和n,m=n)所有素数的平方根之和。规定使用函数,函数功能是:判断某一种数与否为素数。m和n由键盘输入,规定输入输出均在主函数中完毕。样例输入:100 999样例输出:3157.48 #include#includeint pd(int n)int i,m=0,flag=0;for(i=1;imn;for(k=m

16、;k=n;k+)b=pd(k);if(b)s=s+sqrt(k);coutsendl;return 0;第21题:编写函数digit(num, k),函数功能是:求整数num从左边开始的第k位数字的值,如果num位数局限性k位则返回0。规定输入输出均在主函数中完毕。 样例输入:4647 3 样例输出:4 样例输入:23523 7 样例输出:0#include#includeint digit(int x,int k)int n,s,a,b;n=int(log10(x)+1;if(nnumk;t=digit(num,k);couttendl;return 0;第1题:编写函数,将字符串中的大写字

17、母变成相应的小写字母,小写字母变成相应的大写字母,其他字符不变。在主函数中调用该函数,完毕任意字符串的转换,并输出成果。输入字符串(容许涉及空格),输出解决后的成果。 样例输入:How Are You?样例输出:hOW aRE yOU?#includeusing namespace std;#includevoid exc(char a,int l)int i;for(i=0;i=A&ai=a&ai=z)ai=ai-32;elseai=ai;int main()char a50;int l;gets(a);l=strlen(a);exc(a,l);puts(a);return 0;第2题:编写

18、函数,形成n阶杨辉三角形。在主函数中调用该函数,形成杨辉三角形,并输出成果。输入阶数n,输出解决后的成果。 样例输入:5 样例输出: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 #include#includevoid yh(int a50,int l)int i,j,k;for(k=0;kl;k+)ak0=1;akk=1;for(i=2;il;i+)for(j=1;jn;yh(a,n);for(j=0;jn;j+)for(i=0;i=j;i+)coutaji ;coutendl;return 0;第3题:编写函数,求一种字符串的长度。在主函数中调用该函数,输出成果。输入字符串

19、(容许涉及空格),输出字符串的长度。 样例输入:How Are You? 样例输出:12#includeusing namespace std;#includeint len(char a)int l;l=strlen(a);return l;int main()char a50;int l;gets(a);l=len(a);coutlendl;return 0;第4题:编写函数,将字符数组s2中的前n个字符复制到字符数组s1中,不容许使用strcpy函数。在主函数中调用该函数,完毕任意字符串的复制,并输出成果。输入分2行,第一行为字符串(不涉及空格),第二行为n的值,输出解决后的成果。 样例

20、输入: Hello,world! 8样例输出:Hello,wo #include void cp(char a,char b,int n)int i;for(i=0;ian;cp(a,b,n);coutbendl;return 0;第5题:编写函数,函数功能是:记录整数n的各位上浮现数字1、2、3的次数。规定输入输出均在主函数中完毕。 样例输入:样例输出:3 1 2 #includeusing namespace std;#includevoid cs(char a,int b,int l)int i;b0=0;b1=0;b2=0;for(i=0;il;i+)if(ai=1)b0+;else

21、if(ai=2)b1+;else if(ai=3)b2+;else continue;int main()char a50;int b50,l;gets(a);l=strlen(a);cs(a,b,l);coutb0 b1 b2endl;return 0;第6题:编写程序完毕进制转换,规定使用函数,函数功能是:十进制转换为二进制,输入输出均在主函数中完毕。 样例输入:125 样例输出:1111101#includeint zh(int a,int x)int i=-1;while(x!=0)i+;ai=x%2;x=x/2;return i;int main()int a32,m,n,k;cin

22、m;n=zh(a,m);for(k=n;k=0;k-)coutak;return 0;第7题:编写两个函数,将n个正整数中的素数按升序排序。函数功能分别是:判断一种数与否为素数,以及对数组进行排序。输入分2行:第一行为n的值,第二行为n个整数。规定输入输出均在主函数中完毕。 样例输入:9 9 8 7 6 5 4 3 2 1样例输出:2 3 5 7#includeint order(int a,int b,int l)int i,m,j,k=0,q,w;for(i=0;il;i+)m=0;for(j=1;j=ai;j+)if(ai%j=0)m+;if(m=2)bk=ai;k+;for(i=0;i

23、k-1;i+)q=i;for(j=i+1;jbj)q=j;if(q!=i)w=bq;bq=bi,bi=w;return k;int main()int a40,b40,n,l,q;cinn;for(l=0;lal;q=order(a,b,n);for(l=0;lq;l+)coutbl ;return 0;第8题:编写函数,功能是互换数组中的最大数和最小数的位置,并计算所有数之和。例如数组a有5个元素3、4、1、5、2,将最大数5和最小数1的位置互换后得到3、4、5、1、2,总和为15。程序中用到的主函数为: #includeint fun(int a,int l)int max=0,i,min

24、=0,w,s=0;for(i=1;il;i+)if(amaxai)max=i;for(i=1;iai)min=i;w=amax;amax=amin;amin=w;for(i=0;in;for(i=0;iai;sum=fun(a,n);for(i=0;in;i+)coutai ;coutendlsumendl;return 0;第9题:编写子函数fun,功能是挑出字符串中ASCII码值为偶数的大写字母并寄存在原字符串中。例如字符串str为aB0bD1c,其中满足条件的字符为B和D,因此调用fun函数后,字符串str变为BD。程序中用到的主函数为: #include#include#include

25、void zf(char a)char b50;int i,j=0,n;n=strlen(a);for(i=0;i=A&ai=Z&ai%2=0) bj=ai;j+;for(i=0;ij;i+)ai=bi;aj=0;int main()char a100;gets(a);zf(a);puts(a);return 0;第10题:编写程序完毕进制转换,规定使用函数,函数功能是:十进制转换为八进制,输入输出均在主函数中完毕。 样例输入:125 样例输出:175#include#includeint zh(int b,int n)int i=0;while(n0)bi=n%8;i+;n=n/8;bi=0;return i;int main()int b100;int n,a,i;cinn;a=zh(b,n);for(i=a-1;i=0;i-)coutbi;return 0;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!