




免費預覽已結束,剩余15頁可下載查看
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
C語言程序設計教程(第二版)習題答案說 明1. 本習題答案是我自己做的,錯誤和疏漏在所難免。編程題全部調試通過,但選擇題和填空題不敢保證全對。2. 凡未指明解題所用的程序設計語言的,均指C語言。3. 凡未指明執(zhí)行程序所需的操作系統(tǒng)的,均可在DOS下執(zhí)行。4. 本文中文字下面劃線的表示輸入。第1章 程序設計基礎知識一、單項選擇題(第23頁)1-4.CBBC 5-8.DACA二、填空題(第24頁)1.判斷條件 2.面向過程編程 3.結構化 4.程序 5.面向對象的程序設計語言 7.有窮性 8.直到型循環(huán) 9.算法 10.可讀性 11.模塊化 12.對問題的分析和模塊的劃分三、應用題(第24頁) 2.源程序:main()int i,j,k; /* i:公雞數,j:母雞數,k:小雞數的1/3 */printf(cock hen chick);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,i,j,k*3);執(zhí)行結果:cock hen chick 4 18 78 8 11 81 12 4 84 3.現計算斐波那契數列的前20項。 遞推法 源程序:main()long a,b;int i;a=b=1;for(i=1;i=10;i+) /*要計算前30項,把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(i1e-12);printf(%.10f,x);執(zhí)行結果:1.3247179572 5.源程序略。(分子、分母均構成斐波那契數列)結果是32.660260798646.源程序:main()int a,b,c,m;printf(Please input a,b and c:);scanf(%d %d %d,&a,&b,&c);if(ab)m=a;a=b;b=m;if(ac)m=a;a=c;c=m;if(bc)m=b;b=c;c=m;printf(%d %d %d,a,b,c);執(zhí)行結果:Please input a,b and c:123 456 789789 456 1237.源程序:main()int a;scanf(%d,&a);printf(a%21=0?Yes:No);執(zhí)行結果:42Yes第2章 C語言概述一、單項選擇題(第34頁)1-4.BDCB 5-8.AABC二、填空題(第35頁)1.主 2.C編譯系統(tǒng) 3.函數 函數 4.輸入輸出 5.頭 6. .OBJ 7.庫函數 8.文本三、應用題(第36頁)5.sizeof是關鍵字,stru、_aoto、file、m_i_n、hello、ABC、SIN90、x1234、until、cos2x、s_3是標識符。 8.源程序:main()int a,b,c;scanf(%d %d,&a,&b);c=a;a=b;b=c;printf(%d %d,a,b);執(zhí)行結果:12 3434 12第3章 數據類型與運算規(guī)則一、單項選擇題(第75頁) 1-5.DBACC 6-10.DBDBC 11-15.ADCCC 16-20.CBCCD 21-25.ADDBC 26-27.AB二、填空題(第77頁) 1.補碼 2.(10-30810308) 3.int(整數) 4.單目 自右相左 5.函數調用 6.a或b 7.1 8.65,89三、應用題(第78頁)1.10 92.執(zhí)行結果:1100121第4章 順序結構程序設計一、單項選擇題(第90頁)1-5.DCDAD 6-10.BACBB二、填空題(第91頁)1.一 ;2. 5.169000 3.(1)-2002500 (2)I=-200,j=2500 (3)i=-200j=2500 4.a=98,b=765.000000,c=4321.000000 5.略 6.0,0,3 7.3 8.scanf(%lf%lf%lf,&a,&b,&c); 9. 13 13.000000,13.000000 10.a=ac;c=ca;a=ac;(這種算法不破壞b的值,也不再定義中間變量。)三、編程題(第92頁)1.仿照教材第27頁例2-1。2.源程序:main()int h,m;scanf(%d:%d,&h,&m);printf(%d,h*60+m);執(zhí)行結果:9:235633.源程序:main()int a=-10,0,15,34,i;for(i=0;ic&a+cb&b+ca) double s=(a+b+c)/2; printf(SS=%.10lf,sqrt(s*(s-a)*(s-b)*(s-c);else printf(Data error!);執(zhí)行結果:4 5 6SS=9.92156741656.源程序:main()int a=3,b=4,c=5;float d=1.2,e=2.23,f=-43.56;printf(a=%3d,b=%-4d,c=*%dd=%ge=%6.2ff=%-10.4f*,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,a,b,c);執(zhí)行結果:5 6 76 7 58.源程序:main()int a,b,c;scanf(%d %d %d,&a,&b,&c);printf(average of %d,%d and %d is %.2f,a,b,c,(a+b+c)/3.);執(zhí)行結果:6 7 9average of 6,7 and 9 is 7.339.不能。修改后的源程序如下: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,a,b,c);printf(x=%d,y=%d,x,y); 第5章 選擇結構程序設計一、單項選擇題(第113頁)1-4.DCBB 5-8.DABD二、填空題(第115頁)1.非0 0 2.k=03.if (abs(x)4) printf(%d,x);else printf(error!);4.if(x=1&x=200&xb?bc?c:b:ac?c:a);2.源程序:main()unsigned long a;scanf(%ld,&a);for(;a;printf(%d,a%10),a/=10);執(zhí)行結果:12345543213.(1)源程序:main()int x,y;scanf(%d,&x);if (x-5&x=0&x=5&x10)y=x+1;printf(%d,y);(2)源程序:main()int x,y;scanf(%d,&x);if(x-5) if(x=0) if(x=5)y=x+1; else y=x-1; else y=x;printf(%d,y);(3)源程序:main()int x,y;scanf(%d,&x);if(x=5)y=x+1; else if(x=0)y=x-1; else if(x-5)y=x;printf(%d,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,y);4.本題為了避免考慮每月的天數及閏年等問題,故采用面向對象的程序設計?,F給出Delphi源程序和C+ Builder源程序。Delphi源程序:procedure TForm1.Button1Click(Sender: TObject);beginedit3.Text:=format(%.0f天,strtodate(edit2.text) -strtodate(edit1.text);end;procedure TForm1.FormCreate(Sender: TObject);beginEdit2.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í)行結果:(運行于Windows下) 5.源程序:main()unsigned a,b,c;printf(請輸入三個整數:);scanf(%d %d %d,&a,&b,&c);if(a&b&c&a=b&a=c)printf(構成等邊三角形); else if(a+bc&a+cb&b+ca) if(a=b|a=c|b=c)printf(構成等腰三角形); else printf(構成一般三角形); else printf(不能構成三角形);執(zhí)行結果:請輸入三個整數:5 6 5構成等腰三角形6.源程序:main()int x,y;scanf(%d,&x);if(x20)y=1;else switch(x/60)case 0:y=x/10;break; default:y=6;printf(x=%d,y=%d,x,y);7.源程序:main()unsigned m;float n;scanf(%d,&m);if(m600)n=0.06; else n=(m/100+0.5)/100;printf(%d %.2f %.2f,m,m*(1-n),m*n);執(zhí)行結果: 450450 429.75 20.258. 2171天(起始日期和終止日期均算在內) 本題可利用第4小題編好的程序進行計算。把起始日期和終止日期分別打入“生日”和“今日”欄內,單擊“實足年齡”按鈕,將所得到的天數再加上1天即可。9.源程序:#include math.h;main()unsigned long i;scanf(%ld,&i);printf(%ld %d,i%10,(int)log10(i)+1);執(zhí)行結果:998877 510.源程序:main()unsigned long i;unsigned j10,m=0;scanf(%ld,&i);for(;i;)jm+=(i+2)%10;i/=10;for(;m;m-)i=i*10+jm-1;printf(%ld,i);執(zhí)行結果: 6987 8109(注:要加密的數值不能是0或以0開頭)第6章 循環(huán)結構程序設計一、單項選擇題(第142頁)1-4.BCCB 5-8.CBCA二、填空題(第143頁)1.原題可能有誤。如無誤,是死循環(huán) 2.原題有誤。如果把b=1后面的逗號改為分號,則結果是8。 3.20 4.11 5. 2.400000 6.*#*#*#$ 7.8 5 2 8.d=1.0 +k k=0 xamin三、編程題(第145頁)1. 源程序:main()int i=1,sum=i;while(i101)sum+=i=-i-2;sum+=i=-i+2;printf(%d,sum);執(zhí)行結果:512.源程序:main()double p=0,n=0,f;int i;for(i=1;i0)p+=f; else n+=f; printf(%lf %lf %lf,p,n,p+n);3.源程序:main()unsigned long a;scanf(%ld,&a);for (;a;printf(%d,a%10),a/=10);printf(b );執(zhí)行結果:234566,5,4,3,24.源程序:main()unsigned long a,b,c,i;scanf(%ld%ld,&a,&b);c=a%1000;for(i=1;ib;i+)c=c*a%1000;if(c100)printf(0);if(c10)printf(0);printf(%ld,c);執(zhí)行結果:129 570095.略6.原題提供的計算e的公式有誤(前面漏了一項1)。正確的公式是e= 1 + 1 + 1/2! + 1/3! + + 1/n! + (1)源程序:main()double e=1,f=1;int n;for(n=1;n1e-4;n+)f/=n;e+=f;printf(e=%.4f,e);執(zhí)行結果:e=2.71837.源程序:main()unsigned long a=0,b=1,c=0;int i,d;scanf(%d,&d);for (i=1;i=(d+2)/3;i+)printf(%10ld%10ld%10ld,a,b,(a+=b+c,b+=c+a,c+=a+b);本題還可以用遞歸算法(效率很低),源程序如下:unsigned long fun(int i)return i=3?i:fun(i-1)+fun(i-2)+fun(i-3);main()int i,d; scanf(%d,&d);for(i=1;i=d;i+)printf(%10ld,fun(i);執(zhí)行結果:15 1 2 3 6 11 20 37 68 125 230 423 778 1431 2632 48418.源程序:main()int i;for(i=1010;i=9876;i+=2)if(i/100%11&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í)行結果:1024 1026 1028 1032 1034 1036 9874 98769.源程序:main()int i,j,k;printf(apple watermelon pear);for(i=1;i=100;i+) for(j=1;j=10;j+) if(k=100-i-j)*2=400-i*4-j*40) printf(%4d%7d%9d,i,j,k);執(zhí)行結果:apple watermelon pear 5 5 90 24 4 72 43 3 54 62 2 36 81 1 1810.源程序:#include stdio.h;#define N 4 /* N為階數,可以改為其他正整數 */main()int m=N*2,i,j;for(i=1;im;printf(),i+) for(j=1;jm; putchar(N-abs(i-N)=abs(j+-N)? :*);如果把N值改為5,則執(zhí)行結果如下: * * * * * * * *第7章 數 組一、單項選擇題(第192頁)1-4.BBCC 5-8.AABA二、填空題(第194頁)1. 1 2 4 8 16 32 64 128 256 512(每個數占一行)2. aage+ i=18;ibj i3 j5 5. bj=aj0 bjajk 6.ak+=aj三、編程題(第196頁)1.源程序:main()int a44,i,j,s=0;for(i=0;i4;i+)for(j=0;j4;j+)scanf(%d,&aij);for(i=0;i4;i+)for(j=0;j4;j+)if(i=j|i+j=3)s+=aij;printf(%d,s); /* 注:55矩陣不能照此計算! */執(zhí)行結果:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16682. 源程序:main()int i,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í)行結果:2 4 6 8 10 12 14 16 18 2022 24 26 28 30 32 34 36 38 4042 44 46 48 50 52 54 56 58 606 16 26 36 46 563. 源程序:#include stdlib.h#include time.hmain()int a30,i,m=0;randomize();for(i=0;i=29;i+) ai=rand(); if(mai)m=ai; printf(%dt,ai);for(i=0;i=29;i+)if(ai=m)ai=-1;printf(-);for(i=0;i=1)bn+=i&1;for(;n;)printf(%d,b-n);執(zhí)行結果:987610011010010100本題也可以不用數組。源程序如下:#include stdio.hmain()int i,n;scanf(%d,&i);for(n=16;n;n-) asm ROL i,1 putchar(i&1|48); /* ROL是循環(huán)左移的匯編指令 */5. 源程序:#include stdlib.h#include time.h#define M 5#define N 6main()int aMN,i,j,tM;randomize();/*生成M行N列隨機數*/for(i=0;iM;printf(),ti+=0) for(j=0;jN;j+) printf(%4d,aij=random(50);/*找出每行的最小數,tM是第M行的最小數所在的列數*/for(i=0;iM;i+) for(j=0;jaij)ti=j;/*比較每個最小數在其所在的列上是否也是最小*/for(j=0;jM;j+) for(i=0;iaitj) tj=-1;break; printf(-);/*輸出在行和列上均為最小的數*/for(i=0;iM;i+) if(ti!=-1) printf(a%d,%d=%d,i,ti,aiti);執(zhí)行結果: 13 19 13 20 0 1 20 41 6 16 35 30 3 5 37 8 23 15 6 36 24 29 18 1 1 5 28 21 46 34-a0,4=0a1,2=6a3,5=1a4,0=16. 源程序:#include stdlib.h#include time.h#define M 5#define N 7main()int aMN,i,j,t=0;randomize();for(i=0;iM;i+) aiN-1=0; for(j=0;jN-1;j+) printf(%4d,aij=random(91)+10); aiN-1+=aij; printf(%4d,aiN-1);for(i=1;iatN-1)t=i;if(t)for(j=0;jN;j+) i=a0j;a0j=atj;atj=i;printf(-);for(i=0;iM;printf(),i+) for(j=0;jN;j+) printf(%4d,aij);執(zhí)行結果: 89 17 32 95 35 20 288 39 48 22 27 73 22 231 51 87 39 71 84 46 378 84 94 97 77 27 26 405 69 50 56 89 37 46 347- 84 94 97 77 27 26 405 39 48 22 27 73 22 231 51 87 39 71 84 46 378 89 17 32 95 35 20 288 69 50 56 89 37 46 3477. 源程序:#include stdlib.h#include time.h#define M 5#define N 6main()int aMN,i,j;struct dataint value,x,y;max,min;max.value=0;min.value=100;randomize();for(i=0;iM;printf(),i+) for(j=0;jN;j+) printf(%4d,aij=random(100)+1); if(max.valueaij) min.value=aij;min.x=i;min.y=j; printf(-);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;iM;printf(),i+) for(j=0;jN;j+) printf(%4d,aij);執(zhí)行結果: 51 53 74 65 30 40 30 26 50 6 61 27 47 16 54 58 76 19 57 74 44 92 71 48 73 57 60 32 73 67- 51 53 74 65 30 92 30 26 50 73 61 27 47 16 54 58 76 19 57 74 44 40 71 48 6 57 60 32 73 679. 源程序:main()char s255;int i,j,b=1;printf(Input a string:);scanf(%s,s);i=strlen(s);for(j=1;j4):);gets(s);l=strlen(s);for(i=0;il;i+)if(smaxsi)min=i;t=s1;s1=smax;smax=t;if(min=1)min=max;t=sl-2;sl-2=smin;smin=t;printf(%s,s);執(zhí)行結果:Input a string(length4):C+BuilderCu+Beild+r11. 源程序:main()char m1310=*,January,February,March,April,May,June,July,August,September,October,November,December;int i,j,k,a,s,n;printf(Please input an integer(100.999):);scanf(%d,&n);printf(%d:%d+%d+%d=%d, %d%13=%d, %s, n,i,j,k,s,s,a,ma=(s=(i=n/100)+(j=n/10%10)+(k=n%10)%13);執(zhí)行結果:Please input an integer(100.999):539539:5+3+9=17, 17%13=4, April第8章 函 數一、單項選擇題(第241頁)1-5.BCCAA 6-10.CCDDD 11-15.ACACB二、填空題(第243頁)1.看不出原題的意圖。因為要計算1n的累加和,n應是一個1的正整數??墒穷}目中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內科醫(yī)患溝通技巧
- 開顱鉆顱術后引流管的護理
- 營銷策略流程圖
- 圓錐曲線精美課件
- 風險分散型草牧場托管養(yǎng)殖合同
- 市場營銷策劃與市場戰(zhàn)略制定專員勞動合同
- 知識產權評估與財務顧問服務合作協(xié)議
- 跨國公司車輛收費員勞務派遣協(xié)議書
- 商業(yè)大廈立體停車庫租賃合同
- 親子插畫故事書創(chuàng)作合同
- 個人信息保護合規(guī)審計師CCRC-PIPCA含答案
- 2025年山西焦煤集團有限責任公司招聘筆試參考題庫含答案解析
- 2025年福建日報社招聘筆試參考題庫含答案解析
- 國家開放大學-法學專業(yè)-2023年秋季《法律文化》形成性考核作業(yè)答案
- GA 1517-2018金銀珠寶營業(yè)場所安全防范要求
- 提高痰留取成功率PDCA課件
- 組合導航與融合導航解析課件
- 伊金霍洛旗事業(yè)編招聘考試《行測》歷年真題匯總及答案解析精選V
- 深基坑支護工程驗收表
- 浦發(fā)銀行個人信用報告異議申請表
- 顱腦CT影像課件
評論
0/150
提交評論