第一章 单元测试

1、单选题:

数据在计算机内存中的表示是指()

A:数据结构
B:数据的存储结构
C:数据元素之间的关系

D:数据的逻辑结构
正确答案:【数据的存储结构】

2、单选题:

算法指的是()

A:排序算法
B:解决问题的计算方法
C:解决问题的有限运算序列

D:计算机程序

正确答案:【解决问题的有限运算序列

3、单选题:

在数据结构中,与所使用的计算机无关的数据结构是()

A:逻辑结构

B:存储结构
C:逻辑结构和存储结构
D:物理结构
正确答案:【逻辑结构

4、单选题:

算法能正确地实现预定功能的特性称为算法的()。

A:健壮性
B:正确性
C:高效性
D:可读性
正确答案:【正确性】

5、单选题:已知某算法的执行时间为(n+n2)log2(n+2),n为问题规模,则该算法的时间复杂度是(  )。
A:O(n^2)
B:O(nlogn)
C:O((n+n^2)logn)
D:O(n^2logn)
正确答案:【O(n^2logn)】

6、单选题:下面算法将一维数组a中的数据逆序存放到原数组中,空间复杂度为()。

for(i=0;i<n;i++)    b[i] = a[n-i-1];for(i=0;i<n;i++)     a[i] = b[i];

A:O(logn)
B:O(1)

C:O(n2)

D:O(n)
正确答案:【O(n)】

第二章 单元测试

1、单选题:

链表不具备的特点是(  )。

A:插入和删除不需要移动任何元素

B:可随机访问任意一个结点

C:不必事先估计存储空间

D:所需空间与其长度成正比

正确答案:【可随机访问任意一个结点

2、判断题:线性表的顺序存储表示优于链式存储表示。
A:错
B:对
正确答案:【错】

3、判断题:顺序存储结构的缺点是不便于修改,插入和删除需要移动很多结点。
A:错
B:对
正确答案:【对】

4、单选题:在设头、尾指针的单链表中,与长度n有关的操作是( )。
A:在第一个结点之前插入一个结点
B:在p结点之后插入一个结点
C:删除第一个结点
D:删除最后一个结点
正确答案:【删除最后一个结点】

5、单选题:设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B间插入结点X的操作序列为( )。
A:q->next=s; s->next=p;
B:s->next=p->next;p->next=-s;
C:p->next=s->next;s->next=p;
D:p->next=s;s->next=q;
正确答案:【q->next=s; s->next=p;】

6、单选题:对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为( )。
A:用头指针表示的循环单链表
B:单链表
C:顺序表
D:用尾指针表示的循环单链表
正确答案:【用尾指针表示的循环单链表】

7、单选题:在一个单链表中,若p所指节点不是最后节点,在p之后插入s所指节点,则执行( )。
A:s->link=p->link;p=s;
B:p->link=s;s->link=p;
C:s->link=p;p->link=s;
D:s->link=p->link;p->link=s;
正确答案:【s->link=p->link;p->link=s;】

8、单选题:在双向链表存储结构中,删除p所指的结点时须修改指针( )。
A:p->prior->next=p; p->prior=p->prior->prior;
B:p->prior=p->next->next; p->next=p->prior->prior;
C:p->next=p->next->next; p->next->prior=p;
D:p->next->prior=p->prior; p->prior->next=p->next;
正确答案:【p->next->prior=p->prior; p->prior->next=p->next;】

9、单选题:若事先不知道线性表的长度,则处理线性表时较好的存储结构是( )。
A:顺序表
B:静态链表
C:B和C
D:单链表
正确答案:【单链表】

10、单选题:向一个有127个元素的顺序表中插入一个新元素并保存,原来顺序不变,平均要移动( )个元素。
A:8
B:63
C:63.5
D:7
正确答案:【63.5】

11、单选题:某线性表采用顺序存储结构,每个元素占4个存储单元,首地址为100,则第12个元素的存储地址为( )。
A:145
B:147
C:144
D:148
正确答案:【144】

12、单选题:在一个以 h 为头的单循环链表中,p 指针指向链尾的条件是( )。
A:p->next == h
B:p->next == NULL
C:p->next->next == h
D:p->data == -1
正确答案:【p->next == h】

13、单选题:在表头指针为head 且表长大于1的单向循环链表中,指针p 指向表中的某个结点,若p->next->next=head,则( )。
A:*p的直接后继是头结点
B:*p的直接后继是尾结点
C:p指向尾结点
D:p指向头结点
正确答案:【*p的直接后继是尾结点】

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

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

16、单选题:可以用带表头结点的链表表示线性表,也可以用不带表头结点的链表表示线性表,前者最主要的好处是( )。
A:可以提高存取元素的速度
B:节省存储空间
C:使空表和非空表的处理统一
D:可以加快对表的遍历
正确答案:【使空表和非空表的处理统一】

