1、国家二级 VB机试(数据结构与算法)模拟试卷 1及答案与解析 一、选择题 1 算法的有穷性是指 ( A)算法程序的运行时间是有限的 ( B)算法程序所处理的数据量是有限的 ( C)算法程序的长度是有限的 ( D)算法只能被有限的用户使用 2 算法的空间复杂度是指 ( A)算法在执行过程中所需要的计算机存储空间 ( B)算法所处理的数据量 ( C)算法程序中的语句或指令条数 ( D)算法在执行过程中所需要的临时工作单元数 3 下列叙述中正确的是 ( A)算法的效率只与问题的规模有关,而与数据的存储结 构无关 ( B)算法的时间复杂度是指执行算法所需要的计算工作量 ( C)数据的逻辑结构与存储结构
2、是一一对应的 ( D)算法的时间复杂度与空间复杂度一定相关 4 数据的存储结构是指 ( A)存储在外存中的数据 ( B)数据所占的存储空间量 ( C)数据在计算机中的顺序存储方式 ( D)数据的逻辑结构在计算机中的表示 5 下列描述中正确的是 ( A)数据的逻辑结构与存储结构必定是一对应的 ( B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构 ( C)程序设计语言中的数据一般是 顺序存储结构,因此,利用数组只能处理线性结构 ( D)以上三种说法都不对 6 下列数据结构中,属于非线性结构的是 ( A)循环队列 ( B)带链队列 ( C)二叉树 ( D)带链栈 7 下面
3、叙述中正确的是 ( A)线性表是线性结构 ( B)栈与队列是非线性结构 ( C)线性链表是非线性结构 ( D)二叉树是线性结构 8 支持子程序调用的数据结构是 ( A)栈 ( B)树 ( C)队列 ( D)二叉树 9 下列关于栈叙述正确的是 ( A)栈顶元素最先能被删除 ( B)栈顶元素最后才能被删除 ( C)栈底元素永远不能被删除 ( D)以上三种说法都不对 10 下列叙述中正确的是 ( A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化 ( B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化 ( C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化 ( D)上述三种
4、说法都不对 11 一个栈的初始状态为空。现将元素 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, A 12 按照 “后进先出 ”原则组织数据的数据结构是 ( A)队列 ( B)栈 ( C)双向链表 ( D)二叉树 13 下列叙述中正确的是 ( A)栈是一种先进先出的线性表 ( B)队列是一种后进先出的线性表 ( C)栈与队列都是非线性结构 ( D)以上三种说法都不对 14 下列关于栈的描述中正确
5、的是 ( A)在栈中只能插入元素而不能删除元素 ( B)在栈中只能删除元素而不能插入元素 ( C)栈是特殊的线性表,只能在一端插入或删除元素 ( D)栈是特殊的线性表,只能在 一端插入元素,而在另一端删除元素 15 对于循环队列,下列叙述中正确的是 ( A)队头指针是固定不变的 ( B)队头指针一定大于队尾指针 ( C)队头指针一定小于队尾指针 ( D)队头指针可以大于队尾指针,也可以小于队尾指针 16 设循环队列的存储空间为 Q(1: 35),初始状态为 front=rear=35。现经过一系列入队与退队运算后, front=-15, rear=15,则循环队列中的元素个数为 ( A) 15
6、 ( B) 16 ( C) 20 ( D) 0或 35 17 下列叙述中正确的是 ( A)栈是一 种先进先出的线性表 ( B)队列是一种后进先出的线性表 ( C)栈与队列都是非线性结构 ( D)栈与队列都是线性结构 18 下列与队列结构有关联的是 ( A)函数的递归调用 ( B)数组元素的引用 ( C)多重循环的执行 ( D)先到先服务的作业调度 19 下列关于线性链表的叙述中,正确的是 ( A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致 ( B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续 ( C)进行插入与删除时,不需要移动表中的元素 ( D)
7、以 上都不正确 20 下列叙述中正确的是 ( A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的 ( B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 ( C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构 ( D)以上都不正确 21 下列对于线性链表的描述中正确的是 ( A)存储空间不一定连续,且各元素的存储顺序是任意的 ( B)存储空间不一定连续,且前件元素一定存储在后件元素的前面 ( C)存储空间必须连续,且前件元素一定存储在后件元素的前面 ( D)存储空间必 须连续,且各元素的存储顺序是任意的 22 下列链表中,其逻辑结构属于非线性结构的是 ( A
8、)二叉链表 ( B)循环链表 ( C)双向链表 ( D)带链的栈 23 某系统总体结构图如下图所示: 该系统总体结构图的深度是 ( A) 7 ( B) 6 ( C) 3 ( D) 2 24 某二叉树中有 n个度为 2的结点,则该二叉树中的叶子结点数为 ( A) n+1 ( B) n-1 ( C) 2n ( D) n 2 25 一棵二叉树共有 25个结点,其中 5个是叶子结点,则度为 1的结点数为 ( A) 16 ( B) 10 ( C) 6 ( D) 4 26 一棵二叉树中共有 70个叶子结点与 80个度为 1的结点,则该二叉树中的总结点数为 ( A) 219 ( B) 221 ( C) 22
9、9 ( D) 231 27 某二叉树共有 12个结点,其中叶子结点只有 1个。则该二叉树的深度为 (根结点在第 1层 ) ( A) 3 ( B) 6 ( C) 8 ( D) 12 28 设一棵完全二叉树共有 700个结点,则此二叉树中的叶子结点数为 ( A) 85 ( B) 120 ( C) 250 ( D) 350 29 对下列二叉树 进行前序遍历的结果是 ( A) DYBEAFCZX ( B) YDEBFZXCA ( C) ABDYECFXZ ( D) ABCDEFXYZ 30 对长度为 n的线性表进行顺序查找,在最坏情况下所需要的比较次数为 ( A) log2n ( B) n 2 ( C
10、) n ( D) n+1 31 下列叙述中正确的是 ( A)对长度为 n的有序链表进行查找,最坏情况下需要的比较次数为 n ( B)对长度为 n的有序链表进行对分查找,最坏情况下需要的比较次数为 (n 2) ( C)对长度为 n的有序链表进行对分查找,最坏情况下需要的比较次数为 (log2n) ( D)对长度为 n的 有序链表进行对分查找,最坏情况下需要的比较次数为 (nlog2n) 32 下列数据结构中,能用二分法进行查找的是 ( A)顺序存储的有序线性表 ( B)线性链表 ( C)二叉链表 ( D)有序线性链表 33 对长度为 10的线性表进行冒泡排序,最坏情况下需要比较的次数为 ( A)
11、 9 ( B) 10 ( C) 45 ( D) 90 34 对长度为 n的线性表作快速排序,在最坏情况下,比较次数为 ( A) n ( B) n-1 ( C) n(n-1) ( D) n(n-1) 2 35 下列排序方法中,最坏情况下比较 次数最少的是 ( A)冒泡排序 ( B)简单选择排序 ( C)直接插入排序 ( D)堆排序 国家二级 VB机试(数据结构与算法)模拟试卷 1答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。 【知识模块】 数据结构与算法 2 【正确答案】 A 【试题解析】 算法的
12、空间复杂度是指执行这个算法所需要的内存空间。这个内存空间包括算法程序所占的空间,输入的初始数据所占的存储空间以及算法执行过程中 所需要的额外空间。 【知识模块】 数据结构与算法 3 【正确答案】 B 【试题解析】 算法的时间复杂度是指执行算法所需要的计算工作量。算法的工作量用算法所执行的基本运算的次数来度量,而算法所执行的琏本运算次数是问题规模的函数;算法的空间复杂度一般是指执行这个算法所需要的内存空间。算法的时间复杂度与空间复杂度并不相关。数据的逻辑结构就是数据元素之问的逻辑关系,它是从逻辑上描述数据元素之问的关系,是独立于计算机的:数据的存储结构是研究数据元素和数据元素之间的关系如何在计算
13、机中表示,它们并非一一对 应。算法的执行效率不仅与问题的规模有关,还与数据的存储结构有关。 【知识模块】 数据结构与算法 4 【正确答案】 D 【试题解析】 在对数据进行处理时,各数据元素在计算机中的存储关系,即为数据的存储结构。 【知识模块】 数据结构与算法 5 【正确答案】 D 【试题解析】 数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构 (也称数据的物理结构 )。一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储 结构有顺序、链接、索引等。 【知识模块】 数据结构与算法 6 【正确答案】 C 【试题解
14、析】 根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类:线性结构和非线性结构。循环队列、带链队列和带链栈都是线性结构,而二叉树是非线性结构。 【知识模块】 数据结构与算法 7 【正确答案】 A 【试题解析】 线性表是最简单的、最常用的一种线性结构。所谓线性链表指的是采用链式存储结构的线性表。栈和队列其实是一种特殊的线性表。树是一种简单的非线性结构,二叉树是树的一种。 【知识模块】 数据结构与算法 8 【正确答案】 A 【试题解析】 栈是一种限定在一端进行插入与删除的线性表。在丰函数调用子函数时,要首先保存主函数当前的状态,然后转去执行子函数,把子函数的运行结果返回到
15、主函数调用子函数时的位置,主函数再接着往下执行,这种过程符合栈的特点。所以一般采用栈式存储方式。 【知识模块 】 数据结构与算法 9 【正确答案】 A 【试题解析】 栈是先进后出的线性表,栈项的元素最先被删除,栈底的元素最后被删除。 【知识模块】 数据结构与算法 10 【正确答案】 C 【试题解析】 在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈跟队列不同,元素只能在栈顶压入或弹出,栈底指针不变,栈中元素随栈顶指针的变化而动态变化,遵循后进先出的规则。 【知识模块】 数据结构与算法 11 【正确答案】 C 【试题解析】 栈是按照 “先进后出 ”或 “后进先出 ”的
16、原则组织数据的。所以出栈顺序是 CBA321。 【知识模块】 数据结构与算法 12 【正确答案】 B 【试题解析】 栈是限定在一端进行插入与删除的线性表。在栈中,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。栈顶冗素总是最后被插入的元素,也是最先破删除的元素;栈底元索总是最先被插入的元素,也是最后才能被删除的元素。即栈是按照 “后进先出 ”(Last In First Out,简称 LIFO)或“先进后出 ”(First In Last Out,简称 FILO)的原则组织数 据的。因此,栈也称为“后进先出表 ”或 “先进后出 ”表。 【知识模块】 数据结构与算法 13 【正确
17、答案】 D 【试题解析】 栈是先进后出的线性表,队列是先进先出的线性表,二者均为线性结构。 【知识模块】 数据结构与算法 14 【正确答案】 C 【试题解析】 栈是限定在一端进行插入与删除的线性表,在栈中,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。 【知识模块】 数据结构与算法 15 【正确答案】 D 【试题解析】 所谓循环队列,就是将队列存储 空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列中,用队尾指针 rear指向队列中的队尾元素,用队头指针 front指向队头元素的前一个位置。循环队列的主要操作是:入队运算和退队运算。每进行一次入
18、队运算,队尾指针就进一。每进行一次退队运算,队头指针就进一。当 rear或 front等于队列的长度加 1时,就把 rear或 front值置为 1。所以在循环队列中,队头指针可以大于队尾指针,也可以小于队尾指针。 【知识模块】 数据结构与算法 16 【正确答案】 D 【试题解析】 循环队列的队头指针和尾指针都等于 15,此循环队列中元素的个数有两种情况,第一种情况是队头指针和尾指针都是第一次到达 15,此时元素个数为 0:第二种情况是队头指针第一次到达 15,而尾指针第二次到达 15,此时元索个数为 35。 【知识模块】 数据结构与算法 17 【正确答案】 D 【试题解析】 栈是先进后出,队
19、列是先进先出。栈和队列都是一种线性表,属于线性结构。 【知识模块】 数据结构与算法 18 【正确答案】 D 【试题解析】 队列中最先插入的元素将最先被删除,最后插入的元素将最 后被删除。 【知识模块】 数据结构与算法 19 【正确答案】 C 【试题解析】 线性表的链式存储结构称为线性链表。在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元索之问的逻辑关系可以不一致,而数据元素之问的逻辑关系是由指针域来确定的。 【知识模块】 数据结构与算法 20 【正确答案】 B 【试题解析】 线性表的存储分为顺序存储和链式存储。在顺序存储中,所有元素所占的存储空间是连续的。而在链
20、式存储的方式中,将存储空间的每一个存储结点分为两部分,一 部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为指针域。所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。 【知识模块】 数据结构与算法 21 【正确答案】 A 【试题解析】 一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。在线性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一个结点的指针 head称为头指针,当 head=NuLL(或 0)时称为空表。 【知识模块】 数据结构与算法 22 【正确
21、答案】 A 【试题解析】 二又链表作为树的存储结构。链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点。 【知识模块】 数据结构与算法 23 【正确答案】 C 【试题解析】 这个系统总体结构图是一棵树结构,在树结构中,根结点在第 1层,同一层上所有子结点都在下一层,由系统总体结构图可知,这棵树共 3层。在树结构中,树的最大层次称为树的深度。所以这棵树的深度为 3。 【知识模块】 数据结构与算法 24 【正确答案】 A 【试题解析】 在任意一棵二叉树中,度为 0的结点 (即叶子结点 )总是比度为 2的结点多一个。所以该二叉树的叶子结点数等于 n+1。 【知识模块】 数据结构与算法
22、 25 【正确答案】 A 【试题解析】 根据二叉树的性质,在任意二叉树中,度为 0的结点 (即叶子结点 )总是比度为 2的结点多一个,故此度为 1的结点个数 =总结点数 -叶子节点数 -度为2的节点数 =25-5-4=16。 【知识模块】 数据结构与算法 26 【正确答案】 A 【试题解析】 在二叉树中,叶子结点个数为 n0,则度为 2的结点数 n2=n0-1。本题中叶子结点的个数为 70,所以度为 2的结点个数为 69,因而总结点数 =叶了结点数 +度为 1的结点数 +度为 2的结点数 =70+80+69=219。 【知识模块】 数据结构与算法 27 【正确答案】 D 【试题解析】 根据二叉
23、树的性质,度为 0的结点 (即叶子结点 )总是比度为 2的结点多一个。题目中的二叉树的叶子结点为 1,因此度为 2的结点的数目为 0,故该二叉树为 12层,每层只有一个结点。 【知识模块】 数据结构与算法 28 【正确答案】 D 【试题解析】 具有 n个结点的完全二 叉树的深度为 long2n+1,计算出该完全二又树的深度为 10。 设度为 0的结点 (即叶子结点 )为 n0,度为 1的结点为 n1,度为 2的结点为 n2,总结点数为 n,深度为 k。 n=n1+n2+n0,由于 n0=n2+1则 n2=n0-1,故 n=n1+n0-1+n0=n1+2n0-1。由于完全二叉树中度为 1的结点数
24、只有两种可能: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=350。 【知识模块】 数据结构与算法 29 【正确答案】 C 【试题解析】 二叉树前序遍历的简单描述:若二叉树为空,则结束返回;否则: 访问根结点; 前序遍历左子树; 前序遍历右子树。可见,前序遍历二叉树的过程是一个递归的过程。根据题目中给出的二叉树的结构可知
25、前序遍历的结果是 ABDYECFXZ。 【知识模块】 数据结构与算法 30 【正确答案】 C 【试题解析】 在进行顺序查找过程中,如果被查的元素是线性表中的最后一个元素,或者被查元素根本不在线性表中,则为了查找这个元素需要与线性表中的所有元素进行比较,这是顺序查找的最坏情况,需要比较的次数为 n次。 【知识模块】 数据结构与算法 31 【正确答案】 A 【试题解析】 本题主要考查的知识点为查找技术。顺序查找的使用情况: 线性表为无序表; 表采用链式存储结构。二分法查找只适用于顺序存储的有序表,并不适用于线性链表。 【知识模块】 数据结构与算法 32 【正确答案】 A 【试题解析 】 二分法查找
26、只适应于顺序存储的有序表。有序表是指线性表中的元素按值非递减排序 (即从小到大,但允许相邻元素值相等 )的表。 【知识模块】 数据结构与算法 33 【正确答案】 C 【试题解析】 线性表的长度为 n,最坏情况下冒泡排序需要比较的次数为 n(n-1) 2。 【知识模块】 数据结构与算法 34 【正确答案】 D 【试题解析】 假设线性表的长度为 n,则在最坏情况下,冒泡排序需要经过 n 2遍的从前往后的扫描和 n 2遍的从后往前的扫描,需要的比较次数为 n(n-1)2。快速排序法 也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此,称为快速排序法。 【知识模块】 数据结构与算法 35 【正确答案】 D 【试题解析】 冒泡排序、简单选择排序和直接插入排序法在最坏的情况下比较次数为: n(n-1) 2。而堆排序法在最坏的情况下需要比较的次数为 O(nlog2n)。其中堆排序的比较次数最少。 【知识模块】 数据结构与算法
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1