大学MOOC 数据结构与算法(大连民族大学)1460711162 最新慕课完整章节测试答案
第一章 概述(总时长19'23'')
文章目录
概述单元测试
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、单选题:
算法分析的两个主要方面是____。
选项:
A: 空间复杂度和时间复杂度
B: 正确性和简明性
C: 可读性和文档性
D: 数据复杂性和程序复杂性
答案: 【 空间复杂度和时间复杂度】
7、单选题:
计算机算法指的是____。
选项:
A: 计算方法
B: 排序方法
C: 解决问题的有限运算序列
D: 调度方法
答案: 【 解决问题的有限运算序列 】
8、单选题:
计算机算法必须具备输入、输出和____等5个特性。
选项:
A: 可行性、可移植性和可扩充性
B: 可行性、确定性和有穷性
C: 确定性、有穷性和稳定性
D: 易读性、稳定性和安全性
答案: 【 可行性、确定性和有穷性 】
9、单选题:
在决定选取何种存储结构时,一般不考虑_____。
选项:
A: 各结点的值如何
B: 结点个数的多少
C: 对数据有哪些运算
D: 所用编程语言实现这种结构是否方便
答案: 【 各结点的值如何】
10、单选题:
在存储数据时,通常不仅要存储各数据元素的值,而且还要存储_____。
选项:
A: 数据的处理方法
B: 数据元素的类型
C: 数据元素之间的关系
D: 数据的存储方法
答案: 【 数据元素之间的关系 】
11、单选题:
通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着_____。
选项:
A: 数据元素具有同一特点
B: 不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致
C: 每个数据元素都一样
D: 数据元素所包含的数据项的个数要相等
答案: 【 不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致】
12、单选题:
以下说法正确的是_____。
选项:
A: 数据元素是数据的最小单位
B: 数据项是数据的基本单位
C: 数据结构是带结构的各数据项的集合
D: 一些表面上很不相同的数据可以有相同的逻辑结构
答案: 【 一些表面上很不相同的数据可以有相同的逻辑结构 】
13、单选题:
下面程序段的空间复杂性是:for( i = 1 ; i < n; i++) for( j = i; j <= n-i; ++j ) if( a[j]) > a[j+1] ) { t = a[j]; a[j] = a[j+1]; a[j+1] = t; }
选项:
A: O(1)
B: O(log n)
C: O(n)
D: O(n2)
答案: 【 O(1)】
14、单选题:
以下代码段的时间复杂性是: for (i=1; i<=n; ++i) for (j=1; j<=n; ++j) { c[i][j]=0; for (k=1; k<=n; ++k) c[i][j]+=a[i][k]*b[k][j]; }
选项:
A: O(1)
B: O(n)
C: O(n2)
D: O(n3)
答案: 【 O(n3)】
15、单选题:
以下代码段的时间复杂性是:for (i=1; i<n; i=2*i) ++x;
选项:
A: Ο(1)
B: O(log n)
C: O(n)
D: O(nlog n)
答案: 【 O(log n)】
测试题1.1
1、单选题:
计算机资源管理器中,对文件(夹)的组织用的什么数据结构?
选项:
A: 表结构
B: 树结构
C: 图结构
D: 散结构
答案: 【 树结构】
2、多选题:
数据结构的研究对象包括
选项:
A: 数据元素的集合
B: 元素之间的关系
C: 对数据集合进行的运算
D: 算法及算法评价
答案: 【 数据元素的集合;
元素之间的关系 ;
对数据集合进行的运算 ;
算法及算法评价】
3、判断题:
数据结构主要研究非数值计算的问题
选项:
A: 正确
B: 错误
答案: 【 正确】
测试题1.2
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、多选题:
基本数据结构包括
选项:
A: 表结构
B: 树结构
C: 图结构
D: 散结构
答案: 【 表结构;
树结构;
图结构;
散结构】
测试题1.3
1、单选题:
《The Art of Computer Programming》的作者是_____
选项:
A: Dijkstra
B: Knuth
C: Turing
D: Huffman
答案: 【 Knuth】
2、多选题:
算法的描述形式包括
选项:
A: 自然语言
B: 流程图
C: 类程序设计语言
D: 维恩图(Venn)
答案: 【 自然语言;
流程图 ;
类程序设计语言】
3、判断题:
算法的特征包括有穷性、确定性、可行性和输入输出。
选项:
A: 正确
B: 错误
答案: 【 正确】
4、判断题:
对算法的描述包括程序形式和描述形式。
选项:
A: 正确
B: 错误
答案: 【 正确】
5、判断题:
描述形式是算法的最终形式。
选项:
A: 正确
B: 错误
答案: 【 错误】
6、判断题:
流程图是一种程序形式。
选项:
A: 正确
B: 错误
答案: 【 错误】
测试题1.4
1、单选题:
算法的有效性指的是_____
选项:
A: 时间复杂性和空间复杂性
B: 最坏情况和平均情况
C: 制作周期与使用时效的关系
D: 制作费用与实用价值的关系
答案: 【 时间复杂性和空间复杂性】
2、单选题:
下列说法不正确的是_____
选项:
A: 算法的正确性通常需要人工证明
B: 只有对所有合法输入数据都正确的算法才是正确的算法
C: 经反复调试、长期运行,也不一定能够发现算法中的错误
D: 只有经长期运行,从不出错的算法,才是正确的算法
答案: 【 只有经长期运行,从不出错的算法,才是正确的算法 】
3、单选题:
算法复杂性记号T(n)、TW(n)和TE(n)分别代表_____
选项:
A: 准确的、上界和下界
B: 常数阶、多项式阶和指数阶
C: 有效的、无效的和最优的
D: 一般情况、最坏情况和平均情况
答案: 【 一般情况、最坏情况和平均情况】
4、判断题:
算法的空间复杂性是算法对存储空间的需求。
选项:
A: 正确
B: 错误
答案: 【 正确】
5、判断题:
低价算法一定比高价算法快。
选项:
A: 正确
B: 错误
答案: 【 错误】
第二章 线性表-链表(上)(总时长22'57'')
测验3.1
1、单选题:
在单向链表中,将结点q插入p所指结点之后的链操作为____。
选项:
A: q->next=p->next;p->next=q;
B: p->next=q; q->next=p->next;
C: q->next=p; p->next=q;
D: p->next=q; q->next=p;
答案: 【 q->next=p->next;p->next=q;】
2、单选题:
在单向链表中,删除p所指结点的后继结点的链操作为____(不考虑回收结点)。
选项:
A: p->next=p->next->next;
B: p=p->next;
C: p=p->next->next;
D: p->next=p;
答案: 【 p->next=p->next->next;】
3、单选题:
已知h是指向单向加头链表的首指针,删除表头结点的操作是_____。
选项:
A: p=h,h=p->next;free(p);
B: p=h->next;free(p);h=h->next;
C: p=h->next,h->next=p->next;free(p);
D: free(h->next);h=h->next;
答案: 【 p=h->next,h->next=p->next;free(p);】
测验3.2
1、单选题:
已知h是指向单向加头链表的首指针,p指向一个新结点,将p所指结点插在表头的操作是_____。
选项:
A: p->next=h,h->next=p;
B: p->next=h->next,h->next=p;
C: p->next=h,h=p;
D: h->next=p,p->next=h->next;
答案: 【 p->next=h->next,h->next=p; 】
2、单选题:
已知last指向单向简单链表的尾结点,将s所指结点加在表尾,正确的操作是____。
选项:
A: s->next=s,last=s,last->next=NULL;
B: last->next=s,s->next=NULL,last=s;
C: s->next=NULL, last->next=s, s=last;
D: s->next=last, last->next=NULL,last=s;
答案: 【 last->next=s,s->next=NULL,last=s;】
测验3.3
1、单选题:
在长度为n的单向链表中查找值为x的结点,在查找成功的情况下,平均查找长度为_____。
选项:
A: n/2
B: n
C: (n+1)/2
D: (n-1)/2
答案: 【 (n+1)/2】
2、判断题:
在单链表中,可以从头结点开始输出任何一个结点元素值。
选项:
A: 正确
B: 错误
答案: 【 正确】
链表(上)单元测验
1、单选题:
线性表采用链式存储时,其地址 。
选项:
A: 必须是连续的
B: 部分地址必须是连续的
C: 一定是不连续的
D: 连续与否均可以
答案: 【 连续与否均可以】
2、单选题:
从一个具有n个结点的单链表中查找值等于x的结点时,在查找成功的情况下,需要平均比较_ 个结点。
选项:
A: n/2
B: n
C: (n+1)/2
D: (n-1)/2
答案: 【 (n+1)/2】
3、单选题:
能够满足快速完成插入和删除运算的线性表存储结构是____。
选项:
A: 顺序存储
B: 链式存储
C: 散列存储
D: 有序存储
答案: 【 链式存储】
4、单选题:
已知单向链表中指针p指向结点A, 表示删除A的后继结点(若存在)的链操作(不考虑回收)。
选项:
A: p—>next=p—>next—>next
B: p=p—>next
C: p=p—>next—>next
D: p—>next=p
答案: 【 p—>next=p—>next—>next】
5、单选题:
在一个单向链表中,已知结点*q是*p的前趋结点,若在*q和*p之间插入*s结点,则须执行_____。
选项:
A: s—>next= p—>next;p—>next=s;
B: q—>next=s; s—>next= p;
C: p—>next= s—>next;s—>next= p;
D: p—>next=s; s—>next=q;
答案: 【 q—>next=s; s—>next= p;】
6、单选题:
已知last指向单链表的尾结点,将s所指结点加在表尾,不正确的操作是____。
选项:
A: last->next=s,last=s,last->next=NULL;
B: last->next=s,s->next=NULL,last=s;
C: s->next=NULL, last->next=s, s=last;
D: s->next=NULL, last->next=s,last=s;
答案: 【 s->next=NULL, last->next=s, s=last;】
7、单选题:
已知last指向单链表的尾结点,将s所指结点加在表尾,正确的操作是____。
选项:
A: s->next=s,last=s,last->next=NULL;
B: last->next=s,s->next=NULL,last=s;
C: s->next=NULL, last->next=s, s=last;
D: s->next=last, last->next=NULL,last=s;
答案: 【 last->next=s,s->next=NULL,last=s;】
8、单选题:
已知h是指向单向加头链表的首指针,p指向一个新结点,将p所指结点插在表头(p指向第一个实际结点)的操作是_____。
选项:
A: p->next=h,h->next=p;
B: p->next=h->next,h->next=p;
C: p->next=h,h=p;
D: h->next=p,p->next=h->next;
答案: 【 p->next=h->next,h->next=p; 】
9、单选题:
已知h是指向单向加头链表的首指针,删除表头结点的操作是_____。
选项:
A: p=h,h=p->next;free(p);
B: p=h->next;free(p);h=h->next;
C: p=h->next,h->next=p->next;free(p);
D: free(h->next);h=h->next;
答案: 【 p=h->next,h->next=p->next;free(p);】
10、单选题:
就单一的____运算来说,线性表采用顺序存储比采用链式存储好(n是表长)。
选项:
A: 存取任意第i(0≤i≤n-1)个结点
B: 交换前两个结点的值
C: 输出所有结点
D: 查找结点x在表中的序号
答案: 【 存取任意第i(0≤i≤n-1)个结点】
11、单选题:
就单一的____运算来说,线性表采用链式存储比采用顺序存储好。
选项:
A: 删除指定元素
B: 输出所有结点
C: 查找结点x在表中的序号
D: 在表尾处插入一个元素
答案: 【 删除指定元素】
12、单选题:
判定以head为头指针的不带头结点的单链表只有一个结点的条件是 。
选项:
A: head= =NULL
B: head->next= =NULL
C: head->next= =head
D: head!=NULL
答案: 【 head->next= =NULL】
13、单选题:
判定以head为首指针的带头结点的单链表为空的条件是 。
选项:
A: head= =NULL
B: head->next= =NULL
C: head->next= =head
D: head!=NULL
答案: 【 head->next= =NULL】
14、单选题:
链表不具备的特点是_____。
选项:
A: 可随机访问任一结点
B: 插入删除不需要移动元素
C: 不必事先估计存储空间
D: 所需空间与其长度成正比
答案: 【 可随机访问任一结点】
15、单选题:
对一个具有n个元素的线性表,建立单向链表的时间复杂度至少为__ 。
选项:
A: O(n)
B: O(1)
C: O(logn)
D: O(n^2)
答案: 【 O(n)】
16、单选题:
若某线性表中最常用的操作是取第i个元素和找第i个元素的前趋,则采用______存储方法最节省时间。
选项:
A: 顺序表
B: 单链表
C: 双链表
D: 单循环列表
答案: 【 顺序表】
17、单选题:
链接存储的存储结构所占存储空间______。
选项:
A: 分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
B: 只有一部分,存放结点值
C: 只有一部分,存储表示结点间关系的指针
D: 分两部分,一部分存放结点值,另一部分存放结点所占单元数
答案: 【 分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针】
18、单选题:
链表是一种采用_____存储结构存储的线性表。
选项:
A: 顺序
B: 链式
C: 星式
D: 网状
答案: 【 链式】
19、单选题:
线性表L在_____情况下适用于使用链式结构实现。
选项:
A: 需经常修改L中的结点值
B: 需不断的对L进行删除插入
C: L中含有大量的结点
D: L中结点结构复杂
答案: 【 需不断的对L进行删除插入】
20、单选题:
单链表的存储密度____。
选项:
A: 大于1
B: 等于1
C: 小于1
D: 不能确定
答案: 【 小于1】
21、单选题:
在单链表指针为p的结点之后插入指针为s的结点,正确的操作是_____。
选项:
A: p->next=s;s->next=p->next
B: s->next=p->next;p->next=s
C: p->next=s;p->next=s->next
D: p->next=s->next;p->next=s
答案: 【 s->next=p->next;p->next=s】
22、单选题:
对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是______。
选项:
A: head==NULL
B: head→next==NULL
C: head→next==head
D: head!=NULL (head指向谁的)
答案: 【 head→next==NULL】
23、单选题:
在一个单链表中,若删除P所指结点的后续结点,则执行______。
选项:
A: p-next=p->next->next;
B: p=p->next;p->next=p->next->next
C: p->next=p->next
D: p=p->next->next
答案: 【 p-next=p->next->next;】
24、单选题:
不带头结点的单链表head为空的判定条件是_____。
选项:
A: head=NULL
B: head->next=NULL
C: head->next=head
D: head!=NULL
答案: 【 head=NULL】
25、单选题:
判定以head为头指针的带头结点的单链表只有一个结点的条件是 。
选项:
A: head == NULL
B: head ->next== NULL
C: head ->next->next == NULL
D: head != NULL
答案: 【 head ->next->next == NULL】
第二章 线性表-链表(下)(总时长18'38'')
测验3.4
1、单选题:
判定以head为首指针的单向加头链表为空的条件是 。
选项:
A: head= =NULL
B: head->next= =NULL
C: head->next= =head
D: head!=NULL
答案: 【 head->next= =NULL】
2、判断题:
在循环单链表中,从表中任一结点出发都可以通过前后的移动操作扫描整个循环链表。
选项:
A: 正确
B: 错误
答案: 【 错误】
测验3.5
1、单选题:
在一个长度为n(n>1)的带头结点的单链表h上,另设有尾指针r(指向尾结点),执行 操作与链表的长度有关。
选项:
A: 删除单链表中的第一个元素
B: 删除单链表中的最后一个元素
C: 在单链表第一个元素前插入一个新元素
D: 在单链表最后一个元素后插入一个新元素
答案: 【 删除单链表中的最后一个元素】
2、单选题:
双向循环链表中,在p所指结点的右侧插入指针s所指结点,其操作是____。
选项:
A: p->Rlink=s; s->Llink=p; (p->Rlink)->Llink=s; s->Rlink=p->Rlink;
B: s->Llink=p; s->Rlink=p->Rlink; p->Rlink=s; p->Rlink->Llink=s;
C: p->Rlink=s; p->Rlink->Llink=s; s->Llink=p; s->Rlink=p->Rlink;
D: s->Llink=p; s->Rlink=p->Rlink; p->Rlink->Llink=s; p->Rlink=s;
答案: 【 s->Llink=p; s->Rlink=p->Rlink; p->Rlink->Llink=s; p->Rlink=s;】
测验3.6
1、单选题:
在长度为n的有序链表中插入结点并保持有序,最坏情况下和平均情况下,时间复杂性分别是_____。
选项:
A: O(n)和O(1)
B: O(n)和O(log n)
C: O(n)和O(n)
D: O(logn)和O(n)
答案: 【 O(n)和O(n)】
链表(下)单元测验
1、单选题:
在长度为n的有序链表中插入一个结点并保持有序,最坏情况下和平均情况下,时间复杂性分别是_____。
选项:
A: O(n)和O(1)
B: O(n)和O(log n)
C: O(n)和O(n)
D: O(nlogn)和O(n)
答案: 【 O(n)和O(n)】
2、单选题:
将如图所示的向单向链表中A段和B段交换位置(将B段调到A段的前面,其余结点次序不变),正确的程序段为_______。
![]()
选项:
A: p->next= q->next;q->next=r->next; r->next=p->next;
B: q->next=r->next; r->next=p->next; p->next=q->next;
C: t=q->next; q->next=r->next; r->next=p->next; p->next=t;
D: t=q->next; q->next=r->next; r->next=q; p->next=t;
答案: 【 t=q->next; q->next=r->next; r->next=p->next; p->next=t;】
3、单选题:
若某线性表中最常用的操作是在最后一个元素之后插入新元素,或删除第一个元素,则采用 存储方式最节省时间。
选项:
A: 单链表
B: 仅有头指针的单循环链表
C: 双链表
D: 仅有尾指针的单循环链表
答案: 【 仅有尾指针的单循环链表】
4、单选题:
对一个具有n个元素的线性表,建立其有序单链表的时间复杂度为_____。
选项:
A: O (n)
B: O (1)
C: O (logn)
D: O(n^2)
答案: 【 O(
