




已閱讀5頁(yè),還剩6頁(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)介
第3章 分支結(jié)構(gòu)【練習(xí) 3-1】例 3-4 中使用 else-if 語(yǔ)句求解多分段函數(shù),為了檢查 else-if 語(yǔ)句的三個(gè)分支是否正確,已經(jīng)設(shè)計(jì)了三組測(cè)試用例,請(qǐng)問(wèn)還需要增加測(cè)試用例嗎?為什么?如果要增加,請(qǐng)給出具體的測(cè)試用例并運(yùn)行程序。解答:最好再增加兩組測(cè)試用例,因?yàn)樯形磳?duì)分段函數(shù)參數(shù)的邊界值進(jìn)行測(cè)試??稍俳o出 x=0和 x=15 時(shí)的兩種情況。【練習(xí) 3-2】計(jì)算符號(hào)函數(shù)的值: 輸入一個(gè)整數(shù) x,計(jì)算并輸出下列分段函數(shù) sign(x)的值。 -1 x0解答:#include int main(void) int x, y; printf(Enter x: );scanf(%d,&x);if(x0) y=1;else if (x=0) y=0;else y=-1;printf(sign( %d ) = %dn,x,y);return 0;【練習(xí) 3-3】統(tǒng)計(jì)學(xué)生平均成績(jī)與及格人數(shù):輸入一個(gè)正整數(shù) n,再輸入 n 個(gè)學(xué)生的成績(jī),計(jì)算平均成績(jī),并統(tǒng)計(jì)所有及格學(xué)生的人數(shù)。試編寫(xiě)相應(yīng)程序。解答:# 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(Grade average = %.2fn, total / n); printf(Number of pass = %dn, count); return 0;【練習(xí) 3-4】統(tǒng)計(jì)字符:輸入 10 個(gè)字符,統(tǒng)計(jì)其中英文字母、空格或回車、數(shù)字字符和其他字符的個(gè)數(shù)。試編寫(xiě)相應(yīng)程序。解答:#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)blank+;elseother+;printf(letter=%d,blank=%d,digit=%d,other=%dn, letter, blank, digit, other);return 0;【練習(xí)3-5】輸出閏年:輸出21世紀(jì)中截至某個(gè)年份之前的所有閏年年份。判斷閏年的條件是:能被4整除但不能被100整除,或者能被400整除。試編寫(xiě)相應(yīng)程序。解答:# include int main(void) int year; printf(Enter year: ); scanf(%d, &year);for(;year=2000;year-)if( (year % 4 = 0 & year % 100 != 0 ) | year % 400 = 0) printf(It is a leap yearn); elseprintf(It is not a leap yearn ); return 0;【練習(xí) 3-6】在例 3-8 程序中,如果把switch語(yǔ)句中所有的break都去掉,運(yùn)行結(jié)果會(huì)改變嗎?如果有變化,輸出什么?為什么?解答:如果去掉所有的 break 語(yǔ)句,運(yùn)行結(jié)果會(huì)改變,輸出 price = 0.0,因?yàn)椴还?choice 值與其中某個(gè)常量表達(dá)式相等,當(dāng)去掉 break 語(yǔ)句時(shí),其后的所有語(yǔ)句段都將運(yùn)行,故每次都將執(zhí)行到 price=0.0 語(yǔ)句為止?!揪毩?xí) 3-7】成績(jī)轉(zhuǎn)換:輸入一個(gè)百分制成績(jī),將其轉(zhuǎn)換為五分制成績(jī)。百分制成績(jī)到五分制成績(jī)的轉(zhuǎn)換規(guī)則:大于或等于90分為A,小于90分且大于或等于80分為B,小于80分且大于或等于70分為C,小于70分且大于或等于60分為D,小于60分為E。試編寫(xiě)相應(yīng)程序。解答:#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);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 grade is: %c,grade); return 0;【練習(xí) 3-8】查詢水果的單價(jià):有 4 種水果,蘋(píng)果(apples)、梨(pears)、桔子(oranges)和葡萄(grapes),單價(jià)分別是 3.00 元/公斤,2.50 元/公斤,4.10 元/公斤和 10.20 元/公斤。在屏幕上顯示以下菜單(編號(hào)和選項(xiàng)),用戶可以連續(xù)查詢水果的單價(jià),當(dāng)查詢次數(shù)超過(guò) 5 次時(shí),自動(dòng)退出查詢;不到 5 次時(shí),用戶可以選擇退出。當(dāng)用戶輸入編號(hào) 14,顯示相應(yīng)水果的單價(jià)(保留兩位小數(shù));輸入 0,退出查詢;輸入其他編號(hào),顯示價(jià)格為 0。試編寫(xiě)相應(yīng)程序。1 apples2 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; break;case 3: price=4.10; break;case 4: price=10.20; break;default: price=0;break; printf(price=%0.2fn, price);return 0;【練習(xí)3-9】 請(qǐng)讀者重新編寫(xiě)例 3-4 的程序,要求使用嵌套的 if - else 語(yǔ)句,并上機(jī)運(yùn)行。解答:#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(%.2f)=%.2fn, x, y); return 0;【練習(xí) 3-10】在例 3-12 中,改寫(xiě) if 語(yǔ)句前,y= x + 1;和 y= x + 2; 兩條語(yǔ)句的執(zhí)行條件是什么?改寫(xiě)后呢?解答:改寫(xiě)前:y=x+1 的執(zhí)行條件是 x1; y=x+2 的執(zhí)行條件是 1=x2。改寫(xiě)后:y=x+1 的執(zhí)行條件是 x1; y=x+2 的執(zhí)行條件是 2= 10 or a = 0 | a = 10 & a = 10 | a 04有一函數(shù) y=0 x=0 , 以下程序段中錯(cuò)誤的是 C 。 -1 x 0) y = 1; B.y=0;else if(x = 0) y = 0; if(x0) y=1;else y = -1; else if(x=0)if(x = 0); if(x0) y=1;if(x 0) y = 1 ; else y=0; else y = -1; else y=-1;5下列程序段的輸出結(jié)果是 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;A ab Bab0 C0aab二、填空題1表示條件:10x100 或者 x10&x100)| (xb&ca|ab 的值為 0 。3若從鍵盤(pán)輸入 58,則以下程序段的輸出結(jié)果是 585858 。int main(void)int a;scanf(%d,&a);if(a 50) printf(%d,a);if(a 40) printf(%d,a);if(a 30) printf(%d,a); return 0;4下列程序運(yùn)行的輸出結(jié)果是 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;3 程序設(shè)計(jì)題1. 比較大小:輸入3個(gè)整數(shù),按從小到大的順序輸出。試編寫(xiě)相應(yīng)程序。解答:#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ī)定,在高速公路上行駛的機(jī)動(dòng)車,超過(guò)本車道限速的10%則處200元罰款;若超出50%,就要吊銷駕駛證。請(qǐng)編寫(xiě)程序根據(jù)車速和限速判別對(duì)該機(jī)動(dòng)車的處理。解答:#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_limiting*1.5)printf(罰款200元,并吊銷駕駛證);else; return 0; 3出租車計(jì)價(jià):某城市普通出租車收費(fèi)標(biāo)準(zhǔn)如下:起步里程 3 公里,起步費(fèi) 10 元;超起步里程后 10公里內(nèi),每公里2元,超過(guò)10公里以上的部分加收50%的空駛補(bǔ)貼費(fèi),即每公里3元;營(yíng)運(yùn)過(guò)程中,因路阻及乘客要求臨時(shí)停車的,按每 5 分鐘2元計(jì)收(不足5分鐘則不收費(fèi))。運(yùn)價(jià)計(jì)費(fèi)尾數(shù)四舍五入,保留到元。編寫(xiě)程序,輸入行駛里程(公里)與等待時(shí)間(分鐘),計(jì)算并輸出乘客應(yīng)支付的車費(fèi)(元)。解答:#include int main(void)int mile,time,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. 統(tǒng)計(jì)學(xué)生成績(jī):輸入一個(gè)正整數(shù) n,再輸入 n 個(gè)學(xué)生的成績(jī),統(tǒng)計(jì)五分制成績(jī)的分布。百分制成績(jī)到五分制成績(jī)的轉(zhuǎn)換規(guī)則:大于或等于90分為A,小于90分且大于或等于80分為B,小于80分且大于或等于70分為C,小于70分且大于或等于60分為D,小于60分為E。試編寫(xiě)相應(yīng)程序。解答:#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, countb, countc, countd, counte); return 0;5. 三角形判斷:輸入平面上任意三個(gè)點(diǎn)的坐標(biāo)(x1,y1)、(x2,y2)、
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年天全縣國(guó)有資產(chǎn)管理服務(wù)中心招聘考試真題
- 2024年連云港市灌云縣教育局所屬學(xué)校招聘教師考試真題
- 2024年成都理工大學(xué)招聘考試真題
- 培訓(xùn)講師工作流程SOP-企業(yè)管理
- 2025秋四年級(jí)上冊(cè)語(yǔ)文上課課件 20 陀螺
- 顱骨牽引病人的護(hù)理查房講課件
- 教育信息化提升教學(xué)質(zhì)量的研究
- 影音室裝修設(shè)計(jì)與觀影體驗(yàn)
- 影視旅游的規(guī)劃與實(shí)施策略
- 運(yùn)動(dòng)康復(fù)師講課件
- 水產(chǎn)品市場(chǎng)的營(yíng)銷策略與市場(chǎng)推廣
- 超市經(jīng)營(yíng)方案
- 工程施工竣工報(bào)告
- PythonWeb開(kāi)發(fā)技術(shù)與應(yīng)用(Flask版)PPT完整全套教學(xué)課件
- 10kV~500kV輸變電及配電工程質(zhì)量驗(yàn)收與評(píng)定標(biāo)準(zhǔn):01輸電線路工程
- 子宮內(nèi)膜癌內(nèi)分泌治療課件
- 稅務(wù)行政處罰文書(shū)(標(biāo)準(zhǔn)版)
- 第三章葡萄酒釀造2
- 每天100道語(yǔ)法填空題過(guò)高考英語(yǔ)高頻詞匯12
- 數(shù)字程控交換機(jī)系統(tǒng)技術(shù)規(guī)范書(shū)
- GB 1886.20-2016食品安全國(guó)家標(biāo)準(zhǔn)食品添加劑氫氧化鈉
評(píng)論
0/150
提交評(píng)論