1、 C语言程序设计复习题库1、计算下面公式的值。T=1/1!+1/2!+1/3!+1/m! 当m=5时的结果(按四舍五入保存3位小数)。(注:所有变量用float数据类型定义!)答案:1.7172、程序填空:用*号输出字母C的图案。#include stdio.h#include conio.hmain()_printf( *n);_getch(); 3、8232和9678,它们的个、十、百、千各位数字之和是15的倍数,8+2+3+2=15,9+6+7+8=30。编写程序,求四位数的所有奇数中,这样的数(各位数字之和是15的倍数)的总和。(注:所有变量用long数据类型定义!) 答案:15334
2、594、 /*下面程序的功能是:计算并输出700以内的最大的10个能被13或者17整除的自然数之和。请改正程序中的错误,并运营,最后给出程序运营的对的结果。(注:只有一处错误!)*/ 答案:6591#include void main() int total=0, mc=1, k=700; int pm10,count=0; while( (k=2) & mc=10 ) if (k%13=0) | (k%17=0) pmmc = k; mc+; k-; for( k=1;k=10;k+ ) total += pmk-1; printf( %dn,total); 5、求x = 1+1/5+1/7
3、+1/9+的近似值,直到最后一项的绝对值小于10-5为止。6、计算如下公式的A20值。 A1=1, A2=1/(1+A1), A3=1/(1+A2), A4=1/(1+A3), .(按四舍五入保存10位小数)。答案:0.7、求10,1600之间能被7整除的奇数之和。答案:909658、函数mystrlen(char *s)的功能是求字符串s的长度。请填空。Int mystrlen(char *s)int num=0;while( ) _;return ( );9、100,500之间同时满足除以7余5,除以5余3,除以3余1的整数之和。答案:104210、求100,999之间所有的素数的个数。答
4、案:14311、编写程序,求满足下列条件的所有四位数ABCD的个数,该四位数是8的倍数,且A+B=B+C,即第1位数加上第2位数等于第2位数加上第3位数。答案:11012、 /*数列1,2,1,4,7,12,23具有这样的特性,从第四项(也就是4)开始,每一项是前三项之和,4=1+2+1,7=2+1+4,12=1+4+7.。下列程序的功能是求出该数列前10项的和。请改正程序中的错误,并运营修改后的程序,给出程序结果。(注:只有一处错误!)*/ 答案:311#include void main() long sum=0,a30=1,2,1; int k,j; for( k=3;k10;k+ )
5、ak = ak-1+ak-2+ak-3; for( j=1;j=10;j+ ) sum += aj; printf( %ldn,sum); 13、 /*求1到2023之间的双胞胎数的对数。双胞胎数:两素数差为2称为双胞胎数。例如227和229是一对双胞胎数,它们都是素数且差为2。*/ 答案:61#include int prime(int x) int k; for(k=2;kx;k+) if(_) break; if(k=x) return 1; else return 0;void main( ) int a,b,n=0; int prime(int x); for(a=2;a=1998;
6、a+) if(prime(a)=1) b=a+2; if(_) n+; printf( %d n,n);14、编写程序,记录200400之间的所有满足三个数字之积为42,三个数字之和为12的数的个数。答案:415、有30个学生一起买小吃,共花钱50元,其中每个大学生花3元,每个中学生花2元,每个小学生花1元,问大、中、小学生的人数分派共有多少种不同的解(去掉某类学生数为0的解)?答案:916、爱因斯坦走台阶:有一台阶,假如每次走两阶,最后剩一阶;假如每次走三阶,最后剩两阶;假如每次走四阶,最后剩三阶;假如每次走五阶,最后剩四阶;假如每次走六阶,最后剩五阶;假如每次走七阶,刚好走完.求满足上述条
7、件的最小台阶数是多少?答案:11917、 /*求1000以内最大的10个素数的和。*/ 答案:9664#include int prime(long n) long k; for(k=2;k=2;t-) if(_) total=total+t; num+; if(num=10)break; printf(n%ld,total);18、 /*求1!+2!+3!+.+7!,7!表达7的阶乘。*/ 答案:5913#include long jc( long x) long k,fac=1; for(k=1;_;k+) fac *=k ; _;void main( ) long n,sum=0; lo
8、ng jc(long x); for(n=1;n=7;n+) _; printf(n%ld,sum);19、求10000以内所有完数之和,完数是指:一个数假如刚好与它所有的真因子(不涉及该数自身)之和相等,如:6=1+2+3,则6就是一个完数。(注:所有变量用int数据类型定义!) 答案:865820、/*数列1,2,1,4,7,12,23具有这样的特性,从第四项(也就是4)开始,每一项是前三项之和,4=1+2+1,7=2+1+4,12=1+4+7.。下列程序先给出数列的第一项(1)、第二项(2)、第三项(1),再逐步计算其它项并保存在数组a中,最后求出该数列的第25项。请改正程序中的错误,并
9、运营修改后的程序,给出程序结果。(注:只有一处错误!)*/答案:1323525#include #include #define N 30void main() long aN; int k; clrscr(); a0 = 1; a1 = 2; a2=1; for( k=3;k=20;k+ ) ak = ak-1+ak-2+ak-3; printf( %ldn,ak-1); 21、/*求区间200,3000中所有回文数的和,回文数是正读与反读都是同样的数,如525,1551。*/ 答案:87970#include int hws(long n) long x=n,t=0,k; while(x0
10、) k=x%10; t = t*10 + k; x=x/10; if( _) return 1; else return 0;void main( ) long k,s=0; int hws(long n); for(k=200; k=2023;k+) if(_) s=s+k; printf(n%ld,s);22、/*下面的程序是求表达式的值:s=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+.+(1*2*3*.*n)/(3*5*7*.(2*n+1)请将程序补充完整,并给出当n=25时,程序的运营结果(按四舍五入保存10位小数)。*/答案:1.#include doubl
11、e fun(int n) double s=1.0, t=1.0; int k; double rtn=1.0; for(k=1;k1; f(x)=0 假如 x=0 或 x=2 ;f(x)=(x-1)/(x-2) 假如 x=a&c=A&c=0&c=9) _ else _ printf(all in all:char=%d space=%d digit=%d others=%dn,letters, space,digit,others); getch();40、打印出如下图案(菱形) * * * *41、求出2,478以内的: (1)最大的素数。 *467 (2)素数数目。 *91 (3)所有素
12、数之和。 *1958042、已知: (1)若N=10,求Y 。 *1304735 (2)若N=15,求Y。 *1.184172E+0743、已知:, 其中:X = 0.25,n = 1,2,求:(1) Y值(精确到小数点后第5位) *1.28767(2) 与(1)匹配的最小的n *744、以下程序输入三个整数值给a,b,c,程序把b中的值给a,把c中的值给b,把a中的值给c,互换后输出a、b、c的值。例如:读入后,a=10、b=20、c=30;互换后,a=20、b=30、c=10。请填空。#includestdio.hmain()int a,b,c,t; printf(Enter a,b,c:
13、); scanf(ddd, _); _;a=b;_;_; printf(a=d b=d c=dn,a,b,c);45下面fun函数的功能是从a数组中查找值为y的元素;若找到,返回该元素的下标值,若不存在值为y的元素,返回0;数列放在a数组的a1到an中,a0元素用来作为临时存储单元。请填空。fun(int a,int y,int n)int k=0; a0=y;k=n; while( ) k-; return( );46、 /*下列程序的功能是求出二阶Fibonacci数列前10之和,1,1,2,3,5,8。请改正程序中的错误,并运营修改后的程序,给出程序结果。(注:只有一处错误!3是第四项,
14、5是第五项。)*/ 答案:143#include void main() long sum=0,a30=1,1,2; int k; for( k=2;k10;k+ ) ak = ak-1+ak-2; for( k=1;k=10;k+ ) sum += ak; printf( %ldn,sum); 47、20,160之间的所有偶数的平方和。答案:69438048、求10,2023之间能被2或3或5整除的数之和。答案:6779549、求800以内的最大的20个素数之和。答案:1451050、求当n=60时下式的和:s=1+1/(1+2)+1/(1+2+3)+.+1/(1+2+3+.+n)(按四舍五
15、入保存6位小数)。答案:1.96721451、编写程序:输入x的值,按照下列公式计算cos(x)cos(x)=1-x2/2!+ x4/4!- x6/6!+. 精确到10-5。/*C11.717*/main()int i;long jc=1;float s=0;for(i=1;i=5;i+) jc=jc*i; s=s+1.0/jc; printf(%f,s); /*C3 1533459*/main()long i,c=0,t=0,g,s,b,q;for(i=1001;i=1;i-) if(i%13=0|i%17=0) c+; s+=i; if(c=10)break; printf(%d,s);
16、/*C5 6.058311*/main() long i=5; double s=1; while(1.0/i=1e-5) s=s+1.0/i; i=i+2; printf(%lf,s); /*C6 0. */main()int i;double a=1;for(i=2;i=20;i+) a=1.0/(1+a); printf(%.10lf,a); /*C7 90965*/main()long i,s=0;for(i=11;i=1600;i=i+2) if(i%7=0) s=s+i;printf(%ld,s); /*C9 1042 */main()long i,s=0;for(i=100;i=
17、500;i+) if(i%5=3&i%7=5&i%3=1) s=s+i;printf(%ld,s); /*C10 143*/main()int c=0,i,j,p;for(i=100;i=999;i+) p=1; for(j=2;ji;j+) if(i%j=0)p=0;break; if(p=1)c+; printf(%d,c); /*C11 110*/main()int c=0,i,q,b,s;for(i=1000;i=9999;i=i+8) q=i/1000; b=i/100%10; s=i/10%10; if(q+b=b+s)c+; printf(%d,c); /*C13 61*/#in
18、cludefun.cmain( )int a,b,n=0;int prime(int x); for(a=2;a=1998;a+) if(prime(a)=1&prime(a+2)=1) n+;printf(%d,n); /*C14 4*/main()int c=0,i,g,s,b;for(i=200;i=400;i+) g=i%10; s=i/10%10; b=i/100; if(g+s+b=12&g*s*b=42) c+; printf(%d,c); /*C15 9*/main()int d,z,x,c=0;for(d=1;d=17;d+) for(z=1;z=0&d*3+z*2+x=50
19、) c+; printf(%d,c); /*C16 119*/main()int tj,i,j;for(tj=1;tj=0;tj+) if(tj%2=1&tj%3=2&tj%4=3&tj%5=4&tj%6=5&tj%7=0)break;printf(%d,tj); /*C19 8658*/main()int i,s=0,w,j;for(i=1;i=10000;i+) w=0; for(j=1;ji;j+) if(i%j=0)w+=j; if(w=i)s+=i; printf(%d,s); /*C20 1323525*/main()long a25=1,2,1;int i;for(i=3;i25
20、;i+) ai=ai-1+ai-2+ai-3;printf(%ld,a24); /*C22 1.*/#define N 24main()int i,j;double s=1,s1,s2;for(i=1;i=N;i+) s1=1; s2=1; for(j=1;j=i;j+) s1*=j; s2*=(2*j+1); s+=(s1/s2); printf(%.10lf,s); /*C23 49.395*/main()int i=1;double s=0;do s+=(1+1.0/i); printf(n%0.3lf,s); i+; while(s50); /*C24 0.91*/#includema
21、in()int x=2,i,j;double jc(int i);double y=0,fz;for(i=1;i=20;i+) fz=pow(-1,i+1)*pow(x,2*i-1); y+=fz/jc(2*i-1); printf(n%d,%.0lf/%.0lf,i,fz,jc(2*i-1); printf(n%.2lf,y);double jc(int i)int j;double r=1;for(j=1;j=i;j+) r*=j;return r; /*C25 135*/#includemain()long a,b,c;int xs=0;for(c=131;c=200;c+) xs=0;
22、 for(a=1;ac;a+) b=sqrt(c*c-a*a); if(b*b+a*a=c*c) xs=1; break; if(xs=1) printf(%ld,c); break; /*C26 43*/main()int d=25;int x,y,z,max=0;for(x=1;xd;x+) for(y=1;yd;y+) for(z=1;zd;z+) if(x*x+y*y+z*z=d*d&maxx+y+z) max=x+y+z;printf(%d,max); /*C28 20*/#includemain()int a,b,c,n=0;int xs=0;for(c=1;c=50;c+) fo
23、r(a=1;ac;a+) for(b=1;ba;b+) if(b*b+a*a=c*c)n+;printf(%d,n);/*C30 */#includemain()double x1=1.0,x2;double a;scanf(%lf,&a);while(1) x1=1.0/2*(x1+a/x1); if(fabs(x2-x1)=1e-5) break; else x2=x1; printf(%lf,x1); /*C35 67.223018*/main()double f(double x),s=0;int i;for(i=-30;i1)y=(x+1)/(x-2);else if(x0)y=(x
24、-1)/(x-2);return y; /*C38 1.480392*/main()double t=1;int m;for(m=2;m=50;m+) t=t+1.0/(m*(m+1);printf(%lf,t);/*C41 467,91,19580*/#includefun.cmain()int i,c=0,s=0,max;for(i=2;i=478;i+) if(prime(i) max=i; c+; s+=i; printf(%d,%d,%d,max,c,s); /*C42 1304735*/#define N 10main()int i;double a,b,y=0;for(i=1;i
25、=N;i+) if(i%2=0) a=i/2.0;b=i*i*i; else a=i;b=i*i; y=y+(a-b)*(a-b); printf(%lf,y); /*C43 7*/#define X 0.25#includemain()double y=1,s=1.28767;int i;for(i=1;y=s;i+) y=y+(double)pow(X,i)/i;printf(%d,i);/*C46 143*/#include void main() long sum=0,a30=1,1,2; int k; for( k=2;k10;k+ ) ak= ak-1+ak-2; for( k=0
26、;k=10;k+ ) sum += ak; printf( %ldn,sum); /*C47 694380*/main()long i,s=0;for(i=20;i=160;i+=2) s=s+i*i;printf(%ld,s); /*C48 1466295*/main()long i,s=0;for(i=10;i=1;i-) if(prime(i)&c20) c+; s=s+i; printf(n%d,s); /*C50 1.967213*/#define N 60main()int i;double s;for(i=1;i=60;i+) s=s+1.0/(1+i)*i/2);printf(%lf,s); /*fun.c自定义函数判断素数*/int prime(int x) int k; for(k=2;kx;k+) if(x%k=0) break; if(k=x) return 1; else return 0;
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100