《C语言函数编程20道习题汇总含其详细程序解答.docx》由会员分享,可在线阅读,更多相关《C语言函数编程20道习题汇总含其详细程序解答.docx(11页珍藏版)》请在第一文库网上搜索。
1、函数作业及解答第1题:编写两个函数,函数功能分别是:求两个整数的最大公约数和最小公倍数,要求输入输出均在主函数中完成。样例输入:1525样例输出:575ttinc1udeintgbs(inta,intb)inta,b,c,d;intgys(inta,intb)inti;cinab;(inti;for(i=a;;i+)c=gys(a,b);for(i=a;i0;i-)if(i%a=0tei%b=0)d=gbs(a,b);if(a%i=0&b%i=0)returni;coutcd;returni;break;return0;break;)第2题:intmain()编写函数factors(num,k
2、),函数功能是:求整数num中包含因子k的个数,如果没有该因子则返回Q例如:32=2X2X2X2X2,则factors(32,2)=5。要求输入输出均在主函数中完成。样例输入:42样例输出:2样例输入:83样例输出:0ttinc1udenum=numk;cinnumk;intfactors(intnum,intk)a=num%k;b=factors(num,k)intn=0,a;coutbend1;a=num%k;returnn;return0;whi1e(a=0)intmain()n+;intnum,k,b;第3题:编写函数,函数功能是:计算n的阶乘,要求输入输出均在主函数中完成。样例输入:
3、5样例输出:120、ttinc1udereturnb;couts;intjc(intn)intmain()return0;inta,b=1;intn,s;)for(a=1;a=n;a+)cinn;b=a*b;s=jc(n);第4题:编写函数,函数功能是:计算k以内(包括k)最大的10个(不足10个则是所有的)能被13或17整除的自然数之和。要求输入输出均在主函数中完成。样例输入:500样例输出:4622ttinc1udes+=n;cink;intsum(intk)if(c=10)s=sum(k);intn,c=0,s=0;break;couts0;n-)returns;return0;if(n
4、%13=0n%17=0)intmain()c+;intk,s;第5题:编写函数,函数功能是:根据下列公式求五的值(直到某一项的值小于给定精度e为止),精度e由键盘输入,要求输入输出均在主函数中完成。+x2+xax2+xax2x+.23353573579样例输入:0.0005样例输出:3.14058ttinc1udedoub1epai(doub1ee)doub1es,a,k,p;s=1;a=13.0;for(k=2;;k+)第6题:编写程序求s+=a;a=a*(k(k*2+1);if(ae;p=pai(e);coutpend1;return0;-0要求使用函数,函数功能是:求某个数的阶乘。n由键
5、盘输入,输入输出均在主函数中完成。注意:0!二1。样例输入:3样例输出:10ttinc1udefor(i=1;in;intjc(inta)s=s*i;for(k=0;k=n;k+)ints=1,i;returns;s=jc(k);if(a=0)intmain()sum+=s;s=1;intn,k,s;coutsumend1;e1sedoub1esum=0;return0;第7题:求数列要求使用函数计算该序列的前N项和篇直到孔大于q为止,q由键盘输入,输入输出均在主函数中完成,样例输入:50样例输出:50.4167、ttinc1udes+=a;cinq;f1oatsum(f1oatq)retur
6、ns;s=sum(q);f1oats=0,a,n;intmain()coutsend1;for(n=1;s=q;n+)(return0;a=(n+1.0)/n;f1oatq,s;第8题:求数列的前n项和1S=IH1+1+212312+3+入输出均在主函数中完成。样例输入:50样例输出:1.96079ftinc1udea=1.0/s;for(i=1;i=n;i+)f1oatmyx(intn)returna;s+=myx(i);f1oata;intmain()coutsend1;inti,s=0;intn,i;return0;)for(i=1;i;第9题:编写函数fun(num),其中num是一个
7、n位数,函数功能是:求整数num的后nT位,如果num是一位数则返回0,要求输入输出均在主函数中完成。样例输入:9样例输出:0样例输入:6734样例输出:734样例输入:1000样例输出:0样例输入:IOIo1样例输出:101ftinc1udee1seintx,c;ttinc1uden=int(Iog10(x)+1;cinx;intjw(intx)m=x%int(pow(10,n-1);c=jw(x);inta,n,m;a=m;coutcend1;if(x10)returna;return0;)a=0;intmain()第10题:编写函数,函数功能是:判断输入的字符是否为数字字符。如果是,则输
8、出YES,否则输出NO,要求输入输出均在主函数中完成。样例输入:5样例输出:YES样例输入:B样例输出:NOttinc1udee1seif(pdsz(n)=1)usingnamespacestd;f1ag=0;cout=0Un=,9)charn;return0;fIag=I;n=getchar();第11题:编写函数,函数功能是:将两个两位数的正整数a、b合并成一个整数C,合并规则是将a的十位和个位分别放在c的千位和个位,将b的十位和个位分别放在C的百位和十位。a、b由键盘输入,输入输出均在主函数中完成。样例输入:4512样例输出:4125ttinc1udettinc1udeinthb(int
9、a,intb)intq,g,m,c;q=a10;return0;第12题:求数列的前n项和g=a%10;m=b*10;c=q*1000+m+g;returnc;intmain(),一J_+J12T112233445w(w1)要求使用函数,函数功能是:计算数列的每一项入输出均在主函数中完成。inta,b,c;cinab;c=hb(a,b);coutcend1;n由键盘输入。累加过程和输a=dx(i);s+=a;coutsend1;return0;样例输入:10样例输出:0.382179ftinc1udettinc1udedoub1edx(doub1en)doub1ea,b,c;a=pow(-1,
10、n+1);b=n*(n+1);第13题:求数列的前n项和c=ab;returnc;intmain()doub1en,s=0,i,a;cinn;for(i=1;i=n;i+)SWW=111+1111111+111.1由键盘输入。累加过程和输要求使用函数,函数功能是:计算数列的每一项入输出均在主函数中完成。样例输入:3样例输出:123ttinc1udettinc1udeintan(intn)ints=0,m,a,i;for(i=1;i=n;i+)m=int(pow(10,i-1);a=m;s+=a;returns;intmain()intn,i,a,sum=0;cinn;for(i=1;i=n;i
11、+)a=an(i);sum+=a;coutsumend1;return0;第14题:求满足F+2+3+/左的口的最大值,要求使用函数,函数功能是:计算n的立方,k由键盘输入。累加过程和输入输出均在主函数中完成。a=1f(i);s+=a;n=i-2;coutnend1return0;样例输入:IOOOO样例输出:13ttinc1udettinc1udeintIf(intx)inta;a=x*x*x;第15题:求数列returna;intmain()intk,s=0,i,n=0,a;cink;for(i=1;sk;i+)Sn=I卜05XO5(O5-1)v,0.5(0.5-1)(O5-2)/+05(051)(052)(0.5+1)工找2!3!n直到相邻两项之差的绝对值小于IE-6为止。要求使用函数,函数功能是:计算数列的每一项,X由键盘输入。累加过程和输入输出均在主函数中完成。样例输入:0.21样例输出:11ttinc1udettinc1udef1oatsn(f1oatx,f1oatn)f1oats=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