第一单元 绪论

绪论

1、单选题:
‍研究数据结构就是研究(     )。‏‍‏
选项:
A: 数据的逻辑结构
B: 数据的存储结构
C: 数据的逻辑结构和存储结构
D: 数据的逻辑结构、存储结构及其基本操作
答案: 【 数据的逻辑结构、存储结构及其基本操作

2、单选题:
‎算法分析的两个主要方面是(    )。‏
选项:
A: 空间复杂度和时间复杂度
B: 正确性和简单性
C: 可读性和文档性
D: 数据复杂性和程序复杂性
答案: 【 空间复杂度和时间复杂度

3、单选题:
‌具有线性结构的数据结构是(    )。‏
选项:
A: 图
B: 树
C: 二叉树
D: 栈
答案: 【 栈

4、单选题:
‏计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、(   )等5个特性。‏
选项:
A: 可执行性、可移植性和可扩充性
B: 可执行性、有穷性和确定性
C: 确定性、有穷性和稳定性
D: 易读性、稳定性和确定性
答案: 【 可执行性、有穷性和确定性

5、单选题:
‍下面程序段的时间复杂度是(    )。‏‍for(i=0;i<m;i++)‏‍    for(j=0;j<n;j++)‏‍        a[i][j]=i*j;‏
选项:
A: O(m2)
B: O(n2)
C: O(m*n)
D: O(m+n)
答案: 【 O(m*n)

6、单选题:
‌算法是(    )。‍
选项:
A: 计算机程序
B: 解决问题的计算方法
C: 排序算法
D: 解决问题的有限运算序列
答案: 【 解决问题的有限运算序列

7、单选题:
‎某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示(    )。‍
选项:
A: O(n)
B: O(nlog2n)
C:  O(n2)
D: O(log2n)
答案: 【  O(n2)

8、单选题:
‍下面程序段的时间复杂度为(    )。‎‍i=1;‎‍while(i<=n)‎‍    i=i*3;‎
选项:
A: O(n)
B: O(3n)
C: O(log3n)
D: O(n3)
答案: 【 O(log3n)

9、单选题:
‍下面程序段的时间复杂度是(   )。‍‍i=s=0;‍‍while(s<n){‍‍    i++;s+=i;‍‍}‍
选项:
A:
B: O(n2)
C: O(log2n)
D: O(n3)
答案: 【 

10、单选题:
‌通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是(   )。‌
选项:
A: 正确性:算法应能正确地实现预定的功能
B: 易读性:算法应易于阅读和理解,以便调试、修改和扩充
C: 健壮性:当环境发生变化时,算法能适当地做出反应或进行处理,不会产生不需要的运行结果
D: 高效性:即达到所需要的时间性能
答案: 【 高效性:即达到所需要的时间性能

第二单元 线性表

单元测验-线性表

1、单选题:
‌若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素算法的时间复杂度(   )。​
选项:
A:
B: O(1)
C: O(n)
D: )
答案: 【 O(n)

2、单选题:
‏若一个线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用(   )存储方式最节省时间。​
选项:
A: 顺序表
B: 单链表
C: 双链表
D: 单循环链表
答案: 【 顺序表

3、单选题:
‌非空的循环单链表,头指针为head,其尾结点(p指针指向它)应满足(   )。‏
选项:
A: p->next==head
B: p->next==NULL
C: p==NULL
D: p==head
答案: 【 p->next==head

4、单选题:
‍链表不具有的特点是(   )。‌‍‌
选项:
A: 可随机访问任一元素
B: 插入删除不需要移动元素
C: 不必事先估计存储空间
D: 所需空间与线性表长度成正比
答案: 【 可随机访问任一元素

