C語言迴圈結構l練習題

2021-08-07 14:16:44 字數 2766 閱讀 8057

迴圈結構複習

考點1 while語句構成的迴圈結構

一、選擇題

1、以下不構成無限迴圈的語句或者語句組是 (2008.04)

a)n=0b) n=0;

do while(n<=0while(1)

c) n=10d) for(n=0,i=1; ;i++)

while(n);

程式執行後的輸出結果是2007.09)

a) y=0 b) y=-1 c) y=1 d) while 構成無限迴圈

解析:while語句一般形式為: while(表示式) 語句; 其語句先判斷表示式,後執行語句。而表示式y—先返回y的當前值,再進行-1運算。、

3、在以下給出的表示式中,與while(e)中的「(e)」不等價的表示式是2006.04)

a) (!e=0) b) (e>0 || e<0) c) (e==0) d) (e!=0)

解析:選項c表示e條件為假時,「(e==0)」為真。其它都與「(e)」等價。

二、填空題

1、以下程式的輸出結果是2007.09)

#include

main()

}解析:本題考查的重點是對while迴圈的理解與運用。若n不為0,則n對10進行模運算,並列印出n%10的值,之後再進行n/=10運算,直至n為0時結束迴圈。

因此,依次輸出54321。

2、當執行以下程式時,輸入1234567890《回車》,則其中while迴圈將執行次。(2007.04)

#include

mian()

解析:"ch==getchar()"的功能是從終端讀入乙個字元賦給變數ch,由於getchar()只能接收乙個字母,所以輸入的字元1被賦給ch,即「'1'!='0'」,迴圈體不執行,直接退出while迴圈,所以迴圈體執行的次數為0。

3、有以下程式,若執行時從鍵盤輸入18 11《回車》,則程式的輸出結果是 。(2006.09)

main()

printf("%3d%3d\n",a,b);

}解析:鍵盤輸入後變數a=18,b=11,在迴圈語句while(表示式)迴圈體中,表示式控制迴圈體是否執行,a-=b等價於a=a-b。

考點2 do-while語句構成的迴圈結構

一、選擇題

1、有以下程式:

#include

main()

i++;

} while(i!=0);

printf("\n");

}程式執行的結果是 。(2008.09)

a) *7 b) *3*7 c) *5 d)*2*6

解析:本題主要考查do-while語句。在do-while構成的迴圈中,總是先執行一次迴圈體,然後再求表示式的值。

在迴圈中,如果i得值能滿足(i%3==1)&&(i%5==2),那麼輸出i的值,退出迴圈。

2、若變數已正確定義,有以下程式段:

i=0;

do printf("%d",i); while(i++);

printf("%d",i);

其輸出結果是 。(2007.09)

解析:本題考查的重點是do-while用法。do-while迴圈是先執行迴圈體中的語句,然後再判斷while中的條件是否為真,如果為真(非零)則繼續迴圈;如果為假,則終止迴圈。

因此,do-while迴圈至少要執行一次迴圈語句。

3、有以下程式:

main()

printf("%d",n);

}while(k>0 && n<5);

}程式執行後的輸出結果是 。(2007.04)

a) 235 b) 0235 c) 02356 d) 2356

解析:do-while語句的特點是先執行迴圈體,然後再判斷迴圈體條件是否成立,當迴圈條件的值為0時迴圈結束。本題中執行switch語句,尋找與5匹配的case5分支,沒有尋找到則執行default後的語句,n=0,k的值變為4,繼續執行switch語句,尋找與4匹配的case4分支,找到後開始執行其後的語句「n+=2;k--;」,n的值為2,k的值變為3,遇到break語句後跳出該switch語句體。

執行printf語句輸出2;此時n=2,k=3依舊滿足do-while迴圈條件,將用同樣的方式再次執行switch語句,直到n=5時不再滿足do-while迴圈條件退出所有的迴圈。

考點3 for語句構成的迴圈結構

一、填空題

1、若有定義:「int k;」,以下程式段的輸出結果是2008.04)

for(k=2;k<6;k++,k++) printf("##%d",k);

解析:本題主要考查for迴圈語句。for迴圈的增量表示式為逗號表示式,相當於「k+=2;」,即每次迴圈後k增加2。

第一次迴圈時,k=2,因此輸出「##2」;第二次迴圈時k=4,輸出「##4」。此後k=6,不滿足迴圈條件。

2、若有以下程式段,且變數已正確定義和賦值:

for(s=1.0,k=1;k<=n;k++)

s=s+1.0/(k*(k+1));

printf("s=%f\n\n",s);

請填空,使下面程式段的功能與之完全相同:(2007.09)

s=1.0; k=1;

while( 【1】 )

printf("s=%f\n\n",s);

解析:本題考查的重點是將for迴圈改寫成while迴圈。while迴圈與for迴圈的結束條件是相同的,; while迴圈體內迴圈變數要做相應的改變。

C語言迴圈結構練習題

while語句的使用格式和注意事項 do while語句的使用格式和注意事項 for語句的使用格式和注意事項 break和continue語句在迴圈語句中的應用 迴圈結構的巢狀 使用goto語句實現迴圈結構 窮舉法程式設計方法 迭代程式設計方法 1 語句while e 中的條件 e等價於 a.e 0...

C語言迴圈結構練習題帶答案

while語句的使用格式和注意事項 do while語句的使用格式和注意事項 for語句的使用格式和注意事項 break和continue語句在迴圈語句中的應用 迴圈結構的巢狀 使用goto語句實現迴圈結構 窮舉法程式設計方法 迭代程式設計方法 1 語句while e 中的條件 e等價於 a a.e...

C語言三大迴圈結構的練習題

專題二練習 一 選擇 1 以下程式的執行結果是 南師大04 main a.5 b.4 c.6 d.不確定 2 以下程式的執行結果是 南師大04 main a.1 b.0 c.非0的數 d.1 3 如下程式的執行結果是 南師大04 void main printf a d,b d n a,b a.a ...