![第5章_循環(huán)結(jié)構(gòu)_3_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/3/09c9b73d-de9d-49c4-9ac2-9972957ca0d2/09c9b73d-de9d-49c4-9ac2-9972957ca0d21.gif)
![第5章_循環(huán)結(jié)構(gòu)_3_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/3/09c9b73d-de9d-49c4-9ac2-9972957ca0d2/09c9b73d-de9d-49c4-9ac2-9972957ca0d22.gif)
![第5章_循環(huán)結(jié)構(gòu)_3_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/3/09c9b73d-de9d-49c4-9ac2-9972957ca0d2/09c9b73d-de9d-49c4-9ac2-9972957ca0d23.gif)
![第5章_循環(huán)結(jié)構(gòu)_3_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/3/09c9b73d-de9d-49c4-9ac2-9972957ca0d2/09c9b73d-de9d-49c4-9ac2-9972957ca0d24.gif)
![第5章_循環(huán)結(jié)構(gòu)_3_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-7/3/09c9b73d-de9d-49c4-9ac2-9972957ca0d2/09c9b73d-de9d-49c4-9ac2-9972957ca0d25.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 循環(huán)結(jié)構(gòu)代表語(yǔ)句循環(huán)結(jié)構(gòu)代表語(yǔ)句 break語(yǔ)句和語(yǔ)句和continue語(yǔ)句語(yǔ)句 3 5 程序舉例程序舉例 4 1 1 2 循環(huán)結(jié)構(gòu)的概念循環(huán)結(jié)構(gòu)的概念 1 4 循環(huán)的嵌套循環(huán)的嵌套 第五章第五章 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)三種基本結(jié)構(gòu)之一,是用來(lái)實(shí)現(xiàn)循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)三種基本結(jié)構(gòu)之一,是用來(lái)實(shí)現(xiàn) 在某個(gè)條件的控制下,反復(fù)地在某個(gè)條件的控制下,反復(fù)地 執(zhí)行某些相同的操作的結(jié)構(gòu)。執(zhí)行某些相同的操作的結(jié)構(gòu)。 循環(huán)條件循環(huán)條件 循環(huán)體(循環(huán)體語(yǔ)句)循環(huán)體(循環(huán)體語(yǔ)句) 循環(huán)條件通常由關(guān)系表達(dá)式或邏輯表達(dá)式表示,當(dāng)然也可以用其循環(huán)條件通常由關(guān)系表達(dá)式或邏輯表達(dá)式表示,當(dāng)然也可以
2、用其 它任意的合法的表達(dá)式來(lái)表示。若表達(dá)式的值為非它任意的合法的表達(dá)式來(lái)表示。若表達(dá)式的值為非0值,則認(rèn)為循環(huán)條值,則認(rèn)為循環(huán)條 件是成立的;反之,認(rèn)為循環(huán)條件不成立。在循環(huán)條件中出現(xiàn)的,起件是成立的;反之,認(rèn)為循環(huán)條件不成立。在循環(huán)條件中出現(xiàn)的,起 決定性作用的變量被稱為決定性作用的變量被稱為“循環(huán)變量循環(huán)變量”或或“循環(huán)控制變量循環(huán)控制變量”。 循環(huán)體語(yǔ)句可以是任意合法的語(yǔ)句,它們被看作為一組順序結(jié)構(gòu)的語(yǔ)循環(huán)體語(yǔ)句可以是任意合法的語(yǔ)句,它們被看作為一組順序結(jié)構(gòu)的語(yǔ) 句。也就是說(shuō),當(dāng)循環(huán)體被執(zhí)行時(shí),首先執(zhí)行其中的第一條語(yǔ)句,然句。也就是說(shuō),當(dāng)循環(huán)體被執(zhí)行時(shí),首先執(zhí)行其中的第一條語(yǔ)句,然 后是
3、第二條語(yǔ)句,以此類推直至最后一條語(yǔ)句被執(zhí)行完畢,此時(shí)即認(rèn)后是第二條語(yǔ)句,以此類推直至最后一條語(yǔ)句被執(zhí)行完畢,此時(shí)即認(rèn) 為這一次的循環(huán)體執(zhí)行結(jié)束。為這一次的循環(huán)體執(zhí)行結(jié)束。 5.1 循環(huán)結(jié)構(gòu)的概念循環(huán)結(jié)構(gòu)的概念 【例【例5.15.1】輸入若干學(xué)生的成績(jī)(輸】輸入若干學(xué)生的成績(jī)(輸 入為負(fù)數(shù)時(shí)表示輸入結(jié)束),求入為負(fù)數(shù)時(shí)表示輸入結(jié)束),求 其最高分及最低分。其最高分及最低分。 No Image No Image 循環(huán)體循環(huán)體 5.1 循環(huán)結(jié)構(gòu)的概念循環(huán)結(jié)構(gòu)的概念 while語(yǔ)句的一般形式語(yǔ)句的一般形式 while(循環(huán)條件表達(dá)式循環(huán)條件表達(dá)式) 循環(huán)體語(yǔ)句循環(huán)體語(yǔ)句 No Image while語(yǔ)
4、句的流程圖語(yǔ)句的流程圖 5.2 while語(yǔ)句語(yǔ)句 【例【例5.25.2】給出以下程序的運(yùn)行結(jié)果、循環(huán)體執(zhí)行的次數(shù)及程序】給出以下程序的運(yùn)行結(jié)果、循環(huán)體執(zhí)行的次數(shù)及程序 的功能。的功能。 運(yùn)行結(jié)果:運(yùn)行結(jié)果: 3 6 9 12 15 183 6 9 12 15 18 循環(huán)體執(zhí)行的次數(shù)為:循環(huán)體執(zhí)行的次數(shù)為:2020次次 程序的功能是:程序的功能是: 打印打印1 12020中能被中能被3 3整除的數(shù)整除的數(shù) 5.2 while語(yǔ)句語(yǔ)句 #include void main( ) int i=1; while(i=20) if(i%3= =0) printf(%5d,i); i+; 【例【例5.4
5、5.4】計(jì)算】計(jì)算1 1100100的累加和的累加和sumsum。 運(yùn)行結(jié)果:運(yùn)行結(jié)果: sum = 5050 sum = 5050 5.2 while語(yǔ)句語(yǔ)句 #include void main() int i,sum; i=1, sum=0; while( i=100) sum+=i; i+; printf(sum = %dn, sum); 說(shuō)明:說(shuō)明: 5.2 while語(yǔ)句語(yǔ)句 1 1)循環(huán)條件表達(dá)式)循環(huán)條件表達(dá)式 若循環(huán)條件由多個(gè)子條件組成,則應(yīng)根據(jù)算法需要,用若循環(huán)條件由多個(gè)子條件組成,則應(yīng)根據(jù)算法需要,用 邏輯運(yùn)算符(邏輯運(yùn)算符( scanf(x=%d, while(x10)
6、 x-; printf(%d ,x); 5.2 while語(yǔ)句語(yǔ)句 3)避免死循環(huán))避免死循環(huán) 在在while語(yǔ)句的循環(huán)條件表達(dá)式或循環(huán)體語(yǔ)句中,必須有使語(yǔ)句的循環(huán)條件表達(dá)式或循環(huán)體語(yǔ)句中,必須有使 得循環(huán)條件表達(dá)式的值變?yōu)榈醚h(huán)條件表達(dá)式的值變?yōu)?(假)的操作,否則循環(huán)將無(wú)限(假)的操作,否則循環(huán)將無(wú)限 的執(zhí)行下去,這樣的循環(huán)稱為的執(zhí)行下去,這樣的循環(huán)稱為“死循環(huán)死循環(huán)”。在設(shè)計(jì)循環(huán)結(jié)構(gòu)時(shí)。在設(shè)計(jì)循環(huán)結(jié)構(gòu)時(shí) , 一定要注意避免死循環(huán)。一定要注意避免死循環(huán)。 4)循環(huán)體語(yǔ)句)循環(huán)體語(yǔ)句 一條語(yǔ)句一條語(yǔ)句 一組語(yǔ)句一組語(yǔ)句 一個(gè)空語(yǔ)句一個(gè)空語(yǔ)句 循環(huán)體語(yǔ)句是一條語(yǔ)句時(shí),其即可與循環(huán)體語(yǔ)句是一條語(yǔ)
7、句時(shí),其即可與while同同 行,也可在行,也可在while下一行。下一行。 循環(huán)體語(yǔ)句是一組語(yǔ)句時(shí),必須用循環(huán)體語(yǔ)句是一組語(yǔ)句時(shí),必須用 括起來(lái),括起來(lái), 組成一個(gè)復(fù)合語(yǔ)句。組成一個(gè)復(fù)合語(yǔ)句。循環(huán)體語(yǔ)句是空語(yǔ)句時(shí),循環(huán)體語(yǔ)句是空語(yǔ)句時(shí),while語(yǔ)句可寫(xiě)為語(yǔ)句可寫(xiě)為 while ( 循環(huán)條件表達(dá)式循環(huán)條件表達(dá)式 ) ; dowhiledowhile語(yǔ)句的一般形式語(yǔ)句的一般形式 do 循環(huán)體語(yǔ)句循環(huán)體語(yǔ)句 while(循環(huán)條件表達(dá)式循環(huán)條件表達(dá)式); No Image 流程圖流程圖 5.3 do while語(yǔ)句語(yǔ)句 【例【例5.9】寫(xiě)出以下程序的運(yùn)行結(jié)果?!繉?xiě)出以下程序的運(yùn)行結(jié)果。 程序的運(yùn)行
8、結(jié)果:程序的運(yùn)行結(jié)果: 1 -2 -3 5.3 do while語(yǔ)句語(yǔ)句 #include void main() int x=3; do printf(%3d, x-=2); while(!(-x); printf(%3d,x); 【例【例5.105.10】用】用dowhiledowhile語(yǔ)句,編寫(xiě)例語(yǔ)句,編寫(xiě)例5.45.4的程序。的程序。 5.3 do while語(yǔ)句語(yǔ)句 #include void main( ) int i, sum; i=1, sum=0; do sum+=i; i+; while( i=100); printf(sum = %dn, sum); 說(shuō)明:說(shuō)明: 5.
9、3 do while語(yǔ)句語(yǔ)句 2 2)循環(huán)體語(yǔ)句)循環(huán)體語(yǔ)句 一條語(yǔ)句或一個(gè)空語(yǔ)句一條語(yǔ)句或一個(gè)空語(yǔ)句 一組語(yǔ)句一組語(yǔ)句 1 1)循環(huán)條件表達(dá)式)循環(huán)條件表達(dá)式 循環(huán)條件表達(dá)式可以是任意類型的表達(dá)式,只要其值為非循環(huán)條件表達(dá)式可以是任意類型的表達(dá)式,只要其值為非0 0 值就認(rèn)為循環(huán)條件為真,進(jìn)而反復(fù)執(zhí)行循環(huán)體語(yǔ)句;只有當(dāng)其值就認(rèn)為循環(huán)條件為真,進(jìn)而反復(fù)執(zhí)行循環(huán)體語(yǔ)句;只有當(dāng)其 值為值為0 0時(shí)才認(rèn)為循環(huán)條件為假,此時(shí)結(jié)束循環(huán)語(yǔ)句。時(shí)才認(rèn)為循環(huán)條件為假,此時(shí)結(jié)束循環(huán)語(yǔ)句。 其左、右大括號(hào)其左、右大括號(hào) 可以省略(但習(xí)可以省略(但習(xí) 慣上不省略)慣上不省略) 必須用大括號(hào)括必須用大括號(hào)括 起來(lái),組
10、成復(fù)合起來(lái),組成復(fù)合 語(yǔ)句語(yǔ)句 說(shuō)明:說(shuō)明: 3 3)避免死循環(huán))避免死循環(huán) 在在dowhiledowhile語(yǔ)句的循環(huán)條件表達(dá)式或循環(huán)體語(yǔ)句語(yǔ)句的循環(huán)條件表達(dá)式或循環(huán)體語(yǔ)句 中,必須有使循環(huán)條件表達(dá)式的值變?yōu)橹校仨氂惺寡h(huán)條件表達(dá)式的值變?yōu)? 0(假)的操(假)的操 作,否則循環(huán)將無(wú)限的執(zhí)行即為死循環(huán)。作,否則循環(huán)將無(wú)限的執(zhí)行即為死循環(huán)。 4 4)dowhiledowhile語(yǔ)句的特點(diǎn)語(yǔ)句的特點(diǎn) dowhile dowhile語(yǔ)句的特點(diǎn)是語(yǔ)句的特點(diǎn)是“先執(zhí)行循環(huán)體語(yǔ)句,再先執(zhí)行循環(huán)體語(yǔ)句,再 判斷循環(huán)條件判斷循環(huán)條件”。因此循環(huán)體語(yǔ)句至少被執(zhí)行一次。因此循環(huán)體語(yǔ)句至少被執(zhí)行一次 。 5.3
11、 do while語(yǔ)句語(yǔ)句 forfor語(yǔ)句的一般形式語(yǔ)句的一般形式 for ( for (表達(dá)式表達(dá)式1 1;表達(dá)式;表達(dá)式2 2;表達(dá)式;表達(dá)式3) 3) 循環(huán)體語(yǔ)句循環(huán)體語(yǔ)句 為循環(huán)變量賦為循環(huán)變量賦 初值初值 設(shè)定循環(huán)條件設(shè)定循環(huán)條件 給出循環(huán)變量的給出循環(huán)變量的 增值增值 5.4 for語(yǔ)句語(yǔ)句 for (for (循環(huán)變量賦初值;循環(huán)條件表達(dá)式;循環(huán)變量增值循環(huán)變量賦初值;循環(huán)條件表達(dá)式;循環(huán)變量增值 ) ) 循環(huán)體語(yǔ)句循環(huán)體語(yǔ)句 for 語(yǔ)句流程圖 No Image 5.4 for語(yǔ)句語(yǔ)句 說(shuō)明:說(shuō)明: 1 1) for for語(yǔ)句中三個(gè)表達(dá)式的省略性語(yǔ)句中三個(gè)表達(dá)式的省略性 f
12、or for語(yǔ)句中的三個(gè)表達(dá)式之間以語(yǔ)句中的三個(gè)表達(dá)式之間以 ” ; ” ” ; ” 相間相間 隔。從理論上來(lái)說(shuō),三個(gè)表達(dá)式皆可省略,但是兩個(gè)隔。從理論上來(lái)說(shuō),三個(gè)表達(dá)式皆可省略,但是兩個(gè) 間隔符間隔符 ” ; ” ” ; ”均不可省略。均不可省略。 2 2)forfor語(yǔ)句的三個(gè)表達(dá)式可以是任意合法的語(yǔ)句的三個(gè)表達(dá)式可以是任意合法的C C語(yǔ)言表達(dá)語(yǔ)言表達(dá) 式。式。 3 3)循環(huán)體語(yǔ)句可以是一條語(yǔ)句、一組語(yǔ)句或空語(yǔ)句。)循環(huán)體語(yǔ)句可以是一條語(yǔ)句、一組語(yǔ)句或空語(yǔ)句。 5.4 for語(yǔ)句語(yǔ)句 【例【例5.115.11】給出以下程序的運(yùn)行結(jié)果?!拷o出以下程序的運(yùn)行結(jié)果。 程序的運(yùn)行結(jié)果:程序的運(yùn)行結(jié)
13、果: A2C4E6 5.4 for語(yǔ)句語(yǔ)句 #include void main() char a,b,c; b=1; c=A; for(a=0;a6;a+) if(a%2) putchar(b+a); else putchar(c+a); 【例【例5.135.13】求】求n! n! 5.4 for語(yǔ)句語(yǔ)句 #include void main( ) int n, fact, i; printf(please input n: ); scanf(%d, for( i=1, fact=1; i=n; i+) fact*=i; printf(%d! = %dn,n, fact); No Image
14、 在循環(huán)結(jié)構(gòu)中,可能會(huì)遇到在某次執(zhí)行循環(huán)體語(yǔ)句的過(guò)程中,在循環(huán)結(jié)構(gòu)中,可能會(huì)遇到在某次執(zhí)行循環(huán)體語(yǔ)句的過(guò)程中, 由于某種特殊情況需要使得整個(gè)循環(huán)語(yǔ)句提前結(jié)束的情況。由于某種特殊情況需要使得整個(gè)循環(huán)語(yǔ)句提前結(jié)束的情況。C C 語(yǔ)言中的語(yǔ)言中的breakbreak語(yǔ)句可以用來(lái)滿足這種需求。語(yǔ)句可以用來(lái)滿足這種需求。 5.5 break語(yǔ)句語(yǔ)句 break語(yǔ)句的一般形式語(yǔ)句的一般形式 break; break 語(yǔ)句的功能語(yǔ)句的功能 強(qiáng)制結(jié)束語(yǔ)句的執(zhí)行強(qiáng)制結(jié)束語(yǔ)句的執(zhí)行 說(shuō)明:說(shuō)明: 1 1)breakbreak語(yǔ)句的使用范圍:語(yǔ)句的使用范圍: switch switch語(yǔ)句、語(yǔ)句、 while wh
15、ile語(yǔ)句、語(yǔ)句、dodowhilewhile語(yǔ)句及語(yǔ)句及forfor語(yǔ)句。語(yǔ)句。 2 2)breakbreak語(yǔ)句通常與語(yǔ)句通常與if if語(yǔ)句一起使用。語(yǔ)句一起使用。 表示在某種條表示在某種條 件下需強(qiáng)制結(jié)束語(yǔ)句的執(zhí)行。件下需強(qiáng)制結(jié)束語(yǔ)句的執(zhí)行。 【例【例5.145.14】驗(yàn)證以下程序的運(yùn)行結(jié)果,并給出程序的功能?!框?yàn)證以下程序的運(yùn)行結(jié)果,并給出程序的功能。 5.5 break語(yǔ)句語(yǔ)句 #include void main( ) int i,n; printf(input n: ); scanf(%d, i=n; while(i+=100) if(i%8= =0) printf(“the
16、first number is %d.n“,i); break; 第第1 1次運(yùn)行程序的結(jié)果:次運(yùn)行程序的結(jié)果: input n: 1 input n: 1 the first number is 8. the first number is 8. 第第2 2次運(yùn)行程序的結(jié)果:次運(yùn)行程序的結(jié)果: input n: 82 input n: 82 the first number is 88. the first number is 88. 程序的功能:程序的功能: 求求n n100100之間最小的之間最小的8 8的倍數(shù)。的倍數(shù)。 【例【例5.155.15】從鍵盤輸入一個(gè)正整數(shù),判斷它是否是素?cái)?shù),
17、若是素?cái)?shù),則輸出】從鍵盤輸入一個(gè)正整數(shù),判斷它是否是素?cái)?shù),若是素?cái)?shù),則輸出 “YES!”“YES!”,否則輸出,否則輸出“NO“NO!”。 5.5 break語(yǔ)句語(yǔ)句 #include #include void main() int n,i,k; printf(please input n: ); scanf(%d, k=(int)sqrt(n); for(i=2; i=k; i+) if(n%i= =0) break; if(i= =k+1) printf(YES!n); else printf(NO!n); 在循環(huán)結(jié)構(gòu)中,可能會(huì)遇到在某次執(zhí)行循環(huán)體語(yǔ)句的過(guò)程中在循環(huán)結(jié)構(gòu)中,可能會(huì)遇到在某
18、次執(zhí)行循環(huán)體語(yǔ)句的過(guò)程中 ,由于某種特殊情況需要使得本次循環(huán)體語(yǔ)句提前結(jié)束,轉(zhuǎn)而開(kāi),由于某種特殊情況需要使得本次循環(huán)體語(yǔ)句提前結(jié)束,轉(zhuǎn)而開(kāi) 始下一次循環(huán)的情況。此時(shí),可以用始下一次循環(huán)的情況。此時(shí),可以用continue語(yǔ)句來(lái)實(shí)現(xiàn)。語(yǔ)句來(lái)實(shí)現(xiàn)。 5.6 continue語(yǔ)句語(yǔ)句 continue語(yǔ)句的一般形式語(yǔ)句的一般形式: continue ; continue語(yǔ)句的功能:語(yǔ)句的功能: 強(qiáng)制結(jié)束本次循環(huán)體語(yǔ)句的執(zhí)行,即跳過(guò)循環(huán)體語(yǔ)句中其后的強(qiáng)制結(jié)束本次循環(huán)體語(yǔ)句的執(zhí)行,即跳過(guò)循環(huán)體語(yǔ)句中其后的 尚未執(zhí)行的語(yǔ)句,接著進(jìn)行下一次是否執(zhí)行循環(huán)的判斷。尚未執(zhí)行的語(yǔ)句,接著進(jìn)行下一次是否執(zhí)行循環(huán)的判斷
19、。 說(shuō)明:說(shuō)明: 1 1) continue語(yǔ)句適用于語(yǔ)句適用于while語(yǔ)句、語(yǔ)句、dowhile語(yǔ)句和語(yǔ)句和for語(yǔ)句語(yǔ)句 。 2 2)在)在while語(yǔ)句和語(yǔ)句和dowhile語(yǔ)句中,語(yǔ)句中,continue語(yǔ)句將使得程語(yǔ)句將使得程 序轉(zhuǎn)到循環(huán)條件表達(dá)式處繼續(xù)執(zhí)行;在序轉(zhuǎn)到循環(huán)條件表達(dá)式處繼續(xù)執(zhí)行;在for語(yǔ)句中,語(yǔ)句中,continue語(yǔ)語(yǔ) 句將使得程序轉(zhuǎn)到表達(dá)式句將使得程序轉(zhuǎn)到表達(dá)式3 3處繼續(xù)執(zhí)行。處繼續(xù)執(zhí)行。 3 3) continue語(yǔ)句通常與語(yǔ)句通常與 if if 語(yǔ)句一起使用。語(yǔ)句一起使用。 【例5.16】給出以下程序的運(yùn)行結(jié)果。 程序的運(yùn)行結(jié)果:程序的運(yùn)行結(jié)果: #*#*
20、! 5.6 continue語(yǔ)句語(yǔ)句 #include void main( ) int i; for(i=1; i5; i+) if(i%2) printf(#); continue; printf(*); printf(!); 假 假 真 真 break 表達(dá)式1 表達(dá)式2 循環(huán)語(yǔ)句的 下一條語(yǔ)句 循環(huán)語(yǔ)句的 下一條語(yǔ)句 假 假 真 真 表達(dá)式1 表達(dá)式2 continue break和和continue的區(qū)別的區(qū)別 循環(huán)的嵌套的概念循環(huán)的嵌套的概念 在一個(gè)循環(huán)語(yǔ)句的循環(huán)體內(nèi)又包含了另一個(gè)在一個(gè)循環(huán)語(yǔ)句的循環(huán)體內(nèi)又包含了另一個(gè)完整完整的循環(huán)結(jié)構(gòu),的循環(huán)結(jié)構(gòu), 稱為循環(huán)的嵌套。內(nèi)嵌的循環(huán)中還
21、可以再嵌套循環(huán),這就是多稱為循環(huán)的嵌套。內(nèi)嵌的循環(huán)中還可以再嵌套循環(huán),這就是多 重循環(huán)。重循環(huán)。C C語(yǔ)言中,三種循環(huán)結(jié)構(gòu)的語(yǔ)句(語(yǔ)言中,三種循環(huán)結(jié)構(gòu)的語(yǔ)句(whilewhile語(yǔ)句、語(yǔ)句、 dodowhilewhile語(yǔ)句和語(yǔ)句和forfor語(yǔ)句)可以相互嵌套。語(yǔ)句)可以相互嵌套。 執(zhí)行嵌套的循環(huán)語(yǔ)句時(shí),將內(nèi)層的循環(huán)語(yǔ)句作為一個(gè)獨(dú)立的執(zhí)行嵌套的循環(huán)語(yǔ)句時(shí),將內(nèi)層的循環(huán)語(yǔ)句作為一個(gè)獨(dú)立的 語(yǔ)句來(lái)執(zhí)行。即在某次執(zhí)行外層循環(huán)的循環(huán)體語(yǔ)句的過(guò)程中,語(yǔ)句來(lái)執(zhí)行。即在某次執(zhí)行外層循環(huán)的循環(huán)體語(yǔ)句的過(guò)程中, 當(dāng)執(zhí)行到內(nèi)層的循環(huán)語(yǔ)句時(shí),要將內(nèi)層循環(huán)語(yǔ)句執(zhí)行完畢,才當(dāng)執(zhí)行到內(nèi)層的循環(huán)語(yǔ)句時(shí),要將內(nèi)層循環(huán)語(yǔ)句執(zhí)
22、行完畢,才 能繼續(xù)執(zhí)行外層循環(huán)循環(huán)體中其后尚未執(zhí)行的語(yǔ)句。也就是說(shuō),能繼續(xù)執(zhí)行外層循環(huán)循環(huán)體中其后尚未執(zhí)行的語(yǔ)句。也就是說(shuō), 外層循環(huán)的循環(huán)體執(zhí)行一次,內(nèi)層循環(huán)語(yǔ)句完整執(zhí)行一遍。外層循環(huán)的循環(huán)體執(zhí)行一次,內(nèi)層循環(huán)語(yǔ)句完整執(zhí)行一遍。 嵌套的循環(huán)語(yǔ)句執(zhí)行嵌套的循環(huán)語(yǔ)句執(zhí)行 5.7 循環(huán)的嵌套循環(huán)的嵌套 【例【例5.18】給出下面程序的運(yùn)行結(jié)果?!拷o出下面程序的運(yùn)行結(jié)果。 程序的運(yùn)行結(jié)果:程序的運(yùn)行結(jié)果: m=1 5.7 循環(huán)的嵌套循環(huán)的嵌套 #include void main() int i, j, m=1; for(i=1; i1; j-) /* 內(nèi)層內(nèi)層for語(yǔ)句語(yǔ)句 */ if(i*j=3
23、) break; /* break語(yǔ)句屬于內(nèi)層語(yǔ)句屬于內(nèi)層for語(yǔ)句語(yǔ)句 */ m*=i*j; printf(m=%dn,m); 5.7 循環(huán)的嵌套循環(huán)的嵌套 #include void main( ) int n,k,sum,i,t,fact,f=1; printf(please input n: ); scanf(%d, for( k=1, sum=0; k=n; k+) for(i=1, fact=1; i=k; i+) fact*=i; /* 內(nèi)層內(nèi)層for語(yǔ)句求語(yǔ)句求k! */ t=fact*f; /* 變量變量t存放每個(gè)加數(shù)項(xiàng)存放每個(gè)加數(shù)項(xiàng) */ f=-f; sum+=t; pri
24、ntf(1!-2!+ . +%d!=%dn,n,sum); 說(shuō)明:說(shuō)明: 1 1)外層循環(huán)應(yīng)完全包含內(nèi)層循環(huán),內(nèi)、外層循環(huán)不能發(fā))外層循環(huán)應(yīng)完全包含內(nèi)層循環(huán),內(nèi)、外層循環(huán)不能發(fā) 生交叉。生交叉。 2 2) for for語(yǔ)句嵌套語(yǔ)句嵌套forfor語(yǔ)句時(shí),內(nèi)、外層語(yǔ)句的表達(dá)式語(yǔ)句時(shí),內(nèi)、外層語(yǔ)句的表達(dá)式3 3不能不能 寫(xiě)在同一位置。寫(xiě)在同一位置。 3 3) 內(nèi)外層的循環(huán)控制變量不要同名,以免發(fā)生混淆。內(nèi)外層的循環(huán)控制變量不要同名,以免發(fā)生混淆。 5.7 循環(huán)的嵌套循環(huán)的嵌套 【例【例5.205.20】輸入兩個(gè)數(shù)】輸入兩個(gè)數(shù)m m和和n n,求其最大公約數(shù)及最小公倍數(shù)。,求其最大公約數(shù)及最小公倍
25、數(shù)。 5.8 程序舉例程序舉例 #include void main( ) int m,n,a,b; int r; printf(please input m, n:n); scanf(%d,%d, if(m=n) a=m, b=n; else a=n, b=m; r=a%b; while(r!=0) /* 循環(huán)條件為循環(huán)條件為 r!=0 */ a=b; b=r; r=a%b; printf(The greatest common divisor is: %dn,b); printf(The least common multiple is: %dn,m*n/b); 【例【例5.215.21】
26、利用級(jí)數(shù)展開(kāi)式求】利用級(jí)數(shù)展開(kāi)式求 的近似值的近似值, ,直到某一項(xiàng)的值小于直到某一項(xiàng)的值小于1010-6 -6為止。為止。 /41 - 1/3 + 1/5 - 1/7 + /41 - 1/3 + 1/5 - 1/7 + 5.8 程序舉例程序舉例 #include void main( ) double t=1, s=0; int f=1; do s+=f/t; f=-f; t+=2; while(1/ t =1e-6) ; printf( %lf, 4*s) ; 【例【例5.225.22】打印】打印“水仙花數(shù)水仙花數(shù)”。所謂。所謂“水仙花數(shù)水仙花數(shù)”是指一個(gè)是指一個(gè)3 3位數(shù),其各位數(shù)字位數(shù)
27、,其各位數(shù)字 的立方和等于該數(shù)本身。例如,的立方和等于該數(shù)本身。例如,153153是一個(gè)水仙花數(shù),因?yàn)槭且粋€(gè)水仙花數(shù),因?yàn)?53=1153=13 3+5+53 3+3+33 3。 5.8 程序舉例程序舉例 #include #include void main( ) int n,a,b,c; for(n=100; n1000; n+) a=n/100; b=n/10%10; c=n%10; if(n=(int)pow(a,3)+(int)pow(b,3)+(int)pow(c,3) printf(%5d,n); printf(n); 【例【例5.235.23】編程求】編程求FibonacciF
28、ibonacci數(shù)列的前數(shù)列的前n n項(xiàng)(項(xiàng)(3n303n30)。要求:每行打?。?。要求:每行打印5 5個(gè)。個(gè)。 FibonacciFibonacci數(shù)列的第數(shù)列的第1 1項(xiàng)和第項(xiàng)和第2 2項(xiàng)為項(xiàng)為1 1,此后每項(xiàng)為其前兩項(xiàng)之和。即,此后每項(xiàng)為其前兩項(xiàng)之和。即FibonacciFibonacci數(shù)數(shù) 列為列為 1 1,1 1,2 2,3 3,5 5,8 8,。 5.8 程序舉例程序舉例 #include void main( ) int f1,f2,f; int n,i; printf(please input n(n=30): ); scanf(%d, printf(n); printf(t
29、he fibonaccin); f1=f2=1; printf(%-8d%-8d,f1,f2); for(i=3; i=n; i+) f=f1+f2; printf(“%-8d”,f); if(i%5=0) printf(“n”); /* 按照每行按照每行5個(gè)的格式輸出個(gè)的格式輸出 */ f1=f2, f2=f; printf(n); 【例【例5.245.24】編程輸出】編程輸出200200300300間的素?cái)?shù)。間的素?cái)?shù)。 5.8 程序舉例程序舉例 #include #include void main( ) int n,i, k; int flag,count=0; for(n=201; n
30、=299; n+=2) flag=1; /*每次判斷前每次判斷前, 都需使都需使flag=1*/ k=(int)sqrt(n); for(i=2; i=k; i+) if(n%i= =0) flag=0; break; if(flag) count+; printf(%5d,n); if(count%4= =0) printf(n); printf(n); 【例5.25】打印如下圖形。 5.8 程序舉例程序舉例 * * * * * * * * * * * * * #include void main( ) int i,j; for(i=1; i4; i+) for(j=1; j=3-i; j+
31、) printf(); for(j=1; j=2*i-1; j+) printf(* ); putchar(n); for(i=1; i3; i+) for(j=1; j=i; j+) printf(); for(j=1; j=5-2*i; j+) printf(* ); putchar(n); 編寫(xiě)一個(gè)智力測(cè)驗(yàn)小游戲。由計(jì)算機(jī)給出一道編寫(xiě)一個(gè)智力測(cè)驗(yàn)小游戲。由計(jì)算機(jī)給出一道1 1100100的整數(shù)的加的整數(shù)的加 法,然后由用戶輸入答案,若回答正確,則結(jié)束游戲;否則由計(jì)算機(jī)給法,然后由用戶輸入答案,若回答正確,則結(jié)束游戲;否則由計(jì)算機(jī)給 出提示,告訴用戶其答案偏大或偏小,直到用戶答對(duì)為止。游戲
32、結(jié)束時(shí)出提示,告訴用戶其答案偏大或偏小,直到用戶答對(duì)為止。游戲結(jié)束時(shí) ,由計(jì)算機(jī)給出用戶回答出正確答案所用的次數(shù)。,由計(jì)算機(jī)給出用戶回答出正確答案所用的次數(shù)。 分析:分析: 兩個(gè)加數(shù)是由計(jì)算機(jī)給出的隨機(jī)整數(shù),兩個(gè)加數(shù)是由計(jì)算機(jī)給出的隨機(jī)整數(shù),因此需使用頭文件因此需使用頭文件stdlib.hstdlib.h中中 的的rand( )rand( )函數(shù)。函數(shù)。rand( )rand( )函數(shù)的功能是:返回一個(gè)函數(shù)的功能是:返回一個(gè)0 03276732767之間的隨機(jī)整之間的隨機(jī)整 數(shù)。兩個(gè)加數(shù)都可由表達(dá)式數(shù)。兩個(gè)加數(shù)都可由表達(dá)式rand( ) %100+1rand( ) %100+1求得求得。 補(bǔ)充
33、:案例分析補(bǔ)充:案例分析 程序如下:程序如下: #include #include void main( ) int x,y,answer; int count; count=0; x=rand( )%100+1; y=rand( )%100+1; do printf(%3d+%3d = ,x,y); scanf(%d, count+; 補(bǔ)充:補(bǔ)充: 案例分析案例分析 if(answerx+y) printf(Wrong! Too High!n); if(answerx+y) printf(Wrong! Too low!n); while(answer!=x+y); printf(Right!
34、n); printf(Number of times: %dn,count); 程序第程序第1 1次運(yùn)行結(jié)果如下:次運(yùn)行結(jié)果如下: 42+ 68 = 100 Wrong 42+ 68 = 100 Wrong!Too lowToo low! 42+ 68 = 120 42+ 68 = 120 Wrong Wrong!Too highToo high! 42+ 68 = 110 42+ 68 = 110 Right Right! Number of times: 3 Number of times: 3 補(bǔ)充:補(bǔ)充: 案例分析案例分析 程序第程序第2 2次運(yùn)行結(jié)果如下:次運(yùn)行結(jié)果如下: 42+ 6
35、8 = 110 42+ 68 = 110 Right Right! Number of times: 1 Number of times: 1 通過(guò)這兩次程序的執(zhí)行可以看出,通過(guò)這兩次程序的執(zhí)行可以看出, 每次程序給出的隨機(jī)數(shù)都是每次程序給出的隨機(jī)數(shù)都是4242和和6868。 實(shí)際上,每次運(yùn)行程序時(shí)所得到的隨實(shí)際上,每次運(yùn)行程序時(shí)所得到的隨 機(jī)數(shù)都是機(jī)數(shù)都是4242和和6868,這是為什么?怎么,這是為什么?怎么 做才能使得每次執(zhí)行程序時(shí)得到不同做才能使得每次執(zhí)行程序時(shí)得到不同 的隨機(jī)數(shù)序列?事實(shí)上,如果在程序的隨機(jī)數(shù)序列?事實(shí)上,如果在程序 中僅使用中僅使用rand()rand()函數(shù)來(lái)求隨
36、機(jī)數(shù),那函數(shù)來(lái)求隨機(jī)數(shù),那 么每次執(zhí)行程序時(shí)都只會(huì)得到相同的么每次執(zhí)行程序時(shí)都只會(huì)得到相同的 隨機(jī)數(shù)序列。而若想使得程序每次執(zhí)隨機(jī)數(shù)序列。而若想使得程序每次執(zhí) 行時(shí)獲得不同的行時(shí)獲得不同的隨機(jī)數(shù)序列隨機(jī)數(shù)序列,則還需,則還需 使用另兩個(gè)標(biāo)準(zhǔn)函數(shù):頭文件使用另兩個(gè)標(biāo)準(zhǔn)函數(shù):頭文件stdlib.hstdlib.h 中的中的srand()srand()函數(shù)和頭文件函數(shù)和頭文件time.htime.h中的中的 time()time()函數(shù)函數(shù)加以輔助。加以輔助。 程序可作如下修改:程序可作如下修改: #include #include #include void main() int x,y,answ
37、er; int count; count=0; srand(unsigned)time(0); /* 使每次執(zhí)行程序得到不同的隨機(jī)數(shù)序列使每次執(zhí)行程序得到不同的隨機(jī)數(shù)序列*/ x=rand()%100+1; y=rand()%100+1; 補(bǔ)充:補(bǔ)充: 案例分析案例分析 do printf(%3d+%3d = ,x,y); scanf(%d, count+; if(answerx+y) printf(Wrong! Too High!n); if(answerx+y) printf(Wrong! Too low!n); while(answer!=x+y); printf(Right!n); p
38、rintf(Number of times: %dn,count); 修改后的程序第一次運(yùn)行時(shí)得到的兩個(gè)加數(shù)是修改后的程序第一次運(yùn)行時(shí)得到的兩個(gè)加數(shù)是3434和和7474,第二次運(yùn)行時(shí)得,第二次運(yùn)行時(shí)得 到的兩個(gè)加數(shù)變?yōu)榈降膬蓚€(gè)加數(shù)變?yōu)?848和和6565。 補(bǔ)充:補(bǔ)充: 案例分析案例分析 C C語(yǔ)言提供了語(yǔ)言提供了3 3種循環(huán)結(jié)構(gòu)控制語(yǔ)句種循環(huán)結(jié)構(gòu)控制語(yǔ)句whilewhile語(yǔ)句、語(yǔ)句、dowhiledowhile語(yǔ)句、語(yǔ)句、 forfor語(yǔ)句。它們各有特點(diǎn),編程時(shí)應(yīng)根據(jù)不同的情況選擇最合語(yǔ)句。它們各有特點(diǎn),編程時(shí)應(yīng)根據(jù)不同的情況選擇最合 適的語(yǔ)句,以便更好地實(shí)現(xiàn)程序的功能。適的語(yǔ)句,以便更
39、好地實(shí)現(xiàn)程序的功能。 (1 1) 3 3種循環(huán)語(yǔ)句都用來(lái)實(shí)現(xiàn)循環(huán)結(jié)構(gòu),一般情況下它們可以種循環(huán)語(yǔ)句都用來(lái)實(shí)現(xiàn)循環(huán)結(jié)構(gòu),一般情況下它們可以 相互替代。相互替代。 (2 2)whilewhile語(yǔ)句常用來(lái)實(shí)現(xiàn)語(yǔ)句常用來(lái)實(shí)現(xiàn)“當(dāng)型循環(huán)結(jié)構(gòu)當(dāng)型循環(huán)結(jié)構(gòu)”。執(zhí)行時(shí)先判斷。執(zhí)行時(shí)先判斷 循環(huán)條件,當(dāng)循環(huán)條件成立時(shí)才執(zhí)行循環(huán)體,否則結(jié)束循環(huán)循環(huán)條件,當(dāng)循環(huán)條件成立時(shí)才執(zhí)行循環(huán)體,否則結(jié)束循環(huán) 。循環(huán)體語(yǔ)句有可能一次也不執(zhí)行。循環(huán)體語(yǔ)句有可能一次也不執(zhí)行。 (3 3)do whiledo while語(yǔ)句常用來(lái)實(shí)現(xiàn)語(yǔ)句常用來(lái)實(shí)現(xiàn)“直到型循環(huán)結(jié)構(gòu)直到型循環(huán)結(jié)構(gòu)”。執(zhí)行時(shí)。執(zhí)行時(shí) 先執(zhí)行循環(huán)體,再判斷循環(huán)條件,當(dāng)循
40、環(huán)條件成立時(shí)重復(fù)執(zhí)先執(zhí)行循環(huán)體,再判斷循環(huán)條件,當(dāng)循環(huán)條件成立時(shí)重復(fù)執(zhí) 行循環(huán)體,直到循環(huán)條件不成立,結(jié)束循環(huán)。循環(huán)體語(yǔ)句至行循環(huán)體,直到循環(huán)條件不成立,結(jié)束循環(huán)。循環(huán)體語(yǔ)句至 少執(zhí)行一次。少執(zhí)行一次。 本章小結(jié)本章小結(jié) (4 4)for for 語(yǔ)句通常用來(lái)實(shí)現(xiàn)語(yǔ)句通常用來(lái)實(shí)現(xiàn)“當(dāng)型循環(huán)結(jié)構(gòu)當(dāng)型循環(huán)結(jié)構(gòu)”。既可用于循環(huán)次數(shù)已知的情。既可用于循環(huán)次數(shù)已知的情 況,也可用于循環(huán)次數(shù)未知的情況。尤其適用于以一個(gè)循環(huán)變量從初始況,也可用于循環(huán)次數(shù)未知的情況。尤其適用于以一個(gè)循環(huán)變量從初始 值變化到最終值,且每次其值變化的增量(即步長(zhǎng))均相等的循環(huán)結(jié)構(gòu)值變化到最終值,且每次其值變化的增量(即步長(zhǎng))均相
41、等的循環(huán)結(jié)構(gòu) 中。此時(shí)一般情況可通過(guò)公式:中。此時(shí)一般情況可通過(guò)公式:( (最終值最終值- -初始值初始值)/ )/ 步長(zhǎng)來(lái)判斷循環(huán)體被步長(zhǎng)來(lái)判斷循環(huán)體被 執(zhí)行的次數(shù)。執(zhí)行的次數(shù)。forfor語(yǔ)句的應(yīng)用最靈活,也最廣泛,功能最強(qiáng)。它可以完全語(yǔ)句的應(yīng)用最靈活,也最廣泛,功能最強(qiáng)。它可以完全 替代替代whilewhile語(yǔ)句。語(yǔ)句。 (5 5)各種循環(huán)語(yǔ)句可以相互嵌套組成多重循環(huán)。循環(huán)之間可以并列但不能)各種循環(huán)語(yǔ)句可以相互嵌套組成多重循環(huán)。循環(huán)之間可以并列但不能 交叉。執(zhí)行時(shí)每執(zhí)行一次外層循環(huán)的循環(huán)體時(shí),內(nèi)層循環(huán)要完整地執(zhí)行交叉。執(zhí)行時(shí)每執(zhí)行一次外層循環(huán)的循環(huán)體時(shí),內(nèi)層循環(huán)要完整地執(zhí)行 一遍。一
42、遍。 (6 6)breakbreak語(yǔ)句用于提前語(yǔ)句用于提前結(jié)束當(dāng)前循環(huán)結(jié)束當(dāng)前循環(huán)的執(zhí)行;的執(zhí)行;conitnueconitnue語(yǔ)句用于提前語(yǔ)句用于提前結(jié)束結(jié)束 本次循環(huán)體本次循環(huán)體語(yǔ)句的執(zhí)行。另外,在語(yǔ)句的執(zhí)行。另外,在C C語(yǔ)言中,不僅語(yǔ)言中,不僅breakbreak語(yǔ)句和語(yǔ)句和continuecontinue語(yǔ)語(yǔ) 句具有提前結(jié)束語(yǔ)句或循環(huán)體的功能,頭文件句具有提前結(jié)束語(yǔ)句或循環(huán)體的功能,頭文件stdlib.hstdlib.h中的中的exit(0)exit(0)函數(shù)也具函數(shù)也具 有類似功能。有類似功能。 本章小結(jié)本章小結(jié) (7)break語(yǔ)句、語(yǔ)句、continue語(yǔ)句及語(yǔ)句及exit
43、(0)函數(shù)之間的區(qū)別為:函數(shù)之間的區(qū)別為: break語(yǔ)句:結(jié)束整個(gè)循環(huán)語(yǔ)句,不再判斷循環(huán)條件,轉(zhuǎn)而執(zhí)語(yǔ)句:結(jié)束整個(gè)循環(huán)語(yǔ)句,不再判斷循環(huán)條件,轉(zhuǎn)而執(zhí) 行循環(huán)語(yǔ)句的下一條語(yǔ)句。行循環(huán)語(yǔ)句的下一條語(yǔ)句。break語(yǔ)句還可用于語(yǔ)句還可用于switch語(yǔ)句語(yǔ)句 中,用來(lái)強(qiáng)制結(jié)束中,用來(lái)強(qiáng)制結(jié)束switch語(yǔ)句。而語(yǔ)句。而continue語(yǔ)句并不能夠用語(yǔ)句并不能夠用 于于switch語(yǔ)句。語(yǔ)句。 continue語(yǔ)句:僅僅結(jié)束本次循環(huán)體語(yǔ)句的執(zhí)行,跳過(guò)循環(huán)體語(yǔ)句:僅僅結(jié)束本次循環(huán)體語(yǔ)句的執(zhí)行,跳過(guò)循環(huán)體 中尚未執(zhí)行的其它循環(huán)體語(yǔ)句,繼續(xù)執(zhí)行程序。在中尚未執(zhí)行的其它循環(huán)體語(yǔ)句,繼續(xù)執(zhí)行程序。在while
44、語(yǔ)語(yǔ) 句和句和dowhile語(yǔ)句中,程序?qū)⑥D(zhuǎn)至循環(huán)條件處,再次判斷語(yǔ)句中,程序?qū)⑥D(zhuǎn)至循環(huán)條件處,再次判斷 循環(huán)條件;在循環(huán)條件;在for語(yǔ)句中,程序?qū)⑥D(zhuǎn)至表達(dá)式語(yǔ)句中,程序?qū)⑥D(zhuǎn)至表達(dá)式3處進(jìn)行求解。處進(jìn)行求解。 exit(0)函數(shù):結(jié)束整個(gè)程序的執(zhí)行,其后所有的尚未執(zhí)行的程函數(shù):結(jié)束整個(gè)程序的執(zhí)行,其后所有的尚未執(zhí)行的程 序語(yǔ)句均不再執(zhí)行。序語(yǔ)句均不再執(zhí)行。exit(0)函數(shù)不僅能用于循環(huán)語(yǔ)句和函數(shù)不僅能用于循環(huán)語(yǔ)句和 switch語(yǔ)句中,還可根據(jù)需要在任何語(yǔ)句中使用。語(yǔ)句中,還可根據(jù)需要在任何語(yǔ)句中使用。 本章小結(jié)本章小結(jié) 1.(2012年年3月選擇題第月選擇題第22題)有以下程序段:題)有
45、以下程序段: int t=0; while(t=1) 以下敘述中正確的是(以下敘述中正確的是( )。)。 A) 循環(huán)條件表達(dá)式的值為循環(huán)條件表達(dá)式的值為0 B) 循環(huán)條件表達(dá)式的值為循環(huán)條件表達(dá)式的值為1 C) 循環(huán)條件表達(dá)式不合法循環(huán)條件表達(dá)式不合法 D) 以上說(shuō)法都不對(duì)以上說(shuō)法都不對(duì) 計(jì)算機(jī)等級(jí)考試二級(jí)真題解析計(jì)算機(jī)等級(jí)考試二級(jí)真題解析 【答案】【答案】 B B 2. (2011年年3月選擇題第月選擇題第26題)有以下程序段題)有以下程序段 #include void main() while( getchar( )!=n); 以下敘述中正確的是(以下敘述中正確的是( )。)。 A)此此w
46、hile 語(yǔ)句將無(wú)限循環(huán)語(yǔ)句將無(wú)限循環(huán) B) getchar()不可以出現(xiàn)在不可以出現(xiàn)在while 語(yǔ)句的條件表達(dá)式中語(yǔ)句的條件表達(dá)式中 C)當(dāng)執(zhí)行此當(dāng)執(zhí)行此while 語(yǔ)句時(shí),只有按回車鍵程序才能繼續(xù)執(zhí)行語(yǔ)句時(shí),只有按回車鍵程序才能繼續(xù)執(zhí)行 D)當(dāng)執(zhí)行此當(dāng)執(zhí)行此while 語(yǔ)句時(shí),按任意鍵程序就能繼續(xù)執(zhí)行語(yǔ)句時(shí),按任意鍵程序就能繼續(xù)執(zhí)行 計(jì)算機(jī)等級(jí)考試二級(jí)真題解析計(jì)算機(jī)等級(jí)考試二級(jí)真題解析 【答案】【答案】 C C 3.(2009年年9月選擇題第月選擇題第21題)有以下程序題)有以下程序 #include void main() int n=2,k=0; while(k+ printf(%d
47、 %dn ,k, n); 程序運(yùn)行后的輸出結(jié)果是(程序運(yùn)行后的輸出結(jié)果是( )。)。 A) 0 2 B)1 3 C)5 7 D)1 2 計(jì)算機(jī)等級(jí)考試二級(jí)真題解析計(jì)算機(jī)等級(jí)考試二級(jí)真題解析 【答案】【答案】 D D 4. (2010年年3月選擇題第月選擇題第21題)有以下程序題)有以下程序 #include void main() int a=1, b=2; for(;a8;a+) b+=a;a+=2; printf(%d,%dn,a,b); 程序運(yùn)行后的輸出結(jié)果是(程序運(yùn)行后的輸出結(jié)果是( )。)。 A)9,18 B)8,11 C)7,11 D)10,14 計(jì)算機(jī)等級(jí)考試二級(jí)真題解析計(jì)算機(jī)等
48、級(jí)考試二級(jí)真題解析 【答案】【答案】 D D 5. (2009年年3月選擇題第月選擇題第20題)以下程序段中的變量已正確題)以下程序段中的變量已正確 定義定義 for(i=0;i4;i+,j+) for(k=1;k3;k+); printf(*); 程序段的輸出結(jié)果是(程序段的輸出結(jié)果是( )。)。 A)* B)* C)* D)* 計(jì)算機(jī)等級(jí)考試二級(jí)真題解析計(jì)算機(jī)等級(jí)考試二級(jí)真題解析 【答案】【答案】D 6. 6. (20112011年年3 3月選擇題第月選擇題第2020題)有以下程序段題)有以下程序段 int i,n;int i,n; for(i=0;i8;i+)for(i=0;i8;i+)
49、 n=rand( )%5; n=rand( )%5; switch (n) switch (n) case 1: case 1: case 3: case 3: printf(%dn,n); break;printf(%dn,n); break; case 2: case 2: case 4: case 4: printf(%dn,n); continue;printf(%dn,n); continue; case 0: case 0: exit(0);exit(0); printf(%dn,n); printf(%dn,n); 計(jì)算機(jī)等級(jí)考試二級(jí)真題解析計(jì)算機(jī)等級(jí)考試二級(jí)真題解析 以下關(guān)于程
50、序段執(zhí)行情況的敘述,以下關(guān)于程序段執(zhí)行情況的敘述, 正確的是(正確的是( )。)。 A)for A)for 循環(huán)語(yǔ)句固定執(zhí)行循環(huán)語(yǔ)句固定執(zhí)行8 8 次次 B) B)當(dāng)產(chǎn)生的隨機(jī)數(shù)當(dāng)產(chǎn)生的隨機(jī)數(shù)n n 為為4 4 時(shí)結(jié)束時(shí)結(jié)束 循環(huán)操作循環(huán)操作 C) C)當(dāng)產(chǎn)生的隨機(jī)數(shù)當(dāng)產(chǎn)生的隨機(jī)數(shù)n n 為為1 1 和和2 2 時(shí)不時(shí)不 做任何操作做任何操作 D) D)當(dāng)產(chǎn)生的隨機(jī)數(shù)當(dāng)產(chǎn)生的隨機(jī)數(shù)n n 為為0 0 時(shí)結(jié)束時(shí)結(jié)束 程序運(yùn)行程序運(yùn)行 【答案】【答案】D D 7. (2012年年3月填空題第月填空題第8題)下列程序的輸出結(jié)果是(題)下列程序的輸出結(jié)果是( )。)。 #include void main() int i; for(i=1
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 部編版八年級(jí)道德與法治上冊(cè)聽(tīng)課評(píng)課記錄《7.2服務(wù)社會(huì)》
- 2024-2025學(xué)年八年級(jí)物理全冊(cè)1.3站在巨人的肩膀上練習(xí)含解析新版滬科版
- 技術(shù)員年度工作規(guī)劃
- 公司行政部門個(gè)人工作計(jì)劃
- 年度幼兒教師個(gè)人工作計(jì)劃
- 物業(yè)客服部工作計(jì)劃范本
- 可調(diào)單價(jià)合同范本
- 知識(shí)產(chǎn)權(quán)授權(quán)協(xié)議書(shū)范本
- 商業(yè)店鋪?zhàn)赓U合同范本
- 紅河衛(wèi)生職業(yè)學(xué)院《物理化學(xué)(II)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年服裝門店批發(fā)管理系統(tǒng)軟件項(xiàng)目可行性研究報(bào)告
- 交通法規(guī)課件
- (優(yōu)化版)高中地理新課程標(biāo)準(zhǔn)【2024年修訂版】
- 《Python程序設(shè)計(jì)》課件-1:Python簡(jiǎn)介與應(yīng)用領(lǐng)域
- 各類心理量表大全
- 體育概論(第二版)課件第三章體育目的
- DB11T 1481-2024生產(chǎn)經(jīng)營(yíng)單位生產(chǎn)安全事故應(yīng)急預(yù)案評(píng)審規(guī)范
- 《氓》教學(xué)設(shè)計(jì) 2023-2024學(xué)年統(tǒng)編版高中語(yǔ)文選擇性必修下冊(cè)
- 《網(wǎng)店運(yùn)營(yíng)與管理》第3版 課件全套 白東蕊 第1-11章 網(wǎng)上開(kāi)店概述- 移動(dòng)網(wǎng)店運(yùn)營(yíng)
- 2024年全國(guó)國(guó)家電網(wǎng)招聘之電網(wǎng)計(jì)算機(jī)考試歷年考試題(附答案)
- 化學(xué)元素周期表注音版
評(píng)論
0/150
提交評(píng)論