5、单选题:
​在双向循环链表中,在p指针所指的结点后插入一个指针q所指向的新结点,修改指针的操作是(   )。‎
选项:
A: p->next=q;q->prior=p;p->next->prior=q;q->next=q;
B: p->next=q;p->next->prior=q;q->prior=p;q->next=p->next;
C: q->prior=p;q->next=p->next;p->next->prior=q;p->next=q;
D: q->next=p->next;q->prior=p;p->next=q;p->next=q;
答案: 【 q->prior=p;q->next=p->next;p->next->prior=q;p->next=q;

6、单选题:
‌线性表采用链式存储时,结点的存储地址(   )。‏
选项:
A: 必须是连续的
B: 必须是不连续的
C: 连续与否均可
D: 和头结点的存储地址相连续
答案: 【 连续与否均可

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

8、单选题:
‏一个顺序表的第一个元素的存储地址是90,每个元素的长度为2,则第6个元素的存储地址是(   )。‍
选项:
A: 98
B: 100
C: 102
D: 106
答案: 【 100

9、单选题:
‍在线性表的下列存储结构中,读取元素花费的时间最少的是(   )。‌
选项:
A: 单链表
B: 双链表
C: 循环链表
D: 顺序表
答案: 【 顺序表

10、单选题:
​在一个单链表中,若删除p所指向结点的后续结点,则执行(   )。‏
选项:
A: p->next=p->next->next;
B:  p=p->next; p->next=p->next->next;
C: p =p->next;
D: p=p->next->next;
答案: 【 p->next=p->next->next;

11、单选题:
‎将长度为n的单链表连接在长度为m的单链表之后的算法的时间复杂度为(   )。‎
选项:
A: O(1)
B: O(n)
C: O(m)
D: O(m+n)
答案: 【 O(m)

12、单选题:
​线性表的顺序存储结构是一种(   )存储结构。​
选项:
A: 随机存取
B: 顺序存取
C: 索引存取
D: 散列存取
答案: 【 随机存取

13、单选题:
​不带头结点的单链表(头指针为head)为空的判定条件是(   )。‏
选项:
A: head==NULL
B: head->next==NULL
C:  head->next==head
D: head!=NULL
答案: 【 head==NULL

14、单选题:
‎在下列对顺序表进行的操作中,算法时间复杂度为O(1)的是(   )‏
选项:
A: 访问第i个元素的前驱(1<i≤n)
B: 在第i个元素之后插入一个新元素(1≤i≤n)
C: 删除第i个元素(1≤i≤n)
D: 对顺序表中元素进行排序
答案: 【 访问第i个元素的前驱(1<i≤n)

15、单选题:
‍已知指针p和q分别指向某单链表中第一个结点和最后一个结点。假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为(   )。‎
选项:
A: q->next=s->next;s->next=p;
B: s->next=p;q->next=s->next;
C: p->next=s->next;s->next=q;
D: s->next=q;p->next=s->next;
答案: 【 q->next=s->next;s->next=p;

16、单选题:
‎在以下的叙述中,正确的是(   )。​
选项:
A: 线性表的顺序存储结构优于链表存储结构
B: 线性表的顺序存储结构适用于频繁插入/删除数据元素的情况
C: 线性表的链表存储结构适用于频繁插入/删除数据元素的情况
D: 线性表的链表存储结构优于顺序存储结构
答案: 【 线性表的链表存储结构适用于频繁插入/删除数据元素的情况

17、单选题:
‏在单链表中,指针p指向元素为x的结点,实现删除x的后继的语句是(   )。‌
选项:
A: p=p->next;
B: p->next=p->next->next;
C: p->next=p;
D: p=p->next->next;
答案: 【 p->next=p->next->next;

18、单选题:
‎在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入一个s所指结点,则执行(   )。​
选项:
A: s->next=p->next; p->next=s;
B: p->next=s->next;s->next=p;
C: q->next=s;s->next=p;
D: p->next=s;s->next=q;
答案: 【 q->next=s;s->next=p;

第三单元 特殊线性表

单元测试-特殊线性表

1、单选题:
‏一个栈的输入序列为:a,b,c,d,e,则栈的不可能输出的序列是(   )。&lrm

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

发表评论

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