17、单选题:与单链表相比,双向链表的优点之一是(   )。
A:顺序访问相邻结点更加灵活
B:可以省略表头指针或表尾指针
C:可以随机访问
D:插入、删除操作更加简单
正确答案:【顺序访问相邻结点更加灵活】

18、单选题:如果最常用的操作是取第i个结点及其前驱,最节省时间的存储方式(   )。
A:单链表
B:顺序表
C:双向链表
D:单循环链表
正确答案:【顺序表】

19、单选题:线性链表不具有的特点是(  )。
A:插入与删除时不必移动元素
B:所需空间与线性表长度成正比
C:不必事先估计所需存储空间大小
D:随机访问
正确答案:【随机访问】

20、单选题:对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的。插入一个元素时平均要移动表中的( )个元素。
A:(n+1)/2
B:n/2
C:n
D:(n-1)/2
正确答案:【n/2】

21、判断题:链表是采用链式存储结构的线性表,进行插入、删除操作时,在链表中比在顺序存储结构中效率高。
A:对
B:错
正确答案:【对】

22、单选题:在一个带头结点的双向循环链表中,若要在p所指向的结点之前插入一个新结点,则需要相继修改(   )个指针域的值。
A:2
B:3
C:4
D:5
正确答案:【4】

23、判断题:具有线性关系的集合中,若a,b是集合中的任意两个元素,则必有a<b的关系。
A:对
B:错
正确答案:【错】

第三章 单元测试

1、单选题:

设abcdef以所给次序进栈,若在进栈操作时允许退栈,则下列得不到的序列为()

A:fedcba
B:bcafed
C:dcefba
D:cabdef
正确答案:【cabdef】

2、单选题:

若已知一个栈的进栈序列是1,2,3……n,其输出序列是p1,p2,p3,pn 若p1=3,

则p2为()

A:可能是1

B:可能是2

C:一定是1
D:一定是2
正确答案:【可能是2

3、单选题:

假定循环队列的队首和队尾指针分别为front和rear,则判断队满的条件为()。

A:front = = 0
B:front= =rear
C:front+1 = = rear
D:(rear+1) mod MAXSIZE = = front
正确答案:【(rear+1) mod MAXSIZE = = front】

4、判断题:队列和栈都是运算受限的线性表,只允许在表的两端进行运算。
A:对
B:错
正确答案:【对】

5、单选题:

循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素数是(      )。

A:(rear-front+m)%m
B:rear-front-1
C:rear-front
D:rear-front+1
正确答案:【(rear-front+m)%m】

6、判断题:不论栈是用数组实现,还是用链表实现,入栈和出栈的时间复杂度均为O(n)。
A:对
B:错
正确答案:【错】

7、单选题:

若栈采用顺序存储方式存储,两栈共享空间A[1..m],top[i]代表第i个栈(i=1, 2)的栈顶,栈1的底在A[1],栈 2的底在A[m],则栈满的条件是()。

A:top[1]+top[2]=m

B:|top[2]-top[1]|=0

C:top[1]=top[2]

D: top[1]+1=top[2]

正确答案:【 top[1]+1=top[2]

8、单选题:

输入序列为ABC,若出栈的顺序为CBA时,经过的栈操作为(  ) 。

A:push,push,pop,pop,push,pop
B:push,pop,push,push,pop,pop
C:push,pop,push,pop,push,pop
D:push,push,push,pop,pop,pop
正确答案:【push,push,push,pop,pop,pop】

9、单选题:

链栈与顺序栈相比,有一个比较明显的优点是()。

A:会出现栈空的情况
B:删除操作更方便
C: 插入操作更方便
D:通常不会出现栈满的情况
正确答案:【通常不会出现栈满的情况】

10、单选题:

设计一个判别表达式中左,右括号是否配对出现的算法,采用()数据结构最佳。

A:线性表的顺序存储结构
B:队列
C:线性表的链式存储结构
D:栈
正确答案:【栈】

11、单选题:某队列允许在其两端进行入队操作,但只允许在一端进行出队操作,若有元素a, b, c, d, e依次入队后再进行出队操作,则不可能得到的出队序列是()。
A:b,a,c,d,e
B:d,b,c,a,e
C:e,c,b,a,d
D:d,b,a,c,e
正确答案:【d,b,c,a,e】

12、单选题:有如下递归算法:

