一、选择题
1. 设有如下程序段,则下面描述正确的是           
  int k=10;
  while (k=0) k=k—1;
A.while循环执行10次            B.循环是无限循环
C.循环体语句一次也不执行        D.循环体语句执行一次
2. 下面程序段的运行结果是           
a=1; b=2; c=2;
while(a<b<c) { t=a; a=b; b=t; c--;}
pirntf(%d, %d, %d,a,b,c);
A.1,2,0      B.2,1,0      C.1,2,1      D.2,1,1
3。 下面程序段的运行结果是         
int n=0;
while(n〈=2)  n++;  printf(%d,n);
A.2    B.3    C.4      D.有语法错误
4。 设有如下程序段,则描述正确的是           
t=0;
while (printf(*))
{t++; if(t<3) break;
A.其中循环控制表达式与0等价
B.其中循环控制表达式与‘0’等价
C.其中循环控制表达式是不合法的
D.以上说法都不对
5。 下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对等数时结束循环,请选择填空.
#include<stdio.h〉
int main()
{int a,b,t;
scanf(”%d%d",&a,&b);
while(                 
{if(a〉b) {t=a;a=b;b=t;}
  printf("%d,%d\n”,a,b);
  scanf("%d%d”,&a,&b);
}
return 0;
A.!a=b      B.a!=b    C.a==b    D.a=b
8. 下面程序的功能是在输入的一系列正整数中求出最大者,输入0结束循环,请选择填空.
#include〈stdio.h>
int main()
{int a,max=0;
scanf(”%d”,&a);
while(         
{if(max〈a) max=a;
  scanf("%d”,&a);
printf(”%d\n",max);
return 0;
}
A.!a=0      B.a!=0    C.a= =0    D.a=0
9。 下面程序的运行结果是         
#include<stdio。h〉
int main()
{int num=0;
while(num〈=2)
{num++;
  printf(”%d”,num);
return 0;
A.1      B.12      C.123          D.1234
11. 以下程序的功能是计算一个整数的各位数字之和,请选择填空。
#include〈stdio.h〉
int main()
{int n,m=0;
scanf(”%d",&n);
for( n!=0;
{m            ;
  n/=10;
}
printf("%d\n”,m);
return 0;
A.+=n%10      B.=n%10        C.+=n        D.=n/10
13. 以下程序段         
x=—1;
do
{ x=x*x;}while(!x);
A.是死循环    B.循环执行二次    C.循环执行一次  D.有语法错误
14. 以下描述中正确的是           
A.while、do—while、for循环中的循环体语句都至少被执行一次
B.do-while循环中,while(表达式)后面的分号可以省略
C.while循环体中,一定要有能使while后面表达式的值变为“假”的操作
D.do-while循环中,根据情况可以省略while
15。下面程序的功能是计算正整数2345的各位数字的平方和,请填空.
#include <stdio。h>
int main( )
{ int n=2345,sum=0;
  do
  { sum=sum+              ;
n=               
}while(n);
printf(sum=%d",sum);
return 0;
}
A.n%10                  B.(n%10)*(n%10)
C.n/10                    D.(n/10)*(n/10)
A.n/1000    B.n/100    C.n/10    D.n%10
17. 下面程序的运行结果是        .
#include〈stdio。h>
int main()
{ int y=10;
  do
  {y--;}while(--y);
  printf(”%d\n",y--);
  return 0;
A.—1        B.1        C.8        D.0
18.下面有关for循环的正确描述是     
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判断表达式
C.for循环中,不能用break语句跳出循环体
D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
19. 对for(表达式1; ;表达式3)可理解为       
Afor(表达式10;表达式3)
Bfor(表达式11;表达式3)
C.for(表达式1;表达式1;表达式3)
D.or(表达式1;表达式3;表达式3)
20. 若i为整型变量,则以下循环执行次数是         
for (i=2; i= =0; ) printf(%d",i-—);
A.无限次        B.0次      C.1次      D.2次
21。 以下不是无限循环的语句为           
A.for(y=0, x=1; x〉++y; x=i++)  i=x;
B.for(  ;  ; x++=i);
C.while(1) {x++;}
D.for(i=10;  ; i——) sum+=i;
24。 下面程序的功能是求算式xyz+yzz=532中的x,y,z的值(其中xyz和yzz分别表示一个三位数),请选择填空.
#include 〈stdio。h〉
int main( )
{ int x,y,z,I,result=532;
  for(x=1;x〈10;x++)
printf函数输出整数时不能使用
for(y=1;y〈10;y++)
    for(              ; z〈10; z++)
    { i=100*x+10*y+z+100*y+10*z+z;
      if (                )
          printf(x=%d,y=%d,z=%d\n,x,y,z);
    }
return 0;
}
A.z=x          B.z=1        C.z=0          D.z=y
A.i/result==1    B.i=result      C.i!=result      D.i==result
25。 以下正确的描述是              .
A.continue语句的作用是结束整个循环的执行
B.只能在循环体内和switch语句体内使用break语句
C.在循坏体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出,只能使用goto语句
26。 在下面的程序中,           
#include〈stdio。h>
int main()
{int t,x;
for(t=1;t<=100;t++)
{scanf(”%d”,&x);
  if(x〈0) continue;
  printf(”%3d",t);
}
return 0;
A.当x〈0时整个循环结束
B.x〉=0时什么也不输出
C.printf函数永远也不执行