2015年3月全国计算机等级考试二级《C语言》真题三及详解 下载本文

内容发布更新时间 : 2024/5/2 1:04:08星期一 下面是文章的全部内容请认真阅读。

2015年3月全国计算机等级考试

二级《C语言》真题三

(总分100, 考试时间90分钟)

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

1. 下列关于算法复杂度叙述正确的是( )。

A 最坏情况下的时间复杂度一定高于平均情况的时间复杂度 B 时间复杂度与所用的计算工具无关

C 对同一个问题,采用不同的算法,则它们的时间复杂度是相同的 D 时间复杂度与采用的算法描述语言有关

答案:B

[解析]算法的时间复杂度是指执行算法所需要的计算工作量,它与使用的计算机、程序设计语言以及算法实现过程中的许多细节无关,B选项正确,D选项错误。最坏情况下的时间复杂度可以与平均情况的时间复杂度相同,A选项错误。不同的算法时间复杂度一般不相同,C选项错误。

2. 设有栈S和队列Q,初始状态均为空。首先依次将A,B,C,D,E,F入栈,然后从栈中退出3个元素依次入队,再将X,Y,Z入栈后,将栈中所有元素退出并依次入队,最后将队列中所有元素退出,则退队元素的顺序为( )。

A DEFXYZABC B FEDZYXCBA C FEDXYZCBA D DEFZYXABC

答案:B

[解析]栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。队列是指允许在一端进行插入,而在另一端进行删除的线性表。将A,B,C,D,E,F入栈后,栈中元素为ABCDEF,退出3个元素入队,队列元素为FED,将X,Y,Z入栈后栈中元素为ABCXYZ,全部入队后,队列元素为FEDZYXCBA,故B选项正确。

3. 下列叙述中正确的是( )。 A 有两个指针域的链表称为二叉链表 B 循环链表是循环队列的链式存储结构

C 带链的栈有栈顶指针和栈底指针,因此又称为双重链表 D 节点中具有多个指针域的链表称为多重链表

答案:D

[解析]双向链表与二叉链表均是有两个指针域的链表,A选项错误。在单链表的第一个节点前增加一个表头节点,队头指针指向表头节点,最后一个节点的指针域的值由NULL改为指向表头节点,这样的链表称为循环链表。循环队列是队列的一种顺序存储结构。循环链表与循环队列是两种存储结构,B选项错误。双向链表节点有两个指针域,指向前一个节点的指针和指向后一个节点的指针,而带链的栈是单链表形式,C选项错误。故正确答案为D选项。

4. 某二叉树共有845个节点,其中叶子节点有45个,则度为1的节点数为( )。 A 400 B 754 C 756 D 不确定

答案:C

[解析]在树结构中,一个节点所拥有的后件个数称为该节点的度,所有节点中最大的度称为树的度。对任何一棵二叉树,度为0的节点(即叶子节点)总是比度为2的节点多一个。二叉树共有845个节点,度为0的节点有45个,度为1的节点数为n1,度为2的节点数为n2,则845=45+n1+n2,且45=n2+1,则n1=756,C选项正确。

5. 软件需求分析阶段的主要任务是( )。 A 确定软件开发方法 B 确定软件开发工具 C 确定软件开发计划 D 确定软件系统的功能

答案:D

[解析]需求分析阶段的工作可以分为4个方面:需求获取、需求分析、编写需求规格说明书和需求评审,包括确定软件系统的功能,D选项正确。A、B、C选项均为开发阶段工作。

6. 下面对软件测试描述错误的是( )。 A 严格执行测试计划,排除测试的随意性 B 随机地选取测试数据

C 软件测试的目的是发现错误

D 软件测试是保证软件质量的重要手段

答案:B

[解析]在测试之前制定测试计划,并严格执行,测试用例的选择不可随意,应选择有代表性的,尽可能发现迄今为止尚未发现的错误,A选项叙述正确,B选项叙述错误。测试的根本目的是尽可能多地发现并排除软件中隐藏的错误,C选项叙述正确。软件测试是保证软件质量、可靠性的关键步骤,D选项叙述正确。故正确答案为B选项。

