第一章 单元测试

1、单选题:
在数据结构中,与所使用的计算机无关的是数据的( )结构。
选项:
A:存储
B:逻辑
C:物理与存储
D:物理
答案: 【逻辑

2、单选题:
在计算机中存储数据时,通常不仅要存储各数据元素的值,而且还要存储的( )。
选项:
A:数据元素之间的关系
B:数据元素的类型
C:数据的处理方法
D:都不对
答案: 【数据元素之间的关系

3、单选题:
链式存储设计时,结点内的存储单元地址( )。
选项:
A:部分连续,部分不连续
B:不一定连续
C:一定连续
D:一定不连续
答案: 【一定连续

4、单选题:
以下算法复杂度中,最小的是( )。
选项:
A:O(n!)
B:O(2^n)
C:O(nlogn)
D:O(n^2)
答案: 【O(nlogn)

5、单选题:
while(i<=n) i=i+2; 代码段的时间复杂度是( )
选项:
A:O(n)
B:O(nlogn)
C:O(1)
D:O(logn)
答案: 【O(n)

6、单选题:
某算法的时间复杂度为O(n^2),表明该算法 ( )
选项:
A:执行时间与n^2成正比
B:执行时间等于n^2
C:问题规模是n^2
D:问题规模与n^2成正比
答案: 【执行时间与n^2成正比

7、判断题:
算法必须满足有穷性( )
选项:
A:对
B:错
答案: 【

8、判断题:
在相同规模n下,复杂度为O(n)的算法在时间上优于复杂度为O(2^n)的算法( )
选项:
A:对
B:错
答案: 【

9、判断题:
求整数n(n>=0)的阶乘的算法如下,int fact(int n){ if(n<=1 return 1; Return n*fact(n-1);}其时间复杂度为O(nlogn)( )
选项:
A:错
B:对
答案: 【

10、单选题:
有下列算法片段,请分析算法的时间复杂度是( )void func(int n){ int i=0,s=0; while (s<=n) { i++; s=s+i; }}
选项:
A:O(logn)
B:O(sqrt(n))
C:O(n)
D:O(n^2)
答案: 【O(sqrt(n))

11、单选题:
以下代码段的时间复杂度是( )void fun(int k){ for(int i=1;i<=k;i*=2) printf(“%d ”,k);}int main(){ for(int i=0;i<n;i++) fun(i);}
选项:
A:O(nlogn)
B:O(n)
C:O(logn^2)
D:O(n^2)
答案: 【O(nlogn)

第二章 单元测试

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

2、单选题:
一个顺序表所占用的存储空间大小与( )无关。
选项:
A:元素的存放顺序
B:元素的类型
C:表的长度
D:元素中各字段的类型
答案: 【元素的存放顺序

3、单选题:
若线性表最常用的操作是存取第i个元素及其前驱和后继元素的值,为了提高效率,应采用( )的存储方式。
选项:
A:单循环链表
B:顺序表
C:双向链表
D:单链表
答案: 【顺序表

4、单选题:
对于顺序表,访问第i个位置的元素和在第i个位置插入一个元素的时间复杂度为( )。
选项:
A:O(n),O(n)
B:O(1), O(1)
C:O(n),O(1)
D:O(1), O(n)
答案: 【O(1), O(n)

5、单选题:
顺序表的插入算法中,当n个空间已满时,可再申请增加分配m 个空间,若申请失败,则说明系统没有( )可分配的存储空间。
选项:
A:n+m个连续
B:n+m个
C:m个连续
D:m个
答案: 【n+m个连续

6、单选题:
设线性表中有2n个元素,( )在单链表上实现要比在顺序表上实现效率更高。
选项:
A:交换第i个元素和第2 n - i -1 个元素的值(i=0,…,n-1)
B:顺序输出前k个元素
C:删除所有值为x 的元素
D:在最后一个元素的后面插入一个新元素
答案: 【删除所有值为x 的元素

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

8、单选题:
在双链表中向p 所指的结点之前插入一个结点q 的操作为( )。
选项:
A:p->prior->next=q; q->next=p;q->prior=p->prior;p->prior=q;
B:q->next=p;p->next=q;q->prior->next=q;q->next=p;
C:p->prior=q;q->next=p;p->prior->next=q;q->prior=p->prior;
D:q->prior=p->prior;p->prior->next=q;q->next=p;p->prior=q->next;
答案: 【p->prior->next=q; q->next=p;q->prior=p->prior;p->prior=q;

9、判断题:
线性表的顺序存储结构优于其链式存储结构。 ( )
选项:
A:错
B:对
答案: 【

10、判断题:
取线性表的第i个元素的时间与i 的大小有关( )
选项:
A:错
B:对
答案: 【

11、判断题:
线性表的逻辑顺序与存储顺序总是一致的。( )
选项:
A:错
B:对
答案: 【

12、判断题:
顺序存储方式存储密度大,但是插入、删除运算效率低。( )
选项:
A:对
B:错
答案: 【

13、判断题:
单链表中,增加一个头结点的目的是为了方便链表运算的实现。( )
选项:
A:错
B:对
答案: 【

发表评论

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