第3章控制語(yǔ)句_第1頁(yè)
第3章控制語(yǔ)句_第2頁(yè)
第3章控制語(yǔ)句_第3頁(yè)
第3章控制語(yǔ)句_第4頁(yè)
第3章控制語(yǔ)句_第5頁(yè)
已閱讀5頁(yè),還剩35頁(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 3章章 控制語(yǔ)句控制語(yǔ)句 算法的基本控制結(jié)構(gòu)有三種:順序結(jié)構(gòu)、算法的基本控制結(jié)構(gòu)有三種:順序結(jié)構(gòu)、 選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。為此,選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。為此,C+C+中提供了這中提供了這 三種控制語(yǔ)句,即順序控制語(yǔ)句、選擇控制三種控制語(yǔ)句,即順序控制語(yǔ)句、選擇控制 語(yǔ)句和循環(huán)控制語(yǔ)句。語(yǔ)句和循環(huán)控制語(yǔ)句。 3.1 順序控制語(yǔ)句順序控制語(yǔ)句 所謂所謂順序結(jié)構(gòu)順序結(jié)構(gòu),就是按照語(yǔ)句的順序一條一條地執(zhí),就是按照語(yǔ)句的順序一條一條地執(zhí) 行。順序控制語(yǔ)句是一類(lèi)簡(jiǎn)單的語(yǔ)句,包括表達(dá)式語(yǔ)行。順序控制語(yǔ)句是一類(lèi)簡(jiǎn)單的語(yǔ)句,包括表達(dá)式語(yǔ) 句、空語(yǔ)句和輸入輸出語(yǔ)句等。句、空語(yǔ)句和輸入輸出語(yǔ)句等。 表達(dá)式語(yǔ)句是任

2、何一個(gè)表達(dá)式加上一個(gè)分號(hào)。在表達(dá)式語(yǔ)句是任何一個(gè)表達(dá)式加上一個(gè)分號(hào)。在 C+程序中,有許多表達(dá)式語(yǔ)句。例如,以下都是表程序中,有許多表達(dá)式語(yǔ)句。例如,以下都是表 達(dá)式語(yǔ)句:達(dá)式語(yǔ)句: a=1+n*2; x=3,y=10,c=1; ab ? a+ : b+; 空語(yǔ)句空語(yǔ)句是指只有一個(gè)分號(hào)的語(yǔ)句(是指只有一個(gè)分號(hào)的語(yǔ)句(“;”)??梢?jiàn),)。可見(jiàn), 空語(yǔ)句是一種不做任何操作的語(yǔ)句。該語(yǔ)句用在一些空語(yǔ)句是一種不做任何操作的語(yǔ)句。該語(yǔ)句用在一些 需要一條語(yǔ)句,但又不做任何操作的地方。需要一條語(yǔ)句,但又不做任何操作的地方。 3.1.1 輸出輸出 C+定義了運(yùn)算符定義了運(yùn)算符“”的的iostream類(lèi),而類(lèi)

3、,而 “”就是用于處理內(nèi)部類(lèi)型的輸出。就是用于處理內(nèi)部類(lèi)型的輸出。 使用使用cout輸出流可在屏幕上顯示字符和數(shù)字。輸出流可在屏幕上顯示字符和數(shù)字。 C+提供了一些操縱符,可以直接嵌入到輸入提供了一些操縱符,可以直接嵌入到輸入 輸出語(yǔ)句中來(lái)實(shí)現(xiàn)輸出語(yǔ)句中來(lái)實(shí)現(xiàn)I/O格式控制。格式控制。 注意:在使用注意:在使用setprecision和和setw操縱符時(shí)要操縱符時(shí)要 在程序開(kāi)頭包含在程序開(kāi)頭包含iomanip.h。表。表3.1列出了幾個(gè)常列出了幾個(gè)常 用的用的I/O流類(lèi)庫(kù)操縱符。流類(lèi)庫(kù)操縱符。 操縱符名操縱符名含義含義 dec數(shù)值數(shù)據(jù)采用十進(jìn)制表示數(shù)值數(shù)據(jù)采用十進(jìn)制表示 hex數(shù)值數(shù)據(jù)采用十六

