第一章 绪论

第1章单元测试

1、单选题:
​设n是描述问题规模的非负整数,下面程序段的时间复杂度是(  )。​​x=2;​​while (x<n/2)​​ x=x*2;​​​
选项:
A: O(log2n)
B: O(n)
C: O(nlog2n)
D:  
答案: 【 O(log2n)

2、单选题:
‏下面程序段的时间复杂度是(  )。‍‏count=0;‍‏for(k=1; k<=n; k*=2)‍‏ for(j=1; j<n; j++)‍‏ count++;‍
选项:
A: O(log2n)
B: O(n)
C: O(nlog2n)
D:
答案: 【 O(nlog2n)

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、单选题:
‍与数据元素本身的形式、内容、相对位置、个数无关的是数据的(  )。‍
选项:
A: 存储结构
B: 存储实现
C: 逻辑结构
D: 运算实现
答案: 【 逻辑结构

9、单选题:
‎在数据结构中,从逻辑上可以把数据结构分成(  )。‍
选项:
A: 动态结构和静态结构
B: 紧凑结构和非紧凑结构
C: 内部结构和外部结构
D: 线性结构和非线性结构
答案: 【 线性结构和非线性结构

10、单选题:
‌通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着(  )。‍
选项:
A: 数据具有同一特点
B: 不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致
C: 每个数据元素都一样
D: 数据元素所包含的数据项的个数要相等
答案: 【 不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致

11、判断题:
‌数据元素是数据处理的最小单位。‌‌‌
选项:
A: 正确
B: 错误
答案: 【 错误

12、判断题:
‍数据的逻辑结构是指数据的各数据项之间的逻辑关系。‍‍‍
选项:
A: 正确
B: 错误
答案: 【 错误

13、判断题:
​算法的优劣与算法描述语言无关,与所用计算机有关。‎
选项:
A: 正确
B: 错误
答案: 【 错误

14、判断题:
‎数据的物理结构是指数据在计算机内的实际存储形式。‎‎‎
选项:
A: 正确
B: 错误
答案: 【 正确

15、判断题:
​健壮的算法不会因非法的输入数据而出现莫名其妙的状态。‌
选项:
A: 正确
B: 错误
答案: 【 正确

第二章 线性表

第2章单元测验

1、单选题:
‌线性表L=(a1,a2,…an ),下列说法正确的是(   )。​
选项:
A: 每个元素都有一个直接前驱和一个直接后继
B: 线性表中至少有一个元素
C: 除第一个和最后一个元素外,其它每个元素都有一个且仅有一个直接前驱和直接后继
D: 表中诸元素的排列必须是由大到小或由小到大
答案: 【 除第一个和最后一个元素外,其它每个元素都有一个且仅有一个直接前驱和直接后继

2、单选题:
‍顺序表中第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是(   ) 。​
选项:
A: 110
B: 108
C: 100
D: 120
答案: 【 108

3、单选题:
‏向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动的元素个数为(   ) 。‌
选项:
A: 8
B: 63.5
C: 63
D: 7
答案: 【 63.5

4、单选题:
‏在线性表的下列运算中,不改变数据元素之间结构关系的运算是(   ) 。​
选项:
A: 插入
B: 删除
C: 排序
D: 定位
答案: 【 定位

5、单选题:
‌线性表若采用链式存储结构时,要求内存中可用存储单元的地址(   ) 。‍
选项:
A: 必须是连续的
B: 部分地址必须是连续的
C: 一定是不连续的
D: 连续或不连续都可以
答案: 【 连续或不连续都可以

6、单选题:
‏在单链表中,要将s所指结点插入到p所指结点之后,其语句应为(   ) 。‍
选项:
A: s->next=p+1;p->next=s;
B: (*p).next=s;(*s).next=(*p).next;
C: s->next=p->next;p->next=s->next;
D: s->next=p->next;p->next=s;
答案: 【 s->next=p->next;p->next=s;

7、单选题:
‌对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是(   ) 。​
选项:
A: head=NULL
B: head->next=NULL
C: head->next==head
D: head!=NULL
答案: 【 head->next=NULL

8、单选题:
‌已知两个长度分别为m和n的升序链表,若将它们合并成为一个长度为m+n的降序链表,则最坏情况下的时间复杂度是(   ) 。‌
选项:
A: O(n)
B: O(m*n) 
C: O(min(m,n)) 
D: O(max(m,n))
答案: 【 O(max(m,n))

9、单选题:
‏在循环链表中,将头指针改为尾指针(rear)后,其首元结点和尾结点的存储位置分别是(   ) 。‎
选项:
A: rear 和 rear->next->next
B: rear->next 和 rear
C: rear->next->next 和 rear
D: rear 和 rear->next
答案: 【 rear->next->next 和 rear

10、单选题:
‎已知一个带有表头结点的双向循环链表L,结点结构为prev,data,next。其中,prev和next分别指向其直接前驱和直接后继结点的指针。现要删除指针p所指的结点,正确的语句序列是(   ) 。‌
选项:
A: p->next->prev=p->prev;p->prev->next=p->next;free(p); 
B: p->next->prev=p->next;p->prev->next=p->next;free(p); 
C: p->next->prev=p->next;p->prev->next=p->prev;free(p);
D: p->next->prev=p->prev;p->prev->next=p->prev;free(p);
答案: 【 p->next->prev=p->prev;p->prev->next=p->next;free(p); 

11、判断题:
‍用顺序表来存储线性表时,不需要另外开辟空间来保存数据元素之间的相互关系。‎
选项:
A: 正确
B: 错误
答案: 【 正确

12、判断题:
‏从循环链表的某一结点出发,只能找到它的后继结点,不能找到它的前驱结点。​
选项:
A: 正确
B: 错误
答案: 【 错误

13、判断题:
​单链表结点的指针域是用来存放其直接后继结点的首地址的。‍
选项:
A: 正确
B: 错误
答案: 【 正确

14、判断题:
‌线性表的链式存储结构优于顺序存储结构。‌
选项:
A: 正确
B: 错误
答案: 【 错误

15、判断题:
​对数据的任何运算都不能改变数据原有的结构特性。‏
选项:
A: 正确
B: 错误
答案: 【 正确

第三章 栈和队列

第3章单元测试

1、单选题:
‏若元素a,b,c,d,e,f依次进栈,允许进栈、出栈操作交替进行,但不允许连续三次进行出栈操作,则不可能得到的出栈序列是(  )。‍
选项:
A: d,c,e,b,f,a
B: c,b,d,a,e,f
C: b,c,a,e,f,d
D: a,f,e,d,c,b
答案: 【 a,f,e,d,c,b

2、单选题:
‏元素a,b,c,d,e依次进入初始为空的栈中,若元素进栈后可停留、可出栈,直到所有元素都出栈,则在所有可能的出栈序列中,以元素d开头的序列个数是(  ) 。‌
选项:
A: 3
B: 4
C: 5
D: 6
答案: 【 4

3、单选题:
‏假设栈初始为空将中缀表达式a/b+(c*d-e*f)/g转换为等价的后缀表达式的过程中,当扫描到f时,栈中的元素依次(  ) 。‎
选项:
A: +(*-
B: +(-*
C: /+(*-*
D: /+-*
答案: 【 +(-*

4、单选题:
‏为解决计算机主机与打印机速度不匹配问题,通常设一个打印数据缓冲区。主机将要输出的数据依次写入该缓冲区,打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑

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

发表评论

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