ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:35.46KB ,
资源ID:6704480      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6704480.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c语言程序设计复习题参考答案612.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c语言程序设计复习题参考答案612.docx

1、c语言程序设计复习题参考答案612 C语言程序设计复习题库参考答案1、计算下面公式的值。T=1/1!+1/2!+1/3!+1/m! 当m=5时的结果(按四舍五入保留3位小数)。(注:所有变量用float数据类型定义!)答案:1.717#include main() int i,m=5,p=1; float t=0; for(i=1;i=m;i+) p*=i; t+=1.0/p; printf(%.3fn,t);2、程序填空:用*号输出字母C的图案。#include stdio.h#include conio.hmain()_ printf(“ *n”);_ _ printf( *n);_ pr

2、intf( *n);_ _ printf(“ *n”);_ _getch(); 3、8232和9678,它们的个、十、百、千各位数字之和是15的倍数,8+2+3+2=15,9+6+7+8=30。编写程序,求四位数的所有奇数中,这样的数(各位数字之和是15的倍数)的总和。(注:所有变量用long数据类型定义!) 答案:1533459#include main() long i,s=0,a,b,c,d; for(i=1000;i10000;i+) if(i%2!=0) a=i/1000; /*千位数*/ b=i/100%10; /*百位数*/ c=i/10%10; /*十位数*/ d=i%10;

3、/*个位数*/ if(a+b+c+d)%15=0) s=s+i; printf(s=%ldn,s);4、 /*下面程序的功能是:计算并输出700以内的最大的10个能被13或者17整除的自然数之和。请改正程序中的错误,并运行,最后给出程序运行的正确结果。(注:只有一处错误!)*/ 答案:6591#include void main() int total=0, mc=0, k=700; /*mc用于表示数组的下标值,初始时表示第一个元素应为mc=0*/ int pm10,count=0; while( (k=2) & mc=10 ) if (k%13=0) | (k%17=0) pmmc = k

4、; mc+; k-; for( k=1;k=10;k+ ) total += pmk-1; printf( %dn,total); 5、求x = 1+1/5+1/7+1/9+的近似值,直到最后一项的绝对值小于10-5为止。#include #include main() double x=1; int i; for(i=5;fabs(1.0/i)=1e-5;i=i+2) x+=1.0/i; printf(x=%fn,x);6、计算如下公式的A20值。 A1=1, A2=1/(1+A1), A3=1/(1+A2), A4=1/(1+A3), .(按四舍五入保留10位小数)。答案:0.618033

5、9850#include main() int i; double a=1.0; for(i=2;i=20;i+) a=1/(1+a); printf(A20=%.10fn,a);7、求10,1600之间能被7整除的奇数之和。答案:90965#include main() int i,s=0; for(i=10;i=1600;i+) if(i%7=0 & i%2!=0) s+=i; printf(s=%dn,s);8、函数mystrlen(char *s)的功能是求字符串s的长度。请填空。int mystrlen(char *s)int num=0;while( *s+!=0 ) _ num+

6、_;return ( num );9、100,500之间同时满足除以7余5,除以5余3,除以3余1的整数之和。答案:1042#include main() int i,s=0; for(i=100;i=500;i+) if(i%7=5 & i%5=3 & i%3=1) s+=i; printf(s=%dn,s);10、求100,999之间所有的素数的个数。答案:143#include main() int i,j,n=0; for(i=100;i=999;i+) for(j=2;ji;j+) if(i%j=0) break; if(j=i) n+=1; printf(n=%dn,n);11、编

7、写程序,求满足下列条件的所有四位数ABCD的个数,该四位数是8的倍数,且A+B=B+C,即第1位数加上第2位数等于第2位数加上第3位数。答案:110#include main() int i,n=0,a,b,c; for(i=1000;i10000;i+) a=i/1000; b=i/100%10; c=i/10%10; if(i%8=0 & (a+b)=(b+c) n+=1; printf(n=%dn,n);12、 /*数列1,2,1,4,7,12,23具有这样的特征,从第四项(也就是4)开始,每一项是前三项之和,4=1+2+1,7=2+1+4,12=1+4+7.。下列程序的功能是求出该数列

8、前10项的和。请改正程序中的错误,并运行修改后的程序,给出程序结果。(注:只有一处错误!)*/ 答案:311#include void main() long sum=0,a30=1,2,1; int k,j; for( k=3;k10;k+ ) ak = ak-1+ak-2+ak-3; for( j=1;j=10;j+ ) sum += aj-1; /* 数组a初始下标应为0,所以此处应改为aj-1 */ printf( %ldn,sum); 13、 /*求1到2000之间的双胞胎数的对数。双胞胎数:两素数差为2称为双胞胎数。例如227和229是一对双胞胎数,它们都是素数且差为2。*/ 答案