4、進(jìn)制表示數(shù)值數(shù)據(jù)采用十六進(jìn)制表示 oct數(shù)值數(shù)據(jù)采用八進(jìn)制表示數(shù)值數(shù)據(jù)采用八進(jìn)制表示 ws提取空白符提取空白符 endl插入換行符,并刷新流插入換行符,并刷新流 ends插入空字符插入空字符 setprecision(int)設(shè)置浮點(diǎn)數(shù)的小數(shù)位數(shù)(包括設(shè)置浮點(diǎn)數(shù)的小數(shù)位數(shù)(包括 小數(shù)點(diǎn))小數(shù)點(diǎn)) setw(int)設(shè)置域?qū)捲O(shè)置域?qū)?表表3.1 常用的常用的I/O流類(lèi)庫(kù)操縱符流類(lèi)庫(kù)操縱符 1顯示常數(shù)顯示常數(shù) 使用使用cout可以顯示字符串和數(shù)字,并可顯示多個(gè)值??梢燥@示字符串和數(shù)字,并可顯示多個(gè)值。 【例】【例】 分析以下程序的執(zhí)行結(jié)果。分析以下程序的執(zhí)行結(jié)果。 #include void ma

5、in() cout 1.2345678 endl; cout 1 2 3 4 n; cout Visual C+ 6.0 endl; 1.23457 /只顯示只顯示6個(gè)有效數(shù)字個(gè)有效數(shù)字 1234 Visual C+ 6 2八進(jìn)制和十六進(jìn)制數(shù)的輸出八進(jìn)制和十六進(jìn)制數(shù)的輸出 在某些情況下,程序需要以八進(jìn)制或十六進(jìn)制在某些情況下,程序需要以八進(jìn)制或十六進(jìn)制 數(shù)的形式輸出。數(shù)的形式輸出。C+提供了簡(jiǎn)單的實(shí)現(xiàn)方法:只提供了簡(jiǎn)單的實(shí)現(xiàn)方法:只 要在輸出流中輸出操縱符要在輸出流中輸出操縱符dec(十進(jìn)制)、(十進(jìn)制)、oct (八進(jìn)制)或(八進(jìn)制)或hex(十六進(jìn)制)即可。(十六進(jìn)制)即可。 注意:一旦使

6、用了進(jìn)制操縱符,該操縱符的作注意:一旦使用了進(jìn)制操縱符,該操縱符的作 用域一直連續(xù)到程序結(jié)束,或者遇到另一個(gè)進(jìn)制用域一直連續(xù)到程序結(jié)束,或者遇到另一個(gè)進(jìn)制 操縱符。操縱符。 【例】【例】 分析以下程序的執(zhí)行結(jié)果。分析以下程序的執(zhí)行結(jié)果。 #include void main() int n=100; cout 十進(jìn)制十進(jìn)制: dec n endl; cout 八進(jìn)制八進(jìn)制: oct n endl; cout 十六進(jìn)制十六進(jìn)制: hex n endl; 十進(jìn)制十進(jìn)制:100 八進(jìn)制八進(jìn)制:144 十六進(jìn)制十六進(jìn)制:64 3控制輸出寬度控制輸出寬度 C+提供的提供的setw操縱符可以指定每個(gè)數(shù)值占

7、用的操縱符可以指定每個(gè)數(shù)值占用的 寬度,即這個(gè)字符占用的最小字符長(zhǎng)度。寬度,即這個(gè)字符占用的最小字符長(zhǎng)度。 當(dāng)用當(dāng)用setw設(shè)置的寬度小于實(shí)際寬度時(shí),該設(shè)置無(wú)設(shè)置的寬度小于實(shí)際寬度時(shí),該設(shè)置無(wú) 效。效。 注意:注意:setw操縱符只對(duì)緊跟著它的數(shù)值有效。如操縱符只對(duì)緊跟著它的數(shù)值有效。如 果要為多個(gè)數(shù)值設(shè)定寬度,必須多次使用果要為多個(gè)數(shù)值設(shè)定寬度,必須多次使用setw操縱符。操縱符。 【例】【例】 分析以下程序的執(zhí)行結(jié)果。分析以下程序的執(zhí)行結(jié)果。 #include #include void main() double f=123.45; cout setw(10) 1234567890 en

