计算机等级 百分网手机站

计算机二级c语言考试真题及答案(2)

时间:2018-02-09 14:08:28 计算机等级 我要投稿

2017年计算机二级c语言考试真题及答案

  #include

  voidfun(char *s)

  { while(*s)

  { if(*s%2) printf("%c",*s);

  s++;

  }

  }

  main()

  { char a[]="BYTE";

  fun(a);

  printf("\n");

  }

  程序运行后的输出结果是

  A)BY

  B)BT

  C)YT

  D) YE

  (26)有以下程序段

  #include

  main()

  { …

  while( getchar()!='\n');

  …

  }

  以下叙述中正确的是

  A)此while语句将无限循环

  B) getchar()不可以出现在while语句的条件表达式中

  C)当执行此while语句时,只有按回车键程序才能继续执行

  D)当执行此while语句时,按任意键程序就能继续执行

  (27)有以下程序

  #include

  main()

  { int x=1,y=0;

  if(!x) y++;

  else if(x==0)

  if (x) y+=2;

  else y+=3;

  printf("%d\n",y);

  }

  程序运行后的输出结果是

  A)3

  B)2

  C)1

  D) 0

  (28)若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是

  A)p=s;

  B)p=k;

  C)p=s[0];

  D)k=s;

  (29)有以下程序

  #include

  voidfun(char *

  C)

  { while(*

  C)

  {if(*c>='a'&&*c<='z') *c=*c-('a'-'A');

  c++;

  }

  }

  main()

  { chars[81];

  gets(s);

  fun(s);

  puts(s);

  }

  当执行程序时从键盘上输入HelloBeijing<回车>,则程序的输出结果是

  A)hello beijing

  B)Hello Beijing

  C)HELLO BEIJING

  D)hELLO Beijing

  (30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。

  #include

  #define N 10

  void fun(intx[N])

  { int i=0;

  while(i}

  在程序中下划线处应填入的是

  A)x+i

  B)&x[i+1]

  C)x+(i++)

  D)&x[++i]

  (31)有以下程序

  #include

  main()

  { chara[30],b[30];

  scanf("%s",a);

  gets(

  B);

  printf("%s\n %s\n",a,

  B);

  }

  程序运行时若输入:

  how areyou? I am fine<回车>

  则输出结果是

  A)how areyou?

  B)how

  I am fine are you? I am fine

  C)how areyou? I am fine

  D)how are you?

  (32)设有如下函数定义

  int fun(intk)

  { if(k<1) return 0;

  elseif(k==1) return 1;

  else returnfun(k-1)+1;

  }

  若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是

  A)2

  B)3

  C)4

  D)5

  (33)有以下程序

  #include

  int fun (int x,int y)

  { if(x!=y) return ((x+y)/2);

  else return (x);

  }

  main()

  { inta=4,b=5,c=6;

  printf("%d\n",fun(2*a,fun(b,

  C)));

  }

  程序运行后的输出结果是

  A)3

  B)6

  C)8

  D)12

  (34)有以下程序

  #include

  int fun()

  { static intx=1;

  x*=2;

  return x;

  }

  main()

  { int i,s=1;

  for(i=1;i<=3;i++) s*=fun();

  printf("%d\n",s);

  }

  程序运行后的输出结果是

  A)0

  B)10

  C)30

  D)64

  (35)有以下程序

  #include

  #define S(x)4*(x)*x+1

  main()

  { intk=5,j=2;

  printf("%d\n",S(k+j));

  }

  程序运行后的输出结果是

  A)197

  B)143

  C)33

  D)28

  (36)设有定义:struct {char mark[12];int num1;double num2;} t1,t2;,若变量均已正确赋初值,则以下语句中错误的是

  A)t1=t2;

  B)t2.num1=t1.num1;

  C)t2.mark=t1.mark;

  D)t2.num2=t1.num2;

  (37)有以下程序

  #include

  struct ord

  { int x,y;}dt[2]={1,2,3,4};