第講程序控制結(jié)構(gòu)_第1頁(yè)
第講程序控制結(jié)構(gòu)_第2頁(yè)
第講程序控制結(jié)構(gòu)_第3頁(yè)
第講程序控制結(jié)構(gòu)_第4頁(yè)
第講程序控制結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第3講 程序控制結(jié)構(gòu)1順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)2if語(yǔ)句 if (表達(dá)式) 語(yǔ)句1 else 語(yǔ)句2 關(guān)系表達(dá)式邏輯表達(dá)式數(shù)值表達(dá)式3 if (表達(dá)式) 語(yǔ)句1 else 語(yǔ)句2 簡(jiǎn)單的語(yǔ)句復(fù)合語(yǔ)句另一個(gè)if語(yǔ)句等4最常用的3種if語(yǔ)句形式1. if (表達(dá)式) 語(yǔ)句1 (沒(méi)有else子句)2. if (表達(dá)式) 語(yǔ)句1 else 語(yǔ)句2 (有else子句)3. if(表達(dá)式) 語(yǔ)句 else if(表達(dá)式) 語(yǔ)句 else if(表達(dá)式) 語(yǔ)句 else if(表達(dá)式) 語(yǔ)句 else 語(yǔ)句m+1 (在else部分又嵌套了多層的if語(yǔ)句)5選擇結(jié)構(gòu)的嵌套一般形式:if( ) if( ) 語(yǔ)句

2、1 else 語(yǔ)句2 else if( ) 語(yǔ)句3 else 語(yǔ)句4 內(nèi)嵌ifelse總是與它上面最近的未配對(duì)的if配對(duì)6switch語(yǔ)句switch語(yǔ)句的一般形式:switch(表達(dá)式) case 常量1 :語(yǔ)句1 case 常量2 :語(yǔ)句2 case 常量n :語(yǔ)句n default : 語(yǔ)句n+1整數(shù)類(lèi)型(包括字符型)7switch語(yǔ)句的作用是根據(jù)表達(dá)式的值,使流程跳轉(zhuǎn)到不同的語(yǔ)句switch語(yǔ)句的一般形式:switch(表達(dá)式) case 常量1 :語(yǔ)句1 case 常量2 :語(yǔ)句2 case 常量n :語(yǔ)句n default : 語(yǔ)句n+1不能相同8順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)9循環(huán)的定

3、義反復(fù)執(zhí)行相同的語(yǔ)句序列10while循環(huán)格式:while(表達(dá)式)語(yǔ)句序列語(yǔ)句序列稱(chēng)為循環(huán)體,當(dāng)為一條語(yǔ)句時(shí),表示復(fù)合語(yǔ)句的可以省略。表達(dá)式可以為任何類(lèi)型先判斷,后執(zhí)行,若條件不成立,有可能一次也不執(zhí)行。語(yǔ)句序列中必須有改變while后面括號(hào)的表達(dá)式值的語(yǔ)句,否則有可能死循環(huán)。11笑笑的煩惱問(wèn)題描述:笑笑作為數(shù)學(xué)課代表,每次考試后,數(shù)學(xué)老師都會(huì)讓他統(tǒng)計(jì)成績(jī),老師并不關(guān)心具體某個(gè)人的成績(jī),而只關(guān)心參加考試的人數(shù)、平均成績(jī)、最低分和最高分。輸入要求:第1行輸入T,表示組數(shù),第二行輸入一些 整數(shù),表示學(xué)生的成績(jī),每個(gè)數(shù)之間用一個(gè)空格分開(kāi),-1表示輸入結(jié)束。輸出要求:占4行,第一行表示學(xué)生人數(shù)n,第

4、二行表示最高分,第三行表示最低分,第四行表示平均分,其中只有平均分是小數(shù)(只保留一位小數(shù)),其余為整數(shù) 輸入實(shí)例:1 50 90 87 67 84 99 56 74 82 94 -1輸出實(shí)例:10 100 50 78.312回文數(shù)問(wèn)題描述:輸入一個(gè)整數(shù),判斷一個(gè)該數(shù)是否為回文數(shù)。輸入要求:輸入一系列的整數(shù)n,n100000000輸出要求:如果是回文數(shù)輸出Yes,如果不是回文數(shù)輸出No輸入樣例:1234 121 -12321 100輸出樣例:No Yes Yes No 13有沒(méi)有其他方法?14水仙花數(shù)春天是鮮花的季節(jié),水仙花就是其中最迷人的代表,數(shù)學(xué)上有個(gè)水仙花數(shù),他是這樣定義的:“水仙花數(shù)”是