8、dl; cout setw(10) f endl; cout setw(8) f endl; cout setw(6) f endl; cout setw(4) f endl; 執(zhí)行結(jié)果:執(zhí)行結(jié)果: 4控制輸出精度控制輸出精度 C+提供的提供的setprecision操縱符可以設(shè)置顯示數(shù)值的操縱符可以設(shè)置顯示數(shù)值的 精度。精度。 注意:一旦使用了注意:一旦使用了setprecision操縱符,該操縱符操縱符,該操縱符 的作用域一直連續(xù)到程序結(jié)束,或者遇到另一個(gè)的作用域一直連續(xù)到程序結(jié)束,或者遇到另一個(gè) setprecision操縱符。操縱符。 【例】【例】 分析以下程序的執(zhí)行結(jié)果。分析以下程序

9、的執(zhí)行結(jié)果。 #include #include void main() double d=123.456789; cout d endl; cout setprecision(7) d endl; cout setprecision(8) d endl; cout setprecision(9) d ”送到程序指定的變量中。因此,用戶(hù)送到程序指定的變量中。因此,用戶(hù) 輸入數(shù)據(jù)時(shí)要避免輸入的數(shù)據(jù)超出指定變量的值輸入數(shù)據(jù)時(shí)要避免輸入的數(shù)據(jù)超出指定變量的值 域。域。 【例】【例】 分析以下程序的執(zhí)行結(jié)果。分析以下程序的執(zhí)行結(jié)果。 #include void main() int i,j; cout

10、 i j; cout i + j = i+j endl; i j=12 45 12+45=57 3.2 3.2 選擇控制語(yǔ)句選擇控制語(yǔ)句 C+中的選擇控制語(yǔ)句有中的選擇控制語(yǔ)句有if語(yǔ)句、語(yǔ)句、if.else語(yǔ)句、語(yǔ)句、 if.else if語(yǔ)句和語(yǔ)句和switch語(yǔ)句。語(yǔ)句。 3.2.1 if語(yǔ)句語(yǔ)句 if語(yǔ)句用于在程序中有條件地執(zhí)行某一語(yǔ)句序列,語(yǔ)句用于在程序中有條件地執(zhí)行某一語(yǔ)句序列, 它有如下兩種基本語(yǔ)法格式:它有如下兩種基本語(yǔ)法格式: if (條件表達(dá)式條件表達(dá)式) 語(yǔ)句語(yǔ)句; if (條件表達(dá)式條件表達(dá)式) 語(yǔ)句序列語(yǔ)句序列; ; 【例】以下錯(cuò)誤的語(yǔ)句為【例】以下錯(cuò)誤的語(yǔ)句為 。

11、A.if (xy); B.if (x=y) C.if (x!=y) scanf(%d,else scanf(%d, D.if (xy) x+;y+; 答:答:if語(yǔ)句的條件必須包含在一個(gè)括號(hào)中。本題答語(yǔ)句的條件必須包含在一個(gè)括號(hào)中。本題答 案為:案為:B。 3.2.2 if.else語(yǔ)句語(yǔ)句 如果希望在如果希望在“條件表達(dá)式條件表達(dá)式”為真和為假時(shí)分別執(zhí)為真和為假時(shí)分別執(zhí) 行不同的語(yǔ)句,則用行不同的語(yǔ)句,則用else來(lái)引入條件表達(dá)式為假時(shí)執(zhí)來(lái)引入條件表達(dá)式為假時(shí)執(zhí) 行的語(yǔ)句序列,這就是行的語(yǔ)句序列,這就是if.else語(yǔ)句,它根據(jù)不同的條語(yǔ)句,它根據(jù)不同的條 件分別執(zhí)行不同的語(yǔ)句序列,其語(yǔ)法形

12、式如下:件分別執(zhí)行不同的語(yǔ)句序列,其語(yǔ)法形式如下: if (條件表達(dá)式條件表達(dá)式) 語(yǔ)句序列語(yǔ)句序列1; else 語(yǔ)句序列語(yǔ)句序列2; 【例】為了避免在嵌套的條件語(yǔ)句【例】為了避免在嵌套的條件語(yǔ)句if-else中產(chǎn)生二中產(chǎn)生二 義性,義性,C語(yǔ)言規(guī)定:語(yǔ)言規(guī)定:else 子句總是與子句總是與 配對(duì)。配對(duì)。 A.縮排位置相同的縮排位置相同的if B.同一行上的同一行上的if C.其之后最近的其之后最近的if D.其之前最近的其之前最近的if 答:本題答案為:答:本題答案為:D。 【例】以下程序的輸出結(jié)果是【例】以下程序的輸出結(jié)果是 。 #include main() int x=2,y=-1,

13、z=2; if(xy) if(y0) z=0; else z+=1; printf(%dn,z); A.3B.2 C.1D.0 答:答:xy為假,直接執(zhí)行為假,直接執(zhí)行printf語(yǔ)句。本題答案為:語(yǔ)句。本題答案為:B。 【例】以下程序判斷輸入的年份是否為閏年(凡是能【例】以下程序判斷輸入的年份是否為閏年(凡是能 被被400整除的,或不能被整除的,或不能被100整除但能被整除但能被4整除的年份為整除的年份為 閏年)。閏年)。 #include void main() int year,rem4,rem100,rem400; cout year; rem400=year%400; rem100=

14、year%100; rem4=year%4; if (rem400=0) | (rem4=0) else cout year 不是閏年不是閏年 endl; 程序執(zhí)行:程序執(zhí)行: 輸入年份輸入年份:2006 2006不是閏年不是閏年 3.2.3 if.else if語(yǔ)句語(yǔ)句 if.else if語(yǔ)句用于進(jìn)行多重判斷,其語(yǔ)法語(yǔ)句用于進(jìn)行多重判斷,其語(yǔ)法 形式如下:形式如下: if (條件表達(dá)式條件表達(dá)式1) 語(yǔ)句語(yǔ)句1; else if (條件表達(dá)式條件表達(dá)式2) 語(yǔ)句語(yǔ)句2; else if (條件表達(dá)式條件表達(dá)式n) 語(yǔ)句語(yǔ)句n; else 語(yǔ)句語(yǔ)句n+1; 【例】【例】 以下程序?qū)⒂脩?hù)輸入的

