当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机等级二级C语言章节习题及答案(5)
发布时间:2010/11/7 23:34:33 来源:城市学习网 编辑:ziteng
  第6章 循环控制
  一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。)
  6.1 对表达式for(表达式1; ;表达式3)可理解为
  A)for(表达式1;0;表达式3)
  B)for(表达式1;1;表达式3)
  C)for(表达式1;表达式1;表达式3)
  D)for(表达式1;表达式3;表达式3)
  正确答案: B
  6.2 在下列选项中,没有构成死循环的是
  A)int i=100;
  while(1)
  {i=i0+1;
  if(i>100)break;
  }
  B)for(;;);
  C)int k=10000;
  do{k++;}while(k>10000);
  D)int s=36;
  while(s)--s;
  正确答案: D
  6.3 下面有关for循环的正确描述是
  A)for循环只能用于循环次数已经确定的情况
  B)for循环是先执行循环体语句,后判断表达式
  C)在for循环中,不能用break语句跳出循环体
  D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
  正确答案: D
  6.4 若int i,j;,则for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体执行的次数是
  A)9
  B)8
  C)3
  D)2
  正确答案: C
  6.5 阅读下列程序段,则程序的输出结果是
  #include "stdio.h"
  main()
  { int a=10,b=10,k;
  for(k=0;a>8;b=++k)
  printf("%d,%d,",a- -,- -b);
  printf("\n");}
  A)10,10,10,0,
  B)10,9,9,0,
  C)10,10,9,1,
  D)9,9,9,1,
  考生答案: 正确答案: B
  6.6 有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数,请选择填空。
  #include
  main()
  { int i;
  for(i=100;i<200;i++)
  if((i-2)%4==0)
  if(!((i-3)%7))
  if(_______)
  printf("%d",i);
  }
  A)i%9=5
  B)i%9!=5
  C)(i-5)%9!=0
  D)(i-5)%9==0
  正确答案: D
  6.7 下列程序的输出结果是
  #include "stdio.h"
  main()
  {int i,a=0,b=0;
  for(i=1;i<10;i++)
  { if(i%2= =0)
  { a++;
  continue; }
  b++; }
  printf("a=%d,b=%d",a,b);}
  A)a=4,b=4
  B)a=4,b=5
  C)a=5,b=4
  D)a=5,b=5
  正确答案: B
  6.8 阅读下列程序,则执行结果是
  #include "stdio.h"
  main()
  {int a=0,b=0,c=0,i;
  for(i=0;i<4;i++)
  switch(i)
  { case 0:a=i++;
  case 1:b=i++;
  case 2:c=i++;
  case 3:i++; }
  printf("%d,%d,%d,%d\n",a,b,c,i);}
  A)0,1,3,4
  B)1,2,3,4
  C)0,1,2,5
  D)0,2,3,4
  正确答案: C
  6.9 阅读下列程序,程序的输出结果是
  #include "stdio.h"
  main()
  {
  int m,n;
  float k;
  for(m=6;m>2;m- -)
  { k=0;
  for(n=m;n>1;n- -)
  k=k+m*n;
  }
  printf("%f\n",k);
  }
  A)5.000000
  B)15.000000
  C)25.000000
  D)35.000000
  正确答案: B
  6.10 下面程序的运行结果是
  #include "stdio.h"
  main()
  { int j,i,k=0;
  for(j=50;j<=60;j++)
  { if(!(k)) printf("\n");
  for(i=2;iif(!(j%i)) break;
  if(i>=j-1)
  { printf("%d",j);
  k++; }
  }
  }
  A)5359
  B)5953
  C)3595
  D)9535
  正确答案: A [NextPage]   6.11 已知
  int t=0;
  while(t=1)
  {...}
  则以下叙述正确的是
  A)循环控制表达式的值为0
  B)循环控制表达式的值为1
  C)循环控制表达式不合法
  D)以上说法都不对
  正确答案: B
  6.12 设有以下程序段
  int x=0,s=0;
  while(!x!=0)s+=++x;
  printf("%d",s);
  则
  A)运行程序段后输出0
  B)运行程序段后输出1
  C)程序段中的控制表达式是非法的
  D)程序段执行无限次
  正确答案: B
  6.13 下列程序的输出结果是
  #include "stdio.h"
  main()
  { int i=6;
  while(i- -)
  printf("%d",- -i);
  printf("\n");}
  A)531
  B)420
  C)654321
  D)死循环
  正确答案: B
  6.14 对下Ⅰ,Ⅱ两个语句描述正确的是
  Ⅰ.while(1)Ⅱ.for(;;)
  A)都是无限循环
  B)Ⅰ是无限循环,Ⅱ错误
  C)Ⅰ循环一次,Ⅱ错误
  D)以上答案都错
  正确答案: A
  6.15 以下程序段的描述,正确的是
  x=-1;
  do
  {x=x*x;}
  while(!x);
  A)是死循环
  B)循环执行两次
  C)循环执行一次
  D)有语法错误
  正确答案: C
  6.16 若有如下语句
  int x=3;
  do{ printf("%d\n",x-=2);}while(!(- -x));
  则上面程序段
  A)输出的是1
  B)输出的是1和-2
  C)输出的是3和0
  D)是死循环
  正确答案: B
  6.17 下面程序的运行结果是
  #include
  main()
  { int a=1,b=10;
  do
  { b-=a; a++; }while(b- -<0);
  printf("a=%d,b=%d\n",a,b);
  }
  A)a=3,b=11 B)a=2,b=8 C)a=1,b=-1 D)a=4,b=9
  正确答案: B
  6.18 若运行以下程序时,从键盘输入 ADescriptor(表示回车),则下面程序的运行结果是#include
  main()
  {char c;
  int v0=1,v1=0,v2=0;
  do{switch(c=getchar())
  {case ′a′:case ′A′:
  case ′e′:case ′E′:
  case ′i′:case ′I′:
  case ′o′:case ′O′:
  case ′u′:case ′U′:v1+=1;
  default:v0+=1;v2+=1; }
  }while(c!=′\n′);
  printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}
  A)v0=7,v1=4,v2=7
  B)v0=8,v1=4,v2=8
  C)v0=11,v1=4,v2=11
  D)v0=13,v1=4,v2=12
  正确答案: D
  6.19 下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。
  #include
  main()
  { int i=0,j,k;
  do{ i++; k=316-13*i; }while(______);
  j=k/11;
  printf("316=13*%d+11*%d",i,j);
  }
  A)k/11
  B)k
  C)k/11==0
  D)k==0
  正确答案: B
  6.20 C语言中 while 和do-while循环的主要区别是
  A)do-while的循环体至少无条件执行一次
  B)while的循环控制条件比do-while的循环控制条件更严格
  C)do-while允许从外部转到循环体内
  D)do-while 的循环体不能是复合语句
  正确答案: A
  6.21 下列说法中错误的是
  A)只能在循环体内使用break语句
  B)在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环
  C)在while和do…while循环中,continue语句并没有使整个循环终止
  D)continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环判断
  正确答案: A
 [NextPage]   二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)
  6.22 设i,j,k均为int型变量,则执行完下面的for语句后,k的值为【1】。
  for(i=0, j=10; i<=j; i++, j- -) k=i+j;
  正确答案: 10
  6.23 下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。
  main()
  {int i, x, y=1;
  scanf("%d", &x);
  for(i=2; i<=x/2; i++)
  if【2】{ y=0; break;}
  printf("%d\n", y);
  }
  正确答案: (x%i= =0)
  6.24 以下程序的输出结果是【3】。
  main()
  { int y=9;
  for(; y>0; y- -)
  if (y%3= =0)
  { printf("%d", - -y); continue; }
  }
  正确答案: 852
  6.25 阅读下面程序段,则执行后的输出结果为 【4】 。
  #include "stdio.h"
  main()
  { int a=1;
  for(;a<=15;)
  if(++a%5!=2) continue;
  else printf("%d",a);
  printf("\n"); }
  正确答案: 2712
  6.26 阅读下面语句,则执行后的输出结果为 【5】
  #include "stdio.h"
  main()
  {char a,b;
  for(a=′0′,b=′9′;aprintf("%c%c",a,b);
  printf("\n");}
  正确答案: 0918273645
  6.27 阅读下面程序,则执行后程序的结果为 【6】
  #include "stdio.h"
  main()
  { int a=0,b=0;
  while(a<15)a++;
  while(b++<15);
  printf("%d,%d\n",a,b);}
  正确答案: 15,16
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved