C語(yǔ)言程序設(shè)計(jì)教程李鳳霞第三版課后答案_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)教程李鳳霞第三版課后答案_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)教程李鳳霞第三版課后答案_第3頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1. 1【C語(yǔ)言】C語(yǔ)言程序設(shè)計(jì)教程(第二版)習(xí)題答案說(shuō)明本文所指的C語(yǔ)言程序設(shè)計(jì)教程(第二版)是李鳳霞主編、北京理工大學(xué)出版社出版的,綠皮。2第1章程序設(shè)計(jì)基礎(chǔ)知識(shí)一、單項(xiàng)選擇題(第23頁(yè))1-4.CBBC5-8.DACA二、填空題(第24頁(yè))判斷條件2.面向過(guò)程編程3.結(jié)構(gòu)化4.程序5.面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言7.有窮性8.直到型循環(huán)9.算法10.可讀性11.模塊化12.對(duì)問(wèn)題的分析和模塊的劃分三、應(yīng)用題(第24頁(yè))1. 源程序:main()(inti,j,k;/*i:公雞數(shù),j:母雞數(shù),k:小雞數(shù)的1/3*/printf("cockhenchickn");for(i=1

2、;i<=20;i+)for(j=1;j<=33;j+)for(k=1;k<=33;k+)if(i+j+k*3=100&&i*5+j*3+k=100)printf("%d%d%dn",i,j,k*3);執(zhí)行結(jié)果:2. cockhenchick418788118112484現(xiàn)計(jì)算斐波那契數(shù)列的前20項(xiàng)。遞推法源程序:main()longa,b;inti;a=b=1;for(i=1;i<=10;i+)/*要計(jì)算前30項(xiàng),把10改為15。*/printf("%8ld%8ld”,a,b);a=a+b;b=b+a;遞歸法源程序:main

3、()inti;for(i=0;i<=19;i+)printf("%8d",fib(i);fib(inti)return(i<=1?1:fib(i-1)+fib(i-2);執(zhí)行結(jié)果:3. 11235813213455891442333776109871597258441816765源程序:#include"math.h"main()doublex,x0,deltax;x=1.5;dox0=pow(x+1,1./3);deltax=fabs(x0-x);x=x0;while(deltax>1e-12);printf("%.10fn

4、",x);執(zhí)行結(jié)果:4. 1.3247179572源程序略。(分子、分母均構(gòu)成斐波那契數(shù)列)結(jié)果是32.66026079864源程序:main()inta,b,c,m;printf("Pleaseinputa,bandc:");scanf(wd汶d汶crQOaQObQOc)*一f(aAb)3na用一f(aAC)3na用coHmp一f(bAC)3H9bHCoHmpprm_f(wd汶d汶d-rraboE1圭汨-p-easempufaaandc-_k23456789789456_k237.W部ma-n()Ma*scanfcwcrQOa)*prm_f(awN#02=Yes

5、,=NO=)01圭汨-42Yes1#-一、單項(xiàng)選擇題(第34頁(yè))1-4.BDCB5-8.AABC二、填空題(第35頁(yè))主2.C編譯系統(tǒng)3.函數(shù)函數(shù)4.輸入輸出5.頭6.OBJ7.庫(kù)函數(shù)8.文本三、應(yīng)用題(第36頁(yè))5.sizeof是關(guān)鍵字,stru、_aoto、file、m_i_n、hello、ABC、SIN90、x1234、until、cos2x、s_3是標(biāo)識(shí)符。8.源程序:main()inta,b,c;scanf("%d%d",&a,&b);c=a;a=b;b=c;printf("%d%d”,a,b);執(zhí)行結(jié)果:1. 123434124第3章數(shù)

6、據(jù)類型與運(yùn)算規(guī)則一、單項(xiàng)選擇題(第75頁(yè))1-5.DBACC6-10.DBDBC11-15.ADCCC16-20.CBCCD21-25.ADDBC26-27.AB二、填空題(第77頁(yè))補(bǔ)碼2.士(10白30810八308)3.int(整數(shù))4.單目白右相左5.函數(shù)調(diào)用6.a或b7.18.65,89三、應(yīng)用題(第78頁(yè))1.109執(zhí)行結(jié)果:1. 11001215第4章順序結(jié)構(gòu)程序設(shè)計(jì)一、單項(xiàng)選擇題(第90頁(yè))1-5.DCDAD6-10.BACBB二、填空題(第91頁(yè))1.一;2.5.1690003.(1)-2002500(2)I=-200,j=2500(3)i=-200j=25004.a=98,

7、b=765.000000,c=4321.0000005.略6.0,0,37.38.scanf("%lf%lf%lf",&a,&b,&c);9.1313.000000,13.00000010.a=aAc;c=cAa;a=aAc;(這種算法不破壞b的值,也不用定義中間變量。)三、編程題(第92頁(yè))仿照教材第27頁(yè)例2-1。2. 源程序:main()(inth,m;scanf("%d:%d",&h,&m);printf("%dn”,h*60+m);執(zhí)行結(jié)果:3. 9:23563源程序:main()(inta=(

8、-10,0,15,34,i;for(i=0;i<=3;i+)printf("%d370C=%g370Ft",ai,ai*1.8+32);執(zhí)行結(jié)果:4. -10C=14F0C=32F15C=59F34C=93.2F源程序:main()(doublepi=3.14159265358979,r=5;printf("r=%lgA=%.10lfS=%.10lfn”,r,2*pi*r,pi*pi*r);執(zhí)行結(jié)果:5. r=5A=31.4159265359S=49.3480220054源程序:#include"math.h"main()(doublea

9、,b,c;scanf("%lf%lf%lf",&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a)(doubles=(a+b+c)/2;printf("SS=%.10lfn",sqrt(s*(s-a)*(s-b)*(s-c);elseprintf("Dataerror!");執(zhí)行結(jié)果:6. 56SS=9.9215674165源程序:7. main()(inta=3,b=4,c=5;floatd=1.2,e=2.23,f=-43.56;printf(

10、"a=%3d,b=%-4d,c=*%dnd=%gne=%6.2fnf=%-10.4f*n",a,b,c,d,e,f);源程序:main()inta,b,c,m;scanf("%d%d%d”,&a,&b,&c);m=a;a=b;b=c;c=m;printf("%d%d%dn",a,b,c);執(zhí)行結(jié)果:8. 6775源程序:main()inta,b,c;scanf("%d%d%d",&a,&b,&c);printf("averageof%d,%dand%dis%.2fn”

11、,a,b,c,(a+b+c)/3.);執(zhí)行結(jié)果:9. 679averageof6,7and9is7.33不能。修改后的源程序如下:main()inta,b,c,x,y;scanf("%d%d%d",&a,&b,&c);x=a*b;y=x*c;printf("a=%d,b=%d,c=%dn",a,b,c);printf("x=%d,y=%dn",x,y);6第5章選擇結(jié)構(gòu)程序設(shè)計(jì)一、單項(xiàng)選擇題(第113頁(yè))1-4.DCBB5-8.DABD二、填空題(第115頁(yè))1.非002.k=03.if(abs(x)>4

12、)printf("%d”,x);elseprintf("error!”);4.if(x>=1&&x<=10|x>=200&&x<=210)&&x&1)printf("%d",x);k=1(原題最后一行漏了個(gè)d,如果認(rèn)為原題正確,則輸出k=%。)8!Right!117.$a=08.a=2,b=1三、編程題(第116頁(yè))1.有錯(cuò)。正確的程序如下:main()墨后->><-UD()u一BE汶-wu'szdr+XH>(obvx0303gHAX)M一-v

13、xnmgvxoaoaOHAM一xnmovxoaoaglAM一-(XO3-P汶-mueos->><-UD()u一BEwi安OHxob汶5-p汶-WUE務(wù))£奇叫-PM-msos66UO-PCDU6一Sun)()u一BE(奇oZOA&qoSAqzqA5-5p汶Hu一E-wu'szdiy叫qoaCTf叫-ppp汶-muraosodCTf-UD(3) scanf("%d”,&x);if(x<10)if(x>-5)if(x>=0)if(x>=5)y=x+1;elsey=x-1;elsey=x;printf("

14、%dn",y);源程序:(4) main()intx,y;scanf("%d",&x);if(x<10)if(x>=5)y=x+1;elseif(x>=0)y=x-1;elseif(x>-5)y=x;printf("%dn",y);源程序:main()intx,y;scanf("%d",&x);switch(x/5)case-1:if(x!=-5)y=x;break;case0:y=x-1;break;case1:y=x+1;printf("%dn",y);本題為了

15、避免考慮每月的天數(shù)及閏年等問(wèn)題,故采用面向?qū)ο蟮某绦蛟O(shè)計(jì)?,F(xiàn)給出Delphi源程序和C+Builder源程序。Delphi源程序:procedureTForm1.Button1Click(Sender:TObject);beginedit3.Text:=format('%.0f天',strtodate(edit2.text)-strtodate(edit1.text);end;procedureTForm1.FormCreate(Sender:TObject);beginEdit2.Text:=datetostr(now);button1click(form1)end;C+Bu

16、ilder源程序:4. void_fastcallTForm1:Button1Click(TObject*Sender)Edit3->Text=IntToStr(StrToDate(Edit2->Text)-StrToDate(Edit1->Text)+"天"void_fastcallTForm1:FormCreate(TObject*Sender)Edit2->Text=DateToStr(Now();ButtonlClick(Forml);執(zhí)行結(jié)果:(運(yùn)行于Windows下)main()unsigneda,b,c;printf("請(qǐng)輸入

17、三個(gè)整數(shù):");scanf("%d%d%d”,&a,&b,&c);if(a&&b&&c&&a=b&&a=c)printf("構(gòu)成等邊三角形n");elseif(a+b>c&&a+c>b&&b+c>a)if(a=b|a=c|b=c)printf("構(gòu)成等腰三角形n");elseprintf("構(gòu)成一般三角形n");elseprintf("不能構(gòu)成三角形n");執(zhí)

18、行結(jié)果:5. 請(qǐng)輸入三個(gè)整數(shù):565構(gòu)成等腰三角形源程序:6. main()intx,y;scanf("%d”,&x);if(x<20)y=1;elseswitch(x/60)(case0:y=x/10;break;default:y=6;printf("x=%d,y=%dn”,x,y);源程序:main()(unsignedm;floatn;scanf("%d",&m);if(m<100)n=0;elseif(m>600)n=0.06;elsen=(m/100+0.5)/100;printf("%d%.2f%

19、.2fn”,m,m*(1-n),m*n);執(zhí)行結(jié)果:450450429.7520.252171天(起始日期和終止日期均算在內(nèi))本題可利用第4小題編好的程序進(jìn)行計(jì)算。把起始日期和終止日期分別打入“生日”和“今日”欄內(nèi),單擊“實(shí)足年齡”按鈕,將所得到的天數(shù)再加上1天即可。源程序:#include"math.h"main()(unsignedlongi;scanf("%ld",&i);printf("%ld%dn",i%10,(int)log10(i)+1);執(zhí)行結(jié)果:7. 9988775源程序:main()(unsignedlon

20、gi;unsignedj10,m=0;scanf("%ld",&i);for(;i;)(jm+=(i+2)%10;i/=10;for(;m;m-)i=i*10+jm-1;printf("%ldn",i);執(zhí)行結(jié)果:69878109(注:要加密的數(shù)值不能是0或以0開頭。如果要以0開頭需用字符串而不能是整數(shù)。)7第6章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)1. 一、單項(xiàng)選擇題(第142頁(yè))1-4.BCCB5-8.CBCA二、填空題(第143頁(yè))原題可能有誤。如無(wú)誤,是死循環(huán)2.原題有誤。如果把b=1后面的逗號(hào)改為分號(hào),則結(jié)果是8。.4000006.*

21、#*#*#$7.8528.d=1.0+kk<=n9.x>=0x<amin三、編程題(第145頁(yè))源程序:main()inti=1,sum=i;while(i<101)sum+=i=-i-2;sum+=i=-i+2;printf("%dn",sum);執(zhí)行結(jié)果:2. 51源程序:main()doublep=0,n=0,f;inti;for(i=1;i<=10;i+)scanf("%lf",&f);墨后06催wi安5-5P溟-wu'szd(omuEobv。)(P-)AU一doobv。)OOCH汶8*。2(+-qv

22、M")£OOCH汶仰。SO3O5史-PMPM-muraos._ocqCT56UO-PCDU6一Sun)()u一BE歸馳w.寸NSWloCD9孚捋wic(-u-qcAMdsHxob汶5=d汶-MUEGr。奇叫-PM-msosh5PCDU6一Sun)()u一BE歸馳w.s安u+crud-uw汶fMm-mue(Tr+u(Ds_(Dir+doA)M一ng槃(1) 009略原題提供的計(jì)算e的公式有誤(前面漏了一項(xiàng)1)。正確的公式是e=1+1+1/2!+1/3!+1/n!+源程序:main()(doublee=1,f=1;intn;for(n=1;n<=20;n+)(f/=n;e

23、+=f;printf("e=%.14lfn",e);執(zhí)行結(jié)果:(2) e=2.71828182845905源程序:main()(doublee=1,f=1;intn;for(n=1;f>1e-4;n+)(f/=n;e+=f;printf("e=%.4fn",e);執(zhí)行結(jié)果:5. e=2.7183源程序:main()(unsignedlonga=0,b=1,c=0;inti,d;scanf("%d”,&d);for(i=1;i<=(d+2)/3;i+)printf("%10ld%10ld%10ld”,a,b,(a+=

24、b+c,b+=c+a,c+=a+b);本題還可以用遞歸算法(效率很低),源程序如下:unsignedlongfun(inti)returni<=3?i:fun(i-1)+fun(i-2)+fun(i-3);main()inti,d;scanf("%d”,&d);for(i=1;i<=d;i+)printf("%10ld",fun(i);執(zhí)行結(jié)果:6. 1523611203768125230423778143126324841源程序:main()inti;for(i=1010;i<=9876;i+=2)if(i/100%11&&am

25、p;i%100%11&&i/10%100%11&&i/1000!=i%10&&i/1000!=i/10%10&&i/100%10!=i%10)printf("%d",i);執(zhí)行結(jié)果:7. 10241026102810321034103698749876源程序:main()(inti,j,k;printf("applewatermelonpearn");for(i=1;i<=100;i+)for(j=1;j<=10;j+)if(k=100-i-j)*2=400-i*4-j*40)p

26、rintf("%4d%7d%9dn",i,j,k);執(zhí)行結(jié)果:8. applewatermelonpear559024472433546223681118源程序:#include"stdio.h"#defineN4/*N為階數(shù),可以改為其他正整數(shù)*/main()(intm=N*2,i,j;for(i=1;i<m;printf("n"),i+)for(j=1;j<m;putchar(N-abs(i-N)<=abs(j+-N)?'':'*');如果把N值改為5,則執(zhí)行結(jié)果如下:*作者:寧西

27、貫通2006-5-723:41回復(fù)此發(fā)言8說(shuō)明注意:上面最后一題的輸出結(jié)果應(yīng)該是由星號(hào)組成的一個(gè)菱形,9第7章數(shù)組一、單項(xiàng)選擇題(第192頁(yè))1-4.BBCC5-8.AABA二、填空題(第194頁(yè))1.12481632641282561. 512aage+i=18;i<26breaki=8ai>bji<3j<5bj=aj0bj<ajk6.ak+=aj三、編程題(第196頁(yè))源程序:main()(inta44,i,j,s=0;for(i=0;i<4;i+)for(j=0;j<4;j+)scanf("%d",&aij);for(

28、i=0;i<4;i+)for(j=0;j<4;j+)if(i=j|i+j=3)s+=aij;printf("%dn",s);/*注:5x貌陣不能照此計(jì)算!*/執(zhí)行結(jié)果:2. 234567891011121314151668源程序:main()(inti,a36;a0=2;for(i=1;i<=29;i+)ai=ai-1+2;for(;i<=35;i+)ai=a(i-30)*5+2;for(i=0;i<=35;i+)printf("%dt",ai);執(zhí)行結(jié)果:3. 4681012141618202224262830323436

29、38404244464850525456586061626364656源程序:#include"stdlib.h"#include"time.h"main()inta30,i,m=0;randomize();for(i=0;i<=29;i+)ai=rand();if(m<ai)m=ai;printf("%dt”,ai);for(i=0;i<=29;i+)if(ai=m)ai=-1;printf("nn");for(i=0;i<=29;i+)if(ai)printf("%dt”,ai);pri

30、ntf("n");執(zhí)行結(jié)果:4. 206792937718589903427083495934385241322782334432499293052234059271303121612583318552297714283485122038699211394208872738162931834716414102102067929377185899034270834959343852413227823344293052234059271303121612583318552297714283485122038699211394208872738162931834716414102

31、10源程序:main()(inti,n=0,b16;scanf("%d",&i);for(;i;i>>=1)bn+=i&1;for(;n;)printf("%d",b-n);執(zhí)行結(jié)果:987610011010010100本題也可以不用數(shù)組。源程序如下:5. #include"stdio.h"main()(inti,n;scanf("%d",&i);for(n=16;n;n-)(asmROLi,1putchar(i&1|48);/*ROL是循環(huán)左移的匯編指令*/源程序:#i

32、nclude"stdlib.h"#include"time.h"#defineM5#defineN6main()intaMN,i,j,tM;randomize();/*生成M行N列隨機(jī)數(shù)*/for(i=0;i<M;printf("n"),ti+=0)for(j=0;j<N;j+)printf("%4d”,aij=random(50);/*找出每行的最小數(shù),tM是第M行的最小數(shù)所在的列數(shù)*/for(i=0;i<M;i+)for(j=0;j<N;j+)if(aiti>aij)ti=j;/*比較每個(gè)最

33、小數(shù)在其所在的列上是否也是最小*/for(j=0;j<M;j+)for(i=0;i<M;i+)if(i=j)continue;if(ajtj>aitj)(tj=-1;break;printf("n");/*輸出在行和列上均為最小的數(shù)*/for(i=0;i<M;i+)if(ti!=-1)printf("a%d,%d=%dn”,i,ti,aiti);執(zhí)行結(jié)果:6. 1319132001204161635305378231563624291811528214634a0,4=0a1,2=6a3,5=1a4,0=1源程序:#include"

34、stdlib.h"#include"time.h"#defineM5#defineN7main()(intaMN,i,j,t=0;randomize();for(i=0;i<M;i+)(aiN-1=0;for(j=0;j<N-1;j+)(printf("%4d",aij=random(91)+10);aiN-1+=aij;printf("%4dn",aiN-1);for(i=1;i<M;i+)if(aiN-1>atN-1)t=i;if(t)for(j=0;j<N;j+)(i=a0j;a0j=at

35、j;atj=i;printf("n");for(i=0;i<M;printf("n"),i+)10第7章數(shù)組for(j=0;j<N;j+)printf("%4d",aij);執(zhí)行結(jié)果:7. 891732953520288394822277322231518739718446378849497772726405695056893746347849497772726405394822277322231518739718446378891732953520288695056893746347源程序:#include"s

36、tdlib.h”#include"time.h"#defineM5#defineN6main()(intaMN,i,j;structdata(intvalue,x,y;max,min;max.value=0;min.value=100;randomize();for(i=0;i<M;printf("n"),i+)for(j=0;j<N;j+)(printf("%4d",aij=random(100)+1);if(max.value<aij)(max.value=aij;max.x=i;max.y=j;if(min.v

37、alue>aij)(min.value=aij;min.x=i;min.y=j;printf("n");i=a0N-1;a0N-1=max.value;amax.xmax.y=i;i=aM-10;aM-10=min.value;amin.xmin.y=i;for(i=0;i<M;printf("n"),i+)for(j=0;j<N;j+)printf("%4d",aij);執(zhí)行結(jié)果:9. 51537465304030265066127471654587619577444927148735760327367515374

38、65309230265073612747165458761957744440714865760327367源程序:main()(chars255;inti,j,b=1;printf("Inputastring:");scanf("%s",s);i=strlen(s);for(j=1;j<=i/2;j+)b=b&&(sj-1=si-j);printf(b?"Yesn":"Non");執(zhí)行結(jié)果:10. Inputastring:levelYes源程序:main()(chars255,t,max=0

39、,min=0,l,i;printf("Inputastring(length>4):");gets(s);l=strlen(s);for(i=0;i<l;i+)(if(smax<si)max=i;if(smin>si)min=i;t=s1;s1=smax;smax=t;if(min=1)min=max;t=sl-2;sl-2=smin;smin=t;printf("%sn",s);執(zhí)行結(jié)果:11. Inputastring(length>4):C+BuilderCu+Beild+r源程序:main()(charm1310=(

40、"*”,"January”,"February”,"March”,"April","May","June","July","August","September","October","November","December"inti,j,k,a,s,n;printf("Pleaseinputaninteger(100.999):");scanf("

41、;%d”,&n);printf("%d:%d+%d+%d=%d,%d%13=%d,%sn",n,i,j,k,s,s,a,ma=(s=(i=n/100)+(j=n/10%10)+(k=n%10)%13);執(zhí)行結(jié)果:Pleaseinputaninteger(100.999):539539:5+3+9=17,17%13=4,April11第8章函數(shù)1. 一、單項(xiàng)選擇題(第241頁(yè))1-5.BCCAA6-10.CCDDD11-15.ACACB二、填空題(第243頁(yè))看不出原題的意圖。因?yàn)橐?jì)算1n的累加和,n應(yīng)是一個(gè)A1的正整數(shù)。可是題目中卻出現(xiàn)了n=0的情況。除非另加規(guī)定

42、當(dāng)n=0時(shí)1n的累加和為0,或者把原題中的計(jì)算式改為計(jì)算0n的累加和。據(jù)此猜測(cè),原題應(yīng)填為:return(0)return(n+sum(n-1)根據(jù)題意,如下程序較為合理:intsum(intn)if(n<=0)return(-1);/*-1是出錯(cuò)標(biāo)志*/elseif(n=1)return(1);2. elsereturn(n+sum(n-1);return(1)return(n*facto(n-1)三、編程題(第244頁(yè))源程序:main()(inti,a,b,c;for(i=100;i<999;i+)if(a=i/100)*a*a+(b=i/10%10)*b*b+(c=i%10)*c*

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論