c语言程序设计复习题参考答案6.12_第1页
c语言程序设计复习题参考答案6.12_第2页
c语言程序设计复习题参考答案6.12_第3页
c语言程序设计复习题参考答案6.12_第4页
c语言程序设计复习题参考答案6.12_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言程序设计复习题库参考答案1、计算下面公式的值。T=l/l!+l/2!+l/3!+l/m!当m=5时的结果(按四舍五入保留3位小数)。(注:所有变量用float数据类型定义!)答案:1.717includemain()iiiti,m=5,p=l;floatt=0;p*=i;t+=1.0/p;2、程序填空:用韭号输出字母C的图案。#includestdio.1TincludeMcomo.hHniaiii()pmitfT*n”);pnntf(H*n”);getchQ;3x8232和9678,它们的个、十、百、千各位数字之和是15的倍数,8+2+3+2=15,9+6+7+8=30。编写程序,求四

2、位数的所有奇数中,这样的数(各位数字之和是15的倍数)的总和。(注:所有变量用long数据类型定义!)答案:1533459includemain()longi,s=O.a,b,c,d;fdr(i=lOOO;ilOOOO;i+)a=i/1000;/*位数*/b=i/100%10;/*百位数*7c=i/10%10;/*十位数*/d=i%10;/*个位数*/if(a+b-rc-rd)%l5=0)s=s+i;pnntfCs=%ldjT,s);4、严卞面程序的功能是:计算并输出700以内的最人的10个能被13或者17整除的自然数之和。请改正程序中的错误,并运行,最后给出程序运行的正确结呆。(注:只有一处

3、错误!)*/答案:6591#includevoidmain()mttotal=0,mc=0,k=700;/*mc用于表示数组的下标值,初始时表示第一个元素应为mc=0*/iiitpm10,count=0;wliile(k=2)&mc=10)if(k%13=0)|(k%17=0)pmmc=k;mc+;k-Sfoi(k=l;k=10;k+)total+=pmk-l;pnntf(M%dn”,total);5、求x二1+1/5+1/7+1/9+的近似值,直到最后一项的绝对值小于105为止。include#inch】demain()doublex=l;mti;for(i=5;fabs(l.0/i)=le

4、-5;i=i+2)x+=1.0/i;6、计算如下公式的A20值。Al=l,A2=1/(1+A1)A3=l/(1+A2)A4=l/(1+A3),(按四舍五入保留10位小数)。答案:0.6180339850includemain()mti;doublea=1.0;fdr(i=2;i=20;i+)a=l/(l+a);prmtf(HA20=%.10fn,a);7、求10,1600之间能被7整除的奇数之和。答案:90965includemain()inti、s=0;fdr(i=10;i=1600;i-H-)if(i%7=0&1%2!=0)s+=i;priiitf(Hs=%dnH,s);8、函数mvsti

5、len(char*s)的功能是求字符串s的长度。请填空。mtmystrlen(chai*s)mtnum=O;wlule(*s+!=,0,)_num+_;return(num);9、100,500之间同时满足除以7余5,除以5余3,除以3余1的整数之和。答案:1012includemain()iiiti、s=0;fdr(i=100;i=500;i+)if(i%7=5&i%5=3&i%3=l)s+=i;piiiitf(ns=%dn,s);求100,999之间所有的素数的个数。答案:143includemain()mtij,n=0;fbr(i=100;i=999;i+)for(j=2ji;j+)if

6、(i%j=0)break;lf(J=l)n+=l;prmtf(nn=%dn,n);11编写程序,求满足下列条件的所有四位数ABCD的个数,该四位数是8的倍数,且A+B二B+C,即第1位数加上第2位数等于第2位数加上第3位数。答案:110#includemain()iiiti卫=(Xa,b,c;fbr(i=1000;i10000;i+)a=i/1000;b=i/100%10;c=i/10%10;if(i%8=0&(a+b)=(b+c)n+=l;printf(,n=%d*di,n);严数列1,2丄4亿12,23具有这样的特征,从第四项(也就是4)开始,每一项是前三项之和,4=1+2+1,7=2+1

7、+4,12=1+4+7下列程序的功能是求出该数列前10项的和。请改正程序中的错误,并运行修改后的程序,给出程序结果。(注:只有一处错误!)*/答案:311#includevoidmain()longsum=0,a30=1,2,1;mtkj;foi(k=3;k10;k-H-)ak=ak-l+ak-2+ak-3J;foi(j=lJ=10;j+)sum+=aj-l;/*数组a初始下标应为0,所以此处应改为aj-l*/printf(M%ldii,sum);13、严求1到2000之间的双胞胎数的对数。双胞胎数:两素数差为2称为双胞胎数。例如227和229是一对双胞胎数,它们都是素数且差为2。*/答案:6