9、:61#include int prime(int x) int k; for(k=2;kx;k+) if(_x%k=0_) 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;a+) if(prime(a)=1) b=a+2; if(_prime(b)_) n+; printf( %d n,n);14、编写程序,统计200400之间的所有满足三个数字之积为42,三个数字之和为12的数的个数。答案:4#include main() int i,a,b,

10、c,n=0; for(i=200;i=400;i+) a=i/100; b=i/10%10; c=i%10; if( a+b+c=12 & a*b*c=42) n+=1; printf(n=%dn,n);15、有30个学生一起买小吃,共花钱50元,其中每个大学生花3元,每个中学生花2元,每个小学生花1元,问大、中、小学生的人数分配共有多少种不同的解(去掉某类学生数为0的解)?答案:9#include main() int i,j,k,n=0; for(i=1;i=28;i+) for(j=1;j=28;j+) for(k=1;k=28;k+) if(i+j+k=30 & i+2*j+3*k=5

11、0) n+=1; printf(n=%dn,n);16、爱因斯坦走台阶:有一台阶,如果每次走两阶,最后剩一阶;如果每次走三阶,最后剩两阶;如果每次走四阶,最后剩三阶;如果每次走五阶,最后剩四阶;如果每次走六阶,最后剩五阶;如果每次走七阶,刚好走完.求满足上述条件的最小台阶数是多少?答案:119#include main() int m,n; for(n=1;n+) if(n%2=1 & n%3=2 & n%4=3 & n%5=4 & n%6=5 & n%7=0 ) break; printf(n=%dn,n);17、 /*求1000以内最大的10个素数的和。*/ 答案:9664#include

12、 int prime(long n) long k; for(k=2;k=2;t-) if(_prime(t)_) 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=x_;k+) fac *=k ; _return fac_;void main( ) long n,sum=0; long jc(long x); for(n=1;n=7;n+) _su

13、m+=jc(n)_; printf(n%ld,sum);19、求10000以内所有完数之和,完数是指:一个数如果刚好与它所有的真因子(不包括该数本身)之和相等,如:6=1+2+3,则6就是一个完数。(注:所有变量用int数据类型定义!) 答案:8658#includemain() int i,j,k,s=0; for(i=1;i=10000;i+) for(j=1,k=0;ji;j+) if(i%j=0) k+=j; if(k=i) s+=i; printf(s=%dn,s);20、/*数列1,2,1,4,7,12,23具有这样的特征,从第四项(也就是4)开始,每一项是前三项之和,4=1+2+

14、1,7=2+1+4,12=1+4+7.。下列程序先给出数列的第一项(1)、第二项(2)、第三项(1),再逐步计算其它项并保存在数组a中,最后求出该数列的第25项。请改正程序中的错误,并运行修改后的程序,给出程序结果。(注:只有一处错误!)*/答案:1323525#include #include #define N 30void main() long aN; int k; clrscr(); a0 = 1; a1 = 2; a2=1; for( k=3;k=24;k+ ) /*应改为k=24,因为第数组下标24即为数组的第25个元素。 ak = ak-1+ak-2+ak-3; printf(

15、 %ldn,ak-1); /*因for循环结束后k值为25所以必须减1求得a24的值*/21、/*求区间200,3000中所有回文数的和,回文数是正读与反读都是一样的数,如525,1551。*/ 答案:87970#include int hws(long n) long x=n,t=0,k; while(x0) k=x%10; t = t*10 + k; x=x/10; if( t=n ) return 1; /*t=n中间有两个等号*/ else return 0;void main( ) long k,s=0; int hws(long n); for(k=200; k=3000;k+)

16、if( hws(k) ) 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.5707963267#include double fun(int n) double s=1.0, t=1.0; int k; double rtn=1.0; for(k=1;k=n; k+) t = t*k; s = s*(2*k+1); rtn+=t/s; re

17、turn rtn;void main() double sum; sum=fun(25); printf(n %.10lf,sum);23、已知:Sn=2/1+3/2+4/3+(n+1)/n, 求Sn不超过50的最大值(按四舍五入的方式精确到小数点后第三位)。答案:49.395#include main() int i; float sn=0; for(i=1;i+) sn+=(float)(i+1)/i; if(sn=50) sn-=(float)(i+1)/i; break; printf(sn=%.3fn,sn);24、计算Y=X/1!-X3/3!+X5/5!-X7/7!+前20项的值(

