试题

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

时间:2025-06-05 17:30:17 试题 我要投稿

2016年计算机二级《C语言》考试题库及答案

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

2016年计算机二级《C语言》考试题库及答案

  A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的

  B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构

  C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构

  D.线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性

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

  A.栈是一种先进先出的线性表

  B.队列是一种后进先出的线性表

  C.栈与队列都是非线性结构

  D.以上三种说法都不对

  (3)软件测试的目的是( )。

  A.评估软件可靠性

  B.发现并改正程序中的错误

  C.改正程序中的错误

  D.发现程序中的错误

  (4)在软件开发中,需求分析阶段产生的主要文档是( )。

  A.软件集成测试计划

  B.软件详细设计说明书

  C.用户手册。

  D.软件需求规格说明书

  (5)软件生命周期是指( )。

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

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

  C.软件的开发过程

  D.软件的运行维护过程

  (6)面向对象方法中,继承是指( )。

  A.一组对象所具有的相似性质

  B.一个对象具有另一个对象的性质

  C.各对象之间的共同性质

  D.类之间共享属性和操作的机制

  (7)层次型、网状型和关系型数据库划分原则是( )。

  A.记录长度

  B.文件的大小

  C.联系的复杂程度

  D.数据之间的联系方式

  (8)一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。

  A.一对一

  B.一对多

  C.多对多

  D.多对一

  (9)数据库设计中反映用户对数据要求的模式是( )。

  A.内模式

  B.概念模式

  C.外模式

  D.设计模式

  (10)有三个关系R、S和T如下:

  则由关系R和s得到关系T的操作是( )。

  A.自然连接

  B.差

  C.交

  D.并

  (11)计算机能直接执行的程序是( )。

  A.源程序

  B.目标程序

  C.汇编程序

  D.可执行程序

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

  A.c语言规定必须用main作为主函数名,程序将从此开始执行

  B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行

  C.c语言程序将从源程序中第一个函数开始执行、

  D.main的各种大小写拼写形式都可以作为主函数名,如MAIN,Main等

  (13)以下选项中可用做c程序合法实数的是( )。

  A.3.0e0.2

  B..1e0

  C.E9

  D.9.12E

  (14)下列定义变量的语句中错误的是( )。

  A.int jnt;

  B.double int_;

  C.char For;

  D.float US$;

  (15)表达式:(im)((double)9/2)一9%2的值是( )。

  A.0

  B.3

  C.4

  D.5

  (16)设变量均已正确定义,若要通过

  scaIIf(”%d%c%d%c”,&al,&el,&a2,&c2);

  语句为变量al和a2赋数值l0和20,为变量cl和c2赋字符x和Y。以下所示的输入形式中正确的是( )。(注:口代表空格字符)

  (17)以下选项中不能作为c语言合法常量的是( )。.

  A.0.1e+6

  B.’cd’.

  C.”、a”

  D.’\011

  (18)if语句的基本形式是:if(表达式)语句,以下关于“表=迭式”值的叙述中正确的是( )。

  A.必须是逻辑值

  B.必须是整数值

  C.必须是正数

  D.可以是任意合法的数值

  (19)有如下嵌套的if语句:

  以下选项中与上述if语句等价的语句是( )。

  k=(a

  B.B.:((b>C.?b:

  c.;B.k=(a

  D.k=(a

  (20)有以下程序:

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

  A.1

  B.2

  C.4

  D.死循环

  (21)有以下程序:

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

  (22)有以下程序:

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

  A.02356

  B.0235

  C.235

  D.2356

  以下关于retllm语句的叙述中正确的是( )。

  A.一个自定义函数中必须有一条return语句

  B.一个自定义函数中可以根据不同情况设置多条retum语句

  C.定义成void类型的函数中可以有带返回值的return语句

  D.没有return语句的自定义函数在执行结束时不能返回到调用处

  (24)已定义以下函数:

  fun函数的返回值是( )。

  一个整数

  B.不确定的值

  C.形参P中存放的值

  D.形参P的地址值(25)以下程序段完全正确的是( )。

  int * p;scanf(”%d”,&p);

  B.int*p;scanf(”%d”,P);

  C.int k,* P:&k;scanf(’’%d”,P);

  D.int k,*p;*P=&k;scanf(”%d”,P);

  (26)设有定义:

  double a[10],*s=a;

  以下能够代表数组元素a[3]的是( )。

  A.($s)[3]

  B.}(s+3)

  C.*s[3]

  D.}s+3

  27、有以下程序

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

  A.6,2,3,4,5,

  B.2,2,3,4,5,

  C.1,2,3,4,5,

  D.2,3,4,5,6,

  (28)有以下程序:

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

  A.4

  B.34

  C.31

  D.32

  (29)以下选项中正确的语句组是( )。

  A.char*s;8={1.BOOK!”}i

  B.char*s;8=”BOOK!”;

  C.char S[10];S=”BOOK!”;

  D.char S[];S=”BOOK!”;(30)若有定义语句:

  char}sl=‘’0K”,:It s2=”ok”;

  以下选项中,能够输出“OK”的语句是( )。

  A.if(strcmp(sl,s2)!=0)puts(s2);

  B.if(strcmp(sl,s2)!=0)puts(s1);

  C.if(strcmp(sl,s2)==1)puts(s1);

  D.if(strcmp(sl,s2)==0)puts(s1);

  (31)有以下程序:

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

  A.Afternoon

  B.ftemoon

  C.Morning

  D.oming

  (32)有以下程序,程序中库函数islower(ch)用以判断ch中的字母是否为小写字母:

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

  A.ab cd EFg!

  B.Ab Cd EFg!

  C.ab cd EFG!

  D.aB cD EFG!

  (33)有以下程序:

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

  A.0

  B.9

  C.6

  D.8

  (34)有以下程序:

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

  A.55.

  B.50

  C.45

  D.60

  (35)有以下结构体说明、变量定义和赋值语句:

  则以下scanf函数调用语句有错误的是( )。

  scanf(”%s”,s[0].name);

  B.scanf(”%d”,&s[0].age);

  C.scanf(”%c”,&(ps一>sex));

  D.scanf(”%d”,ps一>age):

  (36)若有以下语句:typedef struct S{int 9;char h;}T;以下叙述中正确的是( )。

  A.可用s定义结构体变量

  B.可用T定义结构体变量

  C.S是struct类型的变量

  D.T是struct S类型的变量

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

  A.1002,ZhangDa,1202.0

  B.1002,ChangRon9。1202.0

  C.1001,ChangRon9,1098.0

  D.1001,ZhangDa,1098.0

  (38)设有宏定义:

  #define IsDIV(k,n)((k%1"1==1)?1:O)且变量m已正确定义并赋值,则宏调用:

  IsDIV(m,5)&&IsDIV(m,7)为真时所要表达的是( )。

  判断m是否能被5和7整除

  B.判断m被5和7整除是否都余l

  C.判断m被5或者7整除是否余1

  D.判断m是否能被5或者7整除

  (39)有以下程序:

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

  A.3

  B.1

  C.2

  D.0

  (40)有以下程序:

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

  A.1 2

  B.1 4

  C.123 4

  D.123 456

  参考答案与解析

  (1)B

  【解析】线性链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以一般要多于顺序存储结构。

  (2)D

  【解析】栈是一种先进后出的线性表,队列是一种先进先出的线性表,栈与队列都是线性结构。

  (3)D

  【解析】软件测试是为了发现错误而执行程序的过程,测试要以查找错误为中心,而不是为了演示软件的正确功能。不是为了评估软件或改正错误。

  (4)D

  【解析】需求分析阶段的工作可以概括为:需求获取、需求分析、编写需求规格说明书、需求评审四个方面。所以选择D。

  (5)A

  【解析】通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。

  (6)D

  【解析】继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。

  (7)D

  【解析】层次模型的基本结构是树形结构,网状模型是一个不加任何条件限制的无向图,关系模型采用二维表来表示,所以三种数据库的划分原则是数据之间的联系方式。

  (8)C

  【解析】因为一个人可以操作多个计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。

  (9)C

  【解析】数据库系统的三级模式是概念模式、外模式和内模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述,所以选择C。内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法。

  (10)B

  【解析】关系T中的元组是R关系中有而s关系中没有的元组的集合,所以进行的是差的运算。

  (11)D

  【解析】计算机能直接执行的程序是二进制的可执行程序,扩展名为.exe。所以选择D选项。

  (12)A

  【解析】C语言中的主函数只能是main()函数,不能任意指定,所以B选项错误。C语言从主函数main()开始,到主函数main()结束,所以C选项错误。主函数必须写成小写的main,不能混淆大小写,所以D选项错误。

  (13)B

  【解析】A选项中e后面的指数必须为整数,所以错误。C语言规定,E之前必须要有数字,所以c选项错误。E后面必须要有数字,且必须为整数,所以D选项错误。

  (14)D

  【解析】C语言规定,变量命名必须符合标识符的命名规则。D选项中包含了非法字符“$”,所以错误。标识符由字母、数字或下划线组成,且第一个字符必须是大小写英文字母或者下划线,而不能是数字。大写字符与小写字符被认为是两个不同的字符,所以For不是关键字for。

  (15)B

  【解析】先将整型数据9强制转换成doub1e型,然后除以2得到的结果与doub1e型保持一致,即为4.5,然后将4.5强制转换成整型数据4,然后计算9%2的值为1,最后计算4一1的值为3,所以选择B选项。

  (16)C

  【解析】输入数据的格式必须与scanf()的格式控制串完全匹配,如果A、B、c选项中在数字10后面均输入了空格,则会将空格赋给变量c1,而不是把x赋给c1,所以选择C选项。

  (17)B

  【解析】要想表示字符串常量应该用双引号表示,即“cd”,单引号用于表示字符常量,所以B选项中的表示方法错误。

  (18)D

  【解析】if语句中的表达式可以是任意合法的数值,如常量、变量表达式。所以D选项正确。

  (19)B

  【解析】题目中嵌套语句的含义是当a&1t;b且a&1t;c成立,则将a的值赋给k。如果a&1t;b成立而a&1t;c不成立将e的值赋给k。如果a&1t;b不成立而b&1t;c成立,将b的值赋给k。如果如果a&1t;b不成立且b&1t;c也不成立,将c的值赋给k。判断条件表达式只有B选项可以表示这个含义。

  (20)A

  【解析】一一k先自减再使用,所以第一次判断条件即为whi1e(4),条件为真,执行打印k的值k=4—3,结果为1;第二次判断条件即为whi1e(0),条件为假,结束循环,打印回车换行符。所以选择A选项。

  (21)B

  【解析】第一次执行外循环,i的值为3,第一次执行内循环j的值为1,j&1t;=2条件成立,打印i+j的值,即4;第二次执行内循环J的值为2,j&1t;=2条件成立,打印i+j的值,即5;再判断条件不成立,打印回车换行符,跳出内循环。第二次执行外循环,i的值为2,内循环的执行同第一次一样,所以打印3和4,打印回车换行,结束内循环。第三次执行外循环i的值为1,同理内循环中打印2和3,打印回车换行符,结束内循环。

  (22)C

  【解析】k的值为5,逐个对caBe语句进行匹配,均不匹配,执行defau1t下的语句n=0;k一一。再执行case2:ca804:后面的语句n+=2;k一一;。执行break语句跳出switch判断,打印n的值,即2。经过第一次循环后,k的值为3,然后进行k>0&&11&1t;5条件判断为真。第二次执行循环体,执行case3:后面的语句n+=1;k一一;。再执行break语句跳出循环,此时打印n的值3,此时k的值为2。第三次执行循环体k的值为2,满足条件,执行case2:case4:后面的语句n+=2;k一一;。执行break语句跳出循环体。打印n的值5。此时n不满足条件k>0&&n&1t;5,所以结束循环。整个程序的打印结果为235。

  (23)B

  【解析】在函数中允许有多个Iett1r11语句,但每次调用只能有一个return语句被执行,因此只能返回一个函数值。定义成void类型的函数,不允许从该函数取得返回值,也不允许使用return语句,c选项描述错误。没有return语句的函数在执行到函数的最后一条语句后会自动返回到调用处,A、D选项描述错误。因此B选项正确。

  (24)A

  【解析】返回值为指针变量指向的数据,该数据已被定义为整型。因此A选项正确。

  (25)C

  【解析】A选项中错在没有对指针进行初始化,是无效指针,并且在scanf(”%d”,&p)中无需再进行取地址操作;B选项中没有对指针进行初始化,是无效指针;D选项中语句+P=&k;的左端t pt是指针所指内存空间的值,&k是地址,应为P=&k。因此C选项正确。

  (26)B

  【解析】语句·s=a;表示指针变量s指向一维数

  组a的首地址。a[3]表示引用数组a的第4个元素,+(s+i)表示引用指针8所指数组a的第i+1个元素,选项A、C、D的表示方法错误,只有B选项正确。

  (27)A

  【解析】本题考查的是函数的地址调用,将数组名作为数组首地址进行传递,然后取首个数组元素值进行加1运算,循环5次。因此A选项正确。

  (28)C

  【解析】本题重点考察二维数组名作为实参进行参数传递,在主函数中调用了fun函数,实参为二维数组名a和两个整数4.0,这样对应定义fun函数首部有三种形式,这里采用了第一种形式——行指针,这样在fun函数对s[i][j]进行操作实际上就是对主函数中的a[i][j]进行操作,再分析fun函数的作用便可知,是求二维数组第0列中最大的那个元素。因此C选项正确。

  (29)B

  【解析】A选项去掉大括号就正确了;c选项和D选项应在定义时赋初值。因此B选项正确。

  (30)B

  【解析】strcmp(s1,s2)是字符串比较函数,比较规则是两个字符串自左向右逐个字符相比(按照ASCI1码值大小),-以第一个不相同的字符的大小作为比较结果。因为。O。&1t;10.,所以strcmp(s1,s2)为负值,只有B选项正确。

  (31)A

  【解析】本题主函数中定义了一个指针数组a,可以将它看成一个以字符指针为元素的一维数组。和一般的一维数组名能赋给同类型指针变量一样,该字符指针数组也可以赋给指向字符指针的指针,所以数组名a可以用做函数fun()的实参。在fun()函数中,++P操作使形参P往后移动一个字符指针的位置,即指针a[1]的位置。故最后通过础nd()函数输出的字符串为“Afternoon”。因此A选项正确。

  (32)D

  【解析】调用缸函数后,实参数组名s1传给形参指针P,P也指向数组s1。m函数的功能是遍历字符数组中的所有字符,如果某一个字符是空格并且前一个字符是小写字母的话,就把前一个字符转换为大写。程序中语句P[i一1]=P[i—1]一ga’+-A‘;即P[i一1]=P[i一1]一32,意思是将P[i一1]中的字符转换为大写。因此D选项正确。

  (33)C

  【解析】主函数中调用f函数,同时将数值3传递给变量x,执行条件不满足条件if(x==0I1X==1);跳过re—turn(3);,直接执行语句Y=X}X—f(x一2);这里f(x一2)为函数的递归调用,再次诃用f函数,此时x=1,判断条件成立,返回3给f(1),Y=3}3—3=6,最后将6返回主函数,并进行输出。因此c选项正确。

  (34)D

  【解析】内部静态变量是始终存在的,当函数被调用退出后,内部静态变量会保存数据,再次调用该函数时,以前调用时的数值仍然保留着。m(a,5)的值是15,再次调用后Ⅲm=15,所以fun(b,4)=45,s=45+15=60。因此D选项正确。

  (35)D

  【解析】本题考查结构体的相关知识,题目中需要输入一个变量,scanf要求参数为指针,而D选项中ps一>age为一个变量,不是指针,所以错误。

  (36)B

  【解析】本题考查typ1edef重新声明一种结构体类型,那么T为结构体类型,而不是结构体变量,所以B选项正确。

  (37)B

  【解析】本题考查结构体变量的引用以及作为函数参数,题目虽然看似复杂,其实比较容易,f函数的参数是结构体变量,然后对参数重新赋值并返回,所以该题目的答案为B选项。

  (38)B

  【解析】本题考查逻辑运算符的相关概念,逻辑与若要为真,那么两边都要为真,即m都能被5和7整除都余1,所以选项B正确。

  (39)A

  【解析】本愿考查位运算符以及相关运算,‘为按位或,&为按位与,部么a'b为3,再与c按位与仍然为3,所以答案为A选项。

  (40)D

  【解析】fprintf()函数向文本文件输出数据,将输出的内容按格式输出翻硬盘的文本文件中。执行两次fprintf后。文件中的内容为。123 456”,所以D选项正确。

【计算机二级《C语言》考试题库及答案】相关文章:

2016计算机二级C语言题库及答案04-22

2017计算机二级C语言上机题库及答案08-07

计算机二级《C语言》选择题题库及答案11-16

计算机二级《C语言》选择题题库与答案07-27

2016年计算机二级c语言题库及答案08-12

全国计算机二级《C语言》考试题库与答案06-29

计算机二级c语言题库2016精选06-23

2015年计算机二级考试c语言题库07-26

2016年计算机二级《C语言》考试题库与答案04-02