8、1#includemtprime(intx)iiitk;fbr(k=2;kx;k+)if(x%k=0_)break;if(k=x)return1;elseretuin0;voidmain()inta,b,n=0;iiitprmie(iiitx);fbr(a=2;a=1998;a+)if(prime(a)=l)b=a+2;if(pdmMb)n+;%dirn);14、编写程序,统计200400之间的所有满足三个数字之枳为42,三个数字之和为12的数的个数。答案:4includeiiiti,abcJi=0;for(i=200;i=400;i+)a=i/100;b=i/10%10;c=i%10;if(

9、a+b+c=12&a*b*c=42)n+=l;pimtf(Hn=%dn,n);15、有30个学生一起买小吃,共花钱50元,其中每个人学生花3元,每个中学生花2元,每个小学生花1元,问人、中、小学生的人数分配共有多少种不同的解(去掉某类学生数为0的解)?答案:9#includemain()iiitij,k,n=O;fdr(i=l;i=28;i+)foi(j=lJ=28j+)for(k=l;k=28;k+)if(i-Fj+k=30&i+2*j+3*k=50)n+=l;16、爱因斯坦走台阶:有一台阶,如果每次走两阶,最后剩一阶;如果每次走三阶,最后剩两阶;如果每次走四阶,最后剩三阶;如呆每次走五阶,

10、最后剩四阶;如呆每次走六阶,最后剩五阶;如呆每次走七阶,刚好走完求满足上述条件的最小台阶数是多少?答案:119#includeiiitfdr(n=l;n+)if(n%2=l&n%3=2&n%4=3&n%5=4&n%6=5&n%7=0)break;17、严求1000以内最大的10个素数的和。*/答案:9664#includeiiitpiime(longn)longk;fbi(k=2;k=2;t-)ifipmue(t).)total=total+t;num+;if(num=10)break;printf(Mn%ld,total);/*求I汁2!+3!+7!,7!表示7的阶乘。*/答案:5913in

11、cludelongjc(longx)longk.fac=l;fdr(k=1;_Jc=x_;k+)fac*=k;代turnfac:voidmain()longn,sum=0;longjc(longx);foi(n=l;n=7;n+)sum+=jc(n)_;printf(Mn%ld,sum);19、求10000以内所有完数之和,”完数”是指:一个数如果刚好与它所有的真因子(不包扌舌该数本身)之和相等,如:6=1+2+3,则6就是一个完数。(注:所有变量用血数据类型定义!)答案:8658#iiicludeniaiii()mti,j,k,s=O;for(i=1;i=l0000;i+)for(j=l.k

12、=0;jij+)if(i%j=O)k+=j;if(k=i)s+=i;printf(,s=%dn,s);20、严数列1,2丄4,7,12,23具有这样的特征,从第四项(也就是4)开始,每一项是前三项之和,4=1+2+,7=2+1+4,12T+4+7,下列程序先给出数列的第一项(1)、第二项(2)、第三项(1),再逐步计算其它项并保存在数组a中,最后求出该数列的第25项。请改正程序中的错误,并运行修改后的程序,给出程序结果。(注:只有一处错误!)答案:1323525#include#include#defineN30voidmain()longaN;iiitk;cliscrQ;a0=1;al=2;

13、a2=l;for(k=3;k=24;k+)严应改为k=24,因为第数组卞标24即为数组的第25个元素。ak=ak-l+ak-2+ak-3;prmtf(”%ldn,ak-l);/*因for循坏结束后k值为25所以必须减1求得a24的值*/21、/*求区间200,3000中所有回文数的和,回文数是正读与反读都是一样的数,如525,1551。*/答案:87970includemthws(longn)longx=n、t=0,k;while(x0)k=x%10;t=t*10+k;x=x/10;if(t=n)leturn1;/*t=n中间有两个等号*/elseretuin0;voidmain()longk

