第一部分 数据结构概述(总时长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: 一些表面上很不相同的数据可以有相同的逻辑结构 
答案: 【 一些表面上很不相同的数据可以有相同的逻辑结构 

测试题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: 错误
答案: 【 错误

第二部分 线性结构之 栈和队(总时长24'53'')

栈和队单元测验

1、单选题:
‎链栈与顺序栈相比有一个明显的优点,即      。‏
选项:
A: 插入操作更方便
B: 通常不会出现栈满的情况
C: 不会出现栈空的情况
D: 删除操作更加方便
答案: 【 通常不会出现栈满的情况

2、单选题:
‏设进栈序列是1,2,3,…,n,输出序列为p1,p2,p3,…,pn。若p1=3,则p2为_____。​
选项:
A: 可能是2
B: 不可能是2
C: 可能是1
D: 必是1
答案: 【 可能是2

3、单选题:
‏已知hs为首指针的简单单向链表存储一个栈,使指针s所指结点进栈的操作是____。‏
选项:
A: hs->next=s;
B: s->next=hs;hs=s;
C: s->next=hs->next; hs->next=s;
D: s->next=hs;hs=hs->next;
答案: 【 s->next=hs;hs=s;

4、单选题:
‎数组q[M](M等于6)存储一个循环队,first和last分别是首尾指针。已知first和last的当前值分别等于2和5,且q[5]存放的是队尾元素。当从队列中删除两个元素,再插入一个元素后,first和last的值分别等于_____。‍
选项:
A: 3和6
B: 4和0
C: 1和3
D: 5和1
答案: 【 4和0

5、单选题:
‌对于链队,在进行删除操作时,        。‏
选项:
A: 仅修改头指针
B: 仅修改尾指针
C: 头、尾指针都要修改
D: 头、尾指针可能都要修改
答案: 【 头、尾指针可能都要修改

6、单选题:
‌设进栈次序为ABCDE,______是不可能得到的出栈序列。‏
选项:
A: ABCDE
B: BCDEA
C: EABCD
D: EDCBA
答案: 【 EABCD

7、单选题:
‎设进栈序列是1,2,3,…,n,输出序列为p1,p2,p3,…,pn。若p3=1,则p1为_____。​
选项:
A: 必是2
B: 可能是3
C: 必定是3
D: 不可能是3
答案: 【 可能是3

8、单选题:
‌数组S[M]存储一个栈,top为栈顶指针。如果条件top= =-1表示栈空,在栈不空的情况下,栈顶元素为_____。‍
选项:
A: S[top-1]
B: S[top]
C: S[top+1]
D: S[++top]
答案: 【 S[top]

9、单选题:
‏数组S[M]存储一个栈,top为栈顶指针。如果条件top= =M表示栈满,那么条件_____表示栈空。‍
选项:
A: top= =1
B: top= =-1
C: top= =0
D: top!=0
答案: 【 top= =0

10、单选题:
‍数组q[M]存储一个循环队,first和last分别是首尾指针,如果使元素x进队操作的语句为“q[last]=x,last=(last+1)%m;”那么判断队满的条件是_____。‎
选项:
A: last= =first
B: last= =M-1
C: (last+1)%m= =first
D: last+1= =first
答案: 【 (last+1)%m= =first

11、单选题:
‍数组q[M]存储一个循环队,first和last分别是首尾指针。如果使元素x出队操作的语句为“first=(first+1)%m, x=q[first];”。那么元素x进队的语句是_____。‍
选项:
A: last=(last+1)%m,q[last]=x;
B: x=q[last], last =(last+1)%m;
C: q[last+1]=x;
D: q[(last+1)%m]=x;
答案: 【 last=(last+1)%m,q[last]=x;

12、单选题:
‎一个单向简单链表存储的栈,其栈顶指针为top。执行操作______可将原栈顶元素退栈,并存放在变量x中(不考虑回收结点)。‏
选项:
A: x=top; top=top->next;
B: x=top->data;
C: top=top->next; x= top->data;
D: x=top->data; top=top->next;
答案: 【 x=top->data; top=top->next;

13、单选题:
‏首尾指针分别是f和r的单向加头链表存储一个队,元素x出队的语句为“f=f->next, x=f->data;”,那么判断队空否的条件是_____。‌
选项:
A: f= =r
B: f= =NULL
C: f->next= =r
D: f->next=NULL
答案: 【 f= =r

14、单选题:
‌设进栈序列是p1,p2,p3,…,pn,输出序列为1,2,3,…,n。若p3=1,则p1为_____。​
选项:
A: 可能是2
B: 不可能是2
C: 必是2
D: 必定是3
答案: 【 不可能是2

15、单选题:
‌数组q[M]存储一个循环队,first和last分别是首尾指针。当前队中元素个数为_____。​
选项:
A: (last- first+M)%M
B: last-first+1
C: last-first-1
D: last-first
答案: 【 (last- first+M)%M

测验4.1

1、判断题:
​栈是一种对进栈、出栈操作总次数作了限制的线性表。‏
选项:
A: 正确
B: 错误
答案: 【 错误

2、判断题:
‍栈是后进先出的线性表,因此对序列1,2,3依次执行进栈操作,则出栈序列只能得到321。‌
选项:
A: 正确
B: 错误
答案: 【 错误

测验4.2

1、单选题:
‏数组q[M]存储一个循环队,first和last分别是首尾指针。当前队中元素个数为_____。‍
选项:
A: (last- first+M)%M
B: last-first+1
C: last-first-1
D: last-first
答案: 【 (last- first+M)%M

2、判断题:
‌队是先进先出的线性表,元素1,2,3按顺序进队,其出队顺序只能是1,2,3。‎
选项:
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是指向单向加头链表的头指针,删除首元结点(第1个实际元素)的操作是_____。‏
选项:
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=

剩余75%内容付费后可查看

发表评论

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