绪论 单元测试

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、单选题:
设语句X++的时间是单位时间,则语句。for(I=1;I<=n;I++)x++;的时间复杂度为( )
选项:
A:O(1)
B:O(n3)
C:O(n2)
D:O(n)
答案: 【O(n)

7、多选题:
对一个算法的评价,不包括如下( )方面的内容。
选项:
A:时空复杂度
B:健壮性和可读性
C:计算性
D:并行性
答案: 【计算性 ;
并行性

8、单选题:
以下数据结构中哪一个是非线性结构 ( )
选项:
A:线性表
B:栈
C:队列
D:二叉树
答案: 【二叉树

9、判断题:
逻辑结构与数据元素本身的内容和形式无关( )
选项:
A:对
B:错
答案: 【

10、判断题:
基于某种逻辑结构之上的基本操作,其实现是唯一的。( )
选项:
A:错
B:对
答案: 【

第一章 单元测试

1、单选题:
非空的循环单链表head的尾结点(由p指向)满足( )。
选项:
A:p==NULL
B:p→next==head
C:p==head
D:p→next==NULL
答案: 【p→next==head

2、单选题:
带头结点head的单链表为空的判定条件是( )。
选项:
A:head->next==head
B:head!==NULL
C:head->next==NULL
D:head==NULL
答案: 【head->next==NULL

3、单选题:
在长度为n的顺序表的第i个位置上插入一个元素(1≤ i ≤n+1),元素的移动次数为( )。
选项:
A:i
B:i – 1
C:n – i + 1
D:n – i
答案: 【n – i + 1

4、单选题:
在一个单链表中,若删除P所指结点的后续结点,则执行( )。
选项:
A:P=P->next->next
B:P->next=P->next
C:P->next=P->next->next;
D:q=P->next; P->next=P->next->next;
答案: 【q=P->next; P->next=P->next->next;

5、单选题:
在循环双链表的p所指结点后插入s所指结点的操作是( )。
选项:
A:p->next=s; p->next->prior=s; s->prior=p; s->next=p->next;
B:p->next=s; s->prior=p; p->next->prior=s; s->next=p->next;
C:s->prior=p; s->next=p->next; p->next=s; p->next->prior=s;
D:s->prior=p; s->next=p->next; p->next->prior=s; p->next=s;
答案: 【s->prior=p; s->next=p->next; p->next->prior=s; p->next=s;

6、判断题:
线性表的逻辑顺序和存储顺序总是一致的。( )
选项:
A:对
B:错
答案: 【

7、判断题:
线性表的顺序存储结构优于链接存储结构。( )
选项:
A:对
B:错
答案: 【

8、判断题:
用数组r存储静态链表,结点的next域指向后继,工作指针j指向链中某结点,则j后移的操作语句为j=j+1。( )
选项:
A:对
B:错
答案: 【

9、多选题:
下列叙述正确的是( )。
选项:
A:若线性表需频繁进行插入和删除操作,则宜采用顺序表作为存储结构。
B:空表是长度等于0的线性表。
C:在链表进行删除操作时,在给出指向链表中某个合适位置的指针后,删除操作所需的时间仅为O(1)。
D:当线性表中元素个数变化较大或者未知时,最好使用链表实现。
E:顺序表插入操作的时间复杂度为O(n)。
答案: 【空表是长度等于0的线性表。;
在链表进行删除操作时,在给出指向链表中某个合适位置的指针后,删除操作所需的时间仅为O(1)。;
当线性表中元素个数变化较大或者未知时,最好使用链表实现。;
顺序表插入操作的时间复杂度为O(n)。

10、多选题:
静态链表的指针表示的是( )。
选项:
A:下一元素在数组中的位置。
B:内存储器的地址。
C:左链或右链指向的元素地址。
D:下一元素在数组的下标。
E:下一元素的地址。
答案: 【下一元素在数组中的位置。;
下一元素在数组的下标。

第二章 单元测试

1、单选题:
一个队列的入队列顺序是1,2,3,4,则队列的输出顺序是( )
选项:
A:4321
B:1234
C:不唯一
D:1432
答案: 【1234

2、多选题:
一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是( )
选项:
A:2 3 1 4 5
B:5 1 4 3 2
C:5 4 1 3 2
D:2 3 4 1 5
答案: 【5 1 4 3 2;
5 4 1 3 2

3、多选题:
设一个栈,元素abcdef,依次进栈,不可能得到出栈序列是( )
选项:
A:defabc
B:fedcba
C:abcdef
D:fabced
答案: 【defabc ;
fabced

4、单选题:
在栈中,出栈的时间复杂度为( )
选项:
A:O(n)
B:O(log2n)
C:O(n2)
D:O(1)
答案: 【O(1)

5、单选题:
循环队列用数组A[maxsize] 表示,下面哪个选项表示该循环队列队满 ( )
选项:
A:rear-front==maxsize-1
B:rear-front==maxsize
C:front==(rear+1)%maxsize
D:rear==maxsize-1
答案: 【front==(rear+1)%maxsize

6、判断题:
栈和队列属于非线性结构( )
选项:
A:对
B:错
答案: 【

7、判断题:
读队头元素和出队操作是一样的( )
选项:
A:对
B:错
答案: 【

8、判断题:
循环队列的判空操作只需判断front==rear是否成立( )
选项:
A:对
B:错
答案: 【

9、判断题:
循环队列的基本操作的实现,算法的时间复杂度都是O(1)( )
选项:
A:对
B:错
答案: 【

10、判断题:
取栈顶元素不需要修改指针( )
选项:
A:错
B:对
答案: 【

发表评论

电子邮件地址不会被公开。 必填项已用*标注