14、.s=O;mthws(longn);fdr(k=200;k=3000;k+)if(hws(k)s=s+k;22、严下面的程序是求表达式的值:s=l+l/3+(l*2)/(3*5)+(l*2*3)/(3*5*7)+.+(l*2*3*.*n)/(3*5*7*.(2*n+l)请将程序补充完整,并给出当n=25时,程序的运行结果(按四舍五入保留10位小数)。*/答案:1.5707963267#includedoublefun(mtn)doubles=lQt=1.0;iiitk;doublertn=1.0;for(k=1;k=n;k+)t=t*k;s=s*(2*k+l);itmt/s;returnrtn

15、;voidmain()doublesum;simi=fi】ii(25);prmtf(Hii%.101fsum);23、已知:Sn二2/l+3/2+4/3+“+(n+l)/n,求Sn不超过50的最人值(按四舍五入的方式精确到小数点后第三位)。答案:49.395includemain()mti;floatsn=0;for(i=l;i+)sn+=(float)(i+l)/i;if(sn=50)sn-=(float)(i+l)/i;break;priiitf(nsn=%.3f-ii,sn);24、计算Y=X/l!-X;/3!+X八5/5!-X7/7!+前20项的值(己知:X=2)。要求:按四舍五入的方

16、式精确到小数点后第二位。答案:0.91#include#includedefineX2main()Ultij,n;doublevO.p;for(i=l,n=l;i=20;n+=2,i+)fbr(j=l,p=l;j=nj+)P*=J;y+=pow(1,i+1)*pow(X,n)/p;prmtf(ny=%.2fdry);/勺)01皿7=%2珀”,(诚)(丫*100+05)/1000);*/25、若某正整数平方等于某两个正整数平方之和,称该正整数为弦数。例:3八2+厂2二52,贝15为弦数,求131,200之间最小的弦数。答案:135includeincludeincludemain()iiiti,

17、j,k;for(i=131;i=200;i+)for(j=ljij卄)k=(mt)(sqrt(i*i-j*j);if(j*j+k*k=i*i)exit(0);26、已知X,Y,Z为三个正整数,且X2+Y2+Z2=252求X+Y+Z的最大值。答案:43includeincludemain()bitx,y,z,niax=O;for(x=l;x25;x+)fbr(v=l;y25;y-H-)z=(int)(sqit(25*25-x*x-y*y);if(x*x+y*y+z*z=25*25)&max(x+y+z)max=x+y+z;pdntfpmax=%dn”、max);27、猴吃桃:有一天小猴子摘卞了若

18、干个桃子,当即吃掉一半,还觉得不过瘾,又多吃了一个。第二天接着吃了剩下的桃子中的一半,仍不过瘾,又多吃了一个。以后每天都是吃尚存桃子的一半零一个。到第10天早上小猴子再去吃桃子时,看到只剩卞一个桃子了。问小猴子第一天共摘下了多少个桃子。答案:1534includemain()biti,n=l;for(i=9;i=l;i)n=(n+l)*2;printf(f,%dnH,n);28、求1,50之间的所有整数能构成直角三角形的三边的组数。例如:3*3+4*4=5*5,它们构成直角三角形,所以3,4,5作为一组,但4,3,5视为跟3,4,5相同的一组。答案:20#includeiiitx,y,zn=O

19、;fbr(x=1;x=48;x+)fdr(y=x;v=49;y+)fbr(z=y;z=50;z+)if(x*x+v*y=z*z)I1+;pnirfC%dn”,ii);29、15元钱换成1元、2元、5元的票面,问有多少种不同的兑换方法?输出所有的兑换方法。答案:18种includemain()iiitijXn=0;fdr(i=0;i=15;i+)for(j=0j=7j+)for(k=0;k=3;k+)if(i+2*j+5*k=15)11+;printf(”d%d%dn”,ij,k);prmtf(nn=%dii,n);30、用迭代法求x等于a开平方的正数值。迭代公式为:xa-Fl/(2*(Xn+a

20、/xn),要求直到前后两次求出的x的差的绝对值小于KT5为止。A的值从键盘输入。includeincludemain()floata,xn=l,xnl.d;scaufC%f;&a);doxnl=l/(2*(xn-ra/xn);d=xnl-xn;xn=xiil;wliile(fabs(d)=le-5);31-求最人的水仙花数,所谓水仙花数,指的是一个三位数,其各个数字的立方之和等于该数。答案:407#includemain()iiitx,a,b,cjnax=0;fbi(x=l00;x=999;x+)a=x/100;b=x/10%10;c=x%10;if(a*a*a+b*b*b+c*c*c=x)m

21、ax=x;p】iiitf(”diT:max);32、一球从100米的高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹多高?答案:299.6093750.097656includemain()floats=l00,11=50;mti;for(i=2;i=10;i+)s+2*h;h/=2;prmtf(Hs=%fh=%fn”,s,h);编写程序,完成如卞功能,输入8个fist类型的实数,分别求最人值和最小值,保留三位小数输出最大值和最小值。#includeniaiii()floata8aiiaxjiiiii;mti;for(i=0;i8;i+)ni

22、ax=inin=a0;fdr(i=l;i8;i+)if(niaxai)niiii=ai;编写程序输出如下字符图形:*includemain()intij;for(j=ljv=ij+)pnntf(”);pnntffE);计算:s=f(-30)+f(-29)+f(-l)+f(O)+f(l)+f(30)的值。其中函数定义如下:f(x)=(x+l)/(x-2)如果xl;f(x)=0如果x=0或x二2:f(x)=(x-l)/(x-2)如果x0o(按四舍五入保留6位小数)答案:65.223018题目给定条件不完整,无法得出正确结果。includemain()iiitx;floatfx,s=0;fbr(x=

23、-30;xl)fx=0;if(x0|x=l)fx=(float)(x+1)/(x-2);s+=fx;pnntfC%6fiT,s);36、编写程序输出如下字符图形(最后一行19颗星):includemain()mtij,k;fbi(i=3;i=19;i+=2)for(j=lj=(19-i)/2;j+)pnntf(H”);fbr(k=l;k=i;k+)pnntf(n*H);pnntfTn”);37、企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高

