C語(yǔ)言程序設(shè)計(jì)教程李鳳霞第三版課后答案.docx
《C語(yǔ)言程序設(shè)計(jì)教程李鳳霞第三版課后答案.docx》由會(huì)員分享,可在線閱讀,更多相關(guān)《C語(yǔ)言程序設(shè)計(jì)教程李鳳霞第三版課后答案.docx(39頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1 【C語(yǔ)言】《C語(yǔ)言程序設(shè)計(jì)教程(第二版)》習(xí)題答案 說(shuō) 明 1. 本文所指的《C語(yǔ)言程序設(shè)計(jì)教程(第二版)》是李鳳霞主編、北京理工大學(xué)出版社出版的,綠皮。 2 第1章 程序設(shè)計(jì)基礎(chǔ)知識(shí) 一、單項(xiàng)選擇題(第23頁(yè)) 1-4.CBBC 5-8.DACA 二、填空題(第24頁(yè)) 1.判斷條件 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è)) 2.源程序: main() {int i,j,k; /* i:公雞數(shù),j:母雞數(shù),k:小雞數(shù)的1/3 */ printf("cock hen chick\n"); for(i=1;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 %d\n",i,j,k*3);} 執(zhí)行結(jié)果: cock hen chick 4 18 78 8 11 81 12 4 84 3.現(xiàn)計(jì)算斐波那契數(shù)列的前20項(xiàng)。 遞推法 源程序: main() {long a,b;int i; 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() {int i; for(i=0;i<=19;i++) printf("%8d",fib(i));} fib(int i) {return(i<=1?1:fib(i-1)+fib(i-2));} 執(zhí)行結(jié)果: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 4.源程序: #include "math.h"; main() {double x,x0,deltax; x=1.5; do {x0=pow(x+1,1./3); deltax=fabs(x0-x); x=x0; }while(deltax>1e-12); printf("%.10f\n",x);} 執(zhí)行結(jié)果: 1.3247179572 5.源程序略。(分子、分母均構(gòu)成斐波那契數(shù)列) 結(jié)果是32.66026079864 6.源程序: main() {int a,b,c,m; printf("Please input a,b and c:"); scanf("%d %d %d",&a,&b,&c); if(ac&&a+c>b&&b+c>a) {double s=(a+b+c)/2; printf("SS=%.10lf\n",sqrt(s*(s-a)*(s-b)*(s-c)));} else printf("Data error!");} 執(zhí)行結(jié)果: 4 5 6 SS=9.9215674165 6.源程序: main() {int a=3,b=4,c=5;float d=1.2,e=2.23,f=-43.56; printf("a=%3d,b=%-4d,c=**%d\nd=%g\ne=%6.2f\nf=%-10.4f**\n",a,b,c,d,e,f);} 7.源程序: main() {int a,b,c,m; scanf("%d %d %d",&a,&b,&c); m=a;a=b;b=c;c=m; printf("%d %d %d\n",a,b,c);} 執(zhí)行結(jié)果: 5 6 7 6 7 5 8.源程序: main() {int a,b,c; scanf("%d %d %d",&a,&b,&c); printf("average of %d,%d and %d is %.2f\n",a,b,c,(a+b+c)/3.); 執(zhí)行結(jié)果: 6 7 9 average of 6,7 and 9 is 7.33 9.不能。修改后的源程序如下: main() {int a,b,c,x,y; scanf("%d %d %d",&a,&b,&c); x=a*b;y=x*c; printf("a=%d,b=%d,c=%d\n",a,b,c); printf("x=%d,y=%d\n",x,y);} 6 第5章 選擇結(jié)構(gòu)程序設(shè)計(jì) 一、單項(xiàng)選擇題(第113頁(yè)) 1-4.DCBB 5-8.DABD 二、填空題(第115頁(yè)) 1.非0 0 2.k==0 3.if (abs(x)>4) printf("%d",x);else printf("error!"); 4.if((x>=1&&x<=10||x>=200&&x<=210)&&x&1)printf("%d",x); 5.k=1 (原題最后一行漏了個(gè)d,如果認(rèn)為原題正確,則輸出k=%。) 6. 8! Right!11 7.$$$a=0 8.a=2,b=1 三、編程題(第116頁(yè)) 1.有錯(cuò)。正確的程序如下: main() {int a,b,c; scanf("%d,%d,%d",&a,&b,&c); printf("min=%d\n",a>b?b>c?c:b:a>c?c:a);} 2.源程序: main() {unsigned long a; scanf("%ld",&a); for(;a;printf("%d",a%10),a/=10);} 執(zhí)行結(jié)果: 12345 54321 3.(1)源程序: main() {int x,y; scanf("%d",&x); if (x>-5&&x<0)y=x; if (x>=0&&x<5)y=x-1; if (x>=5&&x<10)y=x+1; printf("%d\n",y);} (2)源程序: main() {int x,y; scanf("%d",&x); if(x<10) if(x>-5) if(x>=0) if(x>=5)y=x+1; else y=x-1; else y=x; printf("%d\n",y);} (3)源程序: main() {int x,y; scanf("%d",&x); if(x<10) if(x>=5)y=x+1; else if(x>=0)y=x-1; else if(x>-5)y=x; printf("%d\n",y);} (4)源程序: main() {int x,y; scanf("%d",&x); switch(x/5) {case -1:if(x!=-5)y=x;break; case 0:y=x-1;break; case 1:y=x+1;} printf("%d\n",y);} 4.本題為了避免考慮每月的天數(shù)及閏年等問(wèn)題,故采用面向?qū)ο蟮某绦蛟O(shè)計(jì)。 現(xiàn)給出Delphi源程序和C++ Builder源程序。 Delphi源程序: procedure TForm1.Button1Click(Sender: TObject); begin edit3.Text:=format(%.0f天,[strtodate(edit2.text) -strtodate(edit1.text)]); end; procedure TForm1.FormCreate(Sender: TObject); begin Edit2.Text:=datetostr(now); button1click(form1) end; C++ Builder源程序: void __fastcall TForm1::Button1Click(TObject *Sender) { Edit3->Text=IntToStr(StrToDate(Edit2->Text)-StrToDate(Edit1->Text))+"天"; } void __fastcall TForm1::FormCreate(TObject *Sender) { Edit2->Text=DateToStr(Now()); Button1Click(Form1); } 執(zhí)行結(jié)果:(運(yùn)行于Windows下)http://img378.photo.163.com/nxgt/41463572/1219713927.jpg 5.源程序: main() {unsigned a,b,c; printf("請(qǐng)輸入三個(gè)整數(shù):"); scanf("%d %d %d",&a,&b,&c); if(a&&b&&c&&a==b&&a==c)printf("構(gòu)成等邊三角形\n"); else if(a+b>c&&a+c>b&&b+c>a) if(a==b||a==c||b==c)printf("構(gòu)成等腰三角形\n"); else printf("構(gòu)成一般三角形\n"); else printf("不能構(gòu)成三角形\n");} 執(zhí)行結(jié)果: 請(qǐng)輸入三個(gè)整數(shù):5 6 5 構(gòu)成等腰三角形 6.源程序: main() {int x,y; scanf("%d",&x); if(x<20)y=1; else switch(x/60) {case 0:y=x/10;break; default:y=6;} printf("x=%d,y=%d\n",x,y);} 7.源程序: main() {unsigned m;float n; scanf("%d",&m); if(m<100)n=0; else if(m>600)n=0.06; else n=(m/100+0.5)/100; printf("%d %.2f %.2f\n",m,m*(1-n),m*n);} 執(zhí)行結(jié)果: 450 450 429.75 20.25 8. 2171天(起始日期和終止日期均算在內(nèi)) 本題可利用第4小題編好的程序進(jìn)行計(jì)算。把起始日期和終止日期分別打入“生日”和“今日”欄內(nèi),單擊“實(shí)足年齡”按鈕,將所得到的天數(shù)再加上1天即可。 9.源程序: #include "math.h"; main() {unsigned long i; scanf("%ld",&i); printf("%ld %d\n",i%10,(int)log10(i)+1);} 執(zhí)行結(jié)果: 99887 7 5 10.源程序: main() {unsigned long i;unsigned j[10],m=0; scanf("%ld",&i); for(;i;){j[m++]=(i+2)%10;i/=10;} for(;m;m--)i=i*10+j[m-1]; printf("%ld\n",i);} 執(zhí)行結(jié)果: 6987 8109 (注:要加密的數(shù)值不能是0或以0開頭。如果要以0開頭需用字符串而不能是整數(shù)。) 7 第6章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 一、單項(xiàng)選擇題(第142頁(yè)) 1-4.BCCB 5-8.CBCA 二、填空題(第143頁(yè)) 1.原題可能有誤。如無(wú)誤,是死循環(huán) 2.原題有誤。如果把b=1后面的逗號(hào)改為分號(hào),則結(jié)果是8。 3.20 4.11 5. 2.400000 6.*#*#*#$ 7.8 5 2 8.①d=1.0 ②++k ③k<=n 9.①x>=0 ②xmax ④*q
下載文檔到電腦,查找使用更方便
9.9
積分
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
下載
鏈接地址:http://weibangfood.com.cn/p-9581431.html