试题 百分网手机站

计算机二级C语言选择题及答案

时间:2020-09-23 20:53:44 试题 我要投稿

2017计算机二级C语言选择题及答案

  练习做多了自然会形成自己的做题方法和速度,为此,今天百分网小编为大家整理了以下2017计算机二级C语言选择题及答案,希望对大家有帮助!

  1.若有说明语句:double*p,a;则通过scanf语句正确给输入项读人数据的程序段是( )。

  A.*p=&a;scanf("%1f”,p);

  B.*p=&a;scanf("%f",p);

  C.p=&a;scanf("%",*p);

  D.p=&a;scanf("%1f",p);

  2.下列程序的输出结果是( )。

  #include

  main()

  { int a[2][3]={{1,2,3),{4,5,6)),(*p)[3],i;

  p=a ;

  for(i=0;i<3;i++)

  { if(i<2)

  p[1][i]=p[1][i]-1;

  else

  p[1][i]=1;

  }

  printf("%d\n",a[o][1]+a[1][1]+a[1][2]);

  }

  A.8

  B.7

  C.12

  D.9

  3.执行下列程序后,输出的结果是( )。

  #include

  #define S(X) X*X

  void main()

  { int a=9,k=3,m=2;

  a/=S(k+m)/S(k+m):

  printf("%d",a);

  }

  A.1

  B.4

  C.9

  D.0

  4.设x=015,则x=x^017的值是( )。

  A.00001111

  B.11111101

  C.00000010

  D.1 1000000

  5.若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是( )。

  A.EOF B.-l

  c.非零值D.0

  6.设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句:

  if(a  if(c==d)y=0;

  else y=1;

  该语句所表示的含义是( )。

  A.y=0,a   y=1,a≥b

  B.y=0,a   y=1,a≥b且c≠d

  C.y=0,a   y=1,a  D.y=0,a   y=1,c≠d

  7.下列程序的运行结果是( )。

  #include

  void main()

  {int s=0,k;

  for(k=7;k>1;k--)

  {switch(k)

  {case 1:

  case 4:

  case 7:

  s++:

  break;

  case 2:

  case 3:

  case 6:break;

  case 0:

  case 5:

  s+=2:

  break;

  }}

  printf("s=%d",s);

  }

  A.s=3

  B.s=4

  C.s=5

  D.无输出结果

  8.若i、j已定义成mt型,则下列程序段中内循环体的总执行次数是( )。

  for(i=6;i>0;i--)

  for(j=0;j<4;j++){…}

  A.20

  B.24

  C.25

  D.30

  9.下列叙述中正确的是( )。

  A.只能在循环体内和switch语句体内使用break语句

  B.eotinue语句的作用是结束整个循环的执行

  C.在循环体内使用break语句或continue语句的作用相同

  D.从多层循环嵌套中退出时,只能使用got0语句

  10.有以下程序:

  #include

  void WriteStr(char*fn.char*str)

  { FILE*fp;

  fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}

  main()

  { WriteStr("tl.dat","start");

  WriteStr("t1.dat","end");)

  程序运行后,文件t1.dat中的内容是( )。

  A.start

  B.end

  C.startend

  D.endrt

  11.运行下列程序时,若输入的数据为“1,2,3”,则输出结果是( )。

  main()

  { float a,b,c,t;

  scanf("%f,%f,%f",&a,&b,&c);

  if(a   {t=a;a=b.b=t;)

  if(a   {t=a;a=c;c=t;)

  it(b   {t=b;b=C;c—=;)

  printf("%f\n%f\n%f\n",a,b,c);

  }

  A.1.00

  2.00

  3.00

  B.1.00

  3.00

  2.00

  C.1

  3

  2

  D.3.00000

  2.00000

  1.00000

  12.设有程序段:

  int k=12:

  while(k=1)k=k一1;

  则下列描述中正确的是( )。

  A.while循环执行10次

  B.循环是无限循环

  C.循环体语句一次也不执行

  D.循环体语句执行一次

  13.在执行完下列的c语句段之后,则B的`值是( )。

  char a=’A’;

  int b;

  B=((34&&56)&&(a<’b’));

  A.0

  B.1

  C.TRUE

  D.FALSE

  14.有下列函数定义:

  fun(float h)

  { printf("%f,%f\n",h,h*h);)

  该函数的类型是( )。

  A.int类型

  B.float类型

  C.void类型

  D.函数无类型说明,定义有错

  15.有下列程序段:

  int n,t=1,S=0;

  scanf("%d",&n);

  do{s=s+t;t=t-2;while(t!=n);

  为使此程序段不陷入循环,从键盘输入的数据应该是( )。

  参考答案:

  1.D。【解析】double*p,a定义了一个指向双精度型的指针变量P和双精度型变量a,p=&a表示将变量a的地址赋给指针变量p;scanf("%If",p)表示用键盘输入的数赋给指针变量P所指向的地址单元中,scanf()函数要求在输入double型数据,格式控制符必须用%1f。否则,数据不能正确输入。所以选项D正确。

  2.B。【解析】本题考查for循环及if…else语句嵌套,第1次执行for循环,p[1][0]=p[1][0]=p[1][0]-1=3;第2 次执行for循环,p[1][1]=p[1][1]-1=4;第3次执行for 循环,p[1][2]=l,最后输出的是a[0][1]+a[1][1]+a[1] [2]=2+4+1=7。

  3.D。【解析】本题主要考查带参数的宏定义,过程如下:由于定义为define(x) x*x没有括号优先级,所以:a= a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m) =9/(3+2*3+2/3+2*3+2)=0。

  4.C。【解析】本题考查按位异或运算,异或就是相同为0,不同为1(化为二进制00001101),017的二进制为000001111,两者异或结果为00000010。

  5.D。【解析】本题考查leon(tp)函数,其功能是:测试所指的文件的位置指针是否已达到文件尾,如果已达到文件尾,则函数返回非0值;否则返回0,表示文件未结束。

  6.C。【解析】语句“if(c==d)y=0;else y=1;”是if(a

  7.B。【解析】运行程序,当k=7时switch(7)执行case:7,s++后s=1,break跳出。k--,k=7继续循环switch(6),执行case 6;直接跳出循环,k--变成5,继续循环switch(5),执行case 5后面的语句s+=2,也相当于s= s+2,此时s为3,break跳出,k变为4,继续循环,执行case 4为空,继续执行case 7;s++为4跳出循环,k--变为3,继续循环,执行case 3,空语句往下执行case 6,跳出,k -- 为2,继续循环,执行case 2;空语句往下执行case 3,空语句再执行case 7,跳出循环,k--为1不符合循环,退出,此时S=4。

  8.B。【解析】本题考查for循环的使用。对于第1个for循环,任何一个i,内层j的循环都要使j~0到3,j=4时不符合,所以退出j循环;然后i减1,J仍然要从0~3,j=4 时退出J循环直到i变成0,退出i循环。第一条for语句执行6次,第二条for语句执行4次,所以内循环体执行6*4 =24次。

  9.A。【解析】本题考查循环跳出的知识点:①break语句可以出现在switch循环体内及语句体内,它的作用是跳出循环体,不能用于其他的语句;②continue语句的作用是结束本次循环,即跳过循环体中下面尚未执行的语句,而接着判定循环条件是否成立,确定下一次循环是否继续执行,执行contiune语句不会使整介循环终止;③循环体内使用break语句会使循环提前终止;④从多层循环嵌套中退出时,可以使用90t0语句或者break语句。

  10.B。【解析】用"w"方式打开文件,意思是如果文件名相同则覆盖原来的文件,所以当再次输入时覆盖了第一次的内容,B选项正确。

  11.D。【解析】本题考查if语句。第1个if语句,如果

  a  12.C。【解析】本题考查while,while循环表达式k=1是个赋值表达式而不是逻辑表达式,k的初值为12不符合循环条件,所以循环体一次也不执行。

  13.B。【解析】本题考查3个知识点:将一个字符赋给一个字符变量时,是将该字符对应的ASCIl码存储到内存单元中;常见ASCII码的值如A和a;只要逻辑与运算符&&的两个运算对象都为真时,返回值就是1。

  14.A。【解析】本题考查函数值的类型,在函数定义时, 由于函数没有说明其类型,系统默认一律自动按整型(int)

  处理。

  15.D。【解析】本题主要考查do—while循环,因为变量t的初始值等于1,经过第一次do-while循环后,执行t= t-1这条语句一次,所以变量t的值为-1,判断关系表达式t!=n是否成立,如果关系表达式成立,则执行第二次循环,如果关系表达式不成立,退出循环。由此可见,只要输入变量n的值为负奇数,则一定会使t==n成立,故退出do-while循环。

  A.任意正奇数

  B.任意负偶数

  C.任意正偶数

  D.任意负奇数

【2017计算机二级C语言选择题及答案】相关文章:

计算机二级《C语言》选择题训练题及答案10-04

计算机二级C语言试题及答案10-06

计算机二级《C语言》专项试题及答案09-28

2017计算机二级C语言章节练习题及答案10-30

计算机二级考试C语言试题与答案(选择题)10-01

计算机二级C语言选择题08-31

计算机二级C语言练习题及答案10-04

计算机二级考试C语言强化题及答案09-28

计算机二级C语言选择题冲刺题和答案10-04

计算机二级C语言笔试选择题09-16