5、指一個(gè)三位數(shù),它的各位數(shù)字的立方和等于其本身,比如:153=13+53+33?,F(xiàn)在要求輸出所有在m和n范圍內(nèi)的水仙花數(shù)。輸入要求:輸入數(shù)據(jù)有多組,每組占一行,包括兩個(gè)整數(shù)m和n(100=m=n=999)。輸出要求:對(duì)于每個(gè)測(cè)試實(shí)例,要求輸出所有在給定范圍內(nèi)的水仙花數(shù),就是說(shuō),輸出的水仙花數(shù)必須大于等于m,并且小于等于n,如果有多個(gè),則要求從小到大排列在一行內(nèi)輸出,之間用一個(gè)空格隔開(kāi);如果給定的范圍內(nèi)不存在水仙花數(shù),則輸出no;每個(gè)測(cè)試實(shí)例的輸出占一行。輸入樣例:100 120300 380輸出樣例:no370 371 15素?cái)?shù)因子問(wèn)題描述:輸入一個(gè)整數(shù),輸出它的所有素?cái)?shù)因子輸入要求:輸入一系列

6、的整數(shù)(0,1,-1除外),每行一個(gè)輸出要求:輸出所有的素?cái)?shù)因子,每個(gè)因子之間用1個(gè)空格分開(kāi),最后一個(gè)因子后面沒(méi)有空格輸入樣例: 8 30 125輸出樣例:2 2 2 2 3 5 5 5 516#includeusing namespace std;int main()int m,k=2;cinm;if(m0)cout-;m=-m;while(km)if(m%k=0)coutk ;m=m/k;elsek+;coutmendl;return 0;176174數(shù)字黑洞問(wèn)題描述:任意一個(gè)每位數(shù)字不完全相同的4位正整數(shù),將各位上數(shù)字重新組合成一個(gè)最大數(shù)和一個(gè)最小數(shù)相減,重復(fù)這個(gè)過(guò)程,必定得到6174。

7、輸入要求:輸入一系列的4位正整數(shù),占一行。輸出要求:占一行,最終得到6174的變換次數(shù)。輸入樣例:1234 1000 6174輸出樣例:3 5 018愛(ài)因斯坦走樓梯:有一條長(zhǎng)階梯,若每步跨2階,則最后剩1階;若每步跨3階,則最后剩2階;若每步跨5階,則最后剩4階;若每步跨6階,則最后剩5階;若每步跨7階,則最后正好一階不剩;問(wèn)該樓梯最少有多少階?19#includeusing namespace std;int main()int n=7;while(n%2!=1)|(n%3!=2)|(n%5!=4)|(n%6!=5) n=n+7;coutnendl;return 0;20#includeus

