第一章 单元测试
1、单选题:数据结构中,与所使用的计算机无关的是数据的( ) 结构。
A:物理和存储
B:物理
C:存储
D:逻辑
正确答案:【逻辑】
2、单选题:从逻辑上可以把数据结构分为()两大类。
A:顺序结构、链式结构
B:动态结构、静态结构
C:线性结构、非线性结构
D:初等结构、构造型结构
正确答案:【线性结构、非线性结构】
3、单选题:算法分析的目的是()
A:研究算法中的输入和输出的关系
B:分析算法的效率以求改进
C:找出数据结构的合理性
D:分析算法的易懂性和文档性
正确答案:【分析算法的效率以求改进】
4、多选题:一个”好”的算法应达到的目标有( )。
A:健壮性
B:可读性
C:正确性
D:高时间效率和低存储率
正确答案:【健壮性;可读性;正确性;高时间效率和低存储率】
5、判断题:健壮的算法不会因非法的输入数据而出现莫名其妙的状态。
A:对
B:错
正确答案:【对】
6、判断题:数据的逻辑结构和数据的存储结构是相同的。
A:对
B:错
正确答案:【错】
7、判断题:算法的实现依赖于数据的逻辑结构。
A:对
B:错
正确答案:【错】
8、判断题:算法是对解题方法和步骤的描述。
A:错
B:对
正确答案:【对】
9、单选题:链式存储结构所占存储空间( )。
A:分两部分,一部分存放结点的值,另一个部分存放表示结点间关系的地址。
B:分两部分,一部分存放结点的值,另一部分存放结点所占存储单元值。
C:只有一部分,存放结点的值。
D:只有一部分,存储表示结点间关系的地址。
正确答案:【分两部分,一部分存放结点的值,另一个部分存放表示结点间关系的地址。】
10、单选题:下列时间复杂度中最坏的是( )。
A:O(1)
B:O( logn)
C:O(n)
D:O(n2)
正确答案:【O(n2)】
第二章 单元测试
1、单选题:在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是: A:访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)
B:在第i个结点后插入一个新结点(1≤i≤n)
C:删除第i个结点(1≤i≤n)
D:将n个结点从小到大排序
正确答案:【访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)】
2、单选题:链式存储结构的最大优点是
A:便于随机存取
B:无需预分配空间
C:便于进行插入和删除操作
D:存储密度高
正确答案:【便于进行插入和删除操作】
3、单选题:假设在顺序表{a0,a1,……,an-1}中,每一个数据元素所占的存储单元的数目为4,且第0个数据元素的存储地址为100,则第7个数据元素的存储地址是
A:107
B:124
C:106
D:128
正确答案:【128】
4、单选题:在一个单链表中的p和q两个结点之间插入一个新结点,假设新结点为s,则修改链的java语句序列是
A:s.next=p;p.next=q;
B:q.next=p;p.next=s;
C:s.next=q;p.next=s;
D:p.next=q;q.next=s;
正确答案:【s.next=q;p.next=s;】
5、判断题:顺序存储方式的优点是存储密度大,且插入、删除运算效率高
A:错
B:对
正确答案:【错】
6、单选题:在单链表中,增加一个头结点的目的是为了
A:标识表结点中首结点的位置
B:说明单链表是线性表的链式存储
C:方便运算的实现
D:使单链表至少有一个结点
正确答案:【方便运算的实现】
7、单选题:一维数组第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是
A:100
B:120
C:110
D:108
正确答案:【108】
8、判断题:链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动
A:错
B:对
正确答案:【错】
9、判断题:链表的每个结点中都恰好包含一个指针
A:错
B:对
正确答案:【错】
10、判断题:顺序存储方式只能用于存储线性结构
A:对
B:错
正确答案:【错】
第三章 单元测试
1、单选题:若将整数1、2、3、4依次进栈,则不可能得到的出栈序列是
A:4321
B:1324
C:1423
D:1234
正确答案:【1423】
2、单选题:在顺序栈中,若栈顶指针top指向栈顶元素的下一个存储单元,且顺序栈的最大容量是maxSize,则顺序栈的判空条件是
A:top==maxSize-1
B:top==maxSize
C:top==0
D:top==-1
正确答案:【top==0】
3、单选题:在循环顺序队列中,假设以少用一个存储单元的方法来区分队列判满和判空的条件,front和rear分别为队首和队尾指针,front指向队首元素,rear指向队尾元素的下一个存储单元,队列的最大存储容量为maxSize,则队列的判满条件是
A:front==rear
B:front==rear+1
C:front!=rear
D:front==(rear+1)% maxSize
正确答案:【front==(rear+1)% maxSize】
4、单选题:在链栈中,进行出栈操作时
A:无需对栈作任何差别
B:需要判断栈是否满
C:需要判断栈元素的类型
D:需要判断栈是否为空
正确答案:【需要判断栈是否为空】
5、判断题:栈和队列是一种非线性数据结构
A:错
B:对
正确答案:【错】
6、单选题:在循环顺序队列中,假设以少用一个存储单元的方法来区分队列判满和判空的条件,front和rear分别为队首和队尾指针,它们分别指向队首元素和队尾元素的下一个存储单元,队列的最大存储容量为maxSize,则队列的判空条件是
A:front==rear
B:front==rear+1
C:front==(rear+1)% maxSize
D:front!=rear
正确答案:【front==rear】
7、单选题:循环顺序队列是将顺序队列的存储区域看成是一个首尾相连的环,首尾相连的状态是通过数学上的哪种运算实现的?
A:求和
B:除运算
C:求余
D:减运算
正确答案:【求余】
8、单选题:设数组Data[0..m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为
A:front=(front+1)%(m+1)
B:front=(front+1)% m
C:front=front+1
D:rear=(rear+1)%m
正确答案:【front=(front+1)%(m+1)】
9、单选题:假定利用数组a[n]顺序存储一个栈,用top表示栈顶指针,top==-1表示栈空,并已知栈未满,当元素x进栈时所执行的操作为
A:a[–top]=x
B:a[top–]=x
C:a[++top]=x
D:a[top++]=x
正确答案:【a[++top]=x】
10、单选题:在不带表头结点的链栈中,若栈顶指针top直接指向栈顶元素,则将一个新结点p入栈时修改链的两条对应语句为
A:
top=p;p.next=top;
B:
p.next=top;top=p;
C:
top.next=p;p=top;
D:
p=top;top.next=p.next;
正确答案:【
p.next=top;top=p;
】
第四章 单元测试
1、单选题:下面关于串的叙述中,哪一个是不正确的?( )
A:串既可以采用顺序存储,也可以采用链式存储
B:空串是由空格构成的串
C:模式匹配是串的一种重要运算
D:串是字符的有限序列
正确答案:【空串是由空格构成的串】
2、单选题:串的长度是指( )
A:串中包含的不同字符个数
B:串中包含的不同字母个数
C:串中包含的字符个数
D:串中除空格以外的字符个数
正确答案:【串中包含的字符个数】
3、单选题:设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为( )
A:联接
B:求子串
C:求串长
D:模式匹配
正确答案:【模式匹配 】
4、单选题:设主串的长度为n,模式串的长度为m,则串匹配的KMP算法时间复杂度是( )
A:O(n + m)
B:O(n)
C:O(m)
D:O(n×m)
正确答案:【O(n + m)】
5、单选题:串也是一种线性表,只不过( )
A:表长受到限制
B:数据元素数据类型不受限制
C:数据元素均为字符
D:数据元素是子串
正确答案:【数据元素均为字符】
6、判断题:一个串的任意连续字符组成的子序列称为串的 子串,该串称为主串。
A:错
B:对
正确答案:【对】
7、判断题:空串和空格串的串长度都为0。
A:对
B:错
正确答案:【错】
8、判断题:若两个串的长度相等且对应位置上的字符也相等,则称两个串相等。
A:对
B:错
正确答案:【对】
9、判断题:寻找子串在主串中的位置,称为模式匹配。其中,主串又称为模式串。
A:对
B:错
正确答案:【错】
如有任何疑问请及时联系QQ 50895809反馈