网课《算法与数据结构》章节测试答案
绪论
1、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的____和运算等的学科。
A:结构
B:算法
C:关系
D:运算
正确答案:关系
2、算法的描述形式包括
A:自然语言
B:流程图
C:类程序设计语言
D:N-S图
正确答案:自然语言,流程图 ,类程序设计语言,N-S图
3、算法的特征包括有穷性、确定性、可行性和输入输出。
A:对
B:错
正确答案:对
4、对算法的描述包括程序形式和描述形式。
A:对
B:错
正确答案:对
5、描述形式是算法的最终形式
A:对
B:错
正确答案:错
6、“数据结构”是介于( )、( )和( )三者之间的一门核心课程。
A:数学
B:计算机硬件
C:计算机软件
D:语句
正确答案:数学,计算机硬件,计算机软件
7、 著名计算机科学家沃思教授提出的公式: 程序 = ( ) + ( ),也说明了数据结构的重要性。
A:算法
B:语法
C:数据结构
D:编程环境
正确答案:算法,数据结构
8、描述非数值计算问题的数学模型不再是数学方程,而是数据结构( )。
A:表
B:树
C:图
D:集合
正确答案:表,树,图,集合
9、 数据结构是一门研究( )程序设计问题中计算机的( )以及它们之间的( )和( )等的学科。
A:非数值计算
B:操作对象
C:关系
D:操作
正确答案:非数值计算,操作对象,关系,操作
10、 顺序存储结构: 借助元素在存储器中的( )来表示数据元素间的逻辑关系。
A:地址
B:结构
C:相对位置
D:数值
正确答案:相对位置
第一章
1、()是一种最简单的线性结构。
A:图
B:线性表
C:树
D:集合
正确答案:线性表
2、( )线性表的数据元素可以由所描述对象的各种特征的数据项组成。
A:有序存储
B:散列存储
C:链式存储
D:顺序存储
正确答案:链式存储
3、已知单向链表中指针p指向结点A,( )表示删除A的后继结点(若存在)的链操作(不考虑回收)。
A:p—>next=p
B:p=p—>next
C:p=p—>next—>next
D:p—>next=p—>next—>next
正确答案:p—>next=p—>next—>next
4、已知last指向单向简单链表的尾结点,将s所指结点加在表尾,不正确的操作是。
A:s->next=NULL, last->next=s,last=s;
B:s->next=NULL, last->next=s, s=last;
C:last->next=s,s->next=NULL,last=s;
D:last->next=s,last=s,last->next=NULL;
正确答案:s->next=NULL, last->next=s, s=last;
5、已知h是指向单向加头链表的首指针,删除表头结点的操作是_。
A:p=h->next;free(p);h=h->next;
B:free(h->next);h=h->next;
C:p=h,h=p->next;free(p);
D:p=h->next,h->next=p->next;free(p);
正确答案:p=h->next,h->next=p->next;free(p);
6、有N个元素组成的线性表,我们说此线性表的长度为( )
A:n
B:n+1
C:n-1
D:0
正确答案:n
7、对线性表中的数据元素进行( )和( )等操作,实现表的长度的增长或缩短。
A:插入
B:遍历
C:访问
D:删除
正确答案:插入,删除
8、线性表的抽象数据类型定义
A:数据对象
B:函数关系
C:数据关系
D:基本操作
正确答案:数据对象,数据关系,基本操作
9、我们使用( ),实现线性表的顺序存储。
A:数值
B:函数
C:数组
D:语句
正确答案:数组
10、线性表的基本操作是用C语言中的( )对其进行表示的。
A:循环语句
B:函数
C:结构体
D:条件语句
正确答案:函数
11、 在链表中第i 个结点之前插入新的元素 e ,表的逻辑结构不变。
A:对
B:错
正确答案:错
12、在单链表中插入结点只需要()。但同时,若要在第( )个结点之前插入元素,修改的是第 ( )个结点的指针。
A: i
B:修改指针
C:i+1
D:i-1
正确答案:i ,修改指针,i-1
13、单链表和线性表中所有基本操作相同,且编程实现方法相同。
A:对
B:错
正确答案:错
14、数字钟程序中使用的时间,可以是系统时间。
A:对
B:错
正确答案:对
15、和单链表的差别仅在于,判别链表中最后一个结点的条件不再是( ),而是( )。
A:“后继是否为头结点”
B:“前继是否为头结点”
C:“前继是否为空”
D:“后继是否为空”
正确答案:“后继是否为头结点”,“后继是否为空”
16、双向链表的“删除” 时需要同时修改两个方向上的指针,改变结点之间的逻辑关系。
A:对
B:错
正确答案:对
17、双向链表的“插入” 时不需要同时修改两个方向上的指针,改变结点之间的逻辑关系。
A:对
B:错
正确答案:错
18、 双向链表中,当指针p指向非空表中的非头尾结点时,以下哪个式子是正确的()
A:p->next->prior=p
B:p=p->next
C:p->next =p->prior
D:p=p->prior->next
正确答案:p->next->prior=p ,p=p->prior->next
19、 双向链表中,当指针p指向非空表中的非头尾结点时,以下哪个式子是正确的()
A:p->next=p ->prior
B:p->prior=p->next
C:p->next->prior=p
D:p=p->prior
正确答案:p->next->prior=p
20、 双向链表需要在结点中设两个指针域( )
A:parent指针域
B:prior指针域
C:数据域
D:next指针域
正确答案:prior指针域,next指针域
第二章
1、队列是一种( )的线性表。
A:先进先出
B:先进后出
C:只能插入
D:只能删除
正确答案:先进先出
2、设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点X,则入队列的操作序列为( )。
A: front->next=s;front=s;
B: s->next=rear;rear=s;
C: rear->next=s;rear=s;
D: s->next=front;front=s;
正确答案:rear->next=s;rear=s;
3、栈操作数据的原则是( )。
A:后进先出
B:先进先出
C:后进后出
D:不分顺序
正确答案:后进先出
4、栈与队列是一种特殊操作的线性表( )
A:对
B:错
正确答案:对
5、和链栈类似,用单链表来实现链队。根据队的先入先出(FIFO)原则,为了操作上的方便,使用一个( )和( )。
A:数据域
B:头指针
C:尾指针
D:指针域
正确答案:头指针,尾指针
6、队列的顺序存储结构用C语言中( )数据类型实现。
A:一维数组实现
B:二维数组实现
C:结构体
D:枚举型
正确答案:一维数组实现
7、栈和队列不能进行再分配了。
A:对
B:错
正确答案:错
8、队列允许在表的一端进行插入操作和删除操作。
A:对
B:错
正确答案:错
9、入栈需要修改地址指针。
A:对
B:错
正确答案:对
10、 链栈主要的运算,如插入、删除是在栈顶执行的。 链表的头部作栈顶是最方便的,需要像单链表那样为了运算方便附加一个头结点。
A:对
B:错
正确答案:错
11、链栈的结点结构与单链表的结点结构相同,由()和()组成。
A:指针域 双亲域
B:数据域 指针域
C:孩子域 指针域
D:双亲域
正确答案:数据域 指针域
12、 构造一个空栈S 时,不需要用动态存储空间分配函数。
A:对
B:错
正确答案:错
13、顺序栈中数据元素与栈顶指针的变化:非空栈中的栈顶指针top始终在的 ()下一个位置
A:栈中任意元素
B:栈顶元素
C:栈底元素
D:栈中元素
正确答案:栈顶元素
14、在初始化空顺序栈时一般不限定栈的最大容量,因为,栈在使用过程中所需最大空间的大小很难估计。
A:对
B:错
正确答案:对
15、利用()的存储单元依次存放自栈底到栈顶的数据元素,这种形式的栈称为顺序栈。
A:一组地址相同
B:一组地址不连续
C:一组地址连续
D:一组地址断开
正确答案:一组地址连续
第三章
1、串(即字符串)是一种特殊的线性表,它的数据元素是( )。
A:数字
B:单个字符
C:图
D:表
正确答案:B
2、包含零个字符(n=0)的串称为空串,通常记为Ф,其长度为零;空串是任意串的子串。
A:对
B:错
正确答案:A
3、空串与空格串相同
A:对
由于篇幅有限,完整版可移步公号免费下载,见个人简介。