《C语言学习知识程序设计》汇总题库.资料全套汇编及其规范标准答案.doc

上传人:小** 文档编号:2541208 上传时间:2020-04-19 格式:DOC 页数:20 大小:82.02KB
返回 下载 相关 举报
《C语言学习知识程序设计》汇总题库.资料全套汇编及其规范标准答案.doc_第1页
第1页 / 共20页
《C语言学习知识程序设计》汇总题库.资料全套汇编及其规范标准答案.doc_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《《C语言学习知识程序设计》汇总题库.资料全套汇编及其规范标准答案.doc》由会员分享,可在线阅读,更多相关《《C语言学习知识程序设计》汇总题库.资料全套汇编及其规范标准答案.doc(20页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

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.61803398507、求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

5、;k10;k+ ) ak = ak-1+ak-2+ak-3; for( j=1;j=10;j+ ) sum += aj; printf( %ldn,sum); 13、 /*求1到2000之间的双胞胎数的对数。双胞胎数:两素数差为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

6、=2;a=1998;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

8、,sum=0; long 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

10、; while(x0) 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=2000;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.5707

11、963267#include double 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

12、 (2)素数数目。 *91 (3)所有素数之和。 *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;

13、 printf(Enter a,b,c:); 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。请改正程序中的错误,并运行修改后的程序,给出程

14、序结果。(注:只有一处错误!3是第四项,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,2000之间能被2或3或5整除的数之和。答案:6779549、求800以内的最大的20个素数之和。答案:1451050、求当n=60时下式的和:s=1+1/(1+2)+1/(1+2+3)+

15、.+1/(1+2+3+.+n)(按四舍五入保留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)b

16、reak; printf(%d,s); /*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.6180339850 */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 *

17、/main()long i,s=0;for(i=100;i=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

18、+; printf(%d,c); /*C13 61*/#includefun.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=1

19、7;d+) for(z=1;z=0&d*3+z*2+x=50) 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()lo

20、ng a25=1,2,1;int i;for(i=3;i25;i+) ai=ai-1+ai-2+ai-3;printf(%ld,a24); /*C22 1.5707963166*/#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)

21、; i+; while(s50); /*C24 0.91*/#includemain()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

22、a,b,c;int xs=0;for(c=131;c=200;c+) xs=0; 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()in

23、t a,b,c,n=0;int xs=0;for(c=1;c=50;c+) for(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;fo

24、r(i=-30;i1)y=(x+1)/(x-2);else if(x0)y=(x-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

25、N 10main()int i;double a,b,y=0;for(i=1;i=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; f

26、or( k=2;k10;k+ ) ak= ak-1+ak-2; for( k=0;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;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com