《C语言程序设计》复习题库_答案.doc

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1、计算下面公式的值。T=1/1!+1/2!+1/3!+……+1/m! 当m=5时的结果(按四舍五入保留3位小数)。(注:所有变量用float数据类型定义!)答案:1.717 #include stdio.h float jc(float x) { float jc=1,i; for(i=1;i=x;i++) jc=jc*i; return jc; } void main() { float jc(float x); float m,t=0,i; printf(Please Input:\n); scanf(%f,m); for(i=1;i=m;i++) t=t+1/jc(i); printf(t=%.3f\n,t); } 2、程序填空:用*号输出字母C的图案。 #include stdio.h #include conio.h main() { printf( ***\n);__ ??printf( *\n); printf( *\n); printf( ***\n); ??getch(); } 3、8232和9678,它们的个、十、百、千各位数字之和是15的倍数,8+2+3+2=15,9+6+7+8=30。编写程序,求四位数的所有奇数中,这样的数(各位数字之和是15的倍数)的总和。(注:所有变量用long数据类型定义!) 答案:1533459 #include stdio.h long f(long x) { long s=0; if(x%2!=0) { while(x0) { s=s+x%10; x=x/10; } if(s%15==0) return 1; else return 0; } else return 0; } void main() { long f(long x); long i,sum=0; for(i=1000;i=9999;i++) if(f(i)) sum=sum+i; printf(sum=%ld\n,sum); } 4、下面程序的功能是:计算并输出700以内的最大的10个能被13或者17整除的自然数之和。请改正程序中的错误,并运行,最后给出程序运行的正确结果。(注:只有一处错误!) 答案:6591 #include stdio.h void main() { int total=0, mc=1, k=700; //改为:int total=0,mc=0,k=700; int pm[10],count=0; while( (k=2) mc=10 ) { if ((k%13==0) || (k%17==0)) { pm[mc] = k; mc++; } k--; } for( k=1;k=10;k++ ) total += pm[k-1]; printf( %d\n,total); } 5、求x = 1+1/5+1/7+1/9+…的近似值,直到最后一项的绝对值小于10-5为止。 #include math.h #includestdio.h main( ) { int i; double x; x=1; i=5; do { x=x+1/(double)i; i=i+2; }while(fabs(1/(double)i)1e-5); printf(%.2lf\n,x); } 输出:6.058 6、计算如下公式的A20值。 A1=1, A2=1/(1+A1), A3=1/(1+A2), A4=1/(1+A3), ......(按四舍五入保留10位小数)。答案:0.6180339850 (1)可用递归: 1 n=1 F(n)= 1/(1+f(n-1)) n1 #include stdio.h double f(double n) { double a; if(n==1) a=1; else a=1.0/(1+f(n-1)); return a; } void main() { double f(double n); printf(f(20)=%.10lf\n,f(20)); } (2)不用递归: #include stdio.h void main() { double i,c,a=1,b=1,x; for(i=1;i20;i++) { c=a; a=b; b=c+b; } x=a/b; pr

文档评论(0)

enxyuio + 关注
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档