24、于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润L求应发放奖金总数?#iiicludemain()longi;floatb,bl.b2.b4.b6,bl0;iiitc;bl=100000*0.1;b2=bl+100000*0.075;b4=b2+200000*0.05;b6=b4+200000*0.03;bl0=b6+400000*0.015;scanf(”cT;&i);c=i/l00000;if(c10)c=10;switch(c)

25、case0:b=i*0.1;break;case1:b=b1+(i-100000)*0.075;break;case2:case3:b=b2+(i-200000)*0.05;break;case4:case5:b=b4+(i-400000)*0.03;break;case6.case7:case8:case9:b=b6+(i-600000)*0.015;break;case10:b=b10+(i-1000000)*0.01;break;pnntfC%fiT;b);38、计算下面公式的值。T=l+l/(2*3)+l/(3*4)+l/(m*(m+l),当m=50时的结果(按四舍五入保留6位小数)。

26、(注:所有变量用double数据类型定义!)答案:1.480392#iiiclude#defiiieM50main()doublet=1.0;iiiti;for(i=2;i=A&c=O&c=9)d垠it+:elseothers卄;printf(nallina止chai=%dspace=%ddigit=%dothers=%dnH,letters,space.digit,others);getchQ;40、打印出如卜图案(菱形)*TwTw*#includemain()mtLj,k;fdr(i=l;i=7;i+=2)for(j=lj=(7-i)/2;j+)pnntf(”);for(k=l;k=l;i

27、-=2)for(j=lj=(7-i)/2;j+)pnntf(”);for(k=l;k=i;k+)prmtf(nnn);41、求出2,478以内的:最人的素数。*467素数数目。所有素数之和。*19580#includeiiiti,jjnax=O.c=O,s=O;for(i=2;i=478;i+)for(j=2jij卄)if(i%j=O)break;珂=1)max=i;C+;s+=i;pdntfpmax=%dc=%ds=%d,n,max,c,s);42、已知:jVi=l若210,求Yo(2)若N=15,求Y。i(,为奇数):jQ为偶数)*1301735*1.184172E+070为奇数)(i为偶

28、数)#include#defineN10main()longi,y=0.a,b;fbr(i=l;i已知:ul+X+-+其中:J=0.25,=1,2,求:Y值(精确到小数点后第5位)*1.28767与(1)匹配的最小的11*7iiicludeiiicludeniaiii()iiitn=l;doubley=l,m=l,x=0.25;wliile(fobs(m)=le-5)m=pow(x,n)/n;v+=m;n+;prmtf(y=%.5fn=%dn”,y-m,n-1);/*最终求和结果减去最后一项的值才能与结果一致*/44、以下程序输入三个整数值给a,b,c,程序把b中的值给a,把c中的值给b,把a中的值给c,交换后输出a、b、c的值。例女山读入后,3=10、b=20、c=30;交换后,a=20、b=30.c=10。请填空。#iiicludemain()inta.b.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论