




已閱讀5頁,還剩16頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
習題3參考解答1.什么是算法?常用描述算法的工具有哪些?解:所謂算法,就是計算機解決某一個問題的具體方法和步驟。常用描述算法的工具有流程圖、N-S圖。2.試用流程圖表示求3個數中的最大數的算法。解:流程圖如圖1-1所示。圖1-1 求3個數中的最大數的流程圖3.什么是結構化程序設計?它的主要內容是什么?解:結構化程序設計(structured programming)是進行以模塊功能和處理過程設計為主的詳細設計的基本原則。它的主要觀點是采用自頂向下、逐步求精的程序設計方法;使用3種基本控制結構構造程序,任何程序都可由順序、選擇、循環這3種基本控制結構構造 。4.從鍵盤輸入3個整數,按照從小到大的順序輸出。解:#includeint main()int a,b,c,temp; scanf(%d,%d,%d,&a,&b,&c); if(ab)temp=a;a=b;b=temp; if(ac)temp=a;a=c;c=temp; if(bc)temp=b;b=c;c=temp; printf(%d,%d,%dn,a,b,c); return 0;程序運行情況如下:12,8,298,12,295.輸入一個華氏溫度F,要求輸出攝氏溫度C。公式為 要求要有文字說明,取兩位小數。解:#includeint main()float f,c; printf(請輸入一個華氏溫度:n); scanf(%f,&f); c=5*(f-32)/9; printf(%.2fn,c); return 0;程序運行情況如下:請輸入一個華氏溫度:362.226輸入一個三位整數,要求輸出它的百位數、十位數和個位數。解:#includeint main()int num; /* num表示一個三位整數 */ int a,b,c; /* a,b,c分別表示百位、十位和個位上的數字 */ scanf(%d,&num); a=num/100; b=(num-a*100)/10; c=num-a*100-b*10; printf(%d,%d,%dn,a,b,c); return 0;程序運行情況如下:1231,2,37小紅有面值1分的硬幣638枚,可以兌換成幾元幾角剩余幾分?說明:100枚1分的硬幣可以兌換成1元,10枚1分的硬幣可以兌換成1角。兌換原則是面額從大到小。解:#includeint main()int a=638; int yuan;int jiao;int fen,temp;yuan=a/100;temp=a%100;jiao=temp/10;fen=temp%10;printf(1元的數量:%dn,yuan); printf(1角的數量:%dn,jiao); printf(1分的數量:%dn,fen);return 0;程序運行結果如下:1元的數量:61角的數量:31分的數量:88設圓柱的半徑為2.5,圓柱的高為4,求圓柱的體積。用scanf函數輸入數據,printf函數輸出計算結果,輸出時要求有文字說明,取兩位小數。解: #include #define PI 3.1415926 int main()float r,h,v;printf(Please input r,h:);scanf(%f,%f,&r,&h);v=PI*r*r*h;printf(半徑為:%.2f,高為:%.2f的圓柱體體積為:%.2fn,r,h,v);return 0;程序運行情況如下:Please input r,h:2.5,4半徑為:2.50,高為:4.00的圓柱體體積為:78.549輸入三角形的三邊,計算三角形的面積。要求:對輸入的3個邊長進行判斷,如果能構成三角形,則計算三角形的面積;否則,則顯示“構不成三角形!”信息。解:#include#includeint main()int a,b,c;float s,area;scanf(%d,%d,%d,&a,&b,&c);if(a+bc & a+cb &b+ca)s=(float)(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(面積為:%.2fn,area);elseprintf(邊長分別為%d、%d、%d的三邊構不成三角形!n,a,b,c);return 0;程序運行情況如下:3,4,6面積為:5.333,6,12邊長分別為3、6、12的三邊構不成三角形!10設計一個C語言程序,求5個數中的最大數和最小數。解:#includeint main()int a,b,c,d,e,max,min;scanf(%d%d%d%d%d,&a,&b,&c,&d,&e);max=min=a;if(bmax) max=b;if(bmax) max=c;if(cmax) max=d;if(dmax) max=e;if(emin) min=e;printf(max:%d,min:%dn,max,min);return 0;程序運行情況如下:2 5 6 8 9max:9,min:211判斷輸入的字符屬于哪一類字符:大寫字母、小寫字母、數字還是其他字符。解:#includeint main()char ch;scanf(%c,&ch); if(ch=48 &ch=65&ch=97&ch=122) printf(該字符為小寫字母!); else printf(該字符為其他字符!);return 0;程序運行情況如下:2該字符為數字! 12用if語句和switch語句分別編寫程序,實現以下功能:從鍵盤輸入數字1,2,3,4,分別顯示Excellent,Good,Pass,Fail。輸入其他字符時顯示Error。解:/*用if語句編寫程序*/#includeint main() char ch; scanf(%c,&ch); if(ch=1) printf(Excellentn); else if (ch=2) printf(Goodn); else if (ch=3) printf(Passn); else if (ch=4) printf(Failn); else printf(Errorn); return 0;程序運行情況如下:1Excellent/*用switch語句編寫程序*/#includeint main() char ch;scanf(%c,&ch);switch(ch) case 1:printf(Excellentn);break; case 2:printf(Goodn);break; case 3:printf(Passn);break; case 4:printf(Failn);break; default:printf(Errorn);程序運行情況如下:1Excellent13假設國家對個人收入所得稅是按這樣的標準進行的:起征點是2 000元,2 0003 000元為5%,3 0005 000元為15%,5 00010 000元為20%,10 000元以上為30%。編程輸入工資,計算實際工資所得及稅金。解:#includeint main()int gz;float sj;scanf(%d,&gz);if(gz2000)printf(不需要納稅!n);return ;else if(gz3000)sj=gz*0.05;else if(gz5000) sj=gz*0.15;else if(gz0時,有兩個不等的實根;當b2-4ac=0時,有兩個相等的實根;當b2-4ac0時,有兩個虛根。解:#include#includeint main()int a,b,c;double delt,x1,x2;scanf(%d%d%d,&a,&b,&c); delt=b*b-4*a*c; if (delt=0)printf(該方程有兩個相等的實根!);x1=x2=-(double)b/(2*a);printf(%.2f,%.2fn,x1,x2);else if(delt=0)x1=(-b+sqrt(delt)/(2*a); x2=(-b-sqrt(delt)/(2*a); printf(%.2f,%.2fn,x1,x2);elseprintf(該方程無實根!n);程序運行情況如下:3 4 5該方程無實根!4 6 2-0.50,-1.004 4 1該方程有兩個相等的實根!-0.50,-0.5015從1100中找出能被5或7整除的數。解:#includeint main() int i; for(i=1;i=100;i+) if(i%5=0|i%7=0) printf(%5d,i); return 0; 程序運行結果如下:5 57 10 14 15 20 21 25 28 30 35 40 42 45 49 50 55 56 60 63 65 70 75 77 80 84 85 90 91 95 98 10016計算sum=1+11+111+1111+11111。解:#includeint main()int i,t=0,s=0; for(i=1;i=5;i+) t=t*10+1; printf(%dn,t); s=s+t; printf(%d,s);return 0;程序運行結果如下:1111111111111111234517輸入兩個正整數m和n,求出它們的最大公約數和最小公倍數。解:#includeint main()int m,n,t,gcd,gcm;int a,b;scanf(%d%d,&m,&n); t=m%n;a=m;b=n;while(t!=0)m=n;n=t; t=m%n;gcd=n;gcm=a*b/gcd;printf(%d和%d的最大公約數為:%d,最小公倍數為:%dn,a,b,gcd,gcm);return 0;程序運行情況如下:25 1525和15的最大公約數為:5,最小公倍數為:7518輸入一行字符,分別統計出其中英文字母、空格、數字和其他字符的個數。解:#includeint main()char ch;int m=0; int k=0; int n=0; int t=0;ch=getchar();while(ch!=n)if(ch=32) k+; else if(ch=48& ch=65& ch=97& ch=122) m+; else t+; ch=getchar(); printf(字母的個數為:%dn,m); printf(空格的個數為:%dn,k);printf(數字的個數為:%dn,n); printf(其他字符的個數為:%dn,t); return 0;程序運行情況如下:123abcdefghyyyy;11166 #%字母的個數為:12空格的個數為:2數字的個數為:8其他字符的個數為:1119從鍵盤輸入10個學生的成績,試統計出他們的成績總和及平均值。解:#includeint main()float cj,sum=0,aver; int i;for(i=1;i=10;i+)scanf(%f,&cj);sum=sum+cj;aver=sum/10;printf(sum=%.2f,aver=%.2f,sum,aver);return 0;程序運行情況如下:68 75 74 56 78 75 81 76 75 85sum=743.00,aver=74.3020猴子吃桃問題。猴子第一天摘下了若干桃子,當即吃了一半,還不過癮,又多吃了一個。第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第4天早上想要再吃時,只剩下一個桃子了。求第一天猴子共摘了多少桃子。解:#includeint main()int n=1; int i; for(i=9;i=1;i-) n=2*(n+1); printf(%dn,n); return 0;程序運行結果如下:410224694190382766153421打印出所有的“水仙花數”。所謂“水仙花數”是指一個三位數,其各位數字立方和等于該數本身。例如,153就是一個水仙花數,因為153=13+53+33解:#includeint main()int i,bw,sw,gw; printf(水仙花數是:);for(i=100;i999;i+)bw=i/100;sw=(i-bw*100)/10;gw=i-bw*100-sw*10; if(i=bw*bw*bw+sw*sw*sw+gw*gw*gw)printf(%5d,i);printf(n);return 0;程序運行結果如下:水仙花數是: 153 370 371 40722用泰勒級數求e的近似值,直到最后一項小于10-6為止。 e=1+1/1!+1/2!+1/3!+1/n!解: #includeint main() int i=1;long f=1;double t=1,e=1;while(t=1e-6) e=e+t;i=i+1;f=f*i;t=(double)1/f; printf(%.3lfn,e); return 0;程序運行結果如下:2.71823輸入一個整數,分解各位數字。例如,輸入“1298”,輸出“8-9-2-1-”。請編寫一個C語言程序解決該問題。解:#includeint main() int num,n1,n2;scanf(%d,&num);n2=num;while(n2!=0)n1=n2%10;n2=n2/10;printf(%d-,n1);printf(n);return 0;程序運行情況如下:12988-9-2-1-24有一個分數序列2/1,3/2,5/3,8/5,13/8,21/13求出這個數列的前20項之和。解:#includeint main() int i; float f,s=0; float f1=1; float f2=1; for(i=1;i=20;i+) f=f1+f2; f1=f2; f2=f; s=s+f2/f1; printf(分數序列之和為:%f,s) ; return 0;程序運行結果如下:分數序列之和為:32.660259 25打印出以下圖案。 * * * * * * * * * * * * * * * * * * * 解:#includeint main()int i,j; for(i=1;i=4;i+) for(j
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025化工原料采購銷售合同范本參考
- 2025年自建房設計與施工一體化合同協議書
- 患者的心理護理
- 2025年吉林省長春市寬城區中考二模英語試卷
- 招投標實務操作
- 醫學檢驗技術分析模板
- NC6應付管理培訓
- 途牛:2022國慶旅游消費趨勢報告
- 八年級語文上冊《大自然的語言》教學設計
- 三下鄉社會實踐個人工作總結模版
- 田野考古學-鄭州大學中國大學mooc課后章節答案期末考試題庫2023年
- 大數據與法律檢索-湖南師范大學中國大學mooc課后章節答案期末考試題庫2023年
- 應用文寫作基礎(中職 )PPT完整全套教學課件
- 記敘文閱讀之句子賞析復習市公開課金獎市賽課一等獎課件
- 鄭麗玲《彩墨游戲》說課x 課件
- 重點中成藥品種含瀕危野生動物藥材調查表
- 2016年社區獲得性肺炎(CAP)指南解讀與抗生素應用
- 預應力混凝土連續梁張拉記錄
- GB/T 41028-2021航空航天流體系統液壓軟管、管道和接頭組件的脈沖試驗要求
- 化工環境保護與及安全技術概論考試題及答案
- 精益生產精管理培訓課件
評論
0/150
提交評論