绪论 单元测试
1、判断题:
本课程是面向非计算机专业学生开放,要求学生了解计算机解决现实问题的方式和策略,学习数据结构的基本知识,着重培养学生的计算思维能力
选项:
A:错
B:对
答案: 【对】
第一章 单元测试
1、单选题:
以下那个数据结构是适用于”数据必须以相反的顺序存储然后检索” ?
选项:
A:Stack
B:Queue
C:List
D: Liink List
答案: 【Stack】
2、判断题:
判断下列说法是否正确:数据结构中数据元素之间的逻辑关系称为数据的逻辑结构。
选项:
A:错
B:对
答案: 【对】
3、单选题:
关系数据模型的基本数据结构是:
选项:
A:树
B:图
C:索引
D:关系
答案: 【图】
4、单选题:
数据挖掘算法主要有聚类算法、关联算法、决策树算法和回归分析等,各种算法用于解决不同的实际问题,某分行拟通过对县域机构数量与存款市场竞争力的相关性分析,进 而建立两者之间的函数表达式,用新思维拓展县域市场,提升县域存款的市场竞争力。则可以采用的是( )
选项:
A:回归分析
B:聚类分析
C:决策树算法
D:关联算法
答案: 【回归分析】
5、判断题:
算法一般用类C语言之类的伪码来描述,如果用C语言等高级语言来描述,则算法实际上就是程序了。
选项:
A:对
B:错
答案: 【错】
6、单选题:
以下数据结构中哪一个是非线性结构?
选项:
A:线性表
B:队列
C:
二叉树
D:栈
答案: 【
二叉树
】
7、单选题:
树最适合用来表示
选项:
A:
元素之间具有分支层次关系的数据
B:有序数据元素
C:元素之间无联系的数据
D:无序数据元素
答案: 【
元素之间具有分支层次关系的数据
】
8、单选题:
在存储数据时,通常不仅要存储各数据元素的值,而且还要存储
选项:
A:数据的处理方法
B:数据的存储方法
C:数据元素的类型
D:
数据元素之间的关系
答案: 【
数据元素之间的关系
】
9、单选题:
计算机算法指的是:
选项:
A:排序方法
B:
解决问题的有限运算序列
C:调度方法
D:计算方法
答案: 【
解决问题的有限运算序列
】
10、单选题:
研究数据结构就是研究
选项:
A:
数据的逻辑结构、存储结构及其基本操作
B:数据的逻辑结构和存储结构
C:数据的存储结构
D:数据的逻辑结构
答案: 【
数据的逻辑结构、存储结构及其基本操作
】
第二章 单元测试
1、单选题:
下面关于线性表的叙述错误的是( )。
选项:
A:线性表采用链式存储不必占用一片连续的存储空间
B:线性表采用顺序存储便于插入和删除操作的实现
C:线性表采用顺序存储必须占用一片连续的存储空间
D:线性表采用链式存储便于插入和删除操作的实现
答案: 【线性表采用顺序存储便于插入和删除操作的实现】
2、单选题:
链表不具备的特点是
选项:
A:插入删除不需要移动元素
B:可随机访问任一结点
C:不必事先估计存储空间
D:所需空间与其长度成正比
答案: 【可随机访问任一结点】
3、单选题:
线性表是具有n个( )的有限序列
选项:
A:数据项
B:数据元素
C:字符
D:表元素
答案: 【数据元素】
4、单选题:
在一个长度为n的顺序表中,在第i个元素之前插入一个新元素时,需向后移动( )个元素。
选项:
A:n-i+1
B:n-i-1
C:i
D:n-i
答案: 【n-i+1】
5、单选题:
对线性表进行二分查找时,要求线性表必须
选项:
A:以链接方式存储,且结点按关键字有序排序
B:以顺序方式存储
C:以链接方式存储
D:以顺序方式存储,且结点按关键字有序排序
答案: 【以顺序方式存储,且结点按关键字有序排序】
6、单选题:
下述哪一条是顺序存储结构的优点?
选项:
A:可方便地用于各种逻辑结构的存储表示
B:插入运算方便
C:存储密度大
D:删除运算方便
答案: 【存储密度大】
7、单选题:
若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( )存储方式最节省时间。
选项:
A:单循环链表
B:顺序表
C:双链表
D:带头结点的双循环链表
答案: 【顺序表】
8、单选题:
静态链表中指针表示的是( )
选项:
A:内存地址
B:数组下标
C:下一元素地址
D:左、右孩子地址
答案: 【下一元素地址】
9、单选题:
指针的全部作用就是( )
选项:
A:存储某数据
B:指向某结点
C:指向某变量
D:指向某常量
答案: 【指向某结点】
10、单选题:
单链表的一个存储结点包含( )
选项:
A:数据域或指针域
B:指针域或链域
C:指针域和链域
D:数据域和链域
答案: 【数据域和链域】
第三章 单元测试
1、单选题:
设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为
选项:
A:2,3,6,5,8
B:3,2,5,8,6
C:3,2,5,6,8
D:2,3,5,8,6
答案:
2、单选题:
排序方法中,从未排序序列中依次取出元素与已排序序列中的元素进行比较,将其放入已排序序列的正确位置上的方法称为
选项:
A:插入排序
B:起泡排序
C:选择排序
D:希尔排序
答案:
3、单选题:
快速排序方法在( )情况下最不利于发挥其长处
选项:
A:要排序的数据量太大
B:要排序的数据个数为奇数
C:要排序的数据已基本有序
D:要排序的数据中含有多个相同值
答案:
4、单选题:
对n个不同的数据进行冒泡排序,实现从小到大排序,在下列哪种情况下比较的次数最多 ( )
选项:
A:从大到小排列好的
B:从小到大排列好的
C:数据无序
D:数据基本有序
答案:
5、单选题:
在所有的排序方法中,关键字比较的次数与记录的初始排列次序无关的是
选项:
A:直接选择排序
B:希尔排序
C:冒泡排序
D:直接插入排序
答案:
6、单选题:
关于排序算法,下列说法错误的是:
选项:
A:归并排序的最坏时间复杂度是 O(n*log(n))
B:堆排序的平均时间复杂度是 O(n*log(n))
C:插入排序的最坏时间复杂度是 O(n2)
D:快速排序的最坏时间复杂度是 O(n*log(n))
答案:
7、单选题:
下列排序算法中存储消耗最大的是?()
选项:
A:插入排序
B:堆排序
C:归并排序
D:快速排序
答案:
8、单选题:
以下哪种排序算法在最坏情况下的时间复杂度最小?
选项:
A:归并排序
B:冒泡排序
C:选择排序
D:插入排序
答案:
9、单选题:
待排序元素规模较小时,宜选取哪种排序算法效率最高()
选项:
A:希尔排序
B:堆排序
C:归并排序
D:冒泡排序
答案:
10、单选题:
若用冒泡排序对关键字序列{10,8,6,4,2},进行从小到大的排序,所需进行的关键字比较总次数是
选项:
A:25
B:10
C:15
D:20
答案:
第四章 单元测试
1、单选题:
一个栈的进栈序列是a,b,c,d,e,则栈的不可能的输出序列是
选项:
A:dceab
B:decba
C:abcde
D:edcba
答案:
2、单选题:
设计一个判别表达式中左、右括号是否配对出现的算法,采用( )数据结构最佳
选项:
A:栈
B:线性表的链式存储结构
C:队列
D:线性表的顺序存储结构
答案:
3、单选题:
和顺序栈相比,链栈有一个比较明显的优势是
选项:
A:插入操作更容易实现
B:通常不会出现栈空的情况
C:删除操作更容易实现
D:通常不会出现栈满的情况
答案:
4、单选题:
栈的插入和删除操作在
选项:
A:任意位置
B:栈底
C:指定位置
D:栈顶
答案:
5、单选题:
若以S和X分别表示进栈和退栈操作,则对初始状态为空的栈可以进行的栈操作系列合法的是
选项:
A:SXSXXSSX
B:SXSSXXXX
C:SXXSXSSX
D:SSSXXSXX
答案:
6、单选题:
对于栈操作数据的原则是( )
选项:
A:后进先出
B:先进先出
C:后进后出
D:不分顺序
答案:
7、单选题:
若一个栈的输入序列为1,2,3,…,n,输出序列的第一个元素是i,则第j个输出元素是
选项:
A:j-i+1
B:i-j-1
C:i-j
D:不确定的
答案:
8、单选题:
一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是
选项:
A:1 5 4 3 2
B:5 4 1 3 2
C:2 3 4 1 5
D:2 3 1 4 5
答案:
9、单选题:
输入序列为ABC,可以变为CBA时,经过的栈操作为
选项:
A:push,push,pop,pop,push,pop
B:push,pop,push,pop,push,pop
C:push,push,push,pop,pop,pop
D:push,pop,push,push,pop,pop
答案:
10、多选题:
栈在( )中应用
选项:
A:表达式求值
B:其他都是
C:递归调用
D:子程序调用
答案:
第五章 单元测试
1、单选题:
将递归算法转换成对应的非递归算法时,通常需要使用( )来保存中间结果
选项:
A:栈
B:队列
C:树
D:链表
答案:
2、单选题:
一个对象如果( )由它自身来定义(或描述),则称其为递归。
选项:
A:不能
B:部分的
C:完全
D:全部的
答案:
3、单选题:
下面哪种情况不能用递归来实现
选项:
A:直接插入排序
B:汉诺塔
C:阶乘函数
D:八皇后
答案:
4、单选题:
一个递归函数能够正确运行的必要条件是
选项:
A:有分支结构
B:有递归出口
C:有输入
D:有循环结构
答案:
5、单选题:
在递归函数的递归调用过程中问题的规模是
选项:
A:逐渐变大的
B:有时大有时小
C:逐渐变小的
D:不变的
答案:
6、单选题:
一个递归算法必须包括
选项:
A:迭代部分
B:终止条件和递归部分
C:终止条件和迭代部分
D:递归部分
答案:
7、单选题:
在将一个函数的实现从递归实现改为非递归实现时,一般需要用到下列哪个数据结构?
选项:
A:队列
B:栈
C:二叉树
D:双向链表
答案:
8、单选题:
若实现一个未加入任何优化的递归版本的斐波那契序列实现,该递归版本实现的时间复杂度和空间复杂度是怎样的?(不考虑整数溢出和机器的内存限制)
选项:
A:时间复杂度O(2^n), 空间复杂度O(n)
B:时间复杂度O(n), 空间复杂度O(n)
C:时间复杂度O(2^n), 空间复杂度O(2^n)
D:时间复杂度O(n),空间复杂度O(2^n)
答案:
9、单选题:
某递归算法的递归关系式为T( n ) = 2*T(n/2) + O( n ),那么它所对应的时间复杂度为
选项:
A:O(n)
B:O(log n)
C:O(n^2)
D:O(n*log n)
答案:
10、单选题:
采用递归方式对顺序表进行快速排序。下列关于递归次数的叙述中,正确的是()
选项:
A:递归次数与初始数据的排列次序无关
B:递归次数与每次划分后得到的分区的处理顺序无关
C:每次划分后,先处理较短的分区可以减少递归次数
D:每次划分后,先处理较长的分区可以减少递归次数
答案:
第六章 单元测试
1、单选题:
队列是一种( )的线性表
选项:
A:先进后出
B:先进先出
C:只能插入
D:只能删除
答案:
2、单选题:
对于循环队列
选项:
A:无法判断队列是否为空
B:队列不可能满
C:无法判断队列是否为满
D:其他说法都不对
答案:
3、单选题:
一个队列的入队序列是1,2,3,4,则队列的输出序列是
选项:
A:1,2,3,4
B:1,4,3,2
C:3,2,4,1
D:4,3,2,1
答案:
4、单选题:
允许对队列进行的操作有
选项:
A:删除队头元素
B:取出最近进队的元素
C:对队列中的元素排序
D:在队头元素之前插入元素
答案:
5、单选题:
队列的“先进先出”特性是指
选项:
A:每当有删除操作时,总是要先做一次插入操作
B:当同时进行插入、删除操作时,总是插入操作优先
C:最早插入队列中的元素总是最后被删除
D:每次从队列中删除的总是最早插入的元素
答案:
6、单选题:
队列的结构属于
选项:
A:限制存取点的线性结构
B:限制存取点的非线性结构
C:链式存储的非线性结构
D:顺序存储的线性结构
答案:
7、单选题:
用链接方式存储的队列,在进行删除运算时
选项:
A:头、尾指针可能都要修改
B:仅修改尾指针
C:头、尾指针都要修改
D:仅修改头指针
答案:
8、单选题:
循环队列的队满条件为
选项:
A:(sq.rear+1)%mazsize ==(sq.front+1)%maxsize;
B:sq.rear ==sq.front
C:sq.(rear+1)%maxsize ==sq.front
D:(sq.rear+1%maxsize ==sq.front+1
答案:
9、单选题:
若以1234作为双端队列的输入序列,则既不能由输入受限的双端队列得到,也不能由输出受限的双端队列得到的输出序列是
选项:
A:4213
B:4231
C:1234
D:4132
答案:
10、单选题:
循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素数是
选项:
A:rear-front-1
B:rear-front
C:rear-front+1
D: (rear-front+m)%m
答案:
第七章 单元测试
1、单选题:
在二叉树的第i层上至多有( )结点
选项:
A:
B:
C:
D:
答案:
2、单选题:
设某哈夫曼树中有199个结点,则该哈夫曼树中有( )个叶子结点
选项:
A:101
B:102
C:
100
D: 99
答案:
3、单选题:
下述二叉树中,( )满足性质:从任一结点出发到根的路径上所经过的结点序列按其关键字有序
选项:
A:堆
B:哈夫曼树
C:AVL树
D:二叉排序树
答案:
4、单选题:
下列陈述中正确的是( )
选项:
A:二叉树中结点只有一个孩子时无左右之分
B:二叉树中必有度为2的结点
C:二叉树是度为2的有序树
D:二叉树中最多只有两棵子树,并且有左右之分
答案:
5、单选题:
深度为5的二叉树至多有 个结点
选项:
A:32
B:10
C:31
D:16
答案:
6、多选题:
如果初始时B-树为空树,通过逐个向3阶B-树中插入新结点(8,28,40,80,50,90,85,150,120,200),以下说法正确的是
选项:
A:删除200时,需要将150放入其双亲结点中
B:树中插入80时,结点需要分裂
C:树中插入85时,结点需要分裂
D:删除90时,需要将150放入其双亲结点中
答案:
7、多选题:
在下列表述中,()是错误的
选项:
A:含有一个或多个空格字符的串称为空串
B:平衡二叉树的左右子树的结点数之差的绝对值不超过1
C:选择排序算法是不稳定的
D:对n(n>0)个顶点的网,求出权最小的n-1条边便可构成其最小生成树
答案:
8、多选题:
以下不是平衡二叉查找树的是
选项:
A:AVL树
B:红黑树
C: B+/B-树
D:哈夫曼树
答案:
9、单选题:
数据库索引经常使用B+树。以下关于B+树的描述,错误的是哪一项?
选项:
A:B+树的插入、删除可以保证其平衡性
B:B+树空间复杂度低于B树
C:与二叉树相比,B+树更利于降低高度
D: B+树能够支持顺序查找
答案:
10、单选题:
二叉树是每个结点最多有两个子树的树结构,假设一棵二叉树的高度为m,所有结点的度为0,或为2,则关于此树拥有的最少节点个数,下列选项正确的是
选项:
A: 2m-1
B:m+1
C:2m+1
D:2m-2
答案:
第八章 单元测试
1、单选题:
二叉排序树中左子树上所有结点的值均( )根结点的值。
选项:
A:=
B: !=
C:>
D: <
答案:
2、单选题:
下列描述中不符合二叉排序树特点的是
选项:
A:关键字插入的顺序影响二叉排序树的形态
B:左子树中所有结点的关键字小于根结点的关键字
C:根结点的关键字大于左、右子树中所有结点的关键字
D:右子树中所有结点的关键字大于根节点的关键字
答案:
3、单选题:
一棵二叉排序树是由关键字集合{18,43,27,44,36,39}构建的,其中序遍历序列是
选项:
A:18,27,36,39,43,44
B:18,43,27,44,36,39
C:44,43,39,36,27,18
D:树形未定,无法确定
答案:
4、单选题:
二叉查找树的查找效率与二叉树的( )有关
选项:
A:高度
B:结点的位置
C:结点的多少
D:树型
答案:
5、单选题:
二叉查找树在( )时其查找效率最低
选项:
A:呈单枝树
B:完全二叉树
C:结点太复杂
D:结点太多
答案:
6、单选题:
一棵二叉树的前序遍历序列为ABCDEFG,它的中序遍历序列可能是
选项:
A:ABCDEFG
B:ADCFEG
C:CABDEFG
D:DACEFBG
答案:
7、单选题:
已知某二叉树的后序遍历序列是dabec, 中序遍历序列是debac , 它的前序遍历是
选项:
A:acbed
B:decab
C:cedba
D:deabc
答案:
8、单选题:
将{ 32, 2, 15, 65, 28, 10 }依次插入初始为空的二叉排序树。则该树的前序遍历结果是
选项:
A:10, 28, 15, 2, 65, 32
B:32, 2, 15, 10, 28, 65
C:32, 2, 10, 15, 28, 6
D:2, 10, 15, 28, 32, 65
答案:
9、单选题:
下列叙述正确的是
选项:
A:虽然给出关键字序列的顺序不一样,但依次生成的二叉排序树却是一样的
B:在任意一棵非空二叉排序树,删除某结点后又将其插入,则所得二叉排序树与删除前原二叉排序树相同
C:在二叉排序树中插入一个新结点,总是插入到最下层,作为新的叶子结点
D:二叉树中除叶结点外, 任一结点X,其左子树根结点的值小于该结点(X)的值;其右子树根结点的值≥该结点(X)的值,则此二叉树一定是二叉排序树
答案:
10、单选题:
二叉树的先序遍历和中序遍历如下: 先序遍历:EFHIGJK;中序遍历: HFIEJKG 。该二叉树根的右子树的根是
选项:
A:H
B:G
C:E
D:F
答案:
11、单选题:
下面关于m阶B-树说法正确的是( )①每个结点至少有两棵非空子树②树中每个结点至多有m-1个关键字③所有叶子在同一层上④当插入一个数据项引起B-树结点分裂后,树长高一层
选项:
A:③
B:②③④
C:①②③
D:②③
答案:
第九章 单元测试
1、单选题:
普里姆算法是用来解决
选项:
A:拓扑结构
B:关键路径
C:最短路径
D:最小生成树
答案:
2、单选题:
设某有向图中有n个顶点,则该有向图对应的邻接表中有( )个表头结点
选项:
A: n+1
B:
n
C:n-1
D: 2n-1
答案:
3、单选题:
设某无向图中有n个顶点e条边,则该无向图中所有顶点的入度之和为
选项:
A:e
B:n
C:2e
D:2n
答案:
4、单选题:
具有6个顶点的无向图至少应该有( )条边才能确保是一个连通图
选项:
A:6
B:7
C:8
D:5
答案:
5、单选题:
对于一个具有n个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小为
选项:
A:n ×n
B:n×(n+1)
C:(n-1)× (n-1)
D:(n-1)×n
答案:
6、单选题:
在对图进行深度优先搜索时,一般需要用到下列哪个数据结构?
选项:
A:队列
B:单向链表
C:二叉树
D:栈
答案:
7、单选题:
下列关于最小生成树的说法中,正确的是( )。(1)最小生成树的代价唯一(2)权值最小的边一定会出现在所有的最小生成树中(3)用Prim算法从不同顶点开始得到的最小生成树的形态一定相同(4) Prim算法和Kruskal算法得到的最小生成树的形态总不相同
选项:
A:仅(2) (4)
B:仅(1)
C:仅(2)
D:仅(1) (3)
答案:
8、判断题:
求图的最小生成树有两种算法,Kruskal算法适合于求稀疏图的最小生成树
选项:
A:错
B:对
答案:
9、单选题:
6个顶点的连通图的最小生成树,其边数为()
选项:
A:6
B:4
C:5
D:7
答案:
10、单选题:
设完全无向图中有n个顶点,则该完全无向图中有多少条边
选项:
A:(n-1)/2
B:n(n-1)
C:n(n-1)/2
D:n(n+1)/2
答案:
第十章 单元测试
1、单选题:
在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的
选项:
A:1/2
B:2倍
C:1倍
D:4倍
答案:
2、单选题:
下列哪一种图的邻接矩阵是对称矩阵?
选项:
A:无向图
B:AOV网
C:有向图
D:AOE网
答案:
3、单选题:
设某强连通图中有n个顶点,则该强连通图中至少有( )条边
选项:
A:n+1
B:n(n+1)
C:n
D:n(n-1)
答案:
4、单选题:
求解最短路径的Floyd算法的时间复杂度为
选项:
A:O(n*n)
B:O(n+c)
C:O(n)
D:O(n*n*n)
答案:
5、单选题:
图中有关路径的定义是
选项:
A:由不同边所形成的序列
B:由不同顶点所形成的序列
C:其他定义都不是
D:由顶点和相邻顶点序偶构成的边所形成的序列
答案:
6、单选题:
下面是求连通网的最小生成树的prim算法:集合VT,ET分别放顶点和边,初始为
选项:
A:VT,ET为空
B:VT为网中任意一点,ET为空
C:VT为所有顶点,ET为空
D:VT为空,ET为网中所有边
答案:
7、单选题:
下面不正确的是( )
(1) .求从指定源点到其余各顶点的迪杰斯特拉(Dijkstra)最短路径算法中弧上权不能为负的原因是在实际应用中无意义;(2).利用Dijkstra求每一对不同顶点之间的最短路径的算法时间是O(n3 ) ;(图用邻接矩阵表示)(3). Floyd求每对不同顶点对的算法中允许弧上的权为负,但不能有权和为负的回路
选项:
A:(1),(3)
B:(1),(2),(3)
C:(2),(3)
D:(1)
答案:
8、单选题:
若要求在找到从S到其他顶点最短路的同时,还给出不同的最短路的条数,我们可以将Dijkstra算法略作修改,增加一个count[]数组:count[V]记录S到顶点V的最短路径有多少条。则count[V]应该被初始化为:
选项:
A:count[S]=0;对于其他顶点V则令count[V]=1
B:count[S]=1;对于其他顶点V则令count[V]=0
C:对所有顶点都有count[V]=1
D:对所有顶点都有count[V]=0
答案:
9、单选题:
数据结构中Dijkstra算法用来解决哪个问题?
选项:
A:字符串匹配
B:关键路径
C:拓扑排序
D:最短路径
答案:
10、单选题:
使用迪杰斯特拉(Dijkstra)算法求下图中从顶点1到其他各顶点的最短路径,依次得到的各最短路径的目标顶点是:
选项:
A:5, 2, 6, 3, 4
B:5, 2, 4, 3, 6
C:5, 2, 3, 4, 6
D:5, 2, 3, 6, 4
答案:
请先
!