C语言编程题及答案-.pdf
《C语言编程题及答案-.pdf》由会员分享,可在线阅读,更多相关《C语言编程题及答案-.pdf(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、)(*)(*)(*csbsassC语言编程题1(*)求分数序列:1/2,2/3,3/5,5/8,8/13,13/21.前 20 项的和。main()float i=1,j=2,s=0,t,n,m;for(n=1;n=0;i-)printf(%c,ci);3(*)已知 abc+cba=1333,其中 a、b、c 均为一位数,例如:617+716=1333,518+815=1333,试编程求出符合这一规律的a、b、c,并输出结果。main()int a,b,c,x,y;for(a=1;a=9;a+)for(b=0;b=9;b+)for(c=1;cc&a+cb&b+ca)printf(area=%f
2、,area);else 1 printf(no);5(*)编程求出1!+2!+3!+,+8!+9!+10!的值并输出。程序 1:main()int i,j;double p=1,sum=0;for(i=1;i=10;i+)for(j=1;j=i;j+)p=p*i;sum=sum+p;p=1.0;printf(sum=%f,sum);程序 2:float fac(n)int n;float f;if(n0)printf(n0,error!);else if(n=0|n=1)f=1;else f=fac(n-1)*n;return(f);main()int h,s=0,n;for(n=1;n=4;
3、n+)h=fac(n);s=s+h;printf(s=1!+2!+.+10!=%dn,s);程序 3:main()int i;double p=1,sum=0;for(i=1;i=10;i+)p=p*i;sum=sum+p;printf(sum=%f,sum);2 6(*)从键盘输入两个整数,输出其和,差,积,商。7(*)输入若干个自然数,对奇数从大到小排序,对偶数从小到大排序,输出两种结果。maxji(int a,int n)int i,j,k,t;for(i=0;in-1;i+)k=i;for(j=i+1;jn;j+)if(akaj)k=j;if(k!=i)t=ak;ak=aj;aj=t;
4、#define N 10 main()int cN,i,j;for(i=0;i=0;i-)if(ci%2=0)printf(%5d,ci);printf(n);for(i=0;iN;i+)if(ci%2!=0)printf(%5d,ci);8(*)求出0999 之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153153,则 153 是一个“水仙花数”。程序 1:main()int i,j,k,a;for(i=1;i=9;i+)for(j=0;j=9;j+)for(k=0;k=9;k+)if(i*i*i+j*j*j+k*k*k=100*i+10
5、*j+k)printf(%d%d%dn,i,j,k);程序:main()int m,i,j,k,a;for(m=101;i=999;m+)i=m/100;j=(m-m*100)/10;3 k=m%10;if(i*i*i+j*j*j+k*k*k=m)printf(%dn,m);9(*)试编程:判断输入的正整数是否既是5,又是 7的整数倍数。若是则输出yes;否则输出 no。10(*)已有函数调用语句c=add(a,b);请编写aad 函数,计算两个实数a 和 b 的和,并返回和值。11(*)有人想将手中一张面值100 元的人民币换成5 元、1 元、0.5 元面值的零钱100张,以上三种面值的零钱
6、至少有一张,问共有几种换法。请编程实现。程序 1:main()int i,j,k,n=0;for(i=1;i19;i+)for(j=1;j95;j+)for(k=1;k94;k+)if(5*i+j+0.5*k=100&i+j+k=100)printf(%d,%d,%dn,i,j,k);n+;printf(%d,n);12(*)求 Sn=a+aa+aaa+aaaa+aaaaa 的前 5 项之和,其中a 是一个数字,例如:2+22+222+2222+22222 程序 1:main()int i,a,n;long sum=0,b=1,c=1;scanf(%d,%d,&a,&n);for(i=1;i=
7、n;i+)sum+=a*c;b*=10;c+=b;printf(%ld,sum);程序 2:main()long int sn=0,k=0;int a,i,j;scanf(%d,&a);for(i=1;i=5;i+)for(j=1;j=i;j+)k=10*k+a;4 sn=sn+k;程序 3:main()long int sn=0,k=a;int a,i,j;scanf(%d,&a);for(i=1;i=5;i+)k=10*k+a;sn=sn+k;printf(%ldn,sn);!21!31 k=0;printf(%ldn,sn);13(*)编程输出如下图形(不能仅用printf语句):*ma
8、in()int i,k,j;for(i=0;i=4;i+)for(j=0;j4-i;j+)printf();for(k=0;k=2*i;k+)printf(*);printf(n);14(*)用近似公式求自然对数的底e 的值。e1+1!+,#includemath.h main()float i,j,e,p=1.0,sum=0.0;for(i=1;i10;i+)for(j=1;j=i;j+)p=p*j;sum=sum+1.0/p;p=1.0;e=i+sum;printf(%fn,e);15(*)请编程,用scanf()函数输入三个字符,对这三个字符各加一个整数1 后,用putchar()函数输
9、出,且每输出一个字符换一行。16(*)请编程,用scanf()函数输入三个整数,输出其中不大不小的那个数,输出宽度为五位。int findmid(int i,int j,int k)int n;5 if(ij)n=i;i=j;j=n;if(ik)n=j;else n=k;return(n);main()int i,j,k,n;scanf(%d%d%d,&i,&j,&k);n=findmid(i,j,k);printf(%dn,n);17(*)编程实现输出所有1100 之间能被9 整除余 2 的数。18(*)编写一程序实现如下功能:输入1、2、3、4、5、6、7(分别对应星期一至星期日)中的任何
10、一个数,便能输出与之对应的英文名称。如输入1,则输出 Monday。main()char day;scanf(%c,&day);swith(day)case 1:printf(mondayn);break;case 2:printf(tuesdayn);break;case 3:printf(wednsdayn);break;case 4:printf(thursdayn);braek;case 5:printf(fridayn);break;case 6:printf(saturdayn);break;case 7:printf(sundayn);break;defult:printf(er
11、rorn);19(*)编一程序,对于给定的一个百分制成绩,输出相应的5 分制成绩。设:90 分以上为 A,8089 分为 B,7079 分为 C,6069 分为 D ,60 分以下为 E。(用 switch语句实现)。main()int s,score;scanf(%d,&score);s=score/10;switch(s)case 10:printf(An);break;case 9:printf(An);break;case 8:printf(Bn);break;case 7:printf(Cn);break;case 6:printf(Dn);break;case 5:case 4:c
12、ase 3:case 2:case 1:printf(En);break;default:printf(error);20(*)试编程:判断输入的正整数是否既是5,又是7 的整数倍数。若是则输出yes;否则输出no。21(*)一个数如果却好等于它的因子之和,这个数就称为“完数”。例如,6 的因子为1、2、3,而 6=1+2+3,因此 6 是“完数”。编程序找出100 之内的所有完数,并按下列格式输出其因子:6 its factors are 1,2,3 main()int m,i,s;for(m=2;m1000;m+)s=0;for(i=1;im;i+)if(m%i=0)s=s+i;if(m=
13、s)printf(%3d its factors are,m);for(i=1;im;i+)if(m%i=0)printf(%4d,i);printf(n);22(*)输入 5 对整数,请输出每对数中较大者 main()int i,j,a52;for(i=0;i=4;i+)for(j=0;j=1;j+)scanf(%d,&aij);for(i=0;iai0)printf(%4dn,ai1);else printf(%4dn,ai0);6 23(*)编程将一个3x3 矩阵转置(行列互换)后输出。main()int i,j,a33,b33;for(i=0;i=2;i+)for(j=0;j=2;j+
14、)scanf(%d,&aij);for(i=0;i=2;i+)for(j=0;j=2;j+)print(“%5d”,aij);bji=aij;printf(n);for(j=0;j=2;j+)for(i=0;i=2;i+)printf(%5d,bij);printf(“n”);24(*)求一个一维数组的最大值,最小值和平均值(主函数调用并输出)。程序 1:float max(int n,float a)int i;float max;max=a0;for(i=0;in;i+)if(maxai)max=ai;return(max);float min(int n,float a)int i;fl
15、oat min;min=a0;for(i=0;iai)min=ai;return(min);float aver(int n,float a)int i;float sum=0,aver;7 for(i=0;in;i+)程序 2:main()void make();int a10,i;extern int max,min;extern float aver;for(i=0;i10;i+)scanf(%d,&ai);make(a,10);printf(max=%d,min=%d,aver=%.2f,max,min,aver);int max,min;float aver;void make(in
16、t a,int n)int i;float sum;max=min=a0;sum=a0;for(i=1;in;i+)if(maxai)min=ai;sum+=ai;printf(%f,sum);aver=(float)sum/n;sum=sum+ai;aver=sum/n;return(aver);#includemath.h main()int i;float m,n,a5,c;for(i=0;i5;i+)scanf(%f,&ai);m=max(5,a);n=min(5,a);c=aver(5,a);printf(%5f%5f%5fn,m,n,c);25(*)编写函数,求一个不超过五位的十进
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程 答案
限制150内