15、分?jǐn)?shù)轉(zhuǎn)換成等級(jí):以下程序?qū)⒂脩?hù)輸入的分?jǐn)?shù)轉(zhuǎn)換成等級(jí): A(90),),B(8089),),C(7079),),D(60 69),),E(60)。)。 #include void main() float x; cout x; if (x=90) cout A =80) cout B =70) cout C =60) cout D endl; else cout E endl; 3.2.4 switch語(yǔ)句語(yǔ)句 switch語(yǔ)句也稱(chēng)為開(kāi)關(guān)語(yǔ)句,用于有多重選擇的場(chǎng)語(yǔ)句也稱(chēng)為開(kāi)關(guān)語(yǔ)句,用于有多重選擇的場(chǎng) 合,測(cè)試某一個(gè)變量具有多個(gè)值時(shí)所執(zhí)行的動(dòng)作。合,測(cè)試某一個(gè)變量具有多個(gè)值時(shí)所執(zhí)行的動(dòng)作。 swi

16、tch語(yǔ)句的語(yǔ)法形式為:語(yǔ)句的語(yǔ)法形式為: switch (整型表達(dá)式整型表達(dá)式) case 整型常量表達(dá)式整型常量表達(dá)式1: 語(yǔ)句序列語(yǔ)句序列1; case 整型常量表達(dá)式整型常量表達(dá)式2: 語(yǔ)句序列語(yǔ)句序列2; case 整型常量表達(dá)式整型常量表達(dá)式n: 語(yǔ)句序列語(yǔ)句序列n; default:語(yǔ)句語(yǔ)句n+1; switch語(yǔ)句的執(zhí)行順序是:首先計(jì)算語(yǔ)句的執(zhí)行順序是:首先計(jì)算switch語(yǔ)句中語(yǔ)句中 “整型表達(dá)式整型表達(dá)式”的值,然后在的值,然后在case語(yǔ)句中尋找值相等語(yǔ)句中尋找值相等 的整型常量表達(dá)式,并以此為入口標(biāo)號(hào),由此開(kāi)始順的整型常量表達(dá)式,并以此為入口標(biāo)號(hào),由此開(kāi)始順 序執(zhí)行。如

