《C语言编程题与答案》由会员分享,可在线阅读,更多相关《C语言编程题与答案(25页珍藏版)》请在金锄头文库上搜索。
1、-WORD格式-可编辑-C语言编程题1. (*)求分数序列:1/2,2/3,3/5,5/8,8/13,13/21前20项的和。main()float i=1,j=2,t=0,s,n,m;for(n=1;nv=20;n+)s=i/j,m=i,i=j,j=m+j,t=t+s;printf(t=%f,t);2. (*)从键盘输入一个字符串,再将其逆序输出。(如:输入abcde,输出edcba)main()int i;char c10;scanf(%s,c);for(i=9;i=0;i-)printf(%c,ci);3. ( *)已知abc+cba=1333,其中a、b、c均为一位数,例 如:617+
2、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,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;jv=i;j+)p=p*i;sum=sum+p;p=1.0; printf(sum
3、=%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;nv=4;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. ( *)从键盘
4、输入两个整数,输出其和,差,积,商。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;#define N 10main()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);& (*)求出0999之
5、间的所有“水仙花数”并输出。“水 仙花数”是指一个三位数,其各位数字的立方和确好等于该数 本身,如;153 = 1 + 5+ 3,则153是一个“水仙花数”。程序 1: main()int i,j,k,a;for(i=1;iv=9;i+)for(j=0;jv=9;j+)for(k=0;kv=9;k+) if(i*i*i+j*j*j+k*k*k=ioo*i+io* j+k)printf(%d%d%dn,i,j,k);程序:main()int m,i,j,k,a;for(m=101;i=999;m+)i=m/1OO;j=(m-m *100)/10;.3 .k=m%10;if(i*i*i+j*j*j
6、+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张,以上三种面值的零钱至少有 一张,问共有几种换法。请编程实现。程序 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
7、+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;程序 3: main()long int sn=0,k=a;int a,i,j;scan f(%d,&a); for(i=1;i=5;i+)k=10*k+a; sn=sn+k;prin tf(%ldn,s n);long sum=0, b=1,c=1; scanf(%d,%d,&a,&n); for(i=1;
8、i=n ;i+) sum+=a*c;b*=1O;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; k=0;printf(%ldn,sn);13. (*)编程输出如下图形(不能仅用 printf 语句):main() int i,k,j;for(i=0;i=4;i+) for(j=0;j4-i;j+) printf();for(k=0;kv=2*i;k+)printf(*);prin
9、tf(n);14. (*)用近似公式求自然对数的底e的值1 . j.#includemath.h main()float i,j,e,p=1.0,sum=0.0; for(i=1;i10 ;i+) for(j=1;jv=i;j+) p=p*j;sum=sum+1.0/p;P=1.0; e=i+sum; printf(%fn,e);15. (*)请编程,用scanf()函数输入三个字符,对这三个字符各加一个整数1后,用putchar()函数输出,且每输出一个字符换一行。16. (*)请编程,用scanf()函数输入三个整数,输出其 中不大不小的那个数,输出宽度为五位。int findmid(in
10、t 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 (分别对应星期一至星期日)中的任何一个数,便能输出 与之对应的英文名称。如输入1,则输出Monday。main()char day;scanf(%c,& day);s
11、with(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(errorn);19. (*)编一程序,对于给定的一个百分制成绩,输出相 应的5分制成绩。设:90分以上为 A
12、 , 8089分为 B , 7079 分为 C , 6069分为 D , 60分以下为 E o (用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:case 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,3main()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=