循环2
一、单项选择题 
1.  以下程序的输出结果是______。
#include<stdio.h> 
void main()
  {  int num=0;    while(num<=2) { num++; printf("%d",num); }  }
A. 2          B. 1            C. 123          D. 12   
参考标准答案 :C
 
2.  两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是______。
#include <stdio.h>
void main()
{  int x;    scanf("%d",&x);
    if(x>5)printf("%d",x);
    else printf("%d\n",x--);   
}
A. 7和5          B. 6和3      C. 7和4        D. 6和4
参考标准答案 : D
3.  以下描述中正确的是______。
A. 由于do-while循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。
B. do-while循环由do开始,用while结束,因此在while(表达式)后无需加分号。
C. 在do-while循环体中,一定要有能使while后面表达式的值变为“假”的操作。
D. do-while循环中,根据情况可以省略while。
                        参考标准答案 : C
4. 下面程序段的输出结果是______。
int i=10;
  while(i>7) { i--;  printf(" %d",i);  }
A. 10 9 8          B. 9 8 7        C. 10 9 8 7            D. 8 9 10
                        参考标准答案 :B
5. 若i为整型变量,则以下循环执行的次数是______。
  for(i=2;i==0;) printf("%d",i--);
A. 无限次      B. 0次          C. 1次          D. 2次
                        参考标准答案 : B
6. 执行下面程序段后,i值是______。
int i=0;  do {++i; if(i%2!=0);}while(i<=100);
  A. 101            B. 100        C. 99              D. 98
                        参考标准答案 : A
7. 若变量都已正确说明,则以下程序段输出为______。
int a=1,b=2,c,d;
if (a==b)  c=d=a;
else      c=b;
d=b; 
printf("c=%d,d=%d",c,d);
A. c=1,d=1      B. c=1,d=2    C. c=2,d=1    D. c=2,d=2
                    参考标准答案 : D
8. 以下程序输出结果是______。
#include <stdio.h>
void main ( )
{  int m=5;
if (m++>5) printf("%d\n",m);
else printf("%d\n",m--);  }
A. 7          B. 6          C. 5        D. 4
                        参考标准答案: B
9. 在C语言中______。
A. 不能使用do_while语句构成的循环
  B. do_while语句构成的循环必须用break语句才能退出
  C. do_while语句构成的循环,当while语句中的表达式为非0时结束循环
  D. do_while语句构成的循环,当while语句中的表达式为0时结束循环
                        参考标准答案案: D
10. 在下列选项中,没有构成死循环的程序段是______。
A. int i=100; while (1) {i=i%100+1; if(i>100)break;}
B. for(;;);
C. int k=1000; do{--k} while (k)
D. int s=36; while(s>=0);++s;
                        参考标准答案: C
11. 以下叙述正确的是______。
A. 可以把define和if定义为用户标识符
B. 可以把define定义为用户标识符,但不能把if定义为用户标识符
C. 可以把if定义为用户标识符,但不能把define定义为用户标识符
D. define和if都不能定义为用户标识符
                        参考标准答案: B
12. 下面有关for循环的正确描述是______。
A. for循环只能用于循环次数已经确定的情况
B. for循环是先执行循环体语句,后判定表达式
C. 在for循环中,不能用break语句跳出循环体
D. for循环体语句中,可以包含多条语句,但要用花括号括起来        参考标准答案: A
13.  下面说法中正确的是______。
A.编程时,应该尽量控制嵌套循环的重数。
B.编程时,变量名应尽可能的简短。
C.编程时,应多用goto语句,以增强程序的灵活性。
D.编程时,要尽可能的简洁而新颖,可理解性是第二位的。
                        参考标准答案: Awhile语句怎么退出
14.  以下程序的输出结果是______。
# include <stdio.h>
void main()
{  int i=0, j=0, k=6;
if ((++i>0)||(++j>0))  k++;
printf("%d, %d, %d\n", i, j, k); 
}
A. 0, 0, 6        B. 1, 0, 7        C. 1, 1, 7      D. 0, 1, 7
                        参考标准答案  B
  15.  C语言的for语句中的表达式可以部分或全部省略,但两个______不可省略。但当三个表达式均省略后,因缺少判断条件,循环会无限制地进行下去,形成死循环。
A. “<”          B. “++”        C. “;”          D. “,”
                        参考标准答案  C
  16.    以下程序段中不能根据x值正确计算出y值的是______。
A. if(x>0) y=1;                    B. y=0;
  else  if(x==0) y=0;      if(x>0) y=1;
      else y=-1;                  else  if(x<0) y=-1    ;
C. y=0;                        D. if(x>=0)
  if(x>=0);                          if(x>0) y=1;
  if(x>0) y=1 ;                      else y=0;
else y=-1;                      else y=-1;
                        参考标准答案  C
  17.    设有程序段: int x=0,s=0; while(!x!=0) s+=++x; printf("%d",s); ,则运行程序段后______。
A.输出0                        B.输出1
C.控制表达式是非法的          D.执行无限次
                        参考标准答案  B
  18.  以下的for循环,______。for(x=0,y=0;(y!=123)&&(x<4);x++);
A.执行3次                    B.执行4次
C.循环次数不定                D.是无限循环
                        参考标准答案  B
19.请阅读以下程序:
  #include<stdio. h>
  void main()
  {  float  a,b;  scanf("%f",&a);
    if (a<10.0) b=1.0/a;
    else  if((a<0.5)&&(a!=2.0))b= 1.0/(a十2.0);
          else  if(a<10.0)  b= 1.0/a ;
              else  b=10.0;
    printf("%f\n",b); 
}   
若运行时输入2.0(回车),则上面程序的输出结果是______。
A. 0.000000      B. 0.500000    C. 1. 000000    D. 0.250000
                        参考标准答案  B
  20.  语句while (!e);中的条件!e等价于______。
  A. e==0;        B. e!=1          C. e!=0          D. ~e
              参考标准答案  A
21.  以下程序输出结果为______。
#include <stdio.h>
void main()
{  int i,b,k=0;
  for(i=1;i<=5;i++) { b=i%2; while (b-->=0) k++;} printf("%d,%d\n",k,b); }
A. 3,-1          B. 8,-1          C. 3,0            D. 8,-2

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。