1、国家二级 VF(数据结构与算法)机试模拟试卷 1及答案与解析 一、选择题 1 算法的有穷性是指 ( A)算法程序的运行时间是有限的 ( B)算法程序所处理的数据量是有限的 ( C)算法程序的长度是有限的 ( D)算法只能被有限的用户使用 2 下列叙述中正确的是 ( A)算法就是程序 ( B)设计算法时只需要考虑数据结构的设计 ( C)设计算法时只需要考虑结果的可靠性 ( D)以上三种说法都不对 3 算法的空间复杂度是指 ( A)算法在执行过程中所需要的计算机存储空间 ( B)算法所处理的数据量 ( C)算法程序中的语句或指令条数 ( D)算法在执行过程中所需要的临时工作单元数 4 算法的时间复
2、杂度是指 ( A)算法的执行时间 ( B)算法所处理的数据量 ( C)算法程序中的语句或指令条数 ( D)算法在执行过程中所需要的基本运算次数 5 下列叙述中正确的是 ( A)算法的效率只与问题的规模有关,而与数据的存储结构无关 ( B)算法的时间复杂度是指执行算法所需要的计算工作量 ( C)数据的逻辑结构与存储结构是一一对应的 ( D)算法的时间复杂度与空间复杂度一定相 关 6 下列叙述中正确的是 ( A)一个算法的空间复杂度大,则其时间复杂度也必定大 ( B)一个算法的空间复杂度大,则其时间复杂度必定小 ( C)一个算法的时间复杂度大,则其空间复杂度必定小 ( D)算法的时间复杂度与空间复
3、杂度没有直接关系 7 数据的存储结构是指 ( A)存储在外存中的数据 ( B)数据所占的存储空间量 ( C)数据在计算机中的顺序存储方式 ( D)数据的逻辑结构在计算机中的表示 8 下列描述中正确的是 ( A)一个逻辑数据结构只能有一种存储结构 ( B)数据的 逻辑结构属于线性结构,存储结构属于非线性结构 ( C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率 ( D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率 9 下列描述中正确的是 ( A)数据的逻辑结构与存储结构必定是一一对应的 ( B)由于计算机存储空间是向量式的存储结构,因此,数据的存
4、储结构一定是线性结构 ( C)程序设计语言中的数据一般是顺序存储结构,因此,利用数组只能处理线性结构 ( D)以上三种说法都不对 10 下列叙述中正确的是 ( A)有 一个以上根结点的数据结构不一定是非线性结构 ( B)只有一个根结点的数据结构不一定是线性结构 ( C)循环链表是非线性结构 ( D)双向链表是非线性结构 11 下列数据结构中,属于非线性结构的是 ( A)循环队列 ( B)带链队列 ( C)二叉树 ( D)带链栈 12 下列描述中正确的是 ( A)线性链表是线性表的链式存储结构 ( B)栈与队列是非线性结构 ( C)双向链表是非线性结构 ( D)只有根结点的二叉树是线性结构 13
5、 下面叙述中正确的是 ( A)线性表是线性结 构 ( B)栈与队列是非线性结构 ( C)线性链表是非线性结构 ( D)二叉树是线性结构 14 下列关于栈的叙述正确的是 ( A)栈按 “先进先出 ”组织数据 ( B)栈按 “先进后出 ”组织数据 ( C)只能在栈底插入数据 ( D)不能删除数据 15 支持子程序调用的数据结构是 ( A)栈 ( B)树 ( C)队列 ( D)二叉树 16 下列数据结构中,能够按照 “先进后出 ”原则存取数据的是 ( A)循环队列 ( B)栈 ( C)队 列 ( D)二叉树 17 下列关于栈叙述正确的是 ( A)栈顶元素最先能被删除 ( B)栈顶元素最后才能被删除
6、( C)栈底元素永远不能被删除 ( D) 以上三种说法都不对 18 下列关于栈的叙述中,正确的是 ( A)栈底元素一定是最后入栈的元素 ( B)栈顶元素一定是最先入栈的元素 ( C)栈操作遵循先进后出的原则 ( D)以上三种说法都不对 19 下列叙述中正确的是 ( A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化 ( B)在栈中,栈顶指 针不变,栈中元素随栈底指针的变化而动态变化 ( C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化 ( D)上述三种说法都不对 20 一个栈的初始状态为空。现将元素 1、 2、 3、 4、 5、 A、 B、 C、 D、 E依次入栈,然后再依次
7、出栈,则元素出栈的顺序是 ( A) 12345ABCDE ( B) EDCBA54321 ( C) ABCDEl2345 ( D) 54321EDCBA 21 一个栈的初始状态为空。现将元素 l, 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 22 下列关于栈的描述中错误的是 ( A)栈是先进后出的线性表 ( B)栈只能顺序存储 ( C)栈具有记忆作用 ( D)对栈的插入与删除操作中,不需要改变栈底指针 23 按照 “后进先出 ”原则组织数据
8、的数据结构是 ( A)队列 ( B)栈 ( C)双向链表 ( D)二叉树 24 下列对队列的描述中正确的是 ( A)队列属于非线性表 ( B)队列按 “先进后出 ”原则组织数据 ( C)队列在队尾删除数据 ( D)队列按 “先进先出 ”原则组织数据 25 下列叙述中正确的是 ( A)栈是一种先进先出的线性表 ( B)队列是一种后进先出的线性表 ( C)栈与队列都是非线性结构 ( D)以上蔓种说法都不对 26 下列叙述中正确的是 ( A)栈是 “先进先出 ”的线性表 ( B)队列是 “先进后出 ”的线性表 ( C)循环队列是非线性结构 ( D)有序线性表既可以采用顺序存储结构,也可以采用链式存储
9、结构 27 下列关于栈的 描述中正确的是 ( A)在栈中只能插入元素而不能删除元素 ( B)在栈中只能删除元素而不能插入元素 ( C)栈是特殊的线性表,只能在一端插入或删除元素 ( D)栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素 28 下列叙述中正确的是 ( A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构 ( B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况 ( C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况 ( D)循环队列中元素的个数是由队头指针和队尾指针共同决定 29 对于循环队列,下列叙述中正确的是 ( A)队、大指针是固定
10、不变的 ( B)队头指针定大于队尾指针 ( C)队头指针一定小于队尾指针 ( D)队头指针可以大于队尾指针,也可以小于队尾指针 30 下列叙述中正确的是 ( A)循环队列是队列的一种链式存储结构 ( B)循环队列是队列的一种顺序存储结构 ( C)循环队列是非线性结构 ( D)循环队列是一种逻辑结构 31 设循环队列的存储空间为 Q(1: 35),初始状态为 front=rear=35。现经过一系列入队与退队运算后, front=15, rear=15,则循环队列中的元素个数为 ( A) 15 ( B) 16 ( C) 20 ( D) 0或 35 32 在一个容量为 15的循环队列中,若头指针。
11、 front=6,尾指针 rear=9,则循环队列中的元素个数为 ( A) 2 ( B) 3 ( C) 4 ( D) 5 33 下列叙述中正确的是 ( A)栈是一种先进先出的线性表 ( B)队列是一种后进先出的线性表 ( C)栈与队列都是非线性结构 ( D)栈与队列都是线性结构 34 下列叙述中正确的是 ( A)栈是 “先进先出 ”的线性 表 ( B)队列是 “先进后出 ”的线性表 ( C)循环队列是非线性结构 ( D)有序线性表既可以采用顺序存储结构,也叮以采用链式存储结构 35 下列与队列结构有关联的是 ( A)函数的递归调用 ( B)数组元素的引用 ( C)多重循环的执行 ( D)先到先
12、服务的作业调度 36 下列叙述中正确的是 ( A)循环队列中的元素个数随队头指针与队尾指针的变化而动态变化 ( B)循环队列中的元素个数随队头指针的变化而动态变化 ( C)循环队列中的元素个数随队尾指针的变化而动态变化 ( D)循环队列 中的元素个数不会变化 37 下列关于线性链表的叙述中。正确的是 ( A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致 ( B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续 ( C)进行插入与删除时,小需要移动表中的元素 ( D)以上都小正确 38 下列叙述中正确的是 ( A)线性表链式存储结构的存储空间一般要少于顺序
13、存储结构 ( B)线性表链式存储结构与顺序存储结构的存储空间都是连续的 ( C)线性表链式存储结构的存储窄问可以是连续的,也可以是不连续的 ( D)以上都不正确 39 下列叙述中正确的是 ( A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的 ( B)线性表的链式存储结构所需要的存储空间般要多于顺序存储结构 ( C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构 ( D)以上都不正确 40 下列叙述中正确的是 ( A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的 ( B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 ( C)线性表的链式存储结
14、构所需要的存储空间一般要少于顺序存储结构 ( D)上述三种说法都小对 41 下列对于线性链表的描述中正确的是 ( A)存储空间不一定连续,且各元素的存储顺序是任意的 ( B)存储空间小一定连续,目前件元素一定存储在后件元素的前面 ( C)存储空间必须连续,且前件元素一定存储在后件元素的前面 ( D)存储空间必须连续,且各元素的存储顺序是任:意的 42 下列叙述中正确的是 ( A)顺序存储结构的存储,一定是连续的,链式存储结构的存储空间不一定是连续的 ( B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构 ( C)顺序存储结构能存储有序 表,链式存储结构不能存储有序表 ( D)链式存储
15、结构比顺序存储结构节省存储空间 国家二级 VF(数据结构与算法)机试模拟试卷 1答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。 2 【正确答案】 D 【试题解析】 所谓算法是指解题方案的准确而完整的描述。是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。算法不等于程序,也不等于计算方法。设计算法 时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。 3 【正确答案】 A 【试题解析】 算法的空间复杂度是指执行这个算法所需要的内存空间。这个内
16、存空间包括算法程序所占的空间,输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。 4 【正确答案】 D 【试题解析】 算法的时间复杂度,是指执行算法所需要的计算工作量。算法的工作量可以用算法在执行过程中所需基本运算的执行次数来度量。 5 【正确答案】 B 【试题解析】 算法的时间复杂度是指执行算法所需要的计算工作 量。算法的工作量用算法所执行的基本运算的次数来度量,而算法所执行的基本运算次数是问题规模的函数:算法的空间复杂度一般是指执行这个算法所需要的内存空间。算法的时间复杂度与空间复杂度并不相关。数据的逻辑结构就是数据元素之间的逻辑关系,它是从逻辑上描述数据元素之间的关系,是独
17、立于计算机的;数据的存储结构是研究数据元素和数据元素之问的关系如何在计算机中表示,它们并非一一对应。算法的执行效率不仅与问题的规模有关,还与数据的存储结构有关。 6 【正确答案】 D 【试题解析】 算法的复杂度主要包括时间复杂度和空间复杂度。算法的时间复杂度是指执行算法所需要的计算工作量,算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n),其中 n是问题的规模;算法的空间复杂度,一般是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。根
18、据各自的定义可知,算法的时间复杂度与空间复杂度并不相关。 7 【正确答案】 D 【试 题解析】 在对数据进行处理时,各数据元素在计算机中的存储关系,即为数据的存储结构。 8 【正确答案】 D 【试题解析】 数据的逻辑结构是指数据集合中各数据元素之间所固有的逻辑关系;数据的存储结构是在对数据进行处理时,各数据元素在计算机中的存储关系。数据的存储结构是指数据的逻辑结构在计算机中的表示,一种逻辑结构可以表示成多种存储结构;而采用不同的存储结构,其数据处理的效率是不同的。 9 【正确答案】 D 【试题解析】 数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。数据的逻辑结构在计 算机存储空间中的存放
19、形式称为数据的存储结构 (也称数据的物理结构 )。一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等。 10 【正确答案】 B 【试题解析】 在数据结构中,树这类的数据结构只有一个根结点,但它不是线性结构。 11 【正确答案】 C 【试题解析】 根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类:线性结构和非线性结构。循环队列、带链队列和带链栈都是线性结构,而二叉树是非线性结构。 12 【正确答案】 A 【试题解析】 线性表的链式存储结构称为线性链表。线性表链式存储结构的基本单位称为存储结点,每个存储结点包括数据域和指针域两
20、个组成部分。各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一结点的指针 HEAD称为头指针,当 HEAD=NULL时称为空表。栈、队列和双向链表是线性结构,树是一种简单的非线性结构。在树这种数据结构中,所有数据元素的关系具有明显的层次特征。二叉树是非线性结构。线性结构和非线性结构是从数据的逻辑结构角度来讲的,与该数据结构中有多少个元素没有关系,即使是空的二叉 树也是非线性结构。 13 【正确答案】 A 【试题解析】 线性表是最简单的、最常用的一种线性结构。所谓线性链表指的是采用链式存储结构的线性表。栈和队列其实是一种特殊的线性表。树是一种简单的非线性结构,二叉树是树的一种
21、。 14 【正确答案】 B 【试题解析】 栈是限定在一端进行插入和删除的线性表,允许进行插入和删除元素的一端称为栈顶,另一端称为栈底。栈是按照 “先进后出 ”的原则组织数据的。 15 【正确答案】 A 【试题解析】 栈是一种限定在一端进行插入与删除的线性表。在主函数调用 子函数时,要首先保存主函数当前的状态,然后转去执行子函数,把子函数的运行结果返回到主函数调用子函数时的位置,主函数再接着往下执行,这种过程符合栈的特点。所以一般采用栈式存储方式。 16 【正确答案】 B 【试题解析】 栈按照 “先进后出 ”(FILO)或 “后进先出 ”(LIFO)组织数据:队列是“先进先出 ”(FIFO)或
22、“后进后出 ”(LILO)的线性表。 17 【正确答案】 A 【试题解析】 栈是先进后出的线性表,栈顶的元素最先被删除,栈底的元素最后被删除。 18 【正确答案】 C 【试题解析】 栈是限定只能在表的一端进行插入和删除操作的线性表,必须按“后进先出 ”的规则操作元素。 19 【正确答案】 C 【试题解析】 在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈跟队列不同,元素只能在栈顶压入或弹出,栈底指针不变,栈中元素随栈顶指针的变化而动态变化,遵循后进先出的规则。 20 【正确答案】 B 【试题解析】 栈是按照 “先进后出 ”或 “后进先出 ”的原则组织数据的。所以出栈
23、顺序是 EDCBA54321。 21 【正确答案】 C 【试题解析】 栈是按照 “先进后出 ”或 “后进先出 ”的原则组织数据的。所以出栈顺序是 CBA321。 22 【正确答案】 B 【试题解析】 栈是限定在一端进行插入与删除的线性表。栈顶 (top):插入数据(即入栈 )的一端;栈底 (bottom):不能入栈也不能出栈的一端。栈存储数据的原则: “先进后出 ”或 “后进先出 ”。栈的特性是具有记忆作用。 23 【正确答案】 B 【试题解析】 栈是限定在一端进行插入与删除的线性表。在栈中,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。栈顶元素总 是最后被插入的元素,也是最
24、先被删除的元素:栈底元素总是最先被插入的元素,也是最后才能被删除的元素。即栈是按照 “后进先出 ”(LastInFirstOut,简称 LIFO)或 “先进后出 ”(FirstIn Last Out,简称 FILO)的原则组织数据的。因此,栈也称为 “后进先出表 ”或 “先进后出 ”表。 24 【正确答案】 D 【试题解析】 队列 (queue)是指允许在一端进行插入、而在另一端进行删除的线性表。允许插入的一端称为队尾;允许删除的一端称为队头。在队列这种数据结构中,最先插入的元素将最先能够被删 除;反之,最后插入的元素将最后才能被删除。因此,队列又称 “先进先出 ”或 “后进后出 ”的线性表。
25、 25 【正确答案】 D 【试题解析】 栈是先进后出的线性表,队列是先进先出的线性表,二者均为线性结构。 26 【正确答案】 D 【试题解析】 本题主要考查了栈、队列、循环队列的概念,栈是先进后出的线性表,队列是先进先出的线性表。根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。有序线性表既可以采用顺序存储结构,又可以采用链式存储结构。 27 【正确答案】 C 【试题解析】 栈是限定在一端进行插入与删除的线性表,在栈中,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。 28 【正确答案】 D 【试题解析】 循环队列中元素的个数
26、是由队头指针和队尾指针共同决定的,元素的动态变化也是通过队头指针和队尾指针来反映的。 29 【正确答案】 D 【试题解析】 所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列中,用队尾指针 real“指向队列中的队尾元素,用 队头指针 front指向队头元素的前一个位置。循环队列的主要操作是:入队运算和退队运算。每进行一次入队运算,队尾指针就进一。每进行一次退队运算,队头指针就进一。当 rear或 front等于队列的长度加 l时,就把 rear或 front值置为 1。所以在循环队列中,队头指针可以大于队尾指针,也可以小于队尾指针。
27、 30 【正确答案】 B 【试题解析】 本题主要考查循环队列的概念,循环队列作为队列的一种也应该是线性结构。队列是一种逻辑结构,而循环队列是一种顺序存储结构的队列。 31 【正确答案】 D 【 试题解析】 循环队列的队头指针和尾指针都等于 15,此循环队列中元素的个数有两种情况,第一种情况是队头指针和尾指针都是第一次到达 15,此时元素个数为 0;第二种情况是队头指针第一次到达 15,而尾指针第二次到达 15,此时元素个数为 35。 32 【正确答案】 B 【试题解析】 循环队列中, rear表示尾指针, front表示头指针,当有元素入队时, rear=rear+1,而元素出队的时候, fr
28、ont=front+1,当 rear值大于 front值时,队列中的元素个数为 rear front,当 rear的值小于 front时,列队中的元素个数为 rear front+m(m表示队列的容量 )。 33 【正确答案】 D 【试题解析】 栈是先进后出,队列是先进先出。栈和队列都是一种线性表,属于线性结构。 34 【正确答案】 D 【试题解析】 栈是 “先进后出 ”,队列 “是先进先出 ”。栈和队列都是一种线性表,属于线性结构。有序线性表既可以采用顺序存储结构,也可以采用链式存储结构。采用链式存储结构的线性表称之为线性链表。 35 【正确答案】 D 【试题解析】 队列中最先插入的元素将最
29、先被删除,最后插入的 元素将最后被删除。 36 【正确答案】 A 【试题解析】 所谓循环结构就是将队列存储空间的最后一个位置绕到第一个位置上,形成逻辑上的环状空间,循环使用。在循环队列中,用队尾指针 rear指向队列中的队尾元素,用队头指针 front指向队头元素的前一个位置,因此,队列中的元素数等于从队头指针 front指向的后一个位置与队尾指针 rear指向位置之间的元素数量。 37 【正确答案】 C 【试题解析】 线性表的链式存储结构称为线性链表。在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的 存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针
30、域来确定的。 38 【正确答案】 C 【试题解析】 线性表的存储分为顺序存储和链式存储。在顺序存储中,所有元素所占的存储空间是连续的。而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为指针域。所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。 39 【正确答案】 B 【试题解析】 线性表的存储分为顺序存储和链式存储 。在顺序存储中,所有元素所占的存储空间是连续的。而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序
31、号,称为指针域。所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。 40 【正确答案】 B 【试题解析】 线性表的存储分为顺序存储和链式存储。在顺序存储中,所有元素所占的存储空间是连续的,各数据元素在存储空间中是按逻辑顺序依次存放的。所以每个元素只存储其值就可以了,而在链式存储的方式中,将存储空间的每一个存储结 点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为指针域。所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。 41 【正确答案】 A 【试题解析】 一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。在线性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一个结点的指针 head称为头指针,当 head=NuLL(或 0)时称为空表。 42 【正确答案】 A 【试题解析】 顺序存储方式主要用于线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。而链式存储结构的存储空间不一定是连续的。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1