绪论 单元测试

1、单选题:
数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的____和运算等的学科。
选项:
A:结构
B:算法
C:关系
D:运算
答案: 【关系

2、多选题:
算法的描述形式包括
选项:
A:N-S图
B:自然语言
C:流程图
D:类程序设计语言
答案: 【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=p—>next
B:p=p—>next—>next
C:p—>next=p
D:p—>next=p—>next—>next
答案: 【p—>next=p—>next—>next

4、单选题:
已知last指向单向简单链表的尾结点,将s所指结点加在表尾,不正确的操作是____。
选项:
A:s->next=NULL, last->next=s, s=last;
B:last->next=s,last=s,last->next=NULL;
C:last->next=s,s->next=NULL,last=s;
D:s->next=NULL, last->next=s,last=s;
答案: 【s->next=NULL, last->next=s, s=last;

5、单选题:
已知h是指向单向加头链表的首指针,删除表头结点的操作是_____。
选项:
A:p=h->next,h->next=p->next;free(p);
B:free(h->next);h=h->next;
C:p=h,h=p->next;free(p);
D:p=h->next;free(p);h=h->next;
答案: 【p=h->next,h->next=p->next;free(p);

6、单选题:
有N个元素组成的线性表,我们说此线性表的长度为( )
选项:
A:n+1
B:0
C:n-1
D:n
答案: 【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=p->next
B:p->next=p->prior
C:p=p->prior->next
D:p->next->prior=p
答案: 【p=p->prior->next;
p->next->prior=p

19、单选题:
双向链表中,当指针p指向非空表中的非头尾结点时,以下哪个式子是正确的()
选项:
A:p->prior=p->next
B:p->next->prior=p
C:p->next=p->prior
D:p=p->prior
答案: 【p->next->prior=p

20、多选题:
双向链表需要在结点中设两个指针域( )
选项:
A:next指针域
B:prior指针域
C:parent指针域
D:数据域
答案: 【next指针域;
prior指针域

第二章 单元测试

1、单选题:
队列是一种( )的线性表。
选项:
A:只能插入
B:只能删除
C:先进后出
D:先进先出
答案: 【先进先出

2、单选题:
设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点X,则入队列的操作序列为( )。
选项:
A:front->next=s;front=s;
B:s->next=rear;rear=s;
C:s->next=front;front=s;
D:rear->next=s;rear=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:一组地址连续
答案: 【一组地址连续

发表评论

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