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