18、已知:X=2)。要求:按四舍五入的方式精确到小数点后第二位。答案: 0.91#include #include #define X 2main() int i,j,n; double y=0,p; for(i=1,n=1;i=20;n+=2,i+) for(j=1,p=1;j=n;j+) p*=j; y+=pow(-1,i+1)*pow(X,n)/p; printf(y=%.2fn,y); /*printf(y=%.2fn,(int)(y*100+0.5)/100.0);*/25、若某正整数平方等于某两个正整数平方之和,称该正整数为弦数。例:32+42=52,则5为弦数,求131,200之间最

19、小的弦数。答案:135#include #include #include main() int i,j,k; for(i=131;i=200;i+) for(j=1;ji;j+) k=(int)(sqrt(i*i-j*j); if(j*j+k*k=i*i) printf(i=%dn,i); exit(0); 26、已知X,Y,Z为三个正整数,且X2+Y2+Z2=252,求X+Y+Z的最大值。答案:43#include #include main() int x,y,z,max=0; for(x=1;x25;x+) for(y=1;y25;y+) z=(int)(sqrt(25*25-x*x-

20、y*y); if(x*x+y*y+z*z=25*25)&max(x+y+z) max=x+y+z; printf(max=%dn,max);27、猴吃桃:有一天小猴子摘下了若干个桃子,当即吃掉一半,还觉得不过瘾,又多吃了一个。第二天接着吃了剩下的桃子中的一半,仍不过瘾,又多吃了一个。以后每天都是吃尚存桃子的一半零一个。到第10天早上小猴子再去吃桃子时,看到只剩下一个桃子了。问小猴子第一天共摘下了多少个桃子。答案:1534#include main() int i,n=1; for(i=9;i=1;i-) n=(n+1)*2; printf(%dn,n);28、求1,50之间的所有整数能构成直角

21、三角形的三边的组数。例如:3*3+4*4=5*5,它们构成直角三角形,所以3,4,5作为一组,但4,3,5视为跟3,4,5相同的一组。答案:20#include main() int x,y,z,n=0; for(x = 1; x = 48; x +) for(y = x; y = 49; y+) for(z = y; z = 50; z+) if(x*x + y*y = z*z) n+; printf(%dn,n);29、15元钱换成1元、2元、5元的票面,问有多少种不同的兑换方法?输出所有的兑换方法。 答案: 18种#include main() int i,j,k,n=0; for(i=

22、0;i=15;i+) for(j=0;j=7;j+) for(k=0;k=3;k+) if(i+2*j+5*k=15) n+; printf(%d %d %dn,i,j,k); printf(n=%dn,n);30、用迭代法求x等于a开平方的正数值。迭代公式为:xn+1=1/(2*(xn+a/xn),要求直到前后两次求出的x的差的绝对值小于10-5为止。A的值从键盘输入。#include #include main() float a,xn=1,xn1,d; scanf(%f,&a); do xn1=1/(2*(xn+a/xn); d=xn1-xn; xn=xn1; while(fabs(d)

23、=1e-5); printf(xn=%fn,xn);31、求最大的水仙花数,所谓水仙花数,指的是一个三位数,其各个数字的立方之和等于该数。 答案:407#include main() int x,a,b,c,max=0; for(x=100;x=999;x+) a=x/100; b=x/10%10; c=x%10; if(a*a*a+b*b*b+c*c*c=x) max=x; printf(%dn,max);32、一球从100米的高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹多高? 答案: 299.609375 0.097656#inclu

24、de main() float s=100,h=50; int i; for(i=2;i=10;i+) s+=2*h; h/=2; printf(s=%f h=%fn,s,h);33、编写程序,完成如下功能,输入8个float类型的实数,分别求最大值和最小值,保留三位小数输出最大值和最小值。#include main() float a8,max,min; int i; for(i=0;i8;i+) scanf(%f,&ai); max=min=a0; for(i=1;i8;i+) if(maxai) min=ai; printf(max=%f min=%fn,max,min);34、编写程序输出如下字符图形: #include main() int i,j; for(i=11;i=1;i-) for(j=1;j1; f(x)=0 如果 x=0 或 x=2 ;f(x)=(x-1)/(x-2) 如果 x0。(按四舍五入保留6位小数) 答案:65.223018题目给定条件不完整,无法得出正确结果。#include main() int x; float fx,s=0; for(x=-30;x1) fx=0; if(x0 | x=1) fx=(float)(x+1)/(x-2); s+=fx; prin

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1