C语言 百分网手机站

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

时间:2020-09-29 09:00:10 C语言 我要投稿

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

  C语言作为计算机二级考试的重点考察对象,要求考生们掌握更多C语言的知识,下面是百分网小编整理的2017计算机二级C语言选择题训练及答案,希望可以为您带来帮助!

  选择题

  1.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是( )。

  A.bdgcefha

  B.gdbecfha

  C.bdgaechf

  D.gdbehfca

  2.三种基本结构中,能简化大量程序代码的是( )。

  A.顺序结构

  B.分支结构

  C.选择结构

  D.重复结构

  3.算法的时间复杂度是指( )。

  A.执行算法程序所需要的时间

  B.算法程序的长度

  C.算法执行过程所需要的基本运算次数

  D.算法程序中的指令条数

  4.概要设计中要完成的事情是( )。

  A.系统结构和数据结构的设计

  B.系统结构和过程的设计

  C.过程和接口的设计

  D.数据结构和过程的设计

  5.在结构化分析方法中,数据字典的作用是( )。

  A.存放所有需要处理的原始数据

  B.存放所有处理的结果

  c.存放所有程序文件

  D.描述系统中所用到的全部数据和文件的有关信息

  6.一个关系中属性个数为1时,称此关系为( )。

  A.对应关系

  B.单一关系

  c.一元关系

  D.二元关系

  7.若有以下定义:

  char a;int b;

  float c;double d;

  则表达式a*b+b-c值的类型为( )。

  A.float

  B.int

  C.char

  D.double

  8.下列选择中,不能用做标识符的是( )。

  A.1234

  B._1_2

  C.int_2_

  D.2_int_

  9.设x为int型变量,则执行以下语句后,x的值为( )。

  x=10;x=x-=x-x;

  A.10

  B.20

  C.40

  D.30

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

  A.在面向对象的程序设计中,各个对象之间具有密切的关系

  B.在面向对象的程序设计中,各个对象都是公用的

  C.在面向对象的程序设中,各个对象之间相对独立,相互依赖性小

  D.上述3种说法都不对

  11.以下程序的输出结果是( )。

  main()

  { int i;

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

  switch(i){case 0:printf("%d",i);

  case 2:printf("%d",i);

  default:printf("%d",i);

  }

  }

  A.000102

  B.000020

  C.000122

  D.000111

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

  main()

  {int x=’f’;printf("%c\n",’A’+(x-’a’+1));}

  A.G

  B.H

  C.I

  D.J

  13.有如下程序:

  main()

  { int a=2,b=-1.c=2;

  if(a<0)if(b<0)c=0;

  else c++;

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

  }

  该程序的输出结果是( )。

  A.0

  B.1

  C.2

  D.3

  14.在C语言中,函数返回值的类型最终取决于( )。

  A.函数定义时在函数首部所说明的函数类型

  B.return语句中表达式值的类型

  C.调用函数时主调函数所传递的实参类型

  D.函数定义时形参的类型

  15.以下程序的输出结果是( )。

  main()

  { int i=0,S=0;

  for(;;)

  {

  if(i==3 ||i==5)continue;

  if(i==6)break;

  i++;

  s+=i:

  };

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

  }

  A.10

  B.13

  C.21

  D.程序陷入死循环

  16.假设a和b为int型变量,则执行以下语句后b的值为( )。

  a=1;b=10;

  do

  { b-=a;a++;}

  while(b--<0);

  A.9

  B.-2

  C.-l

  D.8

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

  main()

  { int a[3][3],*p,i};

  p=&a[0][0];

  for(i=p;i<9;i++)p[i]=i+1;

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

  }

  A.3

  B.6

  C.9

  D.随机数

  18.以下程序的输出结果是( )。

  int f(int A)

  { return a%2; }

  main()

  {int s[8]={1,3,5,2,4,6},i,d=0;

  for(i=0;f(s[8]);i++)d+=s[i];

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

  }

  A.9

  B.11

  C.19

  D.21

  19.s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句s;则以下选项中正确的是( )。

  A.if(s1>s2)S;

  B.if(strcmp(s1,s2))S;

  C.if(strcmp(s2,sl)>O)S;

  D.if(stremp(s1,s2)>O)S;

  20.有以下函数:

  char fun(char*p)

  {return P;}

  该函数的返回值是( )。

  A.无确切的值

  B.形参p中存放的地址值

  c.一个临时存储单元的地址

  D.形参p自身的地址值

  21.以下程序的输出结果是( )。

  main()

  {char str[]1-10]={"china","beijing"),*p=str;

  printf("%s\n",p+10);

  }

  A.China

  B.Beijing

  C.ng

  D.ing

  22.合法的main()函数命令参数形式是( )。

  A.main(int a,char*c[])

  B.main(int arc,char**arv)

  C.main(int argc,char*argv)

  D.main(int argv,char*argc[])

  23.有以下结构体说明和变量的定义,且指针P指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是( )。

  struct node

  {char data;

  struct node*next:

  }a,b,*p=&a,*q=&b;

  A.a.next=q;

  B.P.next=&b;

  C.p->next=&b;

  D.(*p).next=q;

  24.有如下程序:

  #include

  main()

  { FILE*fp1;

  fp1=fopen("f1.txt","w");

  fprintf(fp1,"abe");

  fclose(fp1);

  }

  若文本文件f1.txt中原有内容为:good。则运行以上程序后文件f1.txt中的内容为( )。

  A.goodabc

  B.abcd

  C.abc

  D.abcgood

  25.与“y=(x>0?1:x<0?-1:0)”;的功能相同的if 语句是( )。

  A.if(x>0)y=1;

  else if(x<0)y=1;

  else y=0;

  B.if(x)

  if(x>0)y=1;

  else if(x<0)y=-l;

  else y=0;

  C.y=-l

  if(x)

  if(x>O)y=1;

  else if(x=-0)y=0;

  else y=-l;

  D.y=0;

  if(x>=0)

  if(x>=0)y=1;

  else y=-l;

  26.下列字符串是标识符的'是( )。

  A.aa

  B.a-class

  C.int

  D.LINE 1

  27.执行下列程序后,变量a,b,C的值分别是( )。

  int x=5,y=4;

  int a,b,c;

  a=(--x==y++)?X:++y;

  b=++x:

  c=y:

  A.a=5,b=5,c=5

  B.a=4,b=5,c=5

  C.a=5,b=6,c=5

  D.a=1,b=5,c=6

  28.下列变量声明合法的是( )。

  A.short a=1.4e-1;

  B.double b=1+3e2.8;

  C.10ng do=oxfdaL;

  D.float 2 aaa=1e-3;

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

  #include

  main()

  { int i;

  for(i=1;i<=10,i++)

  { if((i*i>=20)&&(i*i<=100))

  break;

  }

  printf("%d\n",i*i;

  }

  A.49

  B.36

  C.25

  D.64

  30.运行下列程序,若从键盘输入字符“a”,则输出结果是( )。

  char c;

  c=getchar();

  if(c>=’a’&&c<=’g’)c=c+4:

  else if(c>=’9’&&c<=’2’)c=c-21:

  else printf("input error! \n");

  putchar(c);

  A.f

  B.t

  C.e

  D.d

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

  #include

  int b=2:

  int func(int*a)

  { b+=*a;return b;}

  main()

  { int a=1,t=2;

  t+=func(&a):

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

  }

  A.4

  B.5

  C.6

  D.8

  32.若有定义“float a=25,b,*p=&b;”,则下列对赋值语句“*p=a;”和“p=&a;”的正确解释为( )。

  A.两个语句都是将变量a的值赋予变量P

  B.*p=a是使P指向变量a,而p=&a是将变量的值赋予变量指针P

  c.*p=a是将变量a的值赋予变量b,而&a是使P指向变量a

  D.两个语句都是使P指向变量a

  33.对两个数组a和b进行下列初始化:

  char m[]="1234567";

  char n[]={’1’,’2’,’3’,’4’,’5’,’6’,’7’};

  则下列叙述正确的是( )。

  A.数组m与数组n完全相同

  B.数组m与数组n长度相同

  C.数组m比数组n长1

  D.数组m与数组n中都存放字符串

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

  #include

  main()

  { char a[]={’a’,’b’,’C’,’d’,’e’,’f’,’\0’).

  int i,j;

  i=sizeof(a);

  j=strlen(a);

  printf("%d,%d",i,j);

  }

  A.7,7

  B.7,6

  C.6,6

  D.6,7

  35.软件生命周期是指( )。

  A.软件产品从提出、实现、使用维护到停止使用退役的过程

  B.软件从需求分析、设计、实现到测试完成的过程

  C.软件的开发过程

  D.软件的运行维护过程

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

  #include

  #define ADD(x) x+x

  main()

  { int m=1,n=2,k=3;

  int S=ADD(m+n)*k;

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

  }

  A.sum=18

  B.sum=10

  C.sum=9

  D.sum=25

  37.有以下程序:

  fun(int x,int y){return(x+y);)

  main()

  { int a=1,b=2,c=2,sum;

  sum=fun((a++,b++,a+b),c++);

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

  }

  执行后的结果是( )。

  A.6

  B.7

  C.8

  D.9

  38.设x=011050,则x=x&01252的值是( )。

  A.0000001000101000

  B.1111110100011001

  C.0000001011100010

  D.1100000000101000

  39.有以下程序:

  int fun(int x)

  { int p;

  if(x==0||x==1)return(3);

  p=x-fun(x-2);

  return p;

  }

  main()

  { printf("%d\n",fun(7));}

  执行后的结果是( )。

  A.7

  B.3

  C.2

  D.0

  40.已知函数fread的调用形式为“fread(buffer,size,count,fp);”,其中buffer代表的是( )。

  A.存放读入数据项的存储区

  B.一个指向所读文件的文件指针

  C.一个指针,是指向输入数据存放在内存中的起始地址

  D.一个整型变量,代表要读入的数据项总数