试题 百分网手机站

计算机二级C语言考试试题及答案

时间:2020-09-12 17:33:53 试题 我要投稿

2015年计算机二级C语言考试试题及答案

  一、选择题(每小题1分,共40小题,共40分)

2015年计算机二级C语言考试试题及答案

  1.下列链表中,其逻辑结构属于非线性结构的是( )0、

  A.双向链表

  B.带链的栈

  C.二叉链表

  D.循环链表

  2.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为( )。

  A.20

  B.0或35

  C.15

  D.16

  3.下列关于栈的叙述中,正确的是( )。

  A.栈底元素一定是最后入栈的元素

  B.栈操作遵循先进后出的原则

  C.栈顶元素一定是最先入栈的元素

  D.以上三种说法都不对

  4.在关系数据库中,用来表示实体间联系的是( )。

  A.网状结构

  B.树状结构

  C.属性

  D.二维表

  5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是( )。

  A.1:m联系

  B.m:n联系

  C.1:1联系

  D.m:l联系

  6.右两个关系R和S如下:

  则由关系R得到关系S的操作是( )。

  A.自然连接

  B.并

  C.选择

  D.投影

  7.数据字典(DD)所定义的对象都包含于( )。

  A.软件结构图

  B.方框图

  C.数据流图(DFD图)

  D.程序流程图

  8.软件需求规格说明书的作用不包括( )。

  A.软件设计的依据

  B.软件可行性研究的依据

  C.软件验收的依据

  D.用户与开发人员对软件要做什么的共同理解

  9.下面属于黑盒测试方法的是( )。

  A.边界值分析

  B.路径覆盖

  C.语句覆盖

  D.逻辑覆盖

  10.下面不属于软件设计阶段任务的是( )。

  A.制订软件确认测试计划

  B.数据库设计

  C.软件总体设计

  D.算法设计

  11.以下叙述中正确的是( )。

  A.在C语言程序中,main函数必须放在其他函数的最前面

  B.每个后缀为C的C语言源程序都可以单独进行编译

  C.在C语言程序中,只有main函数才可单独进行编译

  D.每个后缀为.C的C语言源程序都应该包含一个main函数

  12.C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是( )。

  A.预定义标识符(如库函数中的函数名)可用做用户标识符,但失去原有含义

  B.用户标识符可以由字母和数字任意顺序组成

  C.在标识符中大写字母和小写字母被认为是相同的字符

  D.关键字可用做用户标识符,但失去原有含义

  13.以下选项中表示一个合法的常量是(说明:符号口表示空格)( )。

  A.9口9口9

  B.0Xab

  C.123E0.2

  D.2.7e

  14.C语言主要是借助以下哪个功能来实现程序模块化?( )

  A.定义函数

  B.定义常量和外部变量

  C.三种基本结构语句

  D.丰富的数据类型

  15.以下叙述中错误的是( )。

  A.非零的数值型常量有正值和负值的区分

  B.常量是在程序运行过程中值不能被改变的量

  C.定义符号常量必须用类型名来设定常量的类型

  D.用符号名表示的常量叫符号常量

  16.若有定义和语句:int a,b;scanf("%d,%d",&a,&b);以下选项中的输人数据,不能把值3赋给变量a、5赋给变量b的是( )。

  A.3,5,

  B.3,5,4

  C.3,5

  D.3,5

  17.C语言中char类型数据占字节数为( )。

  A.3

  B.4

  C.1

  D.2

  18.下列关系表达式中,结果为“假”的是( )。

  A.(3+4)>6

  B.(3!=4)>2

  C.3<=4‖3

  D.(3<4)=1

  19.若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是( )。

  A.switch(a+9)

  {case cl:y=a-b;

  case c2:y=a+b;

  }

  B.switch a*b

  {case l0:x=a+b;

  default:y=a-b;

  }

  C.switch(a+b)

  {casel:case3:y=a+b;break;

  case0:case4:y=a-b;

  }

  D.switch(a*a+b*b)

  {default:break;

  case 3:y=a+b;break;

  case 2:y=a-b;break;

  }

  20.有以下程序:

  #include

  main()

  { int a=-2,b=0;

  while(a++&&++b);

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

  }

  程序运行后的输出结果是( )。

  A.1,3

  B.0,2

  C.0,3

  D.1,2

  21.设有定义:int x=o,* P;,立刻执行以下语句,正确的语句是( )。

  A.p=x;

  B.* p=x;

  C.D=NULL;

  D.* p=NULL;

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

  A.可以用关系运算符比较字符串的大小

  B.空字符串不占用内存,其内存空间大小是0

  C.两个连续的单引号是合法的字符常量

  D.两个连续的双引号是合法的字符串常量

  23.有以下程序:

  #include

  main()

  { rhar a=’H’;

  a=(a>=’A’&&a<=’2’)?(a-’A’+’a’):a;

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

  }

  程序运行后的.输出结果是( )。

  A.A

  B.a

  C.H

  D.h

  24.有以下程序:

  #include

  int f(int x);

  main()

  { int a,b=0;

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

  {b=b+f(a);putchar(’A’+b);}

  }

  int f(int x)

  { return x * xl; }

  程序运行后的输出结果是( )。

  A.ABE B.BDI C.BCF D.BCD

  25.设有定义:int x[2][3];,则以下关于二维数组X的叙述错误的是( )。

  A.x[0]可看做是由3个整型元素组成的一维数组

  B.x[0]和x[l]是数组名,分别代表不同的地址常量

  C.数组X包含6个元素

  D.可以用语句x[o]=0;为数组所有元素赋初值0

  26.设变量P是指针变量,语句P=NULL;是给指针变量赋NULL值,它等价于( )。

  A.p="";

  B.p="0";

  C.p=0;

  D.p=";

  27.有以下程序:

  #include

  main()

  {int a[]={10,20,30,40},*p=a,j;

  for(i=0;i<=3;i++){a[i]=*P;p++;}

  printf("oAd\n",a[2]);

  }

  程序运行后的输出结果是( )。

  A.30

  B.40

  C.10

  D.20

  28.有以下程序:

  #include

  #define N 3

  void fun(int a[][N],int b[])

  { int i,j;

  for(i=0;i

  for(j=i;j

  }

  main()

  {int x[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;

  fun(x,y);

  for(i=0;i

  }

  程序运行后的输出结果是(,)。

  A.2,4,8,

  B.3,6,9,

  C.3,5,7,

  D.1,3,5,

  29.有以下程序(strcpy为字符串复制函数,strcat为字符串连接函数):

  #include

  #include

  main()

  {char a[10]="abc",b[10]="012",c[10]="xyz";

  strcpy(a+1,b+2);

  puts(strcat(a,c+1));

  }

  程序运行后的输出结果是( )。

  A.al2xyz

  B.12yz

  C.a2yz

  D.bc2yz

  30.以下选项中,合法的是( )。

  A.char str3[]={’d’,’e’,’b’,’u’,’g’,’\0’};

  B.char str4;str4="hello world";

  C.char name[10];name="china";

  D.char strl[5]="pass",str2[6];str2=strl;

  31.有以下程序:

  #include

  main()

  { char*s="[2]34";int k=0,a=0;

  whil(s[k+1]!=’\o’)

  { k++;

  if(k%2=o){a=a+(s[k]-’0’+1);continue; }

  a=a+(s[k]-’0’);

  printf("k=%d a=%d\n",k,a);

  }

  程序运行后的输出结果是( )。

  A.k=6 a=11

  B.k=3 a=14

  C.k=4 a=12

  D.k=5 a=15

  32.有以下程序:

  #include

  main()

  {char a[5][10]={"one","tw0","three","four","five"};

  int i,j;

  char t: 、

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

  for(j=i+1;j<5;j++)

  if(a[i][O]>a[j][0])

  {t=a[i][O];a[i][O]=a[j][O];a[j][O]=t;)

  puts(a[1]);

  }

  程序运行后的输出结果是( )。

  A.fwo

  B.fix

  C.two

  D.owo

  33.有以下程序:

  #include

  int a=1,b=2:

  void funl(int a,int b)

  {printf( "%d%d",a,b); }

  void fun2()

  { a=3;b=4; }

  main()

  { funl(5,6);fun2();

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

  }

  程序运行后的输出结果是( )。

  A.1 2 5 6

  B.5 6 3 4

  C.5 6 1 2

  D.3 4 5 6

  34.有以下程序:

  #include

  void func(int n)

  { static int num=1);

  num=num+n;printf("%d",num);

  }

  main()

  {funo(3);func(4);printf("n"); }

  程序运行后的输出结果是( )。

  A.4 8

  B.3 4

  C.3 5

  D.4 5

  35.有以下程序:

  #include

  #include

  void fun(int*pl,int*p2,int*s)