第五章循环结构的程序设计补充习题(1)(总5页)

第五章 循环结构的程序设计补充习题(1)
一、单选题
1. 以下叙述正确的是 
    A) do-while语句构成的循环不能用其它语句构成的循环来代替。
    B) do-while语句构成的循环只能用break语句退出。
    C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环。
    D) 用do-while语句构成的循环,在while后的表达式为零时结束循环。
2. 设有程序段 
    int k=10;
    while(k=0) k=k-1;
    则下面描述中正确的是   
            A)while循环执行10次            B)循环是无限循环
            C)循环体语句一次也不执行        D)循环体语句执行一次
3. 有如下程序
main()
{    int    x=23;
do
{  printf("%d",x--);}
while(!x);
}
该程序的执行结果是
A) 321        B) 23    C) 不输出任何内容  D) 陷入死循环
4. 有如下程序
main()
{    int    n=9;
while(n>6)  {n--;printf(“%d”,n);}
}
该程序段的输出结果是
A) 987          B) 876          C) 8765        D) 9876
5. 有以下程序
  main()
  { int s=0,a=1,n;
    scanf("%d",&n);
    do
    { s+=1; a=a-2; }
    while(a!=n);
printf("%d\n",s);
  }
  若要使程序的输出值为2,则应该从键盘给n输入的值是
  A)-1       B)-3       C)-5       D)0
6.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)
  s=a;  for(b=1;b<=c;b++) s=s+1;  则与上述程序段功能等价的赋值语句是
  A)s=a+b;       B)s=a+c;       C)s=s+c;       D)s=b+c;
7. 标有/**/的语句的执行次数是:
int y , i ;
for(i=0;i<20;i++)
{ if( i%2==0) continue ;
  y+=i ; /**/
}
A) 20        B)19         C)10          D) 9
8.要求以下程序的功能是计算:s= 1+1/2+1/3+……+1/10
  main()
  { int n; float s;
    s=;
    for(n=10;n>1;n--) s=s+1/n;
    printf("%\n",s);
  }
程序运行后输出结果错误,导致错误结果的程序行是
  A)s=;     B)for(n=10;n>1;n--)     
C)s=s+1/n;       D)printf("%\n",s)
9. C语言中while和do-while循环的主要区别是______。
A)do-while的循环体至少无条件执行一次
B)while的循环控制条件比do-while的循环控制条件严格
C)do-while允许从外部转到循环体内
D)do-while的循环体不能是复合语句
10. 以下能正确计算1*2*3*…*10的程序段是______。
A)do {i=1;s=1;s=s*i;i++;}while(i<=10);
B)do {i=1,s=0;s=s*i;i++;}while(i<=10);
C)i=1;s=1;do{s=s*i;i++;}while(i<=10);
D)i=1;s=0;do{s=s*i;i++;}while(i<=10);
11. 以下正确的描述是(    )
    A) 循环体中的continue语句的作用是结束整个循环的执行
    B) switch语句中不能出现break语句
    C) continue语句只能中止本次循环
    D) break语句不能用于多重循环
12. 语句while(!E);中的表达式!E等价于________.
  A)E==0      B)E!=1    C)E!=0      D)E==1
13. 设有程序段
    t=0;
    while(printf(“*”))
    {    t++;
        if(t<3) break;
    }
    则下面描述正确的是   
A)其中循环控制表达式与0等价   
B)其中循环控制表达式与‘0’等价
C)其中循环控制表达式是不合法的   
D)以上说法都不对
14. 下面有关for循环的正确描述是   
A)for循环只能用于循环次数已经确定的情况
B)for循环是先执行循环体语句,后判断表达式
C)for循环中,不能用break语句跳出循环体
D)forwhile语句怎么退出循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
15.对for(表达式1;;表达式3)可理解为   
            A)for(表达式1;0;表达式3)        B)for(表达式1;1;表达式3)
            C)for(表达式1; 表达式1;表达式3)
            D)for(表达式1; 表达式3;表达式3)
16.下面程序段(    )
  for(t=1;t<=100;t++)
    {scanf(“%d,&x);
      if(x<0)continue;
      printf(“%3d”,x);
    }
A) x<0时整个循环结束
B) x>=0时什么也不输出
C) printf函数永远也不执行
D)最多允许输出100个非负整数
二、填空题
1. continue 语句是用来结束________循环的。
2. 下列程序段循环执行的次数是             次。
    int  x=0;
    while(x=1)
    { x--;
      if(x==0)
        break;
    }
3. 循环程序段“k=5; for(; k<0; k--);”执行后,k的值为         
4. 执行循环结构中的        语句能够立即退出该结构。
5.执行循环结构中的      语句能够立即执行下一次循环。
6. 设i,j,k均为int型变量,则执行完下面的for循环后,k的值为         
for(i=0,j=10;i<=j;i++,j--)  k=i+j;
三、判断题
1.若有说明int c;则while(c=getchar());是正确的C语句。 (  )
2.do-while语句构成的循环不能用break语句退出。(  )
3.for循环只能用于循环次数已经确定的情况。(  )
4.for( ; ; )S中的语句S必执行无穷多次。 (  )
5.若S为C语句,while(1) S必定是无限循环。(  )
四、写出下列程序的运行结果
1.下面程序的运行结果是   
    #include <>
    main()
    {    int num=0;
            while(num<=2)
            {
                num++;
                printf(“%d\n”,num);
            }
          }
2.以下程序的输出是             
    #include <>
    main()
    {        int i;
            for(i=1;i<=5;i++)
            {
                if(i%2) printf(“*”);
                else continue;
                printf(“#”);
            }
            printf(“$\n”);
    }
           
3.
当运行以下程序时,从键盘键入right<CR>(<CR>代表回车),则下面程序的运行结果是   
    #include <>
    main()
    {        char c;
            while((c=getchar())!=‘’) putchar(++c);    }
4.下列程序的输出结果是             
main ( )
    {  int a=0,  n=5;   
      for  ( ; ; )
        {  a++; n--;
            printf("%d,",a);

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