2013年计算机二级考试《C语言》课后模拟题及答案五

牛课网 考试宝典 更新时间:2024-05-14 07:52:40

浙江湖州中考语文试卷 小儿厌食的中医辨证论治 佳木斯历届高考状元

  一、单项选择题
  1.下面程序段的运行结果是( C )。
  int n=0;
  while(n++<=2);
  printf(“%d”,n);
  A) 2
  B) 3
  C) 4
  D) 有语法错
  2.设有程序段:
  t=0;
  while(printf(“*”))
  {t++;
  if(t<3) break;
  }
  下面描述正确的是( D )。
  A) 其中循环控制表达式与0等价
  B) 其中循环控制表达式与'0'等价
  C) 其中循环控制表达式是不合法的
  D) 以上说法都不对
  3.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空( B )。
  #include
  main()
  {int a,b,t;
  scanf(“%d%d”,&a,&B);
  while( ___________ )
  {if(a>B)
  {t=a;a=b;b=t;}
  printf(“%d,%d”,a,B);
  scanf("%d%d",&a,&B);
  }
  }
  A) !a=b
  B) a!=b
  C) a==b
  D) a=b
  4.C语言中,while和do-while循环的主要区别是( A )。
  A) do-while的循环体至少无条件执行一次
  B) while的循环控制条件比do-while的循环控制条件更严格
  C) do-while允许从外部转到循环体内
  D) do-while的循环体不能是复合语句
  5.对以下程序段描述正确的是( C )。
  x=-1;Www.KaO8.CC
  do
  {x=x*x;}
  while(!x);
  A) 是死循环  
  B) 循环执行二次
  C) 循环执行一次
  D) 有语法错误
  6.以下描述中正确的是( C )。
  A) do-while循环中循环体内不能使用复合语句
  B) do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
  C) 在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作
  D) do-while循环中,根据情况可以省略while
  7.若有如下语句
  int x=3;
  do{ printf(“%3d”,x-=2);} while(!(--x));
  则上面程序段( B )。
  A) 输出的是1  
  B) 输出的是1和-2
  C) 输出的是3和0
  D) 是死循环
  8.下面有关for循环的正确描述是( D )。
  A) for循环只能用于循环次数已经确定的情况
  B) for循环是先执行循环的循环体语句,后判断表达式
  C) 在for循环中,不能用break语句跳出循环体
  D) for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
  9.对for(表达式1; ;表达式3)可理解为( B )。
  A) for(表达式1;0;表达式3)
  B) for(表达式1;1;表达式3)
  C) for(表达式1;表达式1;表达式3)
  D) for(表达式1;表达式3;表达式3)
  10.若i为整型变量,则以下循环执行次数是( B )。
  for(i=2;i==0;) printf(“%d”,i--);
  A) 无限次
  B) 0次
  C) 1次
  D) 2次
  11.以下不是无限循环的语句为( A )。
  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;
  12.下面程序段的运行结果是( C )。
  for(y=1;y<10;) y=((x=3*y,x+1),x-1);
  printf(“x=%d,y=%d”,x,y);
  A) x=27,y=27
  B) x=12,y=13
  C) x=15,y=14
  D) x=y=27
  13.执行语句for(i=1;i++<4;) ;后变量i的值是( C )。
  A) 3
  B) 4
  C) 5
  D) 不定
  14.有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数,请选择填空( D )。
  #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%9==5
  15.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空( B )。
  #include
  main()
  { int i=0,j,k;
  do{i++;k=316-13*i;}while( _k%11______ );
  j=k/11;
  printf(“316=13*%d+11*%d”,i,j);
  }
  A) k/11
  B) k%11
  C) k/11==0
  D) k%11==0 [page]
  16.下面程序的运行结果是( D )。
  #include
  main()
  {int y=10;
  do{y--;}while(--y);
  printf(“%d”,y--);
  }
  A) -1
  B) 1
  C) 8
  D) 0
  17.若运行以下程序时,从键盘输入ADescriptor(表示回车),则下面程序的运行结果是( D )。
  #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!=’’);
  printf(“v0=%d,v1=%d,v2=%d”,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=12,v1=4,v2=12
  18.下面程序的运行结果是( B )。
  #include
  main()
  {int a=1,b=10;
  do
  {b-=a;a++;}
  while(b--<0);
  printf(“a=%d,b=%d”,a,B);
  }
  A) a=3,b=11
  B) a=2,b=8
  C) a=1,b=-1
  D) a=4,b=9
  19.以下程序的输出结果是( B )。
  main()
  { int num=0;
  while(num<=2)
  { num++; printf(“%d”,num);}
  }
  A) 1
  B) 1
  C) 1
  D) 1
  2   2   2
  3    3
  4
  20.设有程序段
  int k=10;
  while(k=0) k=k-1;
  则下面描述中正确的是( C )。
  A) while循环执行10次 
  B) 循环是无限循环
  C) 循环体语句一次也不执行
  D) 循环体语句执行一次
  21.设有以下程序段
  int x=0,s=0;
  while(!x!=0) s+=++x;
  printf("%d",s);
  则( B )。
  A) 运行程序段后输出0
  B) 运行程序段后输出1
  C) 程序段中的控制表达式是非法的
  D) 程序段执行无限次
  22.语句while(!E);中的表达式!E等价于( A )。
  A) E==0
  B) E!=1
  C) E!=0
  D) E==1
  23.下面程序段的运行结果是( A )。
  a=1;b=2;c=2;
  while(a  printf("%d, %d, %d", a, b, C);
  A) 1,2,0
  B) 2,1,0
  C) 1,2,1
  D) 2,1,1
  24.下面程序段的运行结果是( D )。
  x=y=0;
  while(x<15) y++,x+=++y;
  printf("%d, %d", y, x);
  A) 20,7
  B) 6,12
  C) 20,8
  D) 8,20
  25.以下程序段的执行结果是( B )。
  int a, y;
  a=10; y=0;
  do
  { a+=2; y+=a;
  printf("a=%d y=%d", a, y);
  if(y>20) break;
  } while(a=14);
  A) a=12 y=12
  B) a=12 y=12
  a=14 y=16   a=16 y=28
  a=16 y=20
  a=18 y=24
  C) a=12 y=12
  D) a=12 y=12
  a=14 y=26
  a=14 y=44
  26.t为int类型,进人下面的循环之前,t的值为0,则以下叙述中正确的是( B )。
  while( t=l )
  {……}
  A) 循环控制表达式的值为0
  B) 循环控制表达式的值为1
  C) 循环控制表达式不合法
  D) 以上说法都不对
  27.有以下程序段
  int k=0;
  while(k=1) k++;
  while循环执行的次数是( A )。
  A) 无限次
  B) 有语法错,不能执行
  C) 一次也不执行
  D) 执行1次
 

  28.以下程序执行后sum的值是( C )。
  main()
  { int i , sum;
  for(i=1;i<6;i++) sum+=i;
  printf("%d",sum);
  }
  A) 15
  B) 14
  C) 不确定
  D) 0
  29.有以下程序段
  int x=3;
  do
  { printf("%d",x-=2); }
  while (!(--x));
  其输出结果是( C )。
  A) 1
  B) 3 0
  C) 1 -2
  D) 死循环
  30.若输入12、8,以下程序的输出结果是( A )。
  main()
  {int a,b,num1,num2,temp;
  scanf(“%d,%d”,&num1,&num2);
  if(num1>num2)
  {temp=num1;
  num1=num2;
  num2=temp;
  }
  a=num1,b=num2;
  while(b!=0)
  {temp=a%b;
  a=b;
  b=temp;
  }
  printf(“%d, %d”,a,num1*num2/a);
  }
  A) 4,24
  B) 3,24 
  C) 5,25
  D) 4,25[page]
  31.以下程序的输出结果是( A )。
  #include
  #include
  main()
  {int s=1;
  float n=1,pi=0;
  double t=1;
  while(fabs(t)>=2e-6)
  {pi+=t;
  n+=2;
  s=-s;
  t=s/n;
  }
  pi*=4;
  printf(“pi=%.6f”,pi);
  }
  A) 3.141592
  B) 1
  C) 2e-6
  D) 0
  32.以下程序的输出结果是( B )。
  main()
  {int i,f1,f2;
  f1=f2=1;
  for(i=0;i<4;i++)
  {printf(“%d %d ”,f1,f2);
  f1+=f2;
  f2+=f1;
  }
  }
  A) 1 2 3 4 5 6 7 8 
  B) 1 1 2 3 5 8 13 21
  C) 1 1 3 5 7 9 11 13
  D) 1 3 5 7 9 11 13 15
  33.下列叙述中,正确的一条是( B )。
  A) 语句“goto 12;”是合法的
  B) for(;;)语句相当于while(1)语句
  C) if(表达式)语句中,表达式的类型只限于逻辑表达式
  D) break语句可用于程序的任何地方,以终止程序的执行
  34.以下程序的输出结果是( B )。
  main()
  {int a,b;
  for(a=1,b=1;a<=100;a++)
  {if(b>=20) break;
  if(b%3==1)
  {b+=3;
  continue;
  }
  b-=5;
  }
  printf(“%d”,a);
  }
  A) 7
  B) 8
  C) 9
  D) 10
  35.以下的for循环( C )
  for(x=0,y=0;(y!=123)&&(x<4);x++) ;
  A) 是无限循环
  B) 循环次数不定
  C) 执行4次 
  D) 执行3次
  36.C语言中( D )
  A) 不能使用do-while语句构成的循环
  B) do-while语句构成的循环必须用break语句才能退出
  C) do-while语句构成的循环,当while语句中的表达式值为非零时结束循环
  D) do-while语句构成的循环,当while语句中的表达式值为零时结束循环
  37.以下程序的输出结果是( A )。
  main()
  {int i;
  for(i=1;i<=5;i++)
  {if(i%2)
  printf(“*”);
  else
  continue;
  printf(“#”);
  }
  printf(“$”);
  }
  A) *#*#*#$
  B) #*#*#*$
  C) *#*#$
  D) #*#*$
  38.有以下程序,从第一列开始输入数据2473代表一个回车符),则程序的输出结果为( A )。
  #include
  main()
  {int c;
  while((c=getchar())!=’’)
  {switch(c-‘2’)
  {case 0:
  case 1:putchar(c+4);
  case 2:putchar(c+4);break;
  case 3:putchar(c+3);
  default:putchar(c+2);break;
  }
  }
  printf(“”);
  }
  A) 668977
  B) 668966
  C) 6677877
  D) 6688766
  39.执行以下程序片段的结果是( B )。
  int x=23;
  do
  {printf(“%d”, x--);}
  while(!x);
  A) 打印出321  
  B) 打印出23
  C) 不打印任何内容
  D) 陷入死循环
  40.若x是int型变量,则执行以下程序片段的结果是( D )。
  for(x=3;x<6;x++) printf((x%2)?(“**%d”) : (“##%d”), x);
  A) **3##4**5
  B) ##3**4##5
  C) ##3
  D) **3##4
  **4##5 **5
  41.有以下程序,若运行时从键盘输入3.6 2.4代表一个回车符),则程序的输出结果为( B )。
  #include
  #include
  main()
  {float x,y,z;
  scanf(“%f%f”,&x,&y);
  z=x/y;
  while(1)
  {if(fabs(z)>1.0)
  {x=y;y=z;z=x/y;}
  else break;
  }
  printf(“%f”, y);
  }
  A) 1.500000
  B) 1.600000
  C) 2.000000
  D) 2.400000
  42.以下程序的输出结果是( D )。
  main()
  {int x=10,y=10,i;
  for(i=0;x>8;y=++i)
  printf(“%d %d ”,x--,y);
  }
  A) 10 1 9 2
  B) 9 8 7 6
  C) 10 9 9 0
  D) 10 10 9 1
  43.以下程序的输出结果是( A )。
  main()
  {int n=4;
  while(n--)
  printf(“%d ”,--n);
  }
  A) 2 0
  B) 3 1
  C) 3 2 1
  D) 2 1 0
  44.以下程序的输出结果是( B )。
  main()
  {int i;
  for(i=’A’;i<’I’;i++,i++)
  printf(“%c”,i+32);
  }
  A) 编译通不过,无输出
  B) aceg
  C) acegi
  D) abcdefghi
  45.若i、j已定义为int型,则以下程序段中内循环体的总的执行次数是( A )。
  for(i=5;i;i--)
  for(j=0;j<4;j++){}
  A) 20
  B) 24
  C) 25
  D) 30

  46.若j为int型变量,则以下for循环语句的执行结果是( B )。
  for(j=10;j>3;j--)
  {if(j%3) j--;--j;--j;printf(“%d ”,j);}
  A) 6 3
  B) 7 4
  C) 6 2
  D) 7 3
  47.以下程序的执行结果是( D )。
  main()
  {int i,x;
  for(i=1;i<=50;i++)
  {x=i;
  if(++x%2==0)
  if(x%3==0)
  if(x%7==0)
  printf(“%d”,i);
  }
  }
  A) 28
  B) 27
  C) 42
  D) 41
  48.以下程序的执行结果是( B )。
  main()
  {int i,j;
  for(j=10;j<11;j++)
  { for(i=9;i  if(!(j%i)) break;
  if(i>=j-1) printf(“%d”,j);
  }
  }
  A) 11
  B) 10
  C) 9
  D) 10 11
  49.在下列选项中,没有构成死循环的程序段是( C )。
  A) int i=100;
  B) for(;;);
  while(1)
  {i=i%100+1;
  if(i>100) break;
  }
  C) int k=1000;
  D) int s=36;
  do{++k;} while(s);--s;
  while(k>=10000);
  50.以下程序的输出结果是( B )。
  main()
  {int i,j,x=0;
  for(i=0;i<2;i++)
  { x++;
  for(j=0;j<=3;j++)
  { if(j%2) continue;
  x++;
  }
  x++;
  }
  printf(“x=%d”,x);
  }
  A) x=4
  B) x=8
  C) x=6
  D) x=12
  51.运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果是( C )。
  main()
  {int m,n;
  scanf(“%d%d”,&m,&n);
  while(m!=n)
  {while(m>n) m-=n;
  while(n>m) n-=m;
  }
  printf(“m=%d”, m);
  }
  A) m=3
  B) m=2
  C) m=1
  D) m=0
  52.以下程序的输出结果是( C )。
  main()
  {int i,j,m=0,n=0;
  for(i=0;i<2;i++)
  for(j=0;j<2;j++)
  if(j>=i) m=1;n++;
  printf(“%d”, n);
  }
  A) 4
  B) 2
  C) 1
  D) 0
  53.以下程序执行后sum的值是( C )。
  main()
  { int i , sum=0;
  for(i=1;i<=3;sum++) sum+=i;
  printf("%d",sum);
  }
  A) 6
  B) 3
  C) 死循环
  D) 0 [page]
  二 填空题
  1.以下程序运行后的输出结果是 52
  main()
  { int i=10, j=0;
  do
  { j=j+i; i--;}
  while(i>2);
  printf("%d",j);
  }
  2.设有以下程序:
  main()
  { int n1,n2;
  scanf("%d",&n2);
  while(n2!=0)
  { n1=n2%10;
  n2=n2/10;
  printf("%d",n1);
  }
  }
  程序运行后,如果从键盘上输入1298,则输出结果为 8921
  3.若输入字母b,程序输出结果为 b,B ;若输入字符*,程序将怎样 等待状态
  #include
  main()
  {char c1, c2;
   c1=getchar();
  while(c1<97||c1>122)
  c1=getchar();
  c2=c1-32;
  printf("%c, %c",c1, c2);
  }
  4.用以下程序计算1到100的整数的累加和。
  main()
  { int i=1, sum= 0 ;
   for( ;i<=100; )
   {sum+=i; 
   i++;
   }
   printf("sum=%d", sum );
  }
  5.以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束。请填空。
  main()
  { float x, amax, amin;
   scanf(“%f”,&x);
   amax=x;
   amin=x;
   while( x>=0 )
   {if(x>amax) amax=x;
   if( x) amin=x;
   scanf(“%f”,&x);
   }
   printf("amax=%famin=%f",amax, amin);
  }
  6.设i、j、k均为int型变量,则执行完下面的for循环后,k的值为 10
   for(i=0, j=10;i<=j; i++, j--) k=i+j;
  7.下面程序的功能是:计算1到10之间的奇数之和及偶数之和,请填空。
  main()
  { int a, b, c, i;
   a=c=0;
   for(i=0;i<=10;i+=2)
   {a+=i;
   b=i+1 ;
   c+=b;
   }
   printf("偶数之和=%d", a);
   printf("奇数之和=%d", c-11);
  }
  8.下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。
  main()
  { int i, j;
   for(i=0; i<100 ; i++)
   {j=i*10+6;
   if( j%3!=0 ) continue;
   printf(“%d”, j);
   }
  }
  9.要使以下程序段输出10个整数,请填入一个整数。
  for(i=0; i<= 18or19 ; printf(“%d”, i+=2));
  10.若输入字符串:abcde<回车>,则以下while循环体将执行 0 次。
  while((ch=getchar())= =‘e’) printf(“*”);

考试宝典安装说明

宝典适用于手机、电脑、平板,您可安装客户端或在浏览器使用。

电脑版

手机版

网页版

考试宝典咨询
服务热线

TEL:029-88699698