1、C函数编程20道习题汇总含其详细程序解答第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;r
2、eturn 0;第2题:编写函数factors(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、3题:编写函数,函数功能是:计算n的阶乘,要求输入输出均在主函数中完成。样例输入: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;r
4、eturn s;int main()int k,s;cink;s=sum(k);coutsendl;return 0;第5题:编写函数,函数功能是:根据下列公式求的值(直到某一项的值小于给定精度e为止),精度e由键盘输入,要求输入输出均在主函数中完成。 #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 、#includefloat sum(float q)float s=0,a,n;for(n=1;sq;s=sum(q);coutsendl;return 0;第8题:求数列的前n项和 要求使用函数,函数功能是:
6、计算数列的每一项,n由键盘输入。累加过程和输入输出均在主函数中完成。样例输入:50 #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 样例输入:10101 样例输出:101 #include#incl
7、udeint 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=getchar();if(pdsz(n)=1)coutyes;else
8、coutno;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);coutcendl;return 0;第12题:求数列的前n项和
9、要求使用函数,函数功能是:计算数列的每一项,n由键盘输入。累加过程和输入输出均在主函数中完成。样例输入:10 #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项和要求使用函数,函数功能是:计算数列的每一项,n由键盘输入。累加过程和输入输出均在主函数中完成。样例输入:3 样例输出:123#inc
10、lude#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,a;cink;for(i=1;sk;i+)a=lf(i);s+=a;n=i-2;cou
11、tnendl;return 0;第15题:求数列直到相邻两项之差的绝对值小于1E-6为止。要求使用函数,函数功能是:计算数列的每一项,x由键盘输入。累加过程和输入输出均在主函数中完成。 #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;return 0;第16题:利用级数展开式计算cosx直到某一项的绝对值小于0.00001为止。要求使用函数,函数功能是:计算数
12、列的每一项,x由键盘输入。累加过程和输入输出均在主函数中完成。样例输入:0 样例输出:1 样例输入:3 #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 0;第17题:利用级数展开式计算sinx直到某一项的绝对值小于0.00001为止。要求使用函数,函数功能是:计算数列的每一项,x由键盘输入。累加过程和输入输出均
13、在主函数中完成。样例输入:0 样例输出:0 样例输入:3 #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;第18题:编写程序求Fibonacci数列的前n项阶乘之和,即。要求使用函数,函数功能是:求某个数的阶乘。n由键盘输入,输入输出均在主函数中完成。注意:#include#includeint
14、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 #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;co
15、utsendl;return 0;第20题:编写程序求m和n之间(包括m和n,m=n)所有素数的平方根之和。要求使用函数,函数功能是:判断某一个数是否为素数。m和n由键盘输入,要求输入输出均在主函数中完成。样例输入:100 999 #include#includeint pd(int n)int i,m=0,flag=0;for(i=1;imn;for(k=m;k=n;k+)b=pd(k);if(b)s=s+sqrt(k);coutsendl;return 0;第21题:编写函数digit(num, k),函数功能是:求整数num从左边开始的第k位数字的值,如果num位数不足k位则返回0。要求
16、输入输出均在主函数中完成。 样例输入: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题:编写函数,将字符串中的大写字母变成对应的小写字母,小写字母变成对应的大写字母,其它字符不变。在主函数中调用该函数,完成任意字符串的转换,并输出结果。输入字符串(允许包含空格),输出处理后的结果。 样例输入:How Are You?样例输出:hOW aRE yOU?#i
17、ncludeusing 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题:编写函数,形成n阶杨辉三角形。在主函数中调用该函数,形成杨辉三角形,并输出结果。输入阶数n,输出处理后的结果。 样例输入:5 样例输出: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 #include#includevoid yh
18、(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题:编写函数,求一个字符串的长度。在主函数中调用该函数,输出结果。输入字符串(允许包含空格),输出字符串的长度。 样例输入:How Are You? 样例输出:12#includeusing namespace std;#includeint len(char a)int l;l=strlen(a);return
19、l;int main()char a50;int l;gets(a);l=len(a);coutlendl;return 0;第4题:编写函数,将字符数组s2中的前n个字符复制到字符数组s1中,不允许使用strcpy函数。在主函数中调用该函数,完成任意字符串的复制,并输出结果。输入分2行,第一行为字符串(不包含空格),第二行为n的值,输出处理后的结果。 样例输入: 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题:
20、编写函数,函数功能是:统计整数n的各位上出现数字1、2、3的次数。要求输入输出均在主函数中完成。 样例输入:123114350样例输出: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 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
21、 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;cinm;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+;i
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1