7. 结构化程序的3种基本控制结构是( )。 A 顺序、选择和重复(循环) B 过程、子程序和分程序 C 顺序、选择和调用 D 调用、返回和转移

答案:A

[解析]结构化程序的3种基本控制结构:顺序、选择和重复,故A选项正确。 8. 数据库中对概念模式内容进行说明的语言是( )。 A 数据定义语言 B 数据操纵语言 C 数据控制语言 D 数据宿主型语言

答案:A

[解析]数据库管理系统为完成主要功能提供了相应的数据语言,它们是:数据定义语言,该语言负责数据的模式定义与数据的物理存取构建;数据操纵语言,该语言负责数据的操纵,包括查询与增、删、改等操作;数据控制语言,该语言负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。数据宿主型语言它要嵌入其他程序设计语言(如COBOL、FORTRAN、PL/I、汇编语言)。被嵌入的语言称为宿主语言,嵌入的语言称为子语言。数据库应用程序用宿主语言和子语言书写而成。故A选项正确。

9. 某个工厂有若干个仓库,每个仓库存放有不同的零件,相同零件可能放在不同的仓库中。则实体仓库和零件间的联系是( )。

A 多对多 B 一对多 C 多对一 D 一对一

答案:A

[解析]一般来说,实体集之间必须通过联系来建立联接关系,分为三类:一对一联系(1:1)、一对多联系(1:m)、多对多联系(m:n)。每个仓库存放有不同的零件,相同零件可能放在不同的仓库中,故实体仓库和零件间的联系是多对多,A选项正确。

10. 有3个关系R、S和T如下:

则由关系R和S得到关系T的操作是( )。 A 交 B 差 C 并 D 选择

答案:A

[解析]用于查询的3个操作无法用传统的集合运算表示,引入的运算为投影运算、选择运算、笛卡儿积。常用的扩充运算有交、除、连接及自然连接等。选择:从关系中找出满足给定条件的元组的操作称为选择,题目中无给定条件,放D选项错误。差:R-S结果是属于R但不属于S的记录组成的集合,T中元组“c 32”同时属于R和S,B选项错误。并:R∪S是将S中的记录追加到R后面,T中元组少于R,故C选项错误。交:R∩S结果是既属于R又属于S的记录组成的集合,与题目中结果相符,故A选项正确。

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

A 计算机只接收由0和1代码组成的二进制指令或数据 B 计算机只接收由0和1代码组成的十进制指令或数据 C 计算机可直接接收并运行C源程序

D 计算机可直接接收并运行任意高级语言编写的源程序

答案:A

[解析]计算机认识自己的母语——机器语言,即0和1代码组成的二进制指令和数据,故A选项正确,B选项错误。C语言是一种高级语言,计算机不能直接运行C源程序和高级语言编写的源程序,C和D选项错误。

12. 若有C语言表达式2+3*4+7/3,以下选项中叙述正确的执行顺序是( )。 A 先执行3*4得12,再执行7/3得2.5,最后执行2+12+2.5得16.5

B 先执行3*4得12,再执行2+12得14,再执行7/3得2,最后执行14+2得16 C 先执行7/3得2,再执行3*4得12,再执行12+2得14,最后执行2+14得16 D 先执行2+3得5,再执行5*4得20,再执行20+7得27,最后执行27/3得9

答案:B

[解析]首先,在C语言中,乘除法优先级要高于加减法,其次,除法运算符“/”两边参加运算的对象都是整数,运算结果要取整,故排除A,D选项;C语言中,因为运算符“*”和“/”都满足从左到右的运算规则,故应先计算3*4=12,因此C选项排除,答案为B选项。

13. 若有定义:char c;int d;程序运行时输入:c=1,d=2<回车>,能把字符1输入给变量c、整数2输入给变量d的输入语句是( )。

A scanf(\=%d d=%d\,&c,&d); B scanf(\=%c d=%d\,&c,&d); C scanf(\=%d,d=%d\,&c,&d);