1、C+函数编程20道习题汇总含其详细程序解答DOC第1题:编写两个函数,函数功能分别是:求两个整数的最大公约数和最小公倍数,要求输入输出均在主函数中完成。样例输入:1525样例输出:575#includeintgys(inta,intb)inti;for(i=a;i0;i-)if(a%i=0&b%i=0)returni;break;intgbs(inta,intb)inti;for(i=a;i+)if(i%a=0&i%b=0)returni;break;intmain()inta,b,c,d;cinab;c=gys(a,b);d=gbs(a,b);coutcd;return0;第2题:编写函数f
2、actors(num,k),函数功能是:求整数num中包含因子k的个数,如果没有该因子则返回0,例如:32=22222,则factors(32,2)=5。要求输入输出均在主函数中完成。样例输入:4?2样例输出:2样例输入:8?3样例输出:0#includeintfactors(intnum,intk)intn=0,a;a=num%k;while(a=0)n+;num=num/k;a=num%k;returnn;intmain()intnum,k,b;cinnumk;b=factors(num,k);coutbendl;return0;第3题:编写函数,函数功能是:计算n的阶乘,要求输入输出均在
3、主函数中完成。样例输入:5样例输出:120、#includeintjc(intn)inta,b=1;for(a=1;an;s=jc(n);couts;return0;第4题:编写函数,函数功能是:计算k以内(包括k)最大的10个(不足10个则是所有的)能被13或17整除的自然数之和。要求输入输出均在主函数中完成。样例输入:500样例输出:4622#includeintsum(intk)intn,c=0,s=0;for(n=k;n0;n-)if(n%13=0|n%17=0)c+;s+=n;if(c=10)break;returns;intmain()intk,s;cink;s=sum(k);co
4、utsendl;return0;第5题:编写函数,函数功能是:根据下列公式求的值(直到某一项的值小于给定精度e为止),精度e由键盘输入,要求输入输出均在主函数中完成。样例输入:0.0005样例输出:3.14058#includedoublepai(doublee)doubles,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;return0;第6题:编写程序求?要求使用函数,函数功能是:求某个数的阶乘。n由键盘输入,输入输出均在主函数中完成。注意:0!=1。样例输入:3样例输出:10#inclu
5、deintjc(inta)ints=1,i;if(a=0)s=1;elsefor(i=1;in;for(k=0;k=n;k+)s=jc(k);sum+=s;coutsumendl;return0;第7题:求数列要求使用函数计算该序列的前N项和SN,直到SN大于q为止,q由键盘输入,输入输出均在主函数中完成。样例输入:50样例输出:50.4167、#includefloatsum(floatq)floats=0,a,n;for(n=1;sq;s=sum(q);coutsendl;return0;第8题:求数列的前n项和要求使用函数,函数功能是:计算数列的每一项,n由键盘输入。累加过程和输入输出均
6、在主函数中完成。样例输入:50样例输出:1.96079#includefloatmyx(intn)floata;inti,s=0;for(i=1;in;for(i=1;i=n;i+)s+=myx(i);coutsendl;return0;第9题:编写函数fun(num),其中num是一个n位数,函数功能是:求整数num的后n-1位,如果num是一位数则返回0,要求输入输出均在主函数中完成。样例输入:9样例输出:0样例输入:6734样例输出:734样例输入:1000样例输出:0样例输入:10101样例输出:101#include#includeintjw(intx)inta,n,m;if(xx;
7、c=jw(x);coutcendl;return0;第10题:编写函数,函数功能是:判断输入的字符是否为数字字符。如果是,则输出YES,否则输出NO,要求输入输出均在主函数中完成。样例输入:5样例输出:YES样例输入:B样例输出:NO#includeusingnamespacestd;intpdsz(charn)intflag;if(n=0&n=9)flag=1;elseflag=0;returnflag;intmain()charn;n=getchar();if(pdsz(n)=1)coutyes;elsecoutno;return0;第11题:编写函数,函数功能是:将两个两位数的正整数a、
8、b合并成一个整数c,合并规则是将a的十位和个位分别放在c的千位和个位,将b的十位和个位分别放在c的百位和十位。a、b由键盘输入,输入输出均在主函数中完成。样例输入:4512样例输出:4125#include#includeinthb(inta,intb)intq,g,m,c;q=a/10;g=a%10;m=b*10;c=q*1000+m+g;returnc;intmain()inta,b,c;cinab;c=hb(a,b);coutcendl;return0;第12题:求数列的前n项和?要求使用函数,函数功能是:计算数列的每一项,n由键盘输入。累加过程和输入输出均在主函数中完成。样例输入:10
9、样例输出:0.382179#include#includedoubledx(doublen)doublea,b,c;a=pow(-1,n+1);b=n*(n+1);c=a/b;returnc;intmain()doublen,s=0,i,a;cinn;for(i=1;i=n;i+)a=dx(i);s+=a;coutsendl;return0;第13题:求数列的前n项和?要求使用函数,函数功能是:计算数列的每一项,n由键盘输入。累加过程和输入输出均在主函数中完成。样例输入:3样例输出:123#include#includeintan(intn)ints=0,m,a,i;for(i=1;in;fo
10、r(i=1;i=n;i+)a=an(i);sum+=a;coutsumendl;return0;第14题:求满足的n的最大值,要求使用函数,函数功能是:计算n的立方,k由键盘输入。累加过程和输入输出均在主函数中完成。样例输入:10000样例输出:13#include#includeintlf(intx)inta;a=x*x*x;returna;intmain()intk,s=0,i,n=0,a;cink;for(i=1;sk;i+)a=lf(i);s+=a;n=i-2;coutnendl;return0;第15题:求数列?直到相邻两项之差的绝对值小于1E-6为止。要求使用函数,函数功能是:计算
11、数列的每一项,x由键盘输入。累加过程和输入输出均在主函数中完成。样例输入:0.21样例输出:1.1#include#includefloatsn(floatx,floatn)floats=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;return0;第16题:利用级数展开式计算cosx?直到某一项的绝对值小于0.00001为止。要求使用函数,函数功能是:计算数列的每一项,x由键盘输入。累加过程和输入输出均在主函数中完成。样例输入:0样例输出:1样例输入:
12、3样例输出:-0.989992#include#includedoublean(doublex,doublen)doublea,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;return0;第17题:利用级数展开式计算sinx?直到某一项的绝对值小于0.00001为止。要求使用函数,函数功能是:计算数列的每一项,x由键盘输入。累加过程和输入输出均在主函数中完成。样例输入:0样例输出:0样例输入:3样例输出:0.14112#in
13、clude#includedoublean(doublex,doublen)doublef,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;return0;第18题:编写程序求Fibonacci数列的前n项阶乘之和,即。要求使用函数,函数功能是:求某个数的阶乘。n由键盘输入,输入输出均在主函数中完成。注意:#include#includeintjc(intx)inta=1,k;for(k=1;kn;a=1;b=1;s=
14、2;for(i=3;i=n;i+)j=a+b;k=jc(j);s+=k;a=b;b=j;coutsendl;return0;样例输入:6样例输出:40450第19题:求数列其中分母为n以内(包括n)的素数。要求使用函数,函数功能是:计算数列的每一项,n由键盘输入。累加过程和输入输出均在主函数中完成。样例输入:50样例输出:1.66165#include#includefloatan(intn)floata,b=0,c,d;inti;a=0;for(i=1;in;for(i=1;i=n;i+)a=an(i);s+=a;coutsendl;return0;第20题:编写程序求m和n之间(包括m和n
15、,m=n)所有素数的平方根之和。要求使用函数,函数功能是:判断某一个数是否为素数。m和n由键盘输入,要求输入输出均在主函数中完成。样例输入:100999?样例输出:3157.48#include#includeintpd(intn)inti,m=0,flag=0;for(i=1;imn;for(k=m;k=n;k+)b=pd(k);if(b)s=s+sqrt(k);coutsendl;return0;第21题:编写函数digit(num,k),函数功能是:求整数num从左边开始的第k位数字的值,如果num位数不足k位则返回0。要求输入输出均在主函数中完成。样例输入:46473样例输出:4样例输
16、入:235237样例输出:0#include#includeintdigit(intx,intk)intn,s,a,b;n=int(log10(x)+1;if(nnumk;t=digit(num,k);couttendl;return0;第1题:编写函数,将字符串中的大写字母变成对应的小写字母,小写字母变成对应的大写字母,其它字符不变。在主函数中调用该函数,完成任意字符串的转换,并输出结果。输入字符串(允许包含空格),输出处理后的结果。样例输入:HowAreYou?样例输出:hOWaREyOU?#includeusingnamespacestd;#includevoidexc(chara,in
17、tl)inti;for(i=0;i=A&ai=a&ai=z)ai=ai-32;elseai=ai;intmain()chara50;intl;gets(a);l=strlen(a);exc(a,l);puts(a);return0;第2题:编写函数,形成n阶杨辉三角形。在主函数中调用该函数,形成杨辉三角形,并输出结果。输入阶数n,输出处理后的结果。样例输入:5样例输出:111121133114641#include#includevoidyh(inta50,intl)inti,j,k;for(k=0;kl;k+)ak0=1;akk=1;for(i=2;il;i+)for(j=1;jn;yh(a
18、,n);for(j=0;jn;j+)for(i=0;i=j;i+)coutaji;coutendl;return0;第3题:编写函数,求一个字符串的长度。在主函数中调用该函数,输出结果。输入字符串(允许包含空格),输出字符串的长度。样例输入:HowAreYou?样例输出:12#includeusingnamespacestd;#includeintlen(chara)intl;l=strlen(a);returnl;intmain()chara50;intl;gets(a);l=len(a);coutlendl;return0;第4题:编写函数,将字符数组s2中的前n个字符复制到字符数组s1中
19、,不允许使用strcpy函数。在主函数中调用该函数,完成任意字符串的复制,并输出结果。输入分2行,第一行为字符串(不包含空格),第二行为n的值,输出处理后的结果。样例输入:Hello,world!8样例输出:Hello,wo#includevoidcp(chara,charb,intn)inti;for(i=0;ian;cp(a,b,n);coutbendl;return0;第5题:编写函数,函数功能是:统计整数n的各位上出现数字1、2、3的次数。要求输入输出均在主函数中完成。样例输入:123114350样例输出:312#includeusingnamespacestd;#includevoi
20、dcs(chara,intb,intl)inti;b0=0;b1=0;b2=0;for(i=0;il;i+)if(ai=1)b0+;elseif(ai=2)b1+;elseif(ai=3)b2+;elsecontinue;intmain()chara50;intb50,l;gets(a);l=strlen(a);cs(a,b,l);coutb0b1b2endl;return0;第6题:编写程序完成进制转换,要求使用函数,函数功能是:十进制转换为二进制,输入输出均在主函数中完成。样例输入:125样例输出:1111101#includeintzh(inta,intx)inti=-1;while(x
21、!=0)i+;ai=x%2;x=x/2;returni;intmain()inta32,m,n,k;cinm;n=zh(a,m);for(k=n;k=0;k-)coutak;return0;第7题:编写两个函数,将n个正整数中的素数按升序排序。函数功能分别是:判断一个数是否为素数,以及对数组进行排序。输入分2行:第一行为n的值,第二行为n个整数。要求输入输出均在主函数中完成。样例输入:9987654321样例输出:2357#includeintorder(inta,intb,intl)inti,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;ik-1;i+)q=i;for(j=i+1;jbj)q=j;if(q!=i)w=bq;bq=bi,bi=w;returnk;intmain()inta40,b40,n,l,q;cinn;for(l=0;lal;q=order(a,b,n);for(l=0;lq;l+)coutbl;return0;第8题:编写函数,功能是交换数组中的最大数和最小数的位置,并计算所有数之和。例如数组a有5个元素3、
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1