1、C+函数编程20道习题汇总含其详细程序解答第1题:编写两个函数,函数功能分别是:求两个整数的最大公约数和最小公倍数,要求 输入输出均在主函数中完成。样例输入:15 25样例输出:5 75编写函数factors (num, k),函数功能是:求整数num中包含因子k的个数,如果没有该因子则返回0,例如:32=2X2X2X2X2,则factors(32. 2) =5o要求 输入输出均在主函数中完成。编写函数,函数功能是:计算n的阶乘,要求输入输出均在主函数中完成。编写函数,函数功能是:计算k以(包括k)最大的10个(不足10个则是所有 的)能被13或17整除的自然数之和。要求输入输出均在主函数中完
2、成。样例输入:500 样例输出:4622#includes+=n;int sum(int k)if(c=10) int n,c=O,s=O;break;for(n=k:n0;n-)return s:if(n%13=0lln%17=0)int main()c卄;int k,s;cink; s=sum(k); coutsendl: return 0:第5题:编写函数,函数功能是:根据下列公式求Ti的值(直到某一项的值小于给定精度 为止),精度由键盘输入,要求输入输出均在主函数中完成。1+2+2启+丄是启+4乙2二+.3 3 5 3 5 7 3 5 7 9样例输入:0.0005 样例输出:3.140
3、58 #include double pai(double e) double sak,p;s=l;a= 1/3.0;for(k=2;k+)第6题: 编写程序求s+=a; a=a*(k/(k*2+l); if(ae) break; p=s*2;return p; int niain()double c.p; cine; p=pai(e); coutpendl; return 0:要求使用函数,函数功能是:求某个数的阶乘。n由键盘输入,输入输出均在主 函数中完成。注意:0!=1o要求使用函数计算该序列的前N项和Sn,直到Sn大于为止,g由键盘输入,输入揄出均在主函数中完成。样例输入:50样例输出
4、:50.4167、# includes+=a:cinq;float sum(float q)return s;s=sum(q);float s=0.a,n;int main()coutsendl;for(n=l;s=q;n+)return 0;a=(n+1.0)/n;float q,s;第8题:求数列的前n项和5 = 1+丄+ 一?一十+ ! 1十2 1+2十3 1+2+3+要求使用函数,函数功能是:计算数列的每一项,n由键盘输入。累加过程和输入揄出均在主函数中完成。样例输入:50样例输岀:1.96079#includea=1.0/s;for(i=l;i=n;i+)float myx(int
5、n)return a;s+=myx(i);float a;int main()coutsendl;int i,s=0;int n.i;return 0;for(i=l;i=n;i+)float s=0;s+=i;cinn;第9题:编写函数fun (num),其中num是一个n位数,函数功能是:求整数num的后nT 位,如果mo是一位数则返回0,要求输入输出均在主函数中完成。样例输入:1000样例输岀:0样例输入:10101样例输出:101第10题:编写函数,函数功能是:判断输入的字符是否为数字字符。如果是,则输出YES, 否则输出NO,要求输入输出均在主函数中完成。样例输入:5样例输岀:YES
6、样例输入:B样例输出:NO第11题:编写函数,函数功能是:将两个两位数的正整数a、b合并成一个整数C,合并 规则是将a的十位和个位分别放在c的千位和个位,将b的十位和个位分别放在 c的百位和十位。a、b由键盘输入,输入输出均在主函数中完成。样例输入:45 12第14题:求满足的n的最大值,要求使用函数,函数功能是:计算n的立方,k由键盘输 入。累加过程和输入输出均在主函数中完成。样例输入:10000勿_1 十0 505(05 十2! 3! w!直到相邻两项之差的绝对值小于1E-6为止。要求使用函数,函数功能是:计算 数列的每一项,x由键盘输入。累加过程和输入输出均在主函数中完成。直到某一项的绝
7、对值小于0. 00001为止。要求使用函数,函数功能是:计算数列的每一项,X由键盘输入。累加过程和输入输出均在主函数中完成。第17题:利用级数展开式计算sinx直到某一项的绝对值小于0. 00001为止。要求使用函数,函数功能是:计算数列的每一项,X由键盘输入。累加过稈和揄入输出均存主函数中完成。样例输入:0样例输岀:0样例输入:3样例输岀:0.14112# includec=c*i:for(i=l;i+)#included=l/c;p=an(x4);double an(double x.double n)f=a*b*d;s=s+p;double f,a,b.i,c=ld;return f;i
8、f(fabs(p)0.00001)a=pow(-hn+l);int main()break;b=pow(x,2*n-l);double x,s=0,i,p;coutsendl;for(i= 1:i=(2*n-l );i+)cinx;return 0:第18题:编写程序求Fibonacci数列的前n项阶乘之和,即。要求使用函数,函数功能是:求某个数的阶乘。n由键盘输入,输入输出均在主函数中完成。注意:样例输入:6 样例输出:40450第19题: 求数列 其中分母为n以(包括n)的素数。要求使用函数,函数功能是:计算数列的每 一项,n由键盘输入。累加过程和输入输出均在主函数中完成。样例输入:50样
9、例输出:1.66165#includeint i;if(a=l)#includea=0;d=1.0/n;float an(int n)for(i=l;in;i+)else d=0;if(n%i=0)return d;float a.b=0,c.d;a+;int main() for(i=l;i=n;i+)coutsendl; return 0;float s=0,n,a;a=an(i);int i;s+=a;cinn;第20题:编写程序求m和n之间(包括m和m m=n)所有素数的平方根之和。要求使用函数,函数功能是:判断某一个数是否为素数。m和n由键盘输入,要求输入输出均存主函数中完成样例输入
10、:100 999样例输出:3157.48#includeif(m=2)b=pd(k);#includeflag=l;if(b)int pd(int n)return (flag);s=s+sqrt(k);int i.m=0,flag=0;int main()coutsendl;for(i=l;i=n;i+)double m,n,s=0bk;return 0;if(n%i=O)cinmn;m+;for(k=m:k=n:k+)第21题:样例输入:4647 3 样例输出:4 样例输入:23523 7样例输出:0#includes=0;int nunk.t;#includeelsecinnumk;in
11、t digit(int x,int k)a=x/int(pow(l O.n-k);t=digit(num,k);int nsa.b;b=a%10;couttendl;n=int(loglO(x)+l;return b;return 0:if(n=,a,&aiv=h)gets(a);ai=ai-32;l=strlen(a);elseexc(aj);ai=ai;puts(a);int main()return 0:char a50;样例输出:hOWaREyOU? #include using namespace std;#include void exc(charafJnt 1) int i;fo
12、r(i=0;i=Af&aiv=Z)第2题:编写函数,形成n阶辉三角形。在主函数中调用该函数,形成辉三角形,并输出结果。输入阶数m输出处理后的结果。样例输入:5样例输出:11 11 2 1133 11464 1#includefor(i=2:il;i+)for(j=0;jn;j+)#includefor(j=l;ji;j+)for(i=0;i=j;i+)void yh(int a50,int 1)aiU=ai-lj-l+ai-lU;coutajiHint i,j,k;int main()coutendl;for(k=0;kl;k+)int a5050,n,ij;return 0;akO=l;ci
13、nn;akk=l;vh(a.n);第3题:编写函数,求一个字符串的长度。在主函数中调用该函数,输出结果。输入字符 串(允许包含空格),输出字符串的长度。样例输入:How Are You?编写函数,将字符数组s2中的前n个字符复制到字符数组s1中,不允许使用strcpy函数。在主函数中调用该函数,完成任意字符串的复制,并输出结果。 输入分2行,第一行为字符串(不包含空格),第二行为n的值,输出处理后的 纟吉果。样例输入:Hello, world!8样例输岀:HcIIoavo#includevoid cp(char axhar b,int n) int i;for(i=0;in;i+)bi=ai;
14、第5题:编写函数,函数功能是:统计整数n的各位上出现数字1、2、3的次数。要求输 入输出均在主函数中完成。样例输入:123114350样例输出:3 12#includeb0+;int b50,l;using namespace std;else if(ai=,2,)gets(a);# includebl+;I=strlen(a);void cs(char a9int bjnt 1)else if(ai=3)cs(a,b,l);int i;b2+;coutb0H Mb| 1 Hb0=0;bl=0;b2=0;else continue;Mb2endl;for(i=0;iI;i+)int main(
15、)return 0:if(ai=T)char a50;第6题:编写程序完成进制转换,要求使用函数,函数功能是:十进制转换为二进制,$入揄出均在主函数中完成。样例输入:125样例输出:1111101# includeai=x%2;cinm;int zh(int ajnt x)x=x/2;n=zh(a,m);int i=-l;return i;for(k=n;k=0;k-)while(x!=0)int main()(coutak;i卄;int a32,m,n,k;return 0;第7题:第8题:编写函数,功能是交换数组中的最大数和最小数的位置,并计算所有数之和。例 如数组a有5个元素3、4、1、
16、5、2,将最大数5和最小数1的位置交换后得到3、4、5、仁2,总和为15。程序中用到的主函数为:int main()int a50,n,i,sum; cinn;for(i=0;in;i+) cinai;sum=f:un(a9n);For(i=8;in;i+) coutain coutendlsumendl; return 0;min=i; cinn;第9题: 编写子函数fum功能是挑出字符串中ASCI I码值为偶数的大写字母并存放在原 字符串中。例如字符串str为HaB0bD1c其中满足条件的字符为B,和因 此调用fun函数后,字符串str变为HBD程序中用到的主函数为:n=strlen(a)
17、;ai=bi;for(i=0:i=A,&ai=,Z,&a# includei%2=0)int main()#include#includechar a 100;void zf(char a|)bj=ai;gets(a);j+;zf(a);char b50;puts(a);int ij=O,n;for(i=0;ij;i+)return 0;第10题:编写程序完成进制转换,要求使用函数,函数功能是:十进制转换为八进制,输 入输出均在主函数中完成。样例输入:125样例输出:175#include#includeint zh(int bJnt n)i卄; n=n/8; bi=AO; return i;int main()int b100|; int n,a,i; cinn;a=zh(b.n); for(i=a-l;i=0:i-) coutbi;return 0:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1