17、果沒(méi)有找到相等的整型常量表達(dá)式,則從序執(zhí)行。如果沒(méi)有找到相等的整型常量表達(dá)式,則從 “default:”開(kāi)始執(zhí)行。開(kāi)始執(zhí)行。 使用使用switch語(yǔ)句應(yīng)注意下列問(wèn)題:語(yǔ)句應(yīng)注意下列問(wèn)題: (1)整型表達(dá)式包括字符型或枚舉型表達(dá)式。)整型表達(dá)式包括字符型或枚舉型表達(dá)式。 (2)各常量表達(dá)式的值不能相同,但次序不影)各常量表達(dá)式的值不能相同,但次序不影 響執(zhí)行結(jié)果。響執(zhí)行結(jié)果。 (3)每個(gè))每個(gè)case分支可以有多條語(yǔ)句,但不必用分支可以有多條語(yǔ)句,但不必用。 (4)每個(gè))每個(gè)case語(yǔ)句只是一個(gè)入口標(biāo)號(hào),并不能語(yǔ)句只是一個(gè)入口標(biāo)號(hào),并不能 確定執(zhí)行的終止點(diǎn),因此每個(gè)確定執(zhí)行的終止點(diǎn),因此每個(gè)ca

18、se分支的最后應(yīng)該分支的最后應(yīng)該 加加break語(yǔ)句,用來(lái)結(jié)束整個(gè)語(yǔ)句,用來(lái)結(jié)束整個(gè)switch結(jié)構(gòu),否則會(huì)結(jié)構(gòu),否則會(huì) 從入口點(diǎn)開(kāi)始一直執(zhí)行到從入口點(diǎn)開(kāi)始一直執(zhí)行到switch結(jié)構(gòu)的結(jié)束點(diǎn)。結(jié)構(gòu)的結(jié)束點(diǎn)。 (5)當(dāng)若干分支需要執(zhí)行相同操作時(shí),可以使)當(dāng)若干分支需要執(zhí)行相同操作時(shí),可以使 多個(gè)多個(gè)case分支共用一組語(yǔ)句。分支共用一組語(yǔ)句。 如:如: case 1: case 2: printf(“case1和和2n”); 注意:可以使用注意:可以使用break退出退出switch語(yǔ)句的執(zhí)行。語(yǔ)句的執(zhí)行。 如:如: case 1: printf(“case1n”); break; case 2

19、: printf(“case2n”); 【例】有以下程序:【例】有以下程序: #include main() int a=15,b=21,m=0; switch(a%3) case 0:m+;break; case 1:m+; switch(b%2) default:m+; case 0:m+;break; printf(%dn,m); 程序運(yùn)行后的輸出結(jié)果程序運(yùn)行后的輸出結(jié)果 是是 。 A.1B.2 C.3D.4 答:答:a%3=0,執(zhí)行,執(zhí)行m+和和 printf語(yǔ)句。本題答案為:語(yǔ)句。本題答案為:A。 3.3 3.3 循環(huán)控制語(yǔ)句循環(huán)控制語(yǔ)句 循環(huán)控制語(yǔ)句提供重復(fù)處理的能力,當(dāng)某一特定循

20、環(huán)控制語(yǔ)句提供重復(fù)處理的能力,當(dāng)某一特定 條件為真時(shí),循環(huán)語(yǔ)句就重復(fù)執(zhí)行,并且每循環(huán)一次,條件為真時(shí),循環(huán)語(yǔ)句就重復(fù)執(zhí)行,并且每循環(huán)一次, 就會(huì)測(cè)試一下循環(huán)條件,如果為假,則循環(huán)結(jié)束,否就會(huì)測(cè)試一下循環(huán)條件,如果為假,則循環(huán)結(jié)束,否 則繼續(xù)循環(huán)。則繼續(xù)循環(huán)。 C+支持三種格式的循環(huán)控制語(yǔ)句:支持三種格式的循環(huán)控制語(yǔ)句:while、do和和 for語(yǔ)句。三者可以完成類(lèi)似的功能,不同的是它們語(yǔ)句。三者可以完成類(lèi)似的功能,不同的是它們 控制循環(huán)的方式??刂蒲h(huán)的方式。 3.3.1 while語(yǔ)句語(yǔ)句 while語(yǔ)句的一般形式為:語(yǔ)句的一般形式為: while (條件表達(dá)式條件表達(dá)式) 語(yǔ)句語(yǔ)句; 當(dāng)