8、ing namespace std;int main()int n=7;while(!(n%2=1)&(n%3=2)&(n%5=4)&(n%6=5) n=n+7;coutnendl;return 0;21do while 循環(huán)語(yǔ)句格式:do語(yǔ)句序列 while(表達(dá)式);22最大公約數(shù)和最小公倍數(shù)問(wèn)題描述:從鍵盤(pán)上輸入兩個(gè)整數(shù),求它們的最大公約數(shù)和最小公倍數(shù)。輸入要求:每行輸入兩個(gè)整數(shù),每個(gè)整數(shù)之間用一個(gè)空格分開(kāi)。輸出要求:第一行輸出最大公約數(shù),第二行輸出最小公倍數(shù)輸入樣例:3 6 24 13輸出樣例:3 6 1 31223問(wèn)題描述:計(jì)算與正整數(shù)n相等的二進(jìn)制代碼中有1和0的個(gè)數(shù)。輸入要求:輸

9、入一些正整數(shù),每個(gè)占一行輸出要求:占兩行,第一行是1的個(gè)數(shù),第二行是0的個(gè)數(shù)。輸入樣例:8 93輸出樣例:1 3 5 224Cantor表問(wèn)題描述:現(xiàn)代數(shù)學(xué)的著名證明之一是Georg Cantor證明了有理數(shù)是可以枚舉的。他利用下面一張表來(lái)證明這一命題:1/1 1/2 1/3 1/4 1/5 2/1 2/2 2/3 2/43/1 3/2 3/3 4/1 4/2 5/1 我們以Z字型給上表每一項(xiàng)編號(hào) 。第1項(xiàng)是1/1 ,然后第2項(xiàng)是1/2,2/1,3/1,2/2.輸入描述:整數(shù)N(1N10000000)輸出描述:表中的第N項(xiàng) 樣例輸入:7樣例輸出:1/425#includeusing names

10、pace std;int main()int n,i,j;cinn;i=0;/斜線(xiàn)序號(hào)j=n;/第n項(xiàng)在某行的位置doi+;j=j-i;while(j0);j=j+i;if(i%2=0) coutj/i+1-jendl;else couti+1-j/jendl;return 0;26角谷猜想問(wèn)題描述:定義這樣一個(gè)整數(shù)函數(shù)f(n),當(dāng)n是偶數(shù)時(shí),f(n)=n/2;當(dāng)n是奇數(shù)時(shí),f(n)=(3n+1)/2。這個(gè)猜想是說(shuō):對(duì)于任意的整數(shù)n,計(jì)算f(n),f(f(n),f(f(f(n),.,若干步之后,總會(huì)得到1。對(duì)于給定的n,求出數(shù)字序列中第一次出現(xiàn)1的步數(shù)。輸入要求:輸入一些正整數(shù)n,每個(gè)正整數(shù)占

11、一行。輸出要求:占一行,輸出對(duì)應(yīng)n得到1的步數(shù)。輸入樣例:5 10輸出樣例:4 527while語(yǔ)句和dowhile語(yǔ)句 比較while語(yǔ)句是先判斷后執(zhí)行,只要不滿(mǎn)足條件,循環(huán)體語(yǔ)句根本不會(huì)執(zhí)行 dowhile語(yǔ)句是先執(zhí)行后判斷,不管條件是否滿(mǎn)足,循環(huán)體語(yǔ)句總會(huì)執(zhí)行一次 #include using namespace std;int main() int i,sum=0; cini; while(i=10) sum+=i;i+; coutsumendl; return 0;#include using namespace std;int main() int i,sum=0; cini; d

12、o sum+=i; i+; while(i=10); coutsumendl; return 0;28for循環(huán)語(yǔ)句格式:for (;) 語(yǔ)句序列語(yǔ)句序列稱(chēng)為循環(huán)體。當(dāng)語(yǔ)句序列只有單條語(yǔ)句,表示復(fù)合語(yǔ)句的可以省略。表達(dá)式1一般為賦值表達(dá)式,給控制變量賦初值;如果省略表達(dá)式1,這時(shí)for語(yǔ)句為如表達(dá)式2一般為關(guān)系表達(dá)式或邏輯表達(dá)式,稱(chēng)為循環(huán)控制條件表達(dá)式3一般為賦值表達(dá)式,給控制變量增量或減量for(;)。 29轉(zhuǎn)移語(yǔ)句continue語(yǔ)句形式:continue;功能:結(jié)束本次循環(huán),開(kāi)始下一次循環(huán)continue只能用在循環(huán)結(jié)構(gòu)中,而不能用于其它控制結(jié)構(gòu) 30#includeusing name

13、space std;int main() int k; for(k=100;k=200;k+) if(k%3=0) continue;coutk“ “; return 0;31break語(yǔ)句 格式:break;功能:跳出switch結(jié)構(gòu)或結(jié)束本層循環(huán)。說(shuō)明:break語(yǔ)句只能用于switch或循環(huán)結(jié)構(gòu)中 32#includeusing namespace std;#define PI 3.1415926int main() int r; double area; for(r=1;r100.0) break;coutareaendl; return 0;33階乘之和問(wèn)題描述:求非負(fù)整數(shù)的階乘之和

14、輸入要求:輸入一個(gè)非負(fù)整數(shù)n(n13),占一行輸出要求:占一行,階乘的和輸入樣例:0 5 12輸出樣例:1 154 522956314 34#include#includeusing namespace std;int main() int i,sum,p,n; while(cinn) sum=0; p=1;if(n0) exit(0); for(i=1;i=n;i+) p=p*i;sum=sum+p; coutsum+1endl; return 0;35分?jǐn)?shù)數(shù)列問(wèn)題描述:已知分?jǐn)?shù)數(shù)列 2/1,-3/2,5/3,-8/5, 對(duì)于輸入的正整數(shù)n,輸出對(duì)應(yīng)項(xiàng)的分?jǐn)?shù)。輸入要求:輸入一些 正整數(shù)n(n

15、50),分別占一行。輸出要求:占一行,表示分?jǐn)?shù)數(shù)列中的對(duì)應(yīng)項(xiàng)。輸入樣例:3 26輸出樣例:5/3 -317811/196418 36#includeusing namespace std;int main()int a=2,b=1,s=1,i;int n;cinn;for(i=2;i=n;i+)a=a+b;b=a-b;if(n%2=0) cout-1*a/bendl;else couta/b4),每個(gè)數(shù)占一行。輸出要求:占一行,兩個(gè)素?cái)?shù)的和。輸入樣例:4 20輸出樣例:2+2 3+1739有沒(méi)有問(wèn)題?40#include#include#includeusing namespace std;i

16、nt main()int i,p,q,n,p_flag,q_flag;cinn;if(n%2=1)|n4) cout數(shù)據(jù)輸入出錯(cuò)n”; exit(0);p=1;dop=p+1;q=n-p;p_flag=1;for(i=2;i=sqrt(p);i+) if(p%i=0) p_flag=0;break; q_flag=1;for(i=2;i=sqrt(q);i+) if(q%i=0) q_flag=0; break; while(p_flag*q_flag=0);coutp+qendl;return 0;41絕對(duì)素?cái)?shù)問(wèn)題描述:如果一個(gè)正整數(shù)是素?cái)?shù),它的反位數(shù)也是素?cái)?shù),這稱(chēng)這樣的數(shù)為絕對(duì)素?cái)?shù)。輸入要求:輸入一些正整數(shù)n,每個(gè)占一行輸出要求:占一行,輸出1到n之間名絕對(duì)素?cái)?shù)的個(gè)數(shù)。輸入樣例:10 20輸出樣例: 4 742#include#includeusing namespace std;int main() int i,j,k,m,flag1=0,f

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論