int fact(int n){//n大于等于0    if(n<=0)  return 1;    else        return n*fact(n-1);}

则计算fact(n)需调用该函数的次数是()。
A:n+1
B:n
C:n-1
D:n+2
正确答案:【n+1】

13、单选题:

设有一个递归算法如下

int fact(int n) {  //n大于等于0

if(n<=0) return 1;

else return n*fact(n-1);        }则计算fact(n)需要调用该函数的次数为(  )。

A:n-1

B:n
C:n+1
D:n+2

正确答案:【n+1】

14、单选题:

(  )的一个重要应用是在程序设计语言中实现递归。

A:栈
B:顺序表
C:队列
D:数组
正确答案:【栈】

15、判断题:通常使用队列来处理函数或过程的调用。
A:错
B:对
正确答案:【错】

16、判断题:栈和队列的存储方式,既可以是顺序方式,又可以是链式方式
A:错
B:对
正确答案:【对】

17、单选题:若已知一队列用单向链表表示,该单向链表的当前状态(含3个对象)是:1->2->3,其中x->y表示x的下一节点是y。此时,如果将对象4入队,然后队列头的对象出队,则单向链表的状态是:( )。
A:1->2->3
B:状态不唯一
C:4->1->2
D:2->3->4
正确答案:【2->3->4】

第四章 单元测试

1、单选题:设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第1个元素,其存储地址为1,每个元素占用1个地址空间,则a85的地址为()。
A:

40

B:

33

C:

18

D:

13

正确答案:【

33

2、单选题:

对于以行为主序的存储结构来说.在数组A[c1..d1,c2..d2]中,c1和d1分别为数组A的第一维下标的下、上界,c2和d2分别为第二维下标的下、上界.每个数据元素占k个存储单元,二维数组中任一元素a[i,j]的存储位置可由(    )确定。

A:Loc[i,j]=[(d2-c2+1)(i-c1)+(j-c2)] ×k
B: Loc[i,j]=A[c1,c2]+[(d2-c2+1)(i-c1)+(j-c2)] ×k
C: Loc[i,j]=Loc[0,0]+[(d2-c2+1)(i-c1)+(j-c2)] ×k
D:Loc[i,j]=[Loc[c1,c2]+[(d2-c2+1)(i-c1)+(j-c2)] ×k
正确答案:【Loc[i,j]=[Loc[c1,c2]+[(d2-c2+1)(i-c1)+(j-c2)] ×k】

3、单选题:

A[N,N]是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组T[N(N+1)/2]中,则对任一上三角元素a[i][j]对应T[k]的下标k是

A: j(j-1)/2+i
B:i(i-1)/2+j
C: j(i-1)/2+1
D: i(j-i)/2+1
正确答案:【 j(j-1)/2+i 】

4、单选题:

对矩阵压缩存储是为了()

A:提高运算速度
B:减少存储空间
C:方便运算
D:方便存储
正确答案:【减少存储空间 】

5、判断题:操作取广义表的表尾就是将广义表中最后一个元素值返回。
A:错
B:对
正确答案:【错】

6、判断题:若广义表S的表头是空表,则S是一个空表。
A:错
B:对
正确答案:【错】

7、单选题:下面说法不正确的是()。
A:广义表可以看作是一个多层次结构
B:广义表的表尾总是一个广义表
C:广义表的表头总是一个广义表
D:广义表难以用顺序存储结构实现
正确答案:【广义表的表头总是一个广义表】

8、单选题:

有一个10阶的对称矩阵A,采用压缩存储方式以行序为主序存储,A[1][1]为第一元素,其存储地址为1,每个元素占一个地址空间,则A[7][5]和A[5][6]的存储地址分别为()

A:26  25
B:40  32
C:25 20
D:26  22
正确答案:【26  25】

9、单选题:

GetHead (  (p,h,w)  ) =

A:(h,w)
B:(p)
C:p
D:()
正确答案:【p】

10、单选题:已知广义表L=((x,y,z),a,(u,t,w)),从L表中取出原子项t的运算是(    )。

A:tail(head(head(tail(L))))
B:head(tail(head(tail(L))))
C:head(tail(head(tail(tail(L)))))

D:head(tail(tail(L)))
正确答案:【head(tail(head(tail(tail(L)))))

第五章 单元测试

1、单选题:

二叉树是非线性数据结构,所以       

A:顺序存储结构和链式存储结构都不能使用

B:顺序存储结构和链式存储结构都能存储

C:它不能用链式存储结构存储

D:它不能用顺序存储结构存储

正确答案:【顺序存储结构和链式存储结构都能存储

2、判断题:

二叉树中所有结点个数是2k-1-1,其中k是树的深度。

A:错
B:对
正确答案:【错】

3、判断题:

二叉树中每个结点有两棵非空子树或有两棵空子树。

剩余章节答案支付后查看
如有疑问请及时联系QQ 50895809反馈
如遇卡顿看不了剩余内容请换个浏览器即可打开

没找到的科目也可以提醒我们更新

发表回复

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