21、當(dāng)“條件表達(dá)式條件表達(dá)式”的運(yùn)算結(jié)果為真時(shí),則重復(fù)的運(yùn)算結(jié)果為真時(shí),則重復(fù) 執(zhí)行執(zhí)行“語(yǔ)句語(yǔ)句”。每執(zhí)行一次。每執(zhí)行一次“語(yǔ)句語(yǔ)句”后,就會(huì)重后,就會(huì)重 新計(jì)算一次新計(jì)算一次“條件表達(dá)式條件表達(dá)式”,當(dāng)該表達(dá)式的值為,當(dāng)該表達(dá)式的值為 假時(shí),循環(huán)結(jié)束。假時(shí),循環(huán)結(jié)束。 【例】設(shè)有以下程序段:【例】設(shè)有以下程序段: int x=0,s=0; while(!x!=0) s+=+x; printf(%d,s); 則則_。 A.運(yùn)行程序段后輸出運(yùn)行程序段后輸出0 B.運(yùn)行程序段后輸出運(yùn)行程序段后輸出1 C.程序段中的控制表達(dá)式是非法的程序段中的控制表達(dá)式是非法的D.程序段執(zhí)行無(wú)限次程序段執(zhí)行無(wú)限次 答

22、:答:x=0,!x=1,!x!=0為真,執(zhí)行為真,執(zhí)行s+=+x,+x返返 回回1,x=1,s=s+1=1;x=1,!x=0,!x!=0為假,不再執(zhí)為假,不再執(zhí) 行循環(huán)語(yǔ)句。本題答案為:行循環(huán)語(yǔ)句。本題答案為:B。 3.3.2 do語(yǔ)句語(yǔ)句 do語(yǔ)句的一般形式為:語(yǔ)句的一般形式為: do 語(yǔ)句;語(yǔ)句; while (條件表達(dá)式條件表達(dá)式); do語(yǔ)句每一次循環(huán)執(zhí)行一次語(yǔ)句每一次循環(huán)執(zhí)行一次“語(yǔ)句語(yǔ)句”,然后計(jì)算,然后計(jì)算 “條件表達(dá)式條件表達(dá)式”是否為真,如果是,則繼續(xù)執(zhí)行循環(huán),是否為真,如果是,則繼續(xù)執(zhí)行循環(huán), 否則結(jié)束循環(huán)。與否則結(jié)束循環(huán)。與while語(yǔ)句不同的是,語(yǔ)句不同的是,do循環(huán)中

23、的循環(huán)中的 “語(yǔ)句語(yǔ)句”至少會(huì)執(zhí)行一次,而至少會(huì)執(zhí)行一次,而while語(yǔ)句當(dāng)條件第一次語(yǔ)句當(dāng)條件第一次 就不滿足時(shí),語(yǔ)句一次也不會(huì)被執(zhí)行。就不滿足時(shí),語(yǔ)句一次也不會(huì)被執(zhí)行。 【例】有以下程序段:【例】有以下程序段: int n=0,p; do scanf(%d,n+; while(p!=12345 此處此處do-while循環(huán)的結(jié)束條件是循環(huán)的結(jié)束條件是 。 A.p的值不等于的值不等于12345并且并且n的值小于的值小于3 B.p的值等于的值等于12345并且并且n的值大于等于的值大于等于3 C.p的值不等于的值不等于12345或者或者n的值小于的值小于3 D.p的值等于的值等于12345或者

24、或者n的值大于等于的值大于等于3 答:答:do-while循環(huán)的結(jié)束條件為循環(huán)的結(jié)束條件為! (p!=12345 表達(dá)式表達(dá)式1;表達(dá)式表達(dá)式2) 語(yǔ)句語(yǔ)句; 其中,其中,“初始化語(yǔ)句初始化語(yǔ)句”可以是一個(gè)定義語(yǔ)句或表達(dá)可以是一個(gè)定義語(yǔ)句或表達(dá) 式語(yǔ)句,一般用于對(duì)一組變量進(jìn)行初始化或賦值。式語(yǔ)句,一般用于對(duì)一組變量進(jìn)行初始化或賦值。 “表達(dá)式表達(dá)式1”用于控制循環(huán),當(dāng)它的值為真時(shí),循環(huán)會(huì)用于控制循環(huán),當(dāng)它的值為真時(shí),循環(huán)會(huì) 繼續(xù)下去,而它一旦為假,則終止循環(huán)。繼續(xù)下去,而它一旦為假,則終止循環(huán)?!氨磉_(dá)式表達(dá)式2” 在每次循環(huán)執(zhí)行完成后執(zhí)行,一般用于改變控制循環(huán)在每次循環(huán)執(zhí)行完成后執(zhí)行,一般用于

25、改變控制循環(huán) 的變量。的變量?!罢Z(yǔ)句語(yǔ)句”在在“表達(dá)式表達(dá)式1”為真時(shí)執(zhí)行。具體來(lái)為真時(shí)執(zhí)行。具體來(lái) 說(shuō),說(shuō),for循環(huán)的執(zhí)行過(guò)程為:循環(huán)的執(zhí)行過(guò)程為: 執(zhí)行執(zhí)行“初始化語(yǔ)句初始化語(yǔ)句”; 計(jì)算計(jì)算“表達(dá)式表達(dá)式1”的值;的值; 如果如果“表達(dá)式表達(dá)式1”的值為真,先執(zhí)行后面的的值為真,先執(zhí)行后面的“語(yǔ)語(yǔ) 句句”,再執(zhí)行,再執(zhí)行“表達(dá)式表達(dá)式2”,然后轉(zhuǎn)向步驟,然后轉(zhuǎn)向步驟;如果;如果 “表達(dá)式表達(dá)式1”的值為假,則結(jié)束循環(huán)。的值為假,則結(jié)束循環(huán)。 【例】以下程序的輸出結(jié)果是【例】以下程序的輸出結(jié)果是 。 #include main() int a=0,i; for(i=1;i5;i+) sw

26、itch(i) case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; printf(%dn,a); A.31B.13 C.10D.20 答:答:i=1,執(zhí)行,執(zhí)行a+=3和和 a+=5語(yǔ)句,語(yǔ)句,a=8;i=2,執(zhí)行,執(zhí)行 a+=3和和a+=5語(yǔ)句,語(yǔ)句,a=16; i=3,執(zhí)行,執(zhí)行a+=2、a+=3和和 a+=5語(yǔ)句,語(yǔ)句,a=26;i=4,執(zhí),執(zhí) 行行a+=5語(yǔ)句,語(yǔ)句,a=31。本題答。本題答 案為:案為:A。 【例】下面程序的功能是:計(jì)算【例】下面程序的功能是:計(jì)算1到到10之間奇數(shù)之之間奇數(shù)之 和及偶數(shù)之和,請(qǐng)?zhí)羁?。和及偶?shù)

