数据结构智慧树知到答案章节测试2023年

  • 格式:docx
  • 大小:17.14 KB
  • 文档页数:14

绪论单元测试

1. ( )在其著作《计算机程序设计艺术》中,开创了数据结构的最初体系。( )

A:理查德·卡普

B:唐纳德·克努特

C:尼古拉斯·沃斯

D:史蒂芬·古克

答案:B

2. ( )提出了著名的公式程序=算法+数据结构。( )

A:唐纳德·克努特

B:理查德·卡普

C:尼古拉斯·沃斯

D:史蒂芬·古克

答案:C

3. 数据结构课程不是( )课程的先修课程。

A:操作系统

B:数据库原理

C:计算机组成原理

D:高级语言程序设计

答案:D

4. 下面哪个不是常见的数据结构。( )

A:线性表

B:栈

C:线性方程组

D:树

答案:C

5. 下面说法错误的是( )。

A:精心选择的数据结构能够带来更高的计算速度和存储效率

B:我国高校从20世纪50年代就开设了数据结构这一课程

C:通过数据结构课程,能够掌握数据结构的逻辑结构、存储结构及实现算法

D:程序是为处理计算机问题编制的一组指令集

答案:B

第一章测试

1. ( )是组成数据具有独立含义不可分割的最小单位。( )

A:数据对象

B:数据项

C:数据元素

D:数据变量

答案:B 2. 数据逻辑结构中非线性结构包括( )。

A:树形结构和图形结构

B:顺序结构和链式结构

C:树形结构和队列结构

D:图形结构和堆栈结构

答案:A

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:树形结构

答案:D

4. 数据结构的主要研究内容包括数据的( )以及数据的运算和操作。

A:逻辑结构、抽象结构

B:离散结构、抽象结构

C:逻辑结构、物理结构

D:抽象结构、物理结构

答案:C

5. 数据结构被形象化的定义为一个二元组Group=(D,S),其中D为数据元素的有限集,S为( )的有限集。

A:关系

B:结构

C:操作

D:运算

答案:A

6. 线性结构中的数据元素具有( )关系。

A:一对多关系

B:多对多关系

C:一对一关系

D:多对一关系

答案:C

7. 对一个算法的评价,不包括如下( )方面的内容。

A:时空复杂度

B:并行性

C:正确性

D:健壮性和可读性

答案:B 8. 下列时间复杂度中最好的是( )。

A:O(log2n)

B:O(2^n)

C:O(n^2)

D:O(n)

答案:A

9. 以下算法的时间复杂度是( )。 i=1; while(i<=n) i=i*3;

A:O(n^3)

B:O(log2n)

C:O(n)

D:O(log3n)

答案:D

10. 以下算法:s=0;for(i=0;i<n;i++)for(j=0;j<n;j++)s=s+a[i][j];printf(“%d”,sum);的时间复杂度为( )

A:O(n^2)

B:O(log2n)

C:O(n)

D:O(n^3)

答案:A

第二章测试

1. 下面关于线性表的叙述中,错误的是哪一个?( )

A:线性表采用链接存储,便于插入和删除操作

B:线性表采用链接存储,不必占用一片连续的存储单元

C:线性表采用顺序存储,必须占用一片连续的存储单元

D:线性表采用顺序存储,便于插入和删除操作

答案:D

2. 如果最常用的操作是取第i个结点及其前驱,则采用( )存储方式最节省时间。

A:顺序表

B:单链表

C:双链表

D:单循环链表

答案:A

3. 线性表采用顺序存储时,存储地址( )。

A:连续与否均可

B:必须是连续的

C:一定是不连续的

D:可以与逻辑顺序不一致

答案:B 4. 线性表采用链式存储时,结点的存储地址( )。

A:和头结点的存储地址相连续

B:必须是不连续的

C:必须是连续的

D:连续与否均可

答案:D

5. 带头结点的单链表head为空的判定条件是( )

A:head->next==NULL

B:head==NULL

C:head!=NULL

D:head->next==head

答案:A

6. 设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为( )。

A:p=p->next

B:p->next=p

C:p=p->next->next

D:p->next=p->next->next

答案:D

7. 在一个长度为n(n>1)的单链表上,设有头指针和尾指针,执行( )操作与链表的长度有关。

A:在单链表的第一个元素前插入一个新元素

B:在单链表的最后一个元素后插入一个新元素

C:删除单链表中的第一个元素

D:删除单链表中的最后一个元素

答案:D

8. 若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用( )存储方式最节省运算时间。

A:双链表

B:带头结点的双循环链表

C:单链表

D:给出表头指针的单循环链表

答案:B

9. 在双向链表存储结构中,删除p所指的结点时须修改指针( )。

A:p->prior=p->prior->prior; p->prior->next=p;

B:p->next->prior=p; p->next=p->next->next;

C:p->prior->next=p->next; p->next->prior=p->prior;

D:p->next=p->prior ->prior; p->prior=p->next->next;

答案:C

10. 建立一个长度为n的有序单链表的时间复杂度为( )

A:O(1) B:O(n^2)

C:O(n)

D:O(log2n)

答案:B

第三章测试

1. 若让元素C,h,i,n,a依次进栈,则出栈次序不可能出现在( )种情况。

A:h,i,a,n,C

B:n,i,C,h,a

C:a,n,i,h,C

D:h,C,a,n,i

答案:B

2. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为( )。

A:n-i+1

B:n-i

C:i

D:不确定

答案:A

3. 设计一个判别表达式中左,右括号是否配对出现的算法,采用( )数据结构最佳。

A:队列

B:线性表的链式存储结构

C:栈

D:线性表的顺序存储结构

答案:C

4. 若栈采用顺序存储方式存储,现两栈共享空间V[1..m],top[i]代表第i个栈(i=1,2)栈顶,栈1的底在V[1],栈2的底在V[m],则栈满的条件是( )

A:top[1] = top[2]

B:top[1]+1= top[2]

C:|top[2]-top[1]|=0

D:top[1]+ top[2]=m

答案:B

5. 为解决计算机主机与打印机间速度不匹配问题,通常设一个打印数据缓冲区。主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是( )。

A:队列

B:有序表

C:线性表

D:栈

答案:A 6. 用链接方式存储的队列,在进行删除运算时( )。

A:仅修改尾指针

B:头、尾指针可能都要修改

C:仅修改头指针

D:头、尾指针都要修改

答案:B

7. 栈和队列的共同点是( )。

A:只允许在端点处插入和删除元素

B:没有共同点

C:都是先进后出

D:都是先进先出

答案:A

8. 设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次进入栈S,一个元素出栈后即进入Q,若6个元素出队的序列是e2、e4、e3、e6、e5和e1,则栈S的容量至少应该是( )。

A:4

B:6

C:3

D:2

答案:C

9. 循环队列存储在数组A[0..m]中,则入队时的操作为( )。

A:rear=(rear+1)%(m+1)

B:rear=rear+1

C:rear=(rear+1)%m

D:rear=(rear+1)%(m-1)

答案:A

10. 递归过程或者函数调用时处理参数和返回地址需要用到( )数据结构。

A:二叉树

B:线性表

C:队列

D:栈

答案:D

第四章测试

1. 串是一种特殊的线性表,其特殊性体现在( )。

A:可以顺序存储

B:数据元素是一个字符

C:可以链式存储

D:数据元素可以是多个字符若

答案:B