1、国家二级公共基础知识(数据结构与算法)模拟试卷 16及答案解析(总分:60.00,做题时间:90 分钟)一、选择题(总题数:30,分数:60.00)1.选择题下列各题 A、B、C、D 四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。(分数:2.00)_2.下列叙述中正确的是(分数:2.00)A.循环队列是队列的一种链式存储结构B.循环队列是队列的一种顺序存储结构C.循环队列是非线性结构D.循环队列是一种逻辑结构3.设循环队列的存储空间为 Q(1:35),初始状态为 front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元
2、素个数为(分数:2.00)A.15B.16C.20D.0或 354.在一个容量为 15的循环队列中,若头指针 front=6,尾指针 rear=9,则循环队列中的元素个数为(分数:2.00)A.2B.3C.4D.55.下列叙述中正确的是(分数:2.00)A.栈是一种先进先出的线性表B.队列是一种后进先出的线性表C.栈与队列都是非线性结构D.栈与队列都是线性结构6.下列叙述中正确的是(分数:2.00)A.栈是“先进先出”的线性表B.队列是“先进后出”的线性表C.循环队列是非线性结构D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构7.下列与队列结构有关联的是(分数:2.00)A.函数的
3、递归调用B.数组元素的引用C.多重循环的执行D.先到先服务的作业调度8.下列叙述中正确的是(分数:2.00)A.循环队列中的元素个数随队头指针与队尾指针的变化而动态变化B.循环队列中的元素个数随队头指针的变化而动态变化C.循环队列中的元素个数随队尾指针的变化而动态变化D.循环队列中的元素个数不会变化9.下列关于线性链表的叙述中,正确的是(分数:2.00)A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C.进行插入与删除时,不需要移动表中的元素D.以上都不正确10.下列叙述中正确的是(分数:2.00)A.
4、线性表链式存储结构的存储空间一般要少于顺序存储结构B.线性表链式存储结构与顺序存储结构的存储空间都是连续的C.线性表链式存储结构的存储空间可以是连续的,也可以是不连续的D.以上都不正确11.下列叙述中正确的是(分数:2.00)A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D.以上都不正确12.下列叙述中正确的是(分数:2.00)A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B.线性表的链式存储结构所需要的存储空间般要多于顺序存储结构C.线性
5、表的链式存储结构所需要的存储空间一般要少于顺序存储结构D.上述三种说法都不对13.下列对于线性链表的描述中正确的是(分数:2.00)A.存储空间不一定连续,且各元素的存储顺序是任意的B.存储空间不一定连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的14.下列叙述中正确的是(分数:2.00)A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储
6、结构节省存储空间15.下列链表中,其逻辑结构属于非线性结构的是(分数:2.00)A.二叉链表B.循环链表C.双向链表D.带链的栈16.下列叙述中正确的是(分数:2.00)A.有一个以上根结点的数据结构不一定是非线性结构B.只有一个根结点的数据结构不一定是线性结构C.循环链表是非线性结构D.双向链表是非线性结构17.某系统总体结构图如下图所示: (分数:2.00)A.7B.6C.3D.218.下列关于二叉树的叙述中,正确的是(分数:2.00)A.叶子结点总是比度为 2的结点少一个B.叶子结点总是比度为 2的结点多一个C.叶子结点数是度为 2的结点数的两倍D.度为 2的结点数是度为 1的结点数的两
7、倍19.某二叉树中有 n个度为 2的结点,则该二叉树中的叶子结点数为(分数:2.00)A.n+1B.n-1C.2nD.n220.某二叉树有 5个度为 2的结点,则该二叉树中的叶子结点数是(分数:2.00)A.10B.8C.6D.421.一棵二叉树共有 25个结点,其中 5个是叶子结点,则度为 l的结点数为(分数:2.00)A.16B.10C.6D.422.一棵二叉树中共有 80个叶子结点与 70个度为 1的结点,则该二叉树中的总结点数为(分数:2.00)A.219B.229C.230D.23123.一棵二叉树中共有 70个叶子结点与 80个度为 1的结点,则该二叉树中的总结点数为(分数:2.0
8、0)A.219B.221C.229D.23124.某二叉树共有 7个结点,其中叶子结点只有 1个,则该二叉树的深度为(假设根结点在第 1层)(分数:2.00)A.3B.4C.6D.725.冒泡排序在最坏情况下的比较次数是(分数:2.00)A.n(n+1)2B.nlog 2 nC.n(n-1)2D.n226.对长度为 10的线性表进行冒泡排序,最坏情况下需要比较的次数为(分数:2.00)A.9B.10C.45D.9027.对于长度为 n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是(分数:2.00)A.冒泡排序为 n2B.冒泡排序为 nC.快速排序为 nD.快速排序为 n(n-1
9、)228.对长度为 n的线性表作快速排序,在最坏情况下,比较次数为(分数:2.00)A.nB.n-1C.n(n-1)D.n(n-1)229.对长度为 n的线性表排序,在最坏情况下,比较次数不是 n(n-1)2 的排序方法是(分数:2.00)A.快速排序B.冒泡排序C.直接插入排序D.堆排序30.下列排序方法中,最坏情况下比较次数最少的是(分数:2.00)A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序国家二级公共基础知识(数据结构与算法)模拟试卷 16答案解析(总分:60.00,做题时间:90 分钟)一、选择题(总题数:30,分数:60.00)1.选择题下列各题 A、B、C、D 四个选项
10、中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。(分数:2.00)_解析:2.下列叙述中正确的是(分数:2.00)A.循环队列是队列的一种链式存储结构B.循环队列是队列的一种顺序存储结构 C.循环队列是非线性结构D.循环队列是一种逻辑结构解析:解析:本题主要考查循环队列的概念,循环队列作为队列的一种也应该是线性结构。队列是一种逻辑结构,而循环队列是一种顺序存储结构的队列。3.设循环队列的存储空间为 Q(1:35),初始状态为 front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为(分数:2.00)A.15B.16C.2
11、0D.0或 35 解析:解析:循环队列的队头指针和尾指针都等于 15,此循环队列中元素的个数有两种情况,第一种情况是队头指针和尾指针都是第一次到达 15,此时元素个数为 0;第二种情况是队头指针第一次到达 15,而尾指针第二次到达 15,此时元素个数为 35。4.在一个容量为 15的循环队列中,若头指针 front=6,尾指针 rear=9,则循环队列中的元素个数为(分数:2.00)A.2B.3 C.4D.5解析:解析:循环队列中,rear 表示尾指针,front 表示头指针,当有元素入队时,rear=rear+1,而元素出队的时候,front=front+1,当 rear值大于 front值
12、时,队列中的元素个数为 rear-front,当 rear的值小于 front时,列队中的元素个数为 rear-front+m(m表示队列的容量)。5.下列叙述中正确的是(分数:2.00)A.栈是一种先进先出的线性表B.队列是一种后进先出的线性表C.栈与队列都是非线性结构D.栈与队列都是线性结构 解析:解析:栈是先进后出,队列是先进先出。栈和队列都是一种线性表,属于线性结构。6.下列叙述中正确的是(分数:2.00)A.栈是“先进先出”的线性表B.队列是“先进后出”的线性表C.循环队列是非线性结构D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构 解析:解析:栈是“先进后出”,队列“是
13、先进先出”。栈和队列都是一种线性表,属于线性结构。有序线性表既可以采用顺序存储结构,也可以采用链式存储结构。采用链式存储结构的线性表称之为线性链表。7.下列与队列结构有关联的是(分数:2.00)A.函数的递归调用B.数组元素的引用C.多重循环的执行D.先到先服务的作业调度 解析:解析:队列中最先插入的元素将最先被删除,最后插入的元素将最后被删除。8.下列叙述中正确的是(分数:2.00)A.循环队列中的元素个数随队头指针与队尾指针的变化而动态变化 B.循环队列中的元素个数随队头指针的变化而动态变化C.循环队列中的元素个数随队尾指针的变化而动态变化D.循环队列中的元素个数不会变化解析:解析:所谓循
14、环结构就是将队列存储空间的最后一个位置绕到第一个位置上,形成逻辑上的环状空间,循环使用。在循环队列中,用队尾指针 rear指向队列中的队尾元素,用队头指针仔 front指向队头元素的前一个位置,因此,队列中的元素数等于从队头指针 front指向的后一个位置与队尾指针 rear指向位置之间的元素数量。9.下列关于线性链表的叙述中,正确的是(分数:2.00)A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C.进行插入与删除时,不需要移动表中的元素 D.以上都不正确解析:解析:线性表的链式存储结构称为线性链表
15、。在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。10.下列叙述中正确的是(分数:2.00)A.线性表链式存储结构的存储空间一般要少于顺序存储结构B.线性表链式存储结构与顺序存储结构的存储空间都是连续的C.线性表链式存储结构的存储空间可以是连续的,也可以是不连续的 D.以上都不正确解析:解析:线性表的存储分为顺序存储和链式存储。在顺序存储中,所有元素所占的存储空间是连续的。而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域:另一部分用于存储下一
16、个元素的存储序号,称为指针域。所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。11.下列叙述中正确的是(分数:2.00)A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D.以上都不正确解析:解析:线性表的存储分为顺序存储和链式存储。在顺序存储中,所有元素所占的存储空间是连续的。而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为指针域。所以线性表的链式存储方
17、式比顺序存储方式的存储空间要大一些。12.下列叙述中正确的是(分数:2.00)A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B.线性表的链式存储结构所需要的存储空间般要多于顺序存储结构 C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D.上述三种说法都不对解析:解析:线性表的存储分为顺序存储和链式存储。在顺序存储中,所有元素所占的存储空间是连续的,各数据元素在存储空间中是按逻辑顺序依次存放的。所以每个元素只存储其值就可以了,而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为
18、指针域。所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。13.下列对于线性链表的描述中正确的是(分数:2.00)A.存储空间不一定连续,且各元素的存储顺序是任意的 B.存储空间不一定连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的解析:解析:一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。在线性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一个结点的指针 head称为头指针,当 head=
19、NULL(或 0)时称为空表。14.下列叙述中正确的是(分数:2.00)A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间解析:解析:顺序存储方式主要用于线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。而链式存储结构的存储空间不一定是连续的。15.下列链表中,其逻辑结构属于非线性结构的是(分数:2.00)A.二叉链表 B.循环链表C.双向链表D.带链的
20、栈解析:解析:二叉链表作为树的存储结构。链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点。16.下列叙述中正确的是(分数:2.00)A.有一个以上根结点的数据结构不一定是非线性结构B.只有一个根结点的数据结构不一定是线性结构 C.循环链表是非线性结构D.双向链表是非线性结构解析:解析:在数据结构中,树这类的的数据结构只有一个根结点,但它不是线性结构。17.某系统总体结构图如下图所示: (分数:2.00)A.7B.6C.3 D.2解析:解析:这个系统总体结构图是一棵树结构,在树结构中,根结点在第 1层,同一层上所有子结点都在下一层,由系统总体结构图可知,这棵树共 3层。在树结构
21、中,树的最大层次称为树的深度。所以这棵树的深度为 3。18.下列关于二叉树的叙述中,正确的是(分数:2.00)A.叶子结点总是比度为 2的结点少一个B.叶子结点总是比度为 2的结点多一个 C.叶子结点数是度为 2的结点数的两倍D.度为 2的结点数是度为 1的结点数的两倍解析:解析:由二叉树的性质可以知道在二叉树中叶子结点总是比度为 2的结点多一个。19.某二叉树中有 n个度为 2的结点,则该二叉树中的叶子结点数为(分数:2.00)A.n+1 B.n-1C.2nD.n2解析:解析:在任意一棵二叉树中,度为 0的结点(即叶子结点)总是比度为 2的结点多一个。所以该二叉树的叶子结点数等于 n+1。2
22、0.某二叉树有 5个度为 2的结点,则该二叉树中的叶子结点数是(分数:2.00)A.10B.8C.6 D.4解析:解析:根据二叉树的性质,在任意二叉树中,度为 0的结点(即叶子结点)总是比度为 2的结点多一个。21.一棵二叉树共有 25个结点,其中 5个是叶子结点,则度为 l的结点数为(分数:2.00)A.16 B.10C.6D.4解析:解析:根据二叉树的性质,在任意二叉树中,度为 0的结点(即叶子结点)总是比度为 2的结点多一个,故此度为 1的结点个数=总结点数一叶子节点数度为 2的节点数=255-4=16。22.一棵二叉树中共有 80个叶子结点与 70个度为 1的结点,则该二叉树中的总结点
23、数为(分数:2.00)A.219B.229 C.230D.231解析:解析:根据二叉树的性质,在任意二叉树中,度为 0的结点(即叶子结点)总是比度为 2的结点多一个,故总结点数=叶子节点数+度为 2的节点数+度为 1的节点数=80+79+70=229。23.一棵二叉树中共有 70个叶子结点与 80个度为 1的结点,则该二叉树中的总结点数为(分数:2.00)A.219 B.221C.229D.231解析:解析:在二叉树中,叶子结点个数为 n 0 ,则度为 2结点数 n 2 =n 0 -1。本题中叶子结点的个数为 70,所以度为 2的结点个数为 69,因而总结点数=叶子结点数+度为 1的结点数+度
24、为 2的结点数=70+80+69=219。24.某二叉树共有 7个结点,其中叶子结点只有 1个,则该二叉树的深度为(假设根结点在第 1层)(分数:2.00)A.3B.4C.6D.7 解析:解析:根据二叉树的性质,度为 0的结点(即叶子结点)总是比度为 2的结点多一个。题目中的二叉树的叶子结点为 1,因此度为 2的结点的数目为 0,故该二叉树为 7层,每层只有一个结点。25.冒泡排序在最坏情况下的比较次数是(分数:2.00)A.n(n+1)2B.nlog 2 nC.n(n-1)2 D.n2解析:解析:对 n个结点的线性表采用冒泡排序,在最坏情况下,冒泡排序需要经过 n2 遍的从前往后的扫描和 n
25、2 遍的从后往前的扫描,需要的比较次数为 n(n-1)2。26.对长度为 10的线性表进行冒泡排序,最坏情况下需要比较的次数为(分数:2.00)A.9B.10C.45 D.90解析:解析:线性表的长度为 n,最坏情况下冒泡排序需要比较的次数为 n(n-1)2。27.对于长度为 n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是(分数:2.00)A.冒泡排序为 n2B.冒泡排序为 nC.快速排序为 nD.快速排序为 n(n-1)2 解析:解析:假设线性表的长度为 n,则在最坏情况下,冒泡排序需要经过 n2 遍的从前往后的扫描和n2 遍的从后往前的扫描,需要的比较次数为 n(n-1)
26、2。快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此,称为快速排序法。28.对长度为 n的线性表作快速排序,在最坏情况下,比较次数为(分数:2.00)A.nB.n-1C.n(n-1)D.n(n-1)2 解析:解析:假设线性表的长度为 n,则在最坏情况下,冒泡排序需要经过 n2 遍的从前往后的扫描和n2 遍的从后往前的扫描,需要的比较次数为 n(n-1)2。快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此,称为快速排序法。29.对长度为 n的线性表排序,在最坏情况下,比较次数不是 n(n-1)2 的排序方法是(分数:2.00)A.快速排序B.冒泡排序C.直接插入排序D.堆排序 解析:解析:各种排序方法中最坏情况下需要比较的次数分别为:冒泡排序 n(n-1)2、快速排序 n(n-1)2、简单插入排序 n(n-1)2、希尔排序 0(n 15 )、简单选择排序 n(n-1)2、堆排序 O(nlog 2 n)。30.下列排序方法中,最坏情况下比较次数最少的是(分数:2.00)A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序 解析:解析:冒泡排序、简单选择排序和直接插入排序法在最坏的情况下比较次数为:n(n-1)2。而堆排序法在最坏的情况下需要比较的次数为 O(nlog 2 n)。其中堆排序的比较次数最少。