27、之和,請(qǐng)?zhí)羁铡?#include main() int a,b,c,i; a=c=0; for (i=0;i10;i+=2) a+=i; ; c+=b; printf(偶數(shù)之和偶數(shù)之和=%dn,a); printf(奇數(shù)之和奇數(shù)之和=%dn,c); 答:參見(jiàn)本節(jié)要點(diǎn)答:參見(jiàn)本節(jié)要點(diǎn)1。for循循 環(huán)中環(huán)中i掃描所有偶數(shù),掃描所有偶數(shù),b掃描掃描 所有奇數(shù)。本題答案為:所有奇數(shù)。本題答案為: b=i+1。 3.4 3.4 跳跳 轉(zhuǎn)轉(zhuǎn) 語(yǔ)語(yǔ) 句句 跳轉(zhuǎn)語(yǔ)句用于中斷當(dāng)前一段程序的執(zhí)行,跳轉(zhuǎn)到跳轉(zhuǎn)語(yǔ)句用于中斷當(dāng)前一段程序的執(zhí)行,跳轉(zhuǎn)到 其他地方繼續(xù)執(zhí)行。跳轉(zhuǎn)語(yǔ)句包括其他地方繼續(xù)執(zhí)行。跳轉(zhuǎn)語(yǔ)句包括break、continue和和 goto語(yǔ)句。語(yǔ)句。 3.4.1 break語(yǔ)句語(yǔ)句 break語(yǔ)句將使程序從當(dāng)前的循環(huán)語(yǔ)句(語(yǔ)句將使程序從當(dāng)前的循環(huán)語(yǔ)句(do、while 和和for)內(nèi)跳轉(zhuǎn)出來(lái),接著執(zhí)行循環(huán)語(yǔ)句后面的語(yǔ)句。)內(nèi)跳轉(zhuǎn)出來(lái),接著執(zhí)行循環(huán)語(yǔ)句后面的語(yǔ)句。 【例】以下程序的輸出結(jié)果是【例】以下程序的輸出結(jié)果是 。 #include main() int i=0,a=0; while(i20) for(;) if (i%10=0) break; else i-; i+=11; a+=i; printf(%dn,a)

溫馨提示

  • 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)論