1、国家二级 C语言机试(公共基础知识)模拟试卷 9及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)链式存储结构的存储空间一定是连续的 ( B)链式存储结构只针对非线性结构 ( C)顺序存储结构和链式存储结构都能存储有序表 ( D)链式存储结构比顺序存储结构节省存储空间 2 下列叙述中正确的是 ( )。 ( A)队列是 “先进后出 ”的线性表 ( B)栈是 “先进先出 ”的线性表 ( C)数据可分为线性结构和非线性结构 ( D)循环队列是非线性结构 3 下列数据结构中,属于非线性结构的是 ( )。 ( A)循环队列 ( B)带链队列 ( C)二叉树 ( D)带链栈 4 下列数据
2、结构中,能够按照 “先进先出 ”原则存取数据的是 ( )。 ( A)循环队列 ( B)栈 ( C)队列 ( D)二叉树 5 一个栈的初始状态为空。现将元素 1, 2, 3, A, B, C依次入栈,然后再依次出栈,则元素出栈的顺序是 ( )。 ( A) 1, 2, 3, A, B, C ( B) C, B, A, 1, 2, 3 ( C) C, B, A, 3, 2, 1 ( D) 1, 2, 3, C, B, 4k 6 下列叙述中正确的是 ( )。 ( A)一个算 法的空间复杂度大,则其时间复杂度也必定大 ( B)一个算法的空间复杂度大,则其时间复杂度必定小 ( C)一个算法的时间复杂度大,
3、则其空间复杂度必定小 ( D)算法的时间复杂度与空间复杂度没有直接关系 7 某二叉树共有 7个节点,其中叶子节点只有 1个,则该二叉树的深度为 (假设根节点在第 1层 )( )。 ( A) 3 ( B) 4 ( C) 6 ( D) 7 8 下列叙述中正确的是 ( )。 ( A)循环队列中的元素个数随队头指针与队尾指针的变化而动态变化 ( B)循环队列中的元素个数随队头指针的变化而动态变化 ( C)循环队列中的元素个数随队尾指针的变化而动态变化 ( D)循环队列中的元素个数不会变化 9 算法的有穷性是指 ( )。 ( A)算法程序的运行时间是有限的 ( B)算法程序所处理的数据量是有限的 ( C
4、)算法程序的长度是有限的 ( D)算法只能被有限的用户使用 10 某二叉树中有 n个度为 2的节点,则该二叉树中的叶子节点数为 ( )。 ( A) n+1 ( B) n一 1 ( C) 2n ( D) n 2 11 设循环队列的存储空间为 Q(1: 35),初始状态为 front=rear=35。现经过一系列入 队与退队运算后, front=15, rear=15,则循环队列中的元素个数为 ( )。 ( A) 15 ( B) 16 ( C) 20 ( D) 0或 35 12 对下列二叉树 ( )。 进行前序遍历的结果是 ( )。 ( A) DYBEAFCZX ( B) YDEBFZXCA (
5、C) ABDYECFXZ ( D) ABCDEFXYZ 13 下面对对象概念描述正确的是 ( )。 ( A)对象间的通信靠消息传递 ( B)对象是名字和方法的封装体 ( C)任何对象必须有继承性 ( D)对象的多态性是指一个对象有多个操作 14 对长度为 n的线性表做快速排序,在最坏情况下,比较次数为 ( )。 ( A) n ( B) n 1 ( C) n(n一 1) ( D) n(n一 1) 2 15 在黑盒测试方法中,设计测试用例的主要根据是 ( )。 ( A)程序内部逻辑 ( B)程序外部功能 ( C)程序数据结构 ( D)程序流程图 16 下列选项中不符合良好程序设计风格的是 ( )。
6、 ( A)源程序要文档化 ( B)数据说明的次序要规范化 ( C)避免滥用 GOTO语句 ( D)模块设计要保证高耦合、高内聚 17 在长度为 n的有序线性表中 进行二分查找,按顺序查找需要比较的次数是 ( )。 ( A) O(n) ( B) O(n2) ( C) O(log2n) ( D) O(nlog2n) 18 从工程管理角度看,软件设计一般分为两步完成,它们是 ( )。 ( A)概要设计与详细设计 ( B)数据设计与接口设计 ( C)软件结构设计与数据设计 ( D)过程设计与数据设计 19 在下列模式中,能够给出数据库物理存储结构与物理存取方法的是 ( )。 ( A)外模式 ( B)内
7、模式 ( C)概念模式 ( D)逻辑模式 20 软件测试的目的是 ( )。 ( A)评估软件可靠性 ( B)发现程序中的错误 ( C)改正程序中的错误 ( D)发现并改正程序中的错误 21 结构化程序所要求的基本结构不包括 ( )。 ( A)顺序结构 ( B)选择 (分支 )结构 ( C) GOTO跳转结构 ( D)重复 (循环 )结构 22 软件调试的目的是 ( )。 ( A)发现错误 ( B)改正错误 ( C)改善软件的性能 ( D)验证软件的正确性 23 有两个关系 R和 S如下: 由关系 R通过运算得到关系 S,则所使用的运算为 ( )。 ( A)选择 ( B)投影 ( C) 插入 (
8、 D)连接 24 层次型、网状型和关系型数据库划分原则是 ( )。 ( A)记录长度 ( B)文件的大小 ( C)联系的复杂程度 ( D)数据之间的联系方式 25 在结构化程序设计中,模块划分的原则是 ( )。 ( A)各模块应包括尽量多的功能 ( B)各模块的规模应尽量大 ( C)各模块之间的联系应尽量紧密 ( D)模块内具有高内聚度、模块间具有低耦合度 26 一间宿舍可住多个学生,则实体宿舍和学生之间的联系是 ( )。 ( A)一对一 ( B)一对多 ( C)多对一 ( D)多对多 27 有三个关系 R、 S和 T如下:则由关系 R和 S得到关系 T的操作是 ( )。 ( A)自然连接 (
9、 B)交 ( C)投影 ( D)并 28 设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号 ),课程 C(课号、课名 ),选课 SC(学号,课号,成绩 ),则表 SC的关键字 (键或码 )为( )。 ( A)课号,成绩 ( B)学号,成绩 ( C)学号,课号 ( D)学号,姓名,成绩 29 数据库管理系统中负责数据模式定义的语言是 ( )。 ( A)数据定义语言 ( B)数据管理语言 ( C)数据操 纵语言 ( D)数据控制语言 30 有三个关系 R、 S和 T如下:则由关系 R和 S得到关系 T的操作是 ( )。 ( A)选择 ( B)差 ( C)交 ( D)并 国家二级
10、 C语言机试(公共基础知识)模拟试卷 9答案与解析 一、选择题 1 【正确答案】 C 【试题解析】 顺序存储方式主要用于线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里,节点之间的关系由存储单元的邻接关系来体现。而链式存储结构的存储空间不一定是连续的。链式存储结构既可用于表示线性结构,也可用于表示非线性结构,故 A和 B选项错误;链式存储结构比顺序存储结构每个元素多了一个或多个指针域,因此比顺序存储结构要多耗费一些存储空间,故 D选项错误。 【知识模块】 二级公共基础知识 2 【正确答案】 C 【试题解析】 本题主要考查了栈、队列、循环队列的概念。栈是先进后出的线性表,队列
11、是先进先出的线性表。根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。 【知识模块】 二级公共基础知识 3 【正确答案】 C 【试题解析】 根据数据结构中各数据元素之间的 前后件关系的复杂程度,一般将数据结构分为两大类:线性结构和非线性结构。循环队列、带链队列和带链栈都是线性结构,而二叉树是非线性结构。 【知识模块】 二级公共基础知识 4 【正确答案】 C 【试题解析】 栈按照 “先进后出 ”(FILO)或 “后进先出 ”(LIFO)组织数据;队列是“先进先出 ”(EIFO)或 “后进后出 ”(LILO)的线性表。 【知识模块】 二级公共基础
12、知识 5 【正确答案】 C 【试题解析】 栈是按照 “先进后出 ”或 “后进先出 ”的原则组织数据的。所以出栈顺序是 CBA321。 【知识模块】 二级公共基础知识 6 【正确答案】 D 【试题解析】 算法的复杂度主要包括时间复杂度和空间复杂度。算法的时间复杂度是指执行算法所需要的计算工作量,算法的工作量用算法所执行的基本运算 次数来度量,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n),其中 n是问题的规模;算法的空间复杂度,一般是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空
13、间。根据各自的定义可知。算法的时间复杂度与空间复杂度并不相关。 【知识模块】 二级公共基础知识 7 【正确答案】 D 【试题解析】 根据二叉树的性质,度为 0的节点 (叶子节点 )总是比度为 2的节点多一个。题目中的二叉树的叶子节点为 1,因此度为 2的节点的数目为 0。故该二叉树为 7层,每层只有一个节点。 【知识模块】 二级公共基础知识 8 【正确答案】 A 【试题解析】 所谓循环结构就是将队列存储空间的最后一个位置绕到第一个位置上,形成逻辑上的环状空间,循环使用。在循环队列中,用队尾指针 rear指向队列中的队尾元素,用队头指针 front指向队头元素的前一个位置,因此,队列中的元素数等
14、于从队头指针 front指向的后一个位置与队尾指针: rear指向位置之间的元素数量。 【知识模块】 二级公共基础知识 9 【正确答案】 A 【试题解析】 算法的有穷性是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。 【知识模块】 二级公共基础知识 10 【正确答案】 A 【试题解析】 在任意一棵二叉树中,度为 0的节点,即叶子节点。总是比度为 2的节点多一个。所以该二叉树的叶子节点数等于 n+1。 【知识模块】 二级公共基础知识 11 【正确答案】 D 【试题解析】 循环队列的队头指针和尾指针都等于 15,此循环队列中元素的个数有两种情况,第一种情况是队头指针和尾指针
15、都是第一次到达 15, 此时元素个数为 0;第二种情况是队头指针第一次到达 15,而尾指针第二次到达 15,此时元素个数为 35。 【知识模块】 二级公共基础知识 12 【正确答案】 C 【试题解析】 二叉树前序遍历的简单描述:若二叉树为空,则结束返回;否则, 访问根节点; 前序遍历左子树; 前序遍历右子树。可见,前序遍历二叉树的过程是一个递归的过程。根据题目中给出的二叉树的结构可知前序遍历的结果是 ABDYECFXZ。 【知识模块】 二级公共基础知识 13 【正确答案】 A 【试题解析】 对象是面向对象方法 中最基本的概念。操作描述了对象执行的功能,通过消息传递,还可以为其他对象使用。操作过
16、程是被封装在对象中,用户看不到,称之为对象的封装性。对象的多态性是指同一个操作可以是不同对象的行为。不是所有的对象都必须有继承性。 【知识模块】 二级公共基础知识 14 【正确答案】 D 【试题解析】 假设线性表的长度为 n,则在最坏情况下,冒泡排序需要经过 n 2遍的从前往后的扫描和 n 2遍的从后往前的扫描,需要的比较次数为 n(n 1)2。快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此 称为快速排序法。最坏情况下快速排序退化为冒泡排序。 【知识模块】 二级公共基础知识 15 【正确答案】 B 【试题解析】 黑盒测试法指的是根据程序的外部功能,把程序本身看成一个黑盒
17、子,设计测试用例来验证程序外部功能的正确性。 【知识模块】 二级公共基础知识 16 【正确答案】 D 【试题解析】 一般来讲,程序设计风格是指编写程序时所表现出的特点、习惯和逻辑思路。程序设计风格总体而言应该强调简单和清晰,程序必须是可以理解的。可以认为,著名的 “清晰第一、效率第二 ”的论点已成为当今 主导的程序设计风格。良好的程序设计风格主要应注重和考虑下列几个因素: 源程序文档化,包括下列三个方面:符号的命名应具有一定的含义;正确的注释能够帮助读者理解程序;视觉组织,可以在程序中利用空格、空行、缩进等技巧使程序层次清晰; 数据说明的方法,包括下列三个方面:数据说明的次序规范化;说明语句中
18、变量安排有序化;使用注释来说明复杂数据的结构; 语句的结构应该简单直接,不应该为提高效率而把语句复杂化; 输入和输出方式和风格应尽可能方便用户的使用。 【知识模块】 二级公共基础知识 17 【正确答案 】 A 【试题解析】 对于长度为 n的有序线性表,在最坏情况下,二分法查找只需比较log2n次,而顺序查找需要比较 n次。 【知识模块】 二级公共基础知识 18 【正确答案】 A 【试题解析】 软件设计是开发阶段最重要的步骤。从工程管理的角度来看可分为两步:概要设计和详细设计。概要设计是将软件需求转化为软件体系结构,确定系统级接口、全局数据结构或数据库模式;详细设计是指确立每个模块的实现算法和局
19、部数据结构,用适应方法表示算法和数据结构的细节。从技术观点来看。软件设计包括软件结构设计 (定义软件系 统各主要部件之间的关系 )、数据设计 (将分析时创建的模型转化为数据结构 )、接口设计 (描述软件内部、软件与协作系统之间以及软件与人之间如何通信 )、过程设计 (把系统结构部件转换成软件的过程 )四个步骤。 【知识模块】 二级公共基础知识 19 【正确答案】 B 【试题解析】 数据库有三层模式结构,逻辑模式是数据的全局逻辑结构的描述,外模式也称为子模式,是局部数据的逻辑结构描述,而内模式也称为存储模式,是数据库物理存储结构和存取方法的描述。 【知识模块】 二级公共基础知识 20 【正确答案
20、】 B 【试题解析】 软件测试的目的是发现程序中的错误,而软件调试是为了更正程序中的错误。 【知识模块】 二级公共基础知识 21 【正确答案】 C 【试题解析】 结构化程序的基本结构有:顺序结构、选择结构和循环结构,没有GOTO跳转结构。 【知识模块】 二级公共基础知识 22 【正确答案】 B 【试题解析】 软件调试的任务是诊断和改正程序中的错误。程序调试活动由两部分组成,一是根据错误的迹象确定程序中的错误的确切性质、原因和位置。二是对程序进行修改,排除这个错误。 【 知识模块】 二级公共基础知识 23 【正确答案】 B 【试题解析】 一个关系 R通过投影运算后仍为一个关系 R, R是由 R中
21、投影运算所指出的那些域的列所组成的关系。所以题目中关系 S是由关系 R经过投影运算所得 (选择运算主要是对关系 R中选择由满足逻辑条件的元组所组成的一个新关系 )。 【知识模块】 二级公共基础知识 24 【正确答案】 D 【试题解析】 根据数据之间的联系方式,可以把数据库分为层次型、网状型和关系型数据库,它们是根据数据之间的联系方式来划分的。 【知识模块】 二级公共基础 知识 25 【正确答案】 D 【试题解析】 内聚性是对一个模块内部各个元素间彼此结合的紧密程度的度量。耦合性是对模块间互相连接的紧密程度的度量。在结构化程序设计中,模块划分应遵循高内聚、低耦合的原则,即减弱模块之间的耦合性和提
22、高模块内聚性,有利于提高软件模块的独立性。 【知识模块】 二级公共基础知识 26 【正确答案】 B 【试题解析】 两个实体集间的联系可以有下面几种:一对一的联系、一对多或多对一的联系和多对多的联系。由于一个宿舍可以住多个学生,所以它们的联系是一对多联系。 【知识模块】 二级公共基础知识 27 【正确答案】 A 【试题解析】 在实际应用中,最常用的连接是一个叫自然连接的特例。它满足下面的条件:两关系间有公共域;通过公共域的相等值进行连接。通过观察三个关系 R, S, T的结果可知关系 T是由关系 R和 S进行自然连接得到的。 【知识模块】 二级公共基础知识 28 【正确答案】 C 【试题解析】
23、关键字是指属性或属性的组合,其值能够唯一地标识一个元组,而在 SC中学号和课号的组合可以对元组进行唯一的标识。 【知识模块】 二级公共基础知识 29 【正确答案】 A 【试题解析】 数据库管理系统一般提供相应的数据语言,它们分别是:数据定义语言,负责数据的模式定义与数据的物理存取构建;数据操纵语言,负责数据的操纵,包括查询及增、删、改等操作;数据控制语言,负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。 【知识模块】 二级公共基础知识 30 【正确答案】 B 【试题解析】 由关系 T中的数据可以看出,其数据由属于关系 R但是不属于关系 S的数据组成。所以关系 T是由关系 R和 S通过差运算得到的。 【知识模块】 二级 公共基础知识