




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、C C+語言程序設計語言程序設計if語句語句switchswitch語句語句循環(huán)語句循環(huán)語句循環(huán)中途的退出(循環(huán)中途的退出(breakbreak、continuecontinue)2 語法一語法一 if(表達式)(表達式) 程序段;程序段; 。;。;若表達式的值為真若表達式的值為真( (非非0) ),執(zhí)行,執(zhí)行程序段,再執(zhí)行下一語句;否則程序段,再執(zhí)行下一語句;否則直接執(zhí)行下一語句。直接執(zhí)行下一語句。 P483e.g. 從鍵盤輸入一個字符,若是小寫字母從鍵盤輸入一個字符,若是小寫字母則轉換成大寫字母并輸出。則轉換成大寫字母并輸出。# include using namespace std; v
2、oid main( ) char a; couta; if ( ) a=a-32; couta=97 & a=90) printf(excellent!); else if (score=80) printf(good!); else if (score=70) printf(fair!); else printf(bad!); if-else的的else部分部分還可嵌套還可嵌套if語句語句6請注意請注意 else不能單獨使用,必須與不能單獨使用,必須與if成對成對出現(xiàn)。出現(xiàn)。 從前到后,每個從前到后,每個else與離它最近的與離它最近的且還未配對的且還未配對的if進行配對。進行配對。
3、7e.g. 計算符號函數(shù)計算符號函數(shù) 的值。的值。 -1 x0# include using namespace std; void main( ) int x, y; coutx; if (x0) y= -1; else if (x=0) y=0; else y=1; cout“x=”x“,y=”yendl; 8 用一對用一對 括起來的一組語句,括起來的一組語句, 稱為復合語句。稱為復合語句。 末尾不需要分號。末尾不需要分號。如:如:if (x0) y+; x=2*x; if (x0) y+;x=2*x;9e.g. 輸入三個整數(shù),將它們按從小輸入三個整數(shù),將它們按從小 到大的順序輸出。到大的
4、順序輸出。10# include using namespace std; void main( ) int a, b, c, t; coutabc; if (ab) t=a; a=b; b=t; /如果如果ab,ab,交換交換a a和和b b的值的值 if (ac) t=a; a=c; c=t; if (bc) t=b; b=c; c=t; cout“排序結果為排序結果為:”a b cb?a:b; abs=x0?-x:x;? : 叫做條件運算符。叫做條件運算符。12 條件運算符的優(yōu)先級高于賦值運條件運算符的優(yōu)先級高于賦值運算符,低于邏輯運算符算符,低于邏輯運算符 條件運算符為右結合性條件運算
5、符為右結合性 只有當只有當if的兩個分支為給同一變量的兩個分支為給同一變量賦值時才可用條件表達式取代。賦值時才可用條件表達式取代。13e.g. 從鍵盤輸入一個字符,若是小寫字母從鍵盤輸入一個字符,若是小寫字母則轉換成大寫字母并輸出。則轉換成大寫字母并輸出。# include using namespace std; void main( ) char a; couta; a= ; couta=97 & a=122 ? a-32 : a14 語法:語法: switch( (表達式表達式) ) case 常量常量1: 程序段程序段1; case 常量常量2: 程序段程序段2; case 常
6、量常量n: 程序段程序段n; default: 程序段程序段n+1; 空格空格 P5015 功能:計算表達式的值,若其值功能:計算表達式的值,若其值 等于某常量等于某常量i,則從程序段,則從程序段i 開始往下執(zhí)行。開始往下執(zhí)行。 說明:說明:1case后應是一個固定的常量值,后應是一個固定的常量值, 且且均為整型值或字符。均為整型值或字符。2各各case后的常量值必須互異。后的常量值必須互異。164通常,每個程序段最后用通常,每個程序段最后用break語句語句 退出退出switch;若沒有;若沒有break,則繼,則繼 續(xù)執(zhí)行下一個續(xù)執(zhí)行下一個case后的程序段。后的程序段。5多個多個case
7、可以共用同一程序段。可以共用同一程序段。 說明:說明:3case分支中的程序段可包含多條分支中的程序段可包含多條語句,且可以不用語句,且可以不用 176若沒有常量值與表達式的值相等,若沒有常量值與表達式的值相等, 就執(zhí)行就執(zhí)行default后的程序段;若無后的程序段;若無 default部分,就直接退出部分,就直接退出switch 語句。語句。default部分可有可無。部分可有可無。 說明:說明:18e.g. 從鍵盤上輸入一個從鍵盤上輸入一個17的整數(shù)的整數(shù)day,輸出對應星期數(shù)。輸出對應星期數(shù)。19# include using namespace std; void main( ) in
8、t day; cinday; switch(day) case 1: cout“星期一星期一n”; break; case 2: cout“星期二星期二n”; break; 20case 3: cout“星期三星期三n”; break;case 4: cout“星期四星期四n”; break; case 5: cout“星期五星期五n”; break; case 6: cout“星期六星期六n”; break;case 7: cout“星期日星期日n”; break;default: cout“輸入錯誤輸入錯誤!n”; 21 語法:語法: while( (表達式表達式) ) 循環(huán)體;循環(huán)體;
9、功能:當表達式的值非功能:當表達式的值非0時,反復時,反復 執(zhí)行循環(huán)體。執(zhí)行循環(huán)體。 P5222表達式表達式循循 環(huán)環(huán) 體體whileTF循環(huán)控制條件循環(huán)控制條件23e.g. 求正整數(shù)求正整數(shù)n的所有約數(shù)及約數(shù)個數(shù)的所有約數(shù)及約數(shù)個數(shù)# include using namespace std; void main( ) int i, n, count=0; coutn;24 i=1; /i/i表示表示n n的整數(shù),初始值為的整數(shù),初始值為1 1 while(i=n) if (n%i=0) /如果如果i i是是n n的約數(shù)的約數(shù) couti ; count+; i+; /準備考查下一個準備考查下
10、一個i i是否是否n n的約數(shù)的約數(shù) cout“nFind ”count“ factors”endl; 復合語句25 語法:語法: do 循環(huán)體循環(huán)體 while ( (表達式表達式);); 功能:先執(zhí)行循環(huán)體,再檢測表達式功能:先執(zhí)行循環(huán)體,再檢測表達式 的值。若非的值。若非0,則繼續(xù)執(zhí)行循,則繼續(xù)執(zhí)行循 環(huán)體;否則,退出循環(huán)。環(huán)體;否則,退出循環(huán)。 P5326e.g.:do coutn; while(n=0);要求必須輸入正數(shù)要求必須輸入正數(shù)27e.g. 不斷從鍵盤輸入實數(shù),邊輸入邊累加,不斷從鍵盤輸入實數(shù),邊輸入邊累加,直到它們的和超過直到它們的和超過1000時停止。時停止。 28# i
11、nclude using namespace std; void main( ) double x, s; coutx; s+=x; while(s=1000); cout“累加結果:累加結果:”sendl; 29while語句和語句和do-while語句的區(qū)別:語句的區(qū)別: 執(zhí)行執(zhí)行while語句,可能一次都不語句,可能一次都不 執(zhí)行循環(huán)體。執(zhí)行循環(huán)體。 執(zhí)行執(zhí)行do-while語句,至少執(zhí)行一語句,至少執(zhí)行一 次循環(huán)體。次循環(huán)體。30 語法:語法: for( (表達式表達式1; 表達式表達式2; 表達式表達式3) ) 循環(huán)體;循環(huán)體; 功能:功能:1先執(zhí)行表達式先執(zhí)行表達式1 2檢測表達式
12、檢測表達式2的值,若非的值,若非0, 則執(zhí)行循環(huán)體,再轉則執(zhí)行循環(huán)體,再轉3; 否則,退出循環(huán)否則,退出循環(huán) 3執(zhí)行表達式執(zhí)行表達式3,轉,轉2 P5431for表達式表達式1循循 環(huán)環(huán) 體體表達式表達式3表達式表達式2TF通常用來初始化通常用來初始化循環(huán)變量循環(huán)變量循環(huán)控制條件循環(huán)控制條件通常用來改變通常用來改變循環(huán)變量循環(huán)變量32e.g. 一只老鼠咬壞了書,公式中符一只老鼠咬壞了書,公式中符號代表被老鼠咬掉的數(shù)字,要想號代表被老鼠咬掉的數(shù)字,要想恢復以下等式,在中可填上哪個恢復以下等式,在中可填上哪個相同的數(shù)字?相同的數(shù)字? 3623733564 33# include using nam
13、espace std; void main( ) int i; for(i=1; i=9; i+) if(30+i)*6237=(10*i+3)*3564) cout“處填處填”iendl; 34e.g. 若一個正整數(shù)若一個正整數(shù)n的所有小于的所有小于n的約的約數(shù)之和等于數(shù)之和等于n,則稱,則稱n為完全數(shù)。例如,為完全數(shù)。例如,6=1+2+3,6是完全數(shù),是完全數(shù),28、496、8128也都是完全數(shù)。判斷正整數(shù)也都是完全數(shù)。判斷正整數(shù)n是否是否完全數(shù)。完全數(shù)。35# include using namespace std; void main( ) int i, n, s; coutn; s=
14、0; for(i=1; in; i+) if (n%i=0) s+=i; if(s=n) coutn“是完全數(shù)是完全數(shù)”endl; else coutn“不是完全數(shù)不是完全數(shù)”endl; 36若循環(huán)體中仍包含循環(huán)語句,稱為若循環(huán)體中仍包含循環(huán)語句,稱為多重循環(huán)。多重循環(huán)。e.g. 求求n以內(nèi)的所有完全數(shù)。以內(nèi)的所有完全數(shù)。 37# include using namespace std;void main( ) int i, j, n, s; coutn; for(i=1; in; i+) s=0; for(j=1; ji; j+) if(i%j=0) s+=j; if (s=i) couti
15、“ ” ; 38e.g. 編寫程序輸出行數(shù)為編寫程序輸出行數(shù)為n的如下圖形的如下圖形( (如如n=4) )。 * * * * * * * * * * * * * * * * * * *39# include using namespace std; void main( ) int i, j, n; coutn; for(i=1; i=n; i+) for(j=1; j=n-i; j+) cout“ ”; for(j=1; j=2*i-1; j+) cout“*”; coutendl; /一行一行* *輸入完畢,需換行輸入完畢,需換行 40# include #includeusing nam
16、espace std; void main( ) int a, b, c, m, n; for(a=1; a=9; a+) for(b=0; b=9; b+) for(c=0; c=9; c+) m=a*100+b*10+c; n=pow(a, 3)+pow(b, 3)+pow(c, 3); if (m=n) coutm“ ”; e.g. 求三位數(shù)的水仙花數(shù)求三位數(shù)的水仙花數(shù) ( (abc=a3+b3+c3) )。 411. break語句語句 功能:提前退出循環(huán)。功能:提前退出循環(huán)。 只用于循環(huán)語句和只用于循環(huán)語句和switch語句中。語句中。 P5642# include using na
17、mespace std;void main( ) int i, n; coutn;e.g. 判斷某整數(shù)判斷某整數(shù)n是否質數(shù)。是否質數(shù)。 43 if (n2) cout“請輸入請輸入2的整數(shù)的整數(shù)!”endl; else for(i=2; i=n) / for循環(huán)沒有中途退出,循環(huán)沒有中途退出,n是質數(shù)是質數(shù) coutn“是質數(shù)是質數(shù)”endl; else / for循環(huán)中途退出,循環(huán)中途退出,n不是質數(shù)不是質數(shù) coutn“不是質數(shù)不是質數(shù)”endl; break語句只能退出當前層循環(huán)。語句只能退出當前層循環(huán)。44# include using namespace std;void main(
18、 ) int i, n; coutn; if (n2) cout“請輸入請輸入2的整的整 數(shù)數(shù)!”endl;e.g. 求求n以內(nèi)的所有質數(shù)。以內(nèi)的所有質數(shù)。 45for(j=2;jn;j+) for(i=2; i=j) coutj是質數(shù)endl; else coutj不是質數(shù)endl; 462. continue語句語句 功能:提前結束本次循環(huán),功能:提前結束本次循環(huán), 進入下一次循環(huán)。進入下一次循環(huán)。e.g. 統(tǒng)計統(tǒng)計1n中能被中能被3整除的數(shù)的個整除的數(shù)的個數(shù)。數(shù)。 只用于循環(huán)語句中。只用于循環(huán)語句中。47# include using namespace std; void main(
19、) int x, n, total=0; coutn; for(x=1; x=n; x+) if (x%3!=0) continue; total+; coutn“之內(nèi)有之內(nèi)有”total“個數(shù)能被個數(shù)能被3整除整除”; 1.有如下程序段有如下程序段 int x=3; do x-=2; coutx; while(!(-x); 執(zhí)行這個程序的輸出結果為(執(zhí)行這個程序的輸出結果為( ) A. 1 B.30 C.1-2 D.死循環(huán)死循環(huán) C2006年等級考試試題年等級考試試題隨堂練習隨堂練習2.執(zhí)行下列語句段后,輸出結果是(執(zhí)行下列語句段后,輸出結果是( ) int i=0; while (i25)
20、 i+=3; couti; A. 24 B.25 C.27 D.28 C2006等級考試試題等級考試試題3.執(zhí)行下列語句后,變量執(zhí)行下列語句后,變量sum的值是(的值是( ) int sum=0; for(int i=1;i=3;i+) for (int j=1;j=I;j+) sum+; 62007等級考試試題等級考試試題4.下面程序段的運行結果為(下面程序段的運行結果為( ) void main()() int i; for(i=1;i=4;i+) if(i%2)cout “*”; else continue; cout“#”; cout“$”endl; *#*#$5.下面程序段的運行結果
21、為(下面程序段的運行結果為( ) int i=0,a=0,s=1;do a=a+s*i; s=-s; i+; while(i10);cout“a=“aendl; -5習題課(習題課(1 1)54eg.求求n!(n由鍵盤輸入由鍵盤輸入)void main( ) int i,s,n; coutn; s=1; for (i=1; i=n;i+) s=s*i; couts; 【思考思考】求求 (即求即求1!+2!+10!)。)。 提示提示用雙重循環(huán)實現(xiàn)求和(外循環(huán)作累加,內(nèi)用雙重循環(huán)實現(xiàn)求和(外循環(huán)作累加,內(nèi)循環(huán)求階乘)循環(huán)求階乘) 101!nn eg.有一分數(shù)序列有一分數(shù)序列: 求這個數(shù)求這個數(shù)列前
22、列前10項之和。項之和。 提示提示 觀察分子、分母變化的規(guī)律。觀察分子、分母變化的規(guī)律。12233558分析分析 因為已知求前因為已知求前10項之和,所以利用項之和,所以利用for循循環(huán),循環(huán)環(huán),循環(huán)10次,每次算出當前項次,每次算出當前項 ai ,并并把它加到和把它加到和 s上。上。57void main( )float a, b, t, s;int i;a=2; /* 分子分子 */b=1; /* 分母分母 */s=0; 保證后面分子、分母保證后面分子、分母相除得到的是小數(shù)相除得到的是小數(shù)58for(i=1;i=10;i+) /* 控制循環(huán)控制循環(huán)10次次 */s+=a / b;t =a;
23、 /*必須引入中間變量必須引入中間變量 t */ a=a+b;b= t;coutsum=s;59e.g.求輸入的正整數(shù)求輸入的正整數(shù)m和和n的最大公約數(shù)的最大公約數(shù)算法算法 以以m=12,n=16為例說明為例說明循循 環(huán)環(huán)即即 輾轉相除法輾轉相除法: m%nr 若若r!=0,則則n m r n m%nr直到直到r=0時,輸出此時的時,輸出此時的n 即為所求。即為所求。60void main( ) int m,n,r;coutmn;61 r=m%n; while(r!=0)m=n;n=r;r=m%n; coutresult“ n; while( r )e.g.百元買百雞:用一百元錢買一百只雞。已
24、知百元買百雞:用一百元錢買一百只雞。已知公雞公雞5元元/只,母雞只,母雞3元元/只,小雞只,小雞1元元/3只。只。分析分析:這是個不定方程:這是個不定方程三元一次方程組問三元一次方程組問題(三個變量,兩個方程)題(三個變量,兩個方程) xyz=100 5x3yz/3=100設公雞為設公雞為x只,母雞為只,母雞為y只,小雞為只,小雞為z只。只。則則0 x 100、 0 y 100、 0 z 100void main( ) int x,y,z; for (x=0;x=100;x+) for (y=0;y=100;y+) for (z=0;z=100;z+) if (x+y+z=100 & 5*x+3*y+z/3.0=100 ) coutxyz; 【 討 論討 論 】 此 為此 為 “ 最 笨最 笨 ”
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 關鍵知識點的營養(yǎng)師資格證試題及答案
- 飲食與疾病預防相結合試題及答案
- 2024年營養(yǎng)師個人發(fā)展方向試題及答案
- 2025導游證資格考試新視角試題及答案
- 演出經(jīng)紀人資格證具體案例與試題答案
- 演出經(jīng)紀人資格證考試重點復習試題與答案
- 房地產(chǎn)經(jīng)紀資格考試心得與試題聯(lián)系方式
- 2024年演出經(jīng)紀人資格證全方位備考
- 深度解析演出經(jīng)紀人資格考試:試題及答案
- 購房者心理與需求分析試題及答案
- 山西和順隆華煤業(yè)有限責任公司煤炭資源開發(fā)利用和礦山環(huán)境保護與土地復墾方案
- 貨位編碼和儲位管理知識PPT倉庫貨區(qū)的布置與編碼方法
- 礦山工程施工合同施工合同
- DB13T 5186-2020橋梁預應力孔道壓漿密實度無損檢測技術規(guī)程
- 質量體系推行計劃表
- 2023年全國10月00054自考管理學原理試卷真題
- GB/T 9204-2008固定頂尖
- GB/T 13295-2019水及燃氣用球墨鑄鐵管、管件和附件
- CB/T 3155-1994帶纜輔助索
- 鳥類教學講解課件
- 3.1《太陽系大家庭》優(yōu)質課件
評論
0/150
提交評論