2023全国计算机等级考试二级C语言历年真题节选及答案详解(一)
一、选择题 (请在[答题]菜单上选择[选择题]命令,启动选择题测试程序,按照题目上的内容进行答题。作答选择题时键盘被封锁,使用键盘无效,考生须使用鼠标答题。选择题部分只能进入一次,退出后不能再次进入。选择题部分不单独计时。)
1、下列叙述中正确的是()
A.所有数据结构必须有根结点
B.所有数据结构必须有终端结点(即叶子结点)
C.只有一个根结点,且只有一个叶子结点的数据结构一定是线性结构
D.没有根结点或没有叶子结点的数据结构一定是非线性结构
[答案] D
[解析] D项正确,线性结构的特点是:(1)集合中必存在第一个元素”且惟一;(2)集合中必存在“最后个元素”且惟一;(3)除最后一个元素外,其他数据元素均有惟一的“后继”,除第一个元素外其他数据元素均有惟一的“前驱”。所以没有根结点或没有叶子结点的数据结构一定是非线性结构。AB两项错误,不是所有数据结构都必须有根结点和叶子结点;C项错误,数据结构中若有中间结点不满足只有一个前件或者后件的条件,就不是线性结构。答案选择D选项

2、以下叙述中错误的是()
A.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
B.C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件
C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D.C语言源程序经编译后生成后缀为.obi的目标程序
[答案] A
[解析] A项错误,注释语句不会被翻译成二进制的机器指令。C源程序经过C编译程序编译之后生成后缀为obi的二进制文件(称为目标文件),然后由“链接程序”(Link)的软件把obi文件与各种库函数连接起来生成一个后缀为exe的可执行文件。答案选择A选项
3、C语言主要是借助以下()功能来实现程序模块化的。
A.定义函数
B.定义常量和外部变量
C.三种基本结构语句
D.丰富的数据类型
[答] A
[解析]C程序的模块化主要通过函数来实现。C语言允许对函数单独进行编译,从而可以实现模块化答案选择A选项。
4、下列叙述中正确的是( )。
A.栈是“先进先出”的线性表
B.队列是“先进后出”的线性表
C.循环队列是非线性结构
D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
[答案] D
[解析] 有序的线性表既可采用顺序存储结构,也可以采用链式存储结构。A项错误,栈是“先进后出”的线性表:B项错误,队列是“先进先出”的线性表:C项错误,循环队列是线性结构的,有序的线性表既可采用顺序存储结构,也可采用链式存储结构。答案选择D选项。
5、某二叉树的中序序列为DCBAEFG,后序序列为DCBGFEA,则该二叉树的深度(根结点在第1层)为()
A.5
B.4
C.3
D.2
[答案]B
[解析]二又树的后序序列为DCBGFEA,则A为根结点。中序序列为DCBAEFG,则DCB为左子树结点,EFG为右子树结点。同理B为C父结点,C为D父结点。根据分析,可画出左子树,同理E为F父结点,F为G父结点。根据分析,可画出右子树,故二又树深度为4层。答案选择B选项。
6、关于C语言标识符,以下叙述错误的是()
A.标识符可全部由数字组成
B.标识符可全部由下划线组成
C.标识符可全部由小写字母组成
D.标识符可全部由大写字母组成
[答案] A
[解析] C语言标识符只能由字母、数字、下划线构成,且只能以字母、下划线开头,故答案选择A选项。
7、设循环队列为Q(1:m),其初始状态为front-rear-m。经过一系列入队与退队运算后,front-20,rear=15。现要在该循环队列中寻找最小值的元素,最坏情况下需要比较的次数为()
A.5
B.6
C.m-5
D.m-6
[答案] D
[解析] 循环队列是队列的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用队首指针指向队首元素的前一个位置,因此,从队首指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素,队列初始状态为front-rear-m,当front=20,rear=15时,队列中有m-20+15=m-5个元素,最坏情况下需要比较次数为m-6次。答案选择D选项