[计算机类试卷]国家二级C++机试(数据结构与算法)模拟试卷2及答案与解析.doc

上传人:lawfemale396 文档编号:497692 上传时间:2018-11-30 格式:DOC 页数:20 大小:61.50KB
下载 相关 举报
[计算机类试卷]国家二级C++机试(数据结构与算法)模拟试卷2及答案与解析.doc_第1页
第1页 / 共20页
[计算机类试卷]国家二级C++机试(数据结构与算法)模拟试卷2及答案与解析.doc_第2页
第2页 / 共20页
[计算机类试卷]国家二级C++机试(数据结构与算法)模拟试卷2及答案与解析.doc_第3页
第3页 / 共20页
[计算机类试卷]国家二级C++机试(数据结构与算法)模拟试卷2及答案与解析.doc_第4页
第4页 / 共20页
[计算机类试卷]国家二级C++机试(数据结构与算法)模拟试卷2及答案与解析.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、国家二级 C+机试(数据结构与算法)模拟试卷 2及答案与解析 一、选择题 1 下列与队列结构有关联的是 ( )。 ( A)函数的递归调用 ( B)数组元素的引用 ( C)多重循环的执行 ( D)先到先服务的作业调度 2 下列叙述中正确的是 ( )。 ( A)循环队列中的元素个数随队头指针与队尾指针的变化而动态变化 ( B)循环队列中的元素个数随队头指针的变化而动态变化 ( C)循环队列中的元素个数随队尾指针的变化而动态变化 ( D)循环队列中的元素个数不会变化 3 下列关于线性链表的 叙述中,正确的是 ( )。 ( A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致 ( B

2、)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续 ( C)进行插入与删除时,不需要移动表中的元素 ( D)以上都不正确 4 下列叙述中正确的是 ( )。 ( A)线性表链式存储结构的存储空间一般要少于顺序存储结构 ( B)线性表链式存储结构与顺序存储结构的存储空间都是连续的 ( C)线性表链式存储结构的存储空间可以是连续的,也可以是不连续的 ( D)以上都不正确 5 下列叙述中正确的是 ( )。 ( A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的 ( B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 ( C)线性表的链式存储结构所需要的存储空间

3、一般要少于顺序存储结构 ( D)以上都不正确 6 下列叙述中正确的是 ( )。 ( A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的 ( B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 ( C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储 结构 ( D)上述三种说法都不对 7 下列对于线性链表的描述中正确的是 ( )。 ( A)存储空间不一定连续,且各元素的存储顺序是任意的 ( B)存储空间不一定连续,且前件元素一定存储在后件元素的前面 ( C)存储空间必须连续,且前件元素一定存储在后件元素的前面 ( D)存储空间必须连续,且各元素的存储顺序是任意的 8

4、 下列叙述中正确的是 ( )。 ( A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 ( B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结 构 ( C)顺序存储结构能存储有序表,链式存储结构不能存储有序表 ( D)链式存储结构比顺序存储结构节省存储空间 9 下列链表中,其逻辑结构属于非线性结构的是 ( )。 ( A)二叉链表 ( B)循环链表 ( C)双向链表 ( D)带链的栈 10 下列叙述中正确的是 ( )。 ( A)有一个以上根结点的数据结构不一定是非线性结构 ( B)只有一个根结点的数据结构不一定是线性结构 ( C)循环链表是非线性结构 ( D)双向链

5、表是非线性结构 11 某系统总体结构图如下图所示: 该系统总体结 构图的深度是 ( )。 ( A) 7 ( B) 6 ( C) 3 ( D) 2 12 下列关于二叉树的叙述中,正确的是 ( )。 ( A)叶子结点总是比度为 2的结点少一个 ( B)叶子结点总是比度为 2的结点多一个 ( C)叶子结点数是度为 2的结点数的两倍 ( D)度为 2的结点数是度为 1的结点数的两倍 13 某二叉树中有 n个度为 2的结点,则该二叉树中的叶子结点数为 ( )。 ( A) n+1 ( B) n一 1 ( C) 2n ( D) n 2 14 某二叉树有 5个度为 2的结点,则该二叉树中的叶子结点数是 ( )

6、。 ( A) 10 ( B) 8 ( C) 6 ( D) 4 15 一棵二叉树共有 25个结点,其中 5个是叶子结点,则度为 1的结点数为 ( )。 ( A) 16 ( B) 10 ( C) 6 ( D) 4 16 一棵二叉树中共有 80个叶子结点与 70个度为 1的结点,则该二叉树中的总结点数为 ( )。 ( A) 219 ( B) 229 ( C) 230 ( D) 231 17 一棵二叉树中共有 70个叶子结点与 80个度为 1的结点,则该二叉树中的总结点数为 ( )。 ( A) 219 ( B) 221 ( C) 229 ( D) 231 18 某二叉树共有 7个结点,其中叶子结点只有

7、 1个,则该二叉树的深度为(假设根结点在第 1层) ( )。 ( A) 3 ( B) 4 ( C) 6 ( D) 7 19 某二叉树共有 12个结点,其中叶子结点只有 1个。则该二叉树的深度为(根结点在第 1层)( )。 ( A) 3 ( B) 6 ( C) 8 ( D) 12 20 设树 T的深度为 4,其中度为 1, 2, 3, 4的结点个数分别为 4, 2, 1, 1。则 T中的叶子结点数为 ( )。 ( A) 8 ( B) 7 ( C) 6 ( D) 5 21 设一棵完全二叉树共有 700个结点,则此二叉树中的叶子结点数为 ( )。 ( A) 85 ( B) 120 ( C) 250

8、( D) 350 22 在深度为 7的满二叉树中,叶子结点的个数为 ( )。 ( A) 32 ( B) 31 ( C) 64 ( D) 63 23 对下列二叉树 进行前序遍历的结果是 ( )。 ( A) DYBEAFCZX ( B) YDEBFZXCA ( C) ABDYECFXZ ( D) ABCDEFXYZ 24 对如下二叉树 进行后序遍历的结果为 ( )。 ( A) ABCDEF ( B) DBEAFC ( C) ABDECF ( D) DEBFCA 25 对长度为 n的线性表进行顺序查找,在最坏情况下所需要的比较次数为 ( )。 ( A) log2n ( B) n 2 ( C) n (

9、 D) n+1 26 在长度为 64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为( )。 ( A) 63 ( B) 64 ( C) 6 ( D) 7 27 下列叙述中正确的是 ( )。 ( A)对长度为 n的有序链表进行查找,最坏情况下需要的比较次数为 n ( B)对长度为 n的 有序链表进行对分查找,最坏情况下需要的比较次数为 (n 2) ( C)对长度为 n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n) ( D)对长度为 n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n) 28 在长度为 n的有序线性表中进行二分查找,最坏情况下需要比较的次数是

10、( )。 ( A) O(n) ( B) O(n2) ( C) O(log2n) ( D) O(nlog2n) 29 下列数据结构中,能用二分法进行查找的是 ( )。 ( A)顺序存储的有序线性表 ( B)线性链表 ( C)二叉链表 ( D)有序线性链表 30 冒泡排序在最坏情况下的比较次数是 ( )。 ( A) n(n+1) 2 ( B) nlog2n ( C) n(n一 1) 2 ( D) n 2 31 对长度为 10的线性表进行冒泡排序,最坏情况下需要比较的次数为 ( )。 ( A) 9 ( B) 10 ( C) 45 ( D) 90 32 对于长度为 n的线性表,在最坏情况下,下列各排序

11、法所对应的比较次数中正确的是 ( )。 ( A)冒泡排序为 n 2 ( B)冒泡排序为 n ( C)快速排 序为 n ( D)快速排序为 n(n一 1) 2 33 对长度为 n的线性表作快速排序,在最坏情况下,比较次数为 ( )。 ( A) n ( B) n一 1 ( C) n(n一 1) ( D) n(n一 1) 2 34 对长度为 n的线性表排序,在最坏情况下,比较次数不是 n( n一 1) 2的排序方法是 ( )。 ( A)快速排序 ( B)冒泡排序 ( C)直接插入排序 ( D)堆排序 35 下列排序方法中,最坏情况下比较次数最少的是 ( )。 ( A)冒泡排序 ( B)简单选择排序

12、( C)直接插入排序 ( D)堆排序 国家二级 C+机试(数据结构与算法)模拟试卷 2答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 队列中最先插入的元素将最先被删除,最后插入的元素将最后被删除。 【知识模块】 数据结构与算法 2 【正确答案】 A 【试题解析】 所谓循环结构就是将队列存储空间的最后一个位置绕到第一个位置上,形成逻辑上的环状空间,循环使用。在循环队列中,用队尾指针 rear指向队列中的队尾元素,用队头指针 front指向队头元素的前一个位置,因此,队列中的元素数等于从队头指针 front指向的后一个位置与队尾指针 rear指向位置之间的元素数量。 【知识模块】 数据

13、结构与算法 3 【正确答案】 C 【试题解析】 线性表的链式存储结构称为线性链表。在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。 【知识模块】 数据结构与算法 4 【正确答案】 C 【试题解析】 线性表的存储分为顺序存储和链式存储。在顺序存储中,所有元素所占的存储空间是连续的。而在链式 存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为指针域。所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。 【知

14、识模块】 数据结构与算法 5 【正确答案】 B 【试题解析】 线性表的存储分为顺序存储和链式存储。在顺序存储中,所有元素所占的存储空间是连续的。而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域:另一部分用于存储下一个元素的存储序号,称为指针 域。所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。 【知识模块】 数据结构与算法 6 【正确答案】 B 【试题解析】 线性表的存储分为顺序存储和链式存储。在顺序存储中,所有元素所占的存储空间是连续的,各数据元素在存储空间中是按逻辑顺序依次存放的。所以每个元素只存储其值就可以了,而在链式存储的方式

15、中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为指针域。所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。 【知识模块】 数据结构与算法 7 【正确答案】 A 【试题解析】 一般来说,在线性表的链式存储结构中,各数据 结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。在线性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一个结点的指针 head称为头指针,当 head=NULL(或 0)时称为空表。 【知识模块】 数据结构与算法 8 【正确答案】 A 【试

16、题解析】 顺序存储方式主要用于线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。而链式存储结构的存储空间不一定是连续的。 【知识模块】 数据结构与算法 9 【正确答案】 A 【试题解析】 二叉链表作为树的存储结构。链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点。 【知识模块】 数据结构与算法 10 【正确答案】 B 【试题解析】 在数据结构中,树这类的的数据结构只有一个根结点,但它不是线性结构。 【知识模块】 数据结构与算法 11 【正确答案】 C 【试题解析】 这个系统总体结构图是一棵树结构,在树结构中,根结点

17、在第 1层,同一层上所有子结点都在下一层,由系统总体结构图可知,这棵 树共 3层。在树结构中,树的最大层次称为树的深度。所以这棵树的深度为 3。 【知识模块】 数据结构与算法 12 【正确答案】 B 【试题解析】 由二叉树的性质可以知道在二叉树中叶子结点总是比度为 2的结点多一个。 【知识模块】 数据结构与算法 13 【正确答案】 A 【试题解析】 在任意一棵二叉树中,度为 0的结点(即叶子结点)总是比度为 2的结点多一个。所以该二叉树的叶子结点数等于 n+1。 【知识模块】 数据结构与算法 14 【正确答案】 C 【试题解析】 根据二叉树 的性质,在任意二叉树中,度为 0的结点(即叶子结点)

18、总是比度为 2的结点多一个。 【知识模块】 数据结构与算法 15 【正确答案】 A 【试题解析】 根据二叉树的性质,在任意二叉树中,度为 0的结点(即叶子结点)总是比度为 2的结点多一个,故此度为 1的结点个数 =总结点数一叶子节点数 度为 2的节点数 =25一 5一 4=16。 【知识模块】 数据结构与算法 16 【正确答案】 B 【试题解析】 根据二叉树的性质,在任意二叉树中,度为 0的结点(即叶子结点)总是比度为 2的结点多一个,故总结点数 =叶子节点数 +度为 2的节点数 +度为1的节点数 =80+79+70=229。 【知识模块】 数据结构与算法 17 【正确答案】 A 【试题解析】

19、 在二叉树中,叶子结点个数为 n0,则度为 2的结点数 n2=n0一 1。本题中叶子结点的个数为 70,所以度为 2的结点个数为 69,因而总结点数 =叶子结点数 +度为 1的结点数 +度为 2的结点数 =70+80+69=219。 【知识模块】 数据结构与算法 18 【正确答案】 D 【试题解析】 根据二叉树的性质,度为 0的结点(即叶子结点)总是比度为 2的结点多一个。 题目中的二叉树的叶子结点为 1,因此度为 2的结点的数目为 0,故该二叉树为 7层,每层只有一个结点。 【知识模块】 数据结构与算法 19 【正确答案】 D 【试题解析】 根据二叉树的性质,度为 0的结点(即叶子结点)总是

20、比度为 2的结点多一个。题目中的二叉树的叶子结点为 1,因此度为 2的结点的数目为 0,故该二叉树为 12层,每层只有一个结点。 【知识模块】 数据结构与算法 20 【正确答案】 B 【试题解析】 深度为 m二叉树其总结点数为 2m一 1=24 1=15。总结点数减去度为 1, 2, 3, 4的 结点个数就是叶子结点数。 15一 4一 2一 1一 1=7。 【知识模块】 数据结构与算法 21 【正确答案】 D 【试题解析】 具有 n个结点的完全二叉树的深度为 long2n+1,计算出该完全二叉树的深度为 10。 设度为 0的结点(即叶子结点)为 n0,度为 1的结点为 n1,度为 2的结点为

21、n2,总结点数为 n,深度为 k。 n=n1+n2+n0,出于 n0=n2+1则n2=n0一 1,故 n=n1+n0一 1+n0=n1+2n0一 1。由于完全二叉树中度为 1的结点数只有两种可能: 0或 1。 假设度为 1的结点数为 0即满二叉 树,根据满二叉树的定义,其 2m一 1个结点,根据以上计算所得的深度 10来计算,应有 210一 1=1024一 1=1023个结点,显然与题目中 700个结点不符。因此,度为 1的结点数必然为1。故 n=n1+2n0一 1=1+2n0一 1=2n0,则 n0=n 2=700 2=3 50 【知识模块】 数据结构与算法 22 【正确答案】 C 【试题解

22、析】 所谓满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。也就是在满二叉树中,每一层上的结点数都是最大结点数,即在满二叉树的第 k层上有 2k一 1个结点,且深度为 m的满二叉树有 2m一 1个结点。对于深度为 7的满二叉树,叶子结点所在的是第 7层,一共有 27一 1=64个叶子结点。全部结点共 27一 1=127个。 【知识模块】 数据结构与算法 23 【正确答案】 C 【试题解析】 二叉树前序遍历的简单描述:若二叉树为空,则结束返回;否则: 访问根结点; 前序遍历左子树; 前序遍历右子树。可见,前序遍历二叉树的过程是一个递归的过程。根据题目中给出的二叉树的结

23、构可知前序遍历的结果是 ABDYECFXZ。 【知识模块】 数据结构与算法 24 【正确答案】 D 【试题解析】 所谓后序遍历是指在访问根据结点、遍历左子树与遍历右予树这三者中,首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左予树,然后遍历右子树,最后访问根点。因此,后序遍历二叉树的过程也是一个递归过程。其简单描述为:若二叉树为空,则结束返回;否则,先后序遍历左子树,然后后序遍历右子树,最后访问根结点。对于后序遍历,第一个访问的结点一定是最左下的结点,最后一个访问的结点一定是根结点,所以选项 D)为正确答案。 【知识模块】 数据结构与算法 25 【正确答案

24、】 C 【试题解析】 在进行顺序查找过程中,如果被查的元素是线性表中的最后一个元素,或者被查元素根本不在线性表中,则为了查找这个元素需要与线性表中的所有元素进行比较,这是顺序查找的最坏情况,需要比较的次数为 n次。 【知识模块】 数据结构与算法 26 【正确答案】 B 【试题解析】 顺序查找又称顺序搜索。顺序查找一般是指在线性表中查找指定的元素,其基本方法是:从线性表的第一元素开始,依次将线性表中的元素与被查找的元素进行比较,若相等则表示找到(即查找成功),若线性表 中所有元素都与被查元素进行了比较但都不相等,则表示线性表中没有要找的元素(即查找失败)。如果线性表中的第一个元素就是要查找的元素

25、,则只需要做一次比较就查找成功;但如果要查找的元素是线性表中的最后 _个元素,或者要查找元素不在线性表中,则需要与线性表中所有元素进行比较,这是顺序查找的最坏情况,比较次数为线性表的长度。 【知识模块】 数据结构与算法 27 【正确答案】 A 【试题解析】 本题主要考查的知识点为查找技术。顺序查找的使用情况: 线性表为无序表; 表采用链式存储结构。二分法查找只适用于顺 序存储的有序表,并不适用于线性链表。 【知识模块】 数据结构与算法 28 【正确答案】 C 【试题解析】 对于长度为 n的有序线性表,在最坏情况下,二分法查找只需比较log2n次,而顺序查找需要比较 n次。 【知识模块】 数据结

26、构与算法 29 【正确答案】 A 【试题解析】 二分法查找只适应于顺序存储的有序表。有序表是指线性表中的元素按值非递减排序(即从小到大,但允许相邻元素值相等)的表。 【知识模块】 数据结构与算法 30 【正确答案】 C 【试题解析】 对 n个结点 的线性表采用冒泡排序,在最坏情况下,冒泡排序需要经过 n 2遍的从前往后的扫描和 n 2遍的从后往前的扫描,需要的比较次数为 n( n一 1) 2。 【知识模块】 数据结构与算法 31 【正确答案】 C 【试题解析】 线性表的长度为 n,最坏情况下冒泡排序需要比较的次数为 n( n一 1) 2。 【知识模块】 数据结构与算法 32 【正确答案】 D

27、【试题解析】 假设线性表的长度为 n,则在最坏情况下,冒泡排序需要经过 n 2遍的从前往后的扫描和 n 2遍的从后往前的扫描,需要的比较次数为 n( n一 1) 2。快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此,称为快速排序法。 【知识模块】 数据结构与算法 33 【正确答案】 D 【试题解析】 假设线性表的长度为 n,则在最坏情况下,冒泡排序需要经过 n 2遍的从前往后的扫描和 n 2遍的从后往前的扫描,需要的比较次数为 n( n一 1) 2。快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此,称为快速排序法。 【知识模块】 数据结构与算法 34 【正确答案】 D 【试题解析】 各种排序方法中最坏 情况下需要比较的次数分别为:冒泡排序 n( n一 1) 2、快速排序 n( n一 1) 2、简单插入排序 n( n一 1) 2、希尔排序O( n1 5)、简单选择排序 n( n一 1) 2、堆排序 O( nlog2n)。 【知识模块】 数据结构与算法 35 【正确答案】 D 【试题解析】 冒泡排序、简单选择排序和直接插入排序法在最坏的情况下比较次数为; n( n一 1) 2。而堆排序法在最坏的情况下需要比较的次数为 0( nlog2n)。其中堆排序的比较次数最少。 【知识模块】 数据结构与算法

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1