绪论 单元测试
1、单选题:
( )在其著作《计算机程序设计艺术》中,开创了数据结构的最初体系。( )
选项:
A:理查德·卡普
B:尼古拉斯·沃斯
C:史蒂芬·古克
D:唐纳德·克努特
答案: 【唐纳德·克努特】
2、单选题:
( )提出了著名的公式程序=算法+数据结构。( )
选项:
A:唐纳德·克努特
B:理查德·卡普
C:史蒂芬·古克
D:尼古拉斯·沃斯
答案: 【尼古拉斯·沃斯】
3、单选题:
数据结构课程不是( )课程的先修课程。
选项:
A:操作系统
B:计算机组成原理
C:数据库原理
D:高级语言程序设计
答案: 【高级语言程序设计】
4、单选题:
下面哪个不是常见的数据结构。( )
选项:
A:线性方程组
B:树
C:线性表
D:栈
答案: 【线性方程组】
5、单选题:
下面说法错误的是( )。
选项:
A:程序是为处理计算机问题编制的一组指令集
B:我国高校从20世纪50年代就开设了数据结构这一课程
C:通过数据结构课程,能够掌握数据结构的逻辑结构、存储结构及实现算法
D:精心选择的数据结构能够带来更高的计算速度和存储效率
答案: 【我国高校从20世纪50年代就开设了数据结构这一课程
】
第一章 单元测试
1、单选题:
( )是组成数据具有独立含义不可分割的最小单位。( )
选项:
A:数据变量
B:数据项
C:数据元素
D:数据对象
答案: 【数据项
】
2、单选题:
数据逻辑结构中非线性结构包括( )。
选项:
A:图形结构和堆栈结构
B:顺序结构和链式结构
C:树形结构和图形结构
D:树形结构和队列结构
答案: 【树形结构和图形结构
】
3、单选题:
设某数据结构的二元组形式表示为A=(D,R),D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>},则数据结构A是( )。
选项:
A:物理结构
B:线性结构
C:树形结构
D:图形结构
答案: 【树形结构】
4、单选题:
数据结构的主要研究内容包括数据的( )以及数据的运算和操作。
选项:
A:抽象结构、物理结构
B:离散结构、抽象结构
C:逻辑结构、抽象结构
D:逻辑结构、物理结构
答案: 【逻辑结构、物理结构】
5、单选题:
数据结构被形象化的定义为一个二元组Group=(D,S),其中D为数据元素的有限集,S为( )的有限集。
选项:
A:结构
B:运算
C:关系
D:操作
答案: 【关系】
6、单选题:
线性结构中的数据元素具有( )关系。
选项:
A:多对多关系
B:一对一关系
C:一对多关系
D:多对一关系
答案: 【一对一关系】
7、单选题:
对一个算法的评价,不包括如下( )方面的内容。
选项:
A:健壮性和可读性
B:并行性
C:时空复杂度
D:正确性
答案: 【并行性】
8、单选题:
下列时间复杂度中最好的是( )。
选项:
A:O(n)
B:O(2^n)
C:O(n^2)
D:O(log2n)
答案: 【O(log2n)
】
9、单选题:
以下算法的时间复杂度是( )。 i=1; while(i<=n) i=i*3;
选项:
A:O(n)
B:O(n^3)
C:O(log2n)
D:O(log3n)
答案: 【O(log3n)】
10、单选题:
以下算法:s=0;for(i=0;i<n;i++)
for(j=0;j<n;j++)s=s+a[i][j];printf(“%dn”,sum);的时间复杂度为( )
选项:
A:O(n)
B:O(n^3)
C:O(log2n)
D:O(n^2)
答案: 【O(n^2)】
第二章 单元测试
1、单选题:
下面关于线性表的叙述中,错误的是哪一个?( )
选项:
A:线性表采用链接存储,便于插入和删除操作
B:线性表采用顺序存储,便于插入和删除操作
C:线性表采用链接存储,不必占用一片连续的存储单元
D:线性表采用顺序存储,必须占用一片连续的存储单元
答案: 【线性表采用顺序存储,便于插入和删除操作
】
2、单选题:
如果最常用的操作是取第i个结点及其前驱,则采用( )存储方式最节省时间。
选项:
A:顺序表
B:单链表
C:单循环链表
D:双链表
答案: 【顺序表】
3、单选题:
线性表采用顺序存储时,存储地址( )。
选项:
A:连续与否均可
B:一定是不连续的
C:可以与逻辑顺序不一致
D:必须是连续的
答案: 【必须是连续的】
4、单选题:
线性表采用链式存储时,结点的存储地址( )。
选项:
A:和头结点的存储地址相连续
B:连续与否均可
C:必须是不连续的
D:必须是连续的
答案: 【连续与否均可
】
5、单选题:
带头结点的单链表head为空的判定条件是( )
选项:
A:head->next==NULL
B:head!=NULL
C:head==NULL
D:head->next==head
答案: 【head->next==NULL
】
6、单选题:
设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为( )。
选项:
A:p->next=p
B:p=p->next
C:p=p->next->next
D:p->next=p->next->next
答案: 【p->next=p->next->next
】
7、单选题:
在一个长度为n(n>1)的单链表上,设有头指针和尾指针,执行( )操作与链表的长度有关。
选项:
A:删除单链表中的第一个元素
B:删除单链表中的最后一个元素
C:在单链表的第一个元素前插入一个新元素
D:在单链表的最后一个元素后插入一个新元素
答案: 【删除单链表中的最后一个元素
】
8、单选题:
若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用( )存储方式最节省运算时间。
选项:
A:单链表
B:给出表头指针的单循环链表
C:双链表
D:带头结点的双循环链表
答案: 【带头结点的双循环链表
】
9、单选题:
在双向链表存储结构中,删除p所指的结点时须修改指针( )。
选项:
A:p->prior->next=p->next; p->next->prior=p->prior;
B:p->prior=p->prior->prior; p->prior->next=p;
C:p->next->prior=p; p->next=p->next->next;
D:p->next=p->prior ->prior; p->prior=p->next->next;
答案: 【p->prior->next=p->next; p->next->prior=p->prior;
】
10、单选题:
建立一个长度为n的有序单链表的时间复杂度为( )
选项:
A:O(1)
B:O(n)
C:O(n^2)
D:O(log2n)
答案: 【O(n^2)】
第三章 单元测试
1、单选题:
若让元素C,h,i,n,a依次进栈,则出栈次序不可能出现在( )种情况。
选项:
A:h,i,a,n,C
B:h,C,a,n,i
C:n,i,C,h,a
D:a,n,i,h,C
答案: 【】
2、单选题:
若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为( )。
选项:
A:不确定
B:i
C:n-i
D:n-i+1
答案: 【
3、单选题:
设计一个判别表达式中左,右括号是否配对出现的算法,采用( )数据结构最佳。
选项:
A:栈
B:线性表的顺序存储结构
C:线性表的链式存储结构
D:队列
答案: 【
】
4、单选题:
若栈采用顺序存储方式存储,现两栈共享空间V[1..m],top[i]代表第i个栈(i=1,2)栈顶,栈1的底在V[1],栈2的底在V[m],则栈满的条件是( )
选项:
A:top[1]+1= top[2]
B:|top[2]-top[1]|=0
C:top[1]+ top[2]=m
D:top[1] = top[2]
答案: 【
】
5、单选题:
为解决计算机主机与打印机间速度不匹配问题,通常设一个打印数据缓冲区。主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是( )。
选项:
A:线性表
B:栈
C:有序表
D:队列
答案: 【】
6、单选题:
用链接方式存储的队列,在进行删除运算时( )。
选项:
A:仅修改头指针
B:头、尾指针都要修改
C:头、尾指针可能都要修改
D:仅修改尾指针
答案: 【
】
7、单选题:
栈和队列的共同点是( )。
选项:
A:都是先进先出
B:都是先进后出
C:只允许在端点处插入和删除元素
D:没有共同点
答案: 【】
8、单选题:
设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次进入栈S,一个元素出栈后即进入Q,若6个元素出队的序列是e2、e4、e3、e6、e5和e1,则栈S的容量至少应该是( )。
选项:
A:4
B:2
C:6
D:3
答案: 【】
9、单选题:
循环队列存储在数组A[0..m]中,则入队时的操作为( )。
选项:
A:rear=rear+1
B:rear=(rear+1)%(m-1)
C:rear=(rear+1)%(m+1)
D:rear=(rear+1)%m
答案: 【
】
10、单选题:
递归过程或者函数调用时处理参数和返回地址需要用到( )数据结构。
选项:
A:栈
B:线性表
C:二叉树
D:队列
答案: 【
】
第四章 单元测试
1、单选题:
串是一种特殊的线性表,其特殊性体现在( )。
选项:
A:数据元素是一个字符
B:可以链式存储
C:数据元素可以是多个字符若
D:可以顺序存储
答案: 【
】
2、单选题:
若串S=“master”其子串的个数是( )。
选项:
A:21
B:22
C:23
D:20
答案: 【】
3、单选题:
串的长度是指( )。
选项:
A:串中所含字符的个数
B:串中所含不同字符的个数
C:串中所含不同字母的个数
D:串中所含非空格字符的个数
.
答案: 【
】
4、单选题:
设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为( )。
选项:
A:求串长
B:匹配
C:联接
D:求子串
答案: 【
】
5、单选题:
数组A[0..4,-1..-3,5..7]中含有元素的个数( )。
选项:
A:55
B:45
C:36
D:16
答案: 【】
6、单选题:
假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=( )。
选项:
A:1010
B:818
C:808
D:1020
答案: 【】
7、单选题:
设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为( )。
选项:
A:BA+225
B:BA+141
C:BA+222
D:BA+180
答案: 【
8、单选题:
设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为( )。
选项:
A:32
B:33
C:13
D:40
答案: 【】
9、单选题:
广义表((a,b,c,d))的表头是( )。
选项:
A:(a,b,c,d)
B:( b,c)
C:(b,c,d)
D:a
答案: 【】
10、单选题:
广义表A=(a,b,(c,d),(e,(f,g))),则Head(Tail(Head(Tail(Tail(A)))))的值为( )。
选项:
A:d
B:c
C:(g)
D:(d)
答案: 【
】
第五章 单元测试
1、单选题:
由3个结点可以构造出多少种不同的二叉树?( )
选项:
A:3
B:2
C:4
D:5
答案: 【
2、单选题:
一棵完全二叉树上有1001个结点,其中叶子结点的个数是( )。
选项:
A:254
B:500
C:250
D:501
答案: 【
】
3、单选题:
一个具有1025个结点的二叉树的高h为( )。
选项:
A:10至1024之间
B:11至1025之间
C:10
D:11
答案: 【】
4、单选题:
对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,可采用( )遍历实现编号。
选项:
A:先序
B:中序
C:从根开始按层次遍历
D:后序
答案: 【】
5、单选题:
已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历结果为( )。
选项:
A:CBEFDA
B:FEDCBA
C:不确定
D:CBEDFA
答案: 【】
6、单选题:
引入二叉线索树的目的是( )。
选项:
A:加快查找结点的前驱或后继的速度
B:为了能方便的找到双亲
D使二叉树的遍历结果唯一
C:为了能在二叉树中方便的进行插入与删除
答案: 【
】
7、单选题:
在下列存储形式中,( )不是树的存储形式?
选项:
A:双亲表示法
B:顺序存储表示法
C:孩子链表表示法
D:孩子兄弟表示法
答案: 【
】
8、单选题:
利用二叉链表存储树,则根结点的右指针是( )。
选项:
A:指向最左孩子
B:非空
C:指向最右孩子
D:空
答案: 【】
9、单选题:
设F是一个森林,B是由F变换得的二叉树。若F中有n个非终端结点,则B中右指针域为空的结点有( )个。
选项:
A:n
B:n + 2
C:n + 1
D:n−1
答案: 【】
10、单选题:
设哈夫曼树中有199个结点,则该哈夫曼树中有( )个叶子结点。
选项:
A:101
B:102
C:99
D:100
答案: 【
】
第六章 单元测试
1、单选题:
具有4个顶点的无向完全图有( )条边。
选项:
A:6
B:16
C:12
D:20
答案: 【】
2、单选题:
具有6个顶点的无向图至少应有( )条边才能确保是一个连通图。
选项:
A:7
B:6
C:8
D:5
答案: 【】
3、单选题:
在一个无向图中,所有顶点的度数之和等于所有边数的( )倍。
选项:
A:1
B:1/2
C:2
D:4
答案: 【】
4、单选题:
任何一个无向连通图的最小生成树( )。
选项:
A:可能不存在
B:只有一棵
C:有一棵或多棵
D:一定有多棵
答案: 【】
5、单选题:
设无向图G=(V,E),G’=(V’,E’),如果G’是G的生成树,则下面说法错误的是( )。
选项:
A:G’为G的无环子图
B:G’为G的连通分量
C:G’为G的子图
D:G’为G的极小连通子图,且V’=V
答案: 【
】
6、判断题:
无向图的邻接矩阵一定是对称矩阵,有向图的邻接矩阵一定不是对称矩阵。( )
选项:
A:对
B:错
答案: 【】
7、单选题:
某无向图G=(V,E),其中:V=(a,b,c,d,e,f),E=((a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)),对该图进行深度优先遍历,则顶点序列正确的是( )。
选项:
A:a,e,b,c,f,d
B:a,c,f,e,b,d
C:a,b,e,c,d,f
D:a,e,d,f,c,b
答案: 【
】
8、单选题:
已知有向图G=(V,E),其中V={v1,v2,v3,v4,v5,v6},E={<v1,v2>,<v1,v4>,<v2,v6>,
<v3,v1>,<v3,v4>,<v4,v5>,<v5,v2>,<v5,v6>},G的拓扑序列是( )。
选项:
A:v1,v3,v4,v5,v2,v6
B:v3,v4,v1,v5,v2,v6
C:v3,v1,v4,v5,v2,v6
D:v1,v4,v3,v5,v2,v6
答案: 【】
9、单选题:
关键路径是事件结点网络中( )。
选项:
A:从源点到汇点的最短路径
B:最短的回路
C:最长的回路
D:从源点到汇点的最长路径
答案: 【
】
10、单选题:
普里姆算法是一种通过选点法构造最小生成树的算法。时间复杂度为( )。
选项:
A:O(eloge)
B:O(n^2)
C:O(n+e)
D:O(e^2)
答案:
第七章 单元测试
1、单选题:
有一个长度为12的有序表,按折半查找法对该表进行查找,在表内各元素等概率的情况下查找成功所需的平均比较次数为( )。
选项:
A:39/12
B:35/12
C:43/12
D:37/12
答案: 【
2、单选题:
对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有( )个,
选项:
A:1
B:2
C:3
D:4
答案: 【4
】
3、单选题:
顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为( )。
选项:
A:O(n)
B:O(n^(1/2))
C:O(n^2)
D:O(1og2n)
答案: 【
4、单选题:
设一组初始记录关键字序列为(13,18,24,35,47,50,62,83,90,115,134),则利用二分法查找关键字90需要比较的关键字个数为( )。
选项:
A:1
B:2
C:4
D:3
答案: 【2】
5、单选题:
设某散列表的长度为100,散列函数H(k)=k % P,则P通常情况下最好选择( )。
选项:
A:99
B:91
C:93
D:97
答案: 【】
6、单选题:
设有一组初始记录关键字序列为(34,76,45,18,26,54,92),则由这组记录关键字生成的二叉排序树的深度为( )。
选项:
A:4
B:7
C:5
D:6
答案: 【】
7、单选题:
二叉排序树中左子树上所有结点的值均( )根结点的值。
选项:
A:!=
B:>
C:<
D:=
答案: 【】
8、单选题:
从n个结点的二叉排序树中查找一个元素时,最坏情况下时间复杂度为( )。
选项:
A:O(n)
B:O(1og2n)
C:O(n^(1/2))
D:O(n^2)
答案: 【】
9、单选题:
在平衡二叉树中,每个结点平衡因子的绝对值必须( )。
选项:
A:小于1
B:小于等于1
C:等于0
D:大于1
答案: 【】
10、单选题:
深度为4的平衡二叉树中至少有( )个结点。
选项:
A:10
B:8
C:7
D:6
答案: 【】
第八章 单元测试
1、单选题:
用某种排序方法对线性表{25,84,21,47,15,27,68,35,20}进行排序时,元素序列的变化情况如下:
(1)25,84,21,47,15,27,68,35,20
(2)20,15,21,25,47,27,68,35,84
(3)15,20,21,25,35,27,47,68,84
(4)15,20,21,25,27,35,47,68,84
则采用的排序方法是( )。
选项:
A:希尔排序
B:快速排序
C:归并排序
D:直接选择排序
答案: 【
】
2、单选题:
对记录的关键字为{51,26,38,80,70,90,8,30,40,20}进行排序,各趟排序结束时的结果为:
(1)51,26,38,80,70,90,8,30,40,20
(2)51,8,30,40,20,90,26,38,80,70
(3)26,8,30,40,20,80,51,38,90,70
(4)8,20,26,30,38,40,51,70,80,90
则采用的排序方法是( )。
选项:
A:快速排序
B:归并排序
C:直接选择排序
D:希尔排序
答案: 【】
3、单选题:
设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为( )。
选项:
A:2,3,5,8,6
B:3,2,5,8,6
C:3,2,5,6,8
D:2,3,6,5,8
答案: 【】
4、单选题:
下列四种排序中( )的空间复杂度最大。
选项:
A:冒泡排序
B:插入排序
C:归并排序
D:堆排序
答案: 【
】
5、单选题:
快速排序的空间复杂度为( )。
选项:
A:O(log2n)
B:O(n)
C:O(n^2)
D:O(n^3)
答案: 【】
6、单选题:
下面哪种排序算法是稳定的排序算法( )。
选项:
A:希尔排序
B:归并排序
C:直接选择排序
D:快速排序
答案: 【
】
7、单选题:
下面哪种排序算法的时间复杂度为O(nlog2n)。( )
选项:
A:快速排序
B:冒泡排序
C:直接插入排序
D:直接选择排序
答案: 【】
8、单选题:
设一组初始记录关键字序列为(25,50,15,35,80,85,20,40,36,70),其中含有5个长度为2的有序子表,则用归并排序的方法对该记录关键字序列进行一趟归并后的结果为( )。
选项:
A:15,25,35,50,80,20,36,40,70,85
B:15,25,35,50,80,20,85,40,70,36
C:15,25,35,50,20,40,80,85,36,70
D:15,25,35,50,80,85,20,36,40,70
答案: 【
】
9、单选题:
利用直接插入排序法的思想建立一个有序线性表的时间复杂度为( )。
选项:
A:O(nlog2n)
B:O(n^2)
C:O(n)
D:O(log2n)
答案: 【】
10、单选题:
设一组初始记录关键字序列为(Q,H,C,Y,P,A,M,S,R,D,F,X),则按字母升序的第一趟冒泡排序结束后的结果是( )。
选项:
A:F,H,C,D,P,A,M,Q,R,S,Y,X
B:A,D,C,R,F,Q,M,S,Y,P,H,X
C:H,C,Q,P,A,M,S,R,D,F,X,Y
D:P,A,C,S,Q,D,F,X,R,H,M,Y
答案: 【
】
请先
!