第一章 单元测试

1、单选题:

数据在计算机内存中的表示是指()

选项:
A:数据结构
B:数据元素之间的关系

C:数据的存储结构
D:数据的逻辑结构
答案: 【数据的存储结构

2、单选题:

算法指的是()

选项:
A:解决问题的计算方法
B:解决问题的有限运算序列

C:计算机程序

D:排序算法
答案: 【解决问题的有限运算序列

3、单选题:

在数据结构中,与所使用的计算机无关的数据结构是()

选项:
A:逻辑结构和存储结构
B:物理结构
C:存储结构
D:逻辑结构

答案: 【逻辑结构

4、单选题:

算法能正确地实现预定功能的特性称为算法的()。

选项:
A:正确性
B:可读性
C:健壮性
D:高效性
答案: 【正确性

5、单选题:
已知某算法的执行时间为(n+n2)log2(n+2),n为问题规模,则该算法的时间复杂度是(  )。
选项:
A:O((n+n2)logn)
B:O(nlogn)
C:O(n2)
D:O(n2logn)
答案: 【O(n2logn)

6、单选题:
下面算法将一维数组a中的数据逆序存放到原数组中,空间复杂度为()。

for(i=0;i<n;i++)    b[i] = a[n-i-1];for(i=0;i<n;i++)     a[i] = b[i];

选项:
A:O(n2)

B:O(n)
C:O(logn)
D:O(1)

答案: 【O(n)

第二章 单元测试

1、单选题:

链表不具备的特点是(  )。

选项:
A:不必事先估计存储空间

B:所需空间与其长度成正比

C:可随机访问任意一个结点

D:插入和删除不需要移动任何元素

答案: 【可随机访问任意一个结点

2、判断题:
线性表的顺序存储表示优于链式存储表示。 
选项:
A:错
B:对
答案: 【

3、判断题:
顺序存储结构的缺点是不便于修改,插入和删除需要移动很多结点。
选项:
A:错
B:对
答案: 【

4、单选题:
在设头、尾指针的单链表中,与长度n有关的操作是( )。
选项:
A:删除最后一个结点
B:在p结点之后插入一个结点
C:删除第一个结点
D:在第一个结点之前插入一个结点
答案: 【删除最后一个结点

5、单选题:
设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B间插入结点X的操作序列为( )。
选项:
A:p->next=s;s->next=q;
B:q->next=s; s->next=p;
C:p->next=s->next;s->next=p;
D:s->next=p->next;p->next=-s;
答案: 【q->next=s; s->next=p;

6、单选题:
对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为( )。
选项:
A:用头指针表示的循环单链表
B:用尾指针表示的循环单链表
C:单链表
D:顺序表
答案: 【用尾指针表示的循环单链表

7、单选题:
在一个单链表中,若p所指节点不是最后节点,在p之后插入s所指节点,则执行( )。
选项:
A:s->link=p->link;p->link=s;
B:s->link=p;p->link=s;
C:s->link=p->link;p=s;
D:p->link=s;s->link=p;
答案: 【s->link=p->link;p->link=s;

8、单选题:
在双向链表存储结构中,删除p所指的结点时须修改指针( )。
选项:
A:p->next=p->next->next; p->next->prior=p;
B:p->next->prior=p->prior; p->prior->next=p->next;
C:p->prior=p->next->next; p->next=p->prior->prior;
D:p->prior->next=p; p->prior=p->prior->prior;
答案: 【p->next->prior=p->prior; p->prior->next=p->next;

9、单选题:
若事先不知道线性表的长度,则处理线性表时较好的存储结构是( )。
选项:
A:B和C
B:顺序表
C:单链表
D:静态链表
答案: 【单链表

10、单选题:
向一个有127个元素的顺序表中插入一个新元素并保存,原来顺序不变,平均要移动( )个元素。
选项:
A:7
B:8
C:63
D:63.5
答案: 【63.5

11、单选题:
某线性表采用顺序存储结构,每个元素占4个存储单元,首地址为100,则第12个元素的存储地址为( )。
选项:
A:147
B:144
C:148
D:145
答案: 【144

12、单选题:
在一个以 h 为头的单循环链表中,p 指针指向链尾的条件是( )。
选项:
A:p->next == h
B:p->data == -1
C:p->next->next == h
D:p->next == NULL
答案: 【p->next == h

13、单选题:
在表头指针为head 且表长大于1的单向循环链表中,指针p 指向表中的某个结点,若p->next->next=head,则( )。
选项:
A:*p的直接后继是尾结点
B:*p的直接后继是头结点
C:p指向尾结点
D:p指向头结点
答案: 【*p的直接后继是尾结点

14、单选题:
线性表若采用链式存储结构时,要求内存中可用存储单元的地址(   )。
选项:
A:必须是连续的
B:连续不连续都可以
C:部分地址必须是连续的
D:一定是不连续的
答案: 【连续不连续都可以

15、单选题:
在单链表中,指针p指向元素为x的结点,实现“删除x的后继”的语句是( )。
选项:
A:p=p->next;
B:p=p->next->next;
C:p->next=p;
D:p->next=p->next->next;
答案: 【p->next=p->next->next;

16、单选题:
可以用带表头结点的链表表示线性表,也可以用不带表头结点的链表表示线性表,前者最主要的好处是( )。
选项:
A:节省存储空间
B:使空表和非空表的处理统一
C:可以加快对表的遍历
D:可以提高存取元素的速度
答案: 【使空表和非空表的处理统一

17、单选题:
与单链表相比,双向链表的优点之一是(   )。
选项:
A:顺序访问相邻结点更加灵活
B:插入、删除操作更加简单
C:可以省略表头指针或表尾指针
D:可以随机访问
答案: 【顺序访问相邻结点更加灵活

18、单选题:
如果最常用的操作是取第i个结点及其前驱,最节省时间的存储方式(   )。
选项:
A:单循环链表
B:双向链表
C:单链表
D:顺序表
答案: 【顺序表

19、单选题:
线性链表不具有的特点是(  )。
选项:
A:插入与删除时不必移动元素
B:所需空间与线性表长度成正比
C:不必事先估计所需存储空间大小
D:随机访问
答案: 【随机访问

20、单选题:
对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的。插入一个元素时平均要移动表中的( )个元素。
选项:
A:n/2
B:(n+1)/2
C:n
D:(n-1)/2
答案: 【n/2

21、判断题:
链表是采用链式存储结构的线性表,进行插入、删除操作时,在链表中比在顺序存储结构中效率高。
选项:
A:对
B:错
答案: 【

22、单选题:
在一个带头结点的双向循环链表中,若要在p所指向的结点之前插入一个新结点,则需要相继修改(   )个指针域的值。
选项:
A:2
B:3
C:4
D:5
答案: 【4

23、判断题:
具有线性关系的集合中,若a,b是集合中的任意两个元素,则必有a<b的关系。
选项:
A:错
B:对
答案: 【

发表评论

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