


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第 3章分支結構【練習 3-1 】例 3-4 中使用 else-if 語句求解多分段函數, 為了檢查 else-if 語句的三個分支是否正確, 已經設計了三組測試用例, 請問還需要增加測試用例嗎?為什么?如果要增加,請給出具體的測試用例并運行程序。解答:最好再增加兩組測試用例, 因為尚未對分段函數參數的邊界值進行測試。可再給出 x=0 和 x=15 時的兩種情況?!揪毩?3-2 】計算符號函數的值:輸入一個整數x ,計算并輸出下列分段函數sign(x)的值。-1x0解答:#include int main(void)int x, y;printf(Enter x: );scanf(%d,&x)
2、;if(x0)y=1;else if (x=0) y=0;else y=-1;printf(sign( %d ) = %dn,x,y);return 0;【練習 3-3 】統計學生平均成績與及格人數:輸入一個正整數 n ,再輸入 n 個學生的成績,計算平均成績,并統計所有及格學生的人數。試編寫相應程序。解答:# include int main(void)int count, i, n;double grade, total;printf(Enter n: );scanf(%d, &n);total = 0;count = 0;for(i = 1; i = 60)count+;printf(G
3、rade average = %.2fn, total / n);printf(Number of pass = %dn, count);return 0;【練習 3-4 】統計字符:輸入 10 個字符,統計其中英文字母、空格或回車、數字字符和其他字符的個數。試編寫相應程序。解答:#include int main(void)int i;int blank, digit, letter, other;char c;blank = digit = letter = other = 0;for(i=1;i=a & c =A & c =0 & c = 9)digit+;else if(c= |c=n
4、)blank+;elseother+;printf(letter=%d,blank=%d,digit=%d,other=%dn, letter, blank, digit, other);return 0;【練習 3-5 】輸出閏年:輸出21 世紀中截至某個年份之前的所有閏年年份。判斷閏年的條件是: 能被 4 整除但不能被 100 整除,或者能被 400 整除。試編寫相應程序。解答:# include int main(void)int year;printf(Enter year: );scanf(%d, &year);for(;year=2000;year-)if( (year % 4 =
5、 0 & year % 100 != 0 ) | year % 400 = 0)printf(It is a leap yearn);elseprintf(It is not a leap yearn );return 0;【練習 3-6 】在例 3-8程序中,如果把 switch 語句中所有的 break 都去掉,運行結果會改變嗎?如果有變化,輸出什么?為什么?解答:如果去掉所有的break語句,運行結果會改變,輸出price = 0.0,因為不管choice值與其中某個常量表達式相等,當去掉 break語句時,其后的所有語句段都將運行,故每次都將執(zhí)行到price=0.0語句為止?!揪毩?3
6、-7 】成績轉換:輸入一個百分制成績,將其轉換為五分制成績。百分制成績到五分制成績的轉換規(guī)則:大于或等于90 分為 A,小于 90 分且大于或等于80 分為 B,小于 80 分且大于或等于70 分為 C,小于 70 分且大于或等于 60 分為D,小于 60 分為 E。試編寫相應程序。解答:#include int main(void)double grade;printf(Input grade: );scanf(“%lf ”,&grade);If(grade=90)printf(A);else if(grade=80)printf(B);else if(grade=70)printf(C);
7、else if(grade=60)printf(D);else printf(E);return 0;或#include int main(void)double score;char grade;printf(Input your score: );scanf(%lf,&score);switch(int(score/10)case 10:case 9:grade=A ; break;case 8:grade=B; break;case 7:grade=C; break;case 6:grade=D; break;default:grade=E; break;printf(Your grad
8、e is: %c,grade);return 0;【練習 3-8 】查詢水果的單價:有 4 種水果,蘋果( apples )、梨( pears )、桔子( oranges )和葡萄( grapes ),單價分別是 3.00 元/ 公斤, 2.50 元/ 公斤, 4.10 元/ 公斤和 10.20 元/ 公斤。在屏幕上顯示以下菜單(編號和選項) ,用戶可以連續(xù)查詢水果的單價, 當查詢次數超過 5 次時,自動退出查詢; 不到 5 次時,用戶可以選擇退出。當用戶輸入編號 1 4,顯示相應水果的單價(保留兩位小數);輸入 0 ,退出查詢;輸入其他編號,顯示價格為 0 。試編寫相應程序。1 apples
9、2 pears3 oranges4 grapes0 Exit解答:#include int main(void)int ri;int choice;float price;for(ri=1; ri=5; ri+)printf(1 applesn);printf(2 pearsn);printf(3 orangesn);printf(4 grapesn);printf(0 Exitn);scanf(%d, &choice);if(choice=0)break;else switch(choice)case 1: price=3.00; break;case 2: price=2.50; brea
10、k;case 3: price=4.10; break;case 4: price=10.20; break;default: price=0;break;printf(price=%0.2fn, price);return 0;【練習3-9 】 請讀者重新編寫例句,并上機運行。解答:3-4的程序,要求使用嵌套的if - else語#include int main(void)double x, y;printf(Enter x:)scanf(%lf, &x);;if (x 15)y = 2.5 * x - 10.5;else if(x0)y=0;elsey=4*x/3;printf(f(%.
11、2f)=%.2fn, x, y);return 0;【練習 3-10 】在例 3-12中,改寫語句的執(zhí)行條件是什么?改寫后呢?解答:改寫前: y=x+1 的執(zhí)行條件是 x1;改寫后: y=x+1 的執(zhí)行條件是 x1;if語句前, y= x + 1; 和y=x+2的執(zhí)行條件是y=x+2的執(zhí)行條件是y= x + 2; 1=x2 。 2= 10 or a = 10 & a = 0 | a = 10 | a 04有一函數 y=0x=0 ,以下程序段中錯誤的是C。-1x 0) y = 1;B.y=0;else if(x = 0) y = 0;if(x0) y=1;else y = -1;else if(
12、x=0)if(x = 0);if(x0) y=1;if(x 0) y = 1 ;else y=0;else y = -1;else y=-1;5下列程序段的輸出結果是C。int main(void)int a=2,b=-1,c=2;if(ab)if(b 0) s = s + 1;if(a b) t = s + t;else if(a = b) t = 5;else t = 2 * s;printf(t=%dn,t);return 0;AabC0abBDabab二、填空題1表示條件:10x100或者x10&x100)|(xb&ca|ab的 值 為0 。3若從鍵盤輸入58 ,則以下程序段的輸出結果
13、是int main(void)inta;scanf(%d,&a);if(a 50)printf(%d,a);if(a 40)printf(%d,a);if(a 30)printf(%d,a);return 0;585858。4下列程序運行的輸出結果是9。int main(void)char c = b;int k = 4;switch(c)case a: k = k + 1;break;case b: k = k + 2;case c: k = k + 3;printf(%dn,k);return 0;三程序設計題1. 比較大?。狠斎?3 個整數,按從小到大的順序輸出。試編寫相應程序。解答:#
14、includeint main(void)int a,b,c;char op=b)if(bc)printf(%d%c%d%c%d,c,op,b,op,a);elseif(ac)printf(%d%c%d%c%d,b,op,c,op,a);else printf(%d%c%d%c%d,b,op,a,op,c);elseif(ac)printf(%d%c%d%c%d,c,op,a,op,b);elseif(bc)printf(%d%c%d%c%d,a,op,b,op,c);else printf(%d%c%d%c%d,a,op,c,op,b);return 0;2. 高速公路超速處罰:按照規(guī)定,在
15、高速公路上行駛的機動車,超過本車道限速的 10%則處 200 元罰款;若超出50%,就要吊銷駕駛證。請編寫程序根據車速和限速判別對該機動車的處理。解答:#includeint main(void)double speed,rate_limiting;printf(Enter speed:);scanf(%lf,&speed);printf(Enter rate_limiting:);scanf(%lf,&rate_limiting);if(rate_limiting*1.5speedrate_limiting*1.1)printf(罰款 200 元);else if(speedrate_lim
16、iting*1.5)printf(罰款 200 元,并吊銷駕駛證 );else;return 0;3出租車計價: 某城市普通出租車收費標準如下: 起步里程 3 公里,起步費 10 元;超起步里程后 10 公里,每公里 2 元,超過 10 公里以上的部分加收 50%的空駛補貼費,即每公里 3 元;營運過程中,因路阻及乘客要求臨時停車的,按每 5 分鐘 2 元計收(不足 5 分鐘則不收費)。運價計費尾數四舍五入,保留到元。編寫程序,輸入行駛里程 ( 公里 ) 與等待時間 ( 分鐘 ) ,計算并輸出乘客應支付的車費(元)。解答:#include int main(void)int mile,time
17、,cost;printf(Input mile and time:);scanf(%d%d,&mile,&time);cost=0;mile=mile+time/5;if(mile=3)cost=10;else if(mile=13)cost=10+(mile-3)*2;elsecost=10+10*2+(mile-13)*3;printf(cost=%dn,cost);return 0;4. 統計學生成績:輸入一個正整數 n ,再輸入 n 個學生的成績,統計五分制成績的分布。百分制成績到五分制成績的轉換規(guī)則:大于或等于 90 分為 A,小于 90 分且大于或等于 80 分為 B,小于 80
18、分且大于或等于 70 分為 C,小于 70 分且大于或等于 60 分為 D,小于 60 分為 E。試編寫相應程序。解答:#include int main(void)int mark, n, i, sum;double average;int counta, countb, countc, countd, counte;printf(Enter n: );scanf(%d,&n);counta= countb = countc = countd = counte =sum=0; for(i=1; i=90 ) counta+;else if (mark=80) countb+;else if(mark=70) countc+;else if(mark=60) countd+;else counte+;average=sum*1.0/n;printf(average=%.1fn,average);printf(A:%d, B: %d, C: %d, D: %d, E: %dn,counta,counte);countb,countc,countd,return 0;5. 三角形判斷:輸入平面上任意三個點的坐標( x1,y1)、(x2,y
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國書架子數據監(jiān)測研究報告
- 創(chuàng)新菜品考試題及答案
- 2019-2025年消防設施操作員之消防設備基礎知識考前沖刺模擬試卷A卷含答案
- 2019-2025年消防設施操作員之消防設備基礎知識考前沖刺模擬試卷A卷含答案
- 2019-2025年軍隊文職人員招聘之軍隊文職教育學通關題庫(附答案)
- 2020年遼寧省沈陽市中考道德與法治試卷(含答案)
- 采購與質量分包合同(2篇)
- 高等教育自學考試《00102世界市場行情》模擬試卷三
- 2025年全國碩士研究生考試《管理類聯考綜合能力》模擬試卷一
- 2025年法制宣傳日普法知識競賽題庫及答案(二)
- 經口鼻吸痰法護理課件
- 勞動教育課件勞動的意義
- 電氣設備故障診斷及維修方法
- 2024年其他資格考試-WSET二級認證歷年考試高頻考點試題附帶答案
- 06J403-1 樓梯、欄桿、欄板圖集
- 課堂導入培訓課件
- 靜物速寫課件
- 機電系統調試方案
- 腫瘤與睡眠障礙-分析腫瘤與睡眠障礙之間的聯系及改善睡眠的方法
- 實驗室感染性物質運輸
- 部編人教版五年級下冊道德與法治簡答題歸納總結
評論
0/150
提交評論