(一)選擇題
1 .設有程序段
?int k=10;
?while(k=0)k=k-1;
? 這下面描述中正確的是 _________.
?a)while 循環(huán)執(zhí)行 10 次 ???????? b) 循環(huán)是無限循環(huán)
?c) 循環(huán)體語句以此也不執(zhí)行 ??? d) 循環(huán)體語句執(zhí)行一次
2 .語句 while(!E); 中的表達式 !E 等價于 ________.
? a)E==0????? b)E!=1??? c)E!=0?????? d)E==1
3 .下面程序段的運行結(jié)果是 __________.
? int n=0;
?? while(n++<=2);printf("%d",n);
?? a)2?? b)3? c)4?? d) 有語法錯
4 .下面程序的運行結(jié)果是 ____.
??? #include<stdio.h>
??? main()
???? {
???? int num=0;
???? while(num<=2)
????? {
????? num++;
????? printf("%d\n",num);
????? }
???? }
a)1?????? b)1???????? c)1?????? d)1
????????????? 2?????????? 2???????? 2
????????????????????????? 3???????? 3
??????????????????????????????????? 4
5 .以下程序段 ________.
?x=-1;
?do{
??? x=x*x;
?? }
?while(!x);
?a) 是死循環(huán) ????????????? b) 循環(huán)執(zhí)行二次
?c) 循環(huán)執(zhí)行一次 ????????? d) 有語法錯誤
6 .若有如下語句
?? int x=3;
?? do{printf(""%d\n",x-=2);}while(!(--x));
? 則上面程序段 ______.
? a) 輸出的是 1?? b) 輸出的是 1 和 -2? c ) 輸出的是 3 和 0? d) 是死循環(huán)
7 .下面程序的運行結(jié)果是 ______.
? #include<stdio.h></P< p>
main()
? {int y=10;
?? do{y--;}while(--y);
?? printf("%d\n",y--);
?? }
? a)-1?? b)1?? c)8?? d)0
8 .若 i 為整型變量,則以下循環(huán)執(zhí)行次數(shù)是 _____.
? for(i=2;i==0;)printf("%d",i--);
?? a) 無限次 ?? b)0 次 ???? c)1 次 ?? d)2 次
9 .執(zhí)行語句 for(i=1;i++<4; ); 后變量 i 的值是 ______.
? a)3?? b)4?? c)5???? d) 不定
10 .以下正確的描述是 _______.
? a)continue 語句的作用是結(jié)束整個循環(huán)的執(zhí)行
? b) 只能在循環(huán)體內(nèi)和 switch 語句體內(nèi)使用 break 語句
? c) 在循環(huán)體內(nèi)使用 break 語句或 continue 語句的作用相同
? d) 從多層循環(huán)嵌套中退出時,只能使用 goto 語句
(二)、填空題
1.下面程序段是從鍵盤輸入的字符中統(tǒng)計數(shù)字字符的個數(shù),用換行符結(jié)束
循環(huán)。請?zhí)羁铡?br />? int n=0,c;
? c=getchar();
? while(____)
?? {
?? if(_____)n++;
??? c=getchar();
?? }
2.下面程序的功能是用"輾轉(zhuǎn)相除法"求兩個正整數(shù)的最大公約數(shù)。請?zhí)羁铡?/span>
? #include? <stdio.h>
? main()
? {int r,m,n;
?? scanf("%d%d",&m,&n);
?? if(m<n)_______;
?? r=m%n;
?? while(r){m=n;n=r;r=______;}
?? printf("%d\n",n);
? }
3.下面程序的運行結(jié)果是_________.
? #include <stdio.h>
? main()
?{int a,s,n,count;
? a=2;s=0;n=1;count=1;
? while(count<=7){n=n*a;s=s+n;++count;}
? printf("s=%d",s);
?}
4.下面程序段的運行結(jié)果是_________.
?i=1;a=0;s=1;
?do{a=a+s*i;s=-s;i++;}while(i<=10);
?printf("a=%d",a);
5.下面程序段的運行結(jié)果是_______.
?? i=1;s=3;
?? do{s+=i++;
????? if(s%7==0)continue;
????? else ++i;
???? }while(s<15);
?? printf("%d",i);
?