完整word版中国石油大学数据结构试题及答案Word格式.docx
《完整word版中国石油大学数据结构试题及答案Word格式.docx》由会员分享,可在线阅读,更多相关《完整word版中国石油大学数据结构试题及答案Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
![完整word版中国石油大学数据结构试题及答案Word格式.docx](https://file1.bdocx.com/fileroot1/2022-10/24/b143d649-46d6-4167-81ed-2fd7a22fd714/b143d649-46d6-4167-81ed-2fd7a22fd7141.gif)
5、如果想在4092个数据中只需要选择其中最小的5个,采用()方法最好。
A起泡排序B堆排序C锦标赛排序D快速排序
6、设有两个串t和p,求p在t中首次出现的位置的运算叫做()。
A求子串B模式匹配C串替换D串连接
7、在数组A中,每一个数组元素A[i][j]占用3个存储字,行下标i从1到8,列下标j从1到10。
所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储字数是()。
A80B100C240D270
8、将一个递归算法改为对应的非递归算法时,通常需要使用()。
A栈B队列C循环队列D优先队列
9、一个队列的进队列顺序是1,2,3,4,则出队列顺序为()。
10、在循环队列中用数组A[0..m-1]存放队列元素,其队头和队尾指针分别为front和rear,则当前队列中的元素个数是()。
A(front-rear+1)%mB(rear-front+1)%m
C(front-rear+m)%mD(rear-front+m)%m
11、一个数组元素a[i]与()的表示等价。
A*(a+i)Ba+iC*a+iD&
a+i
12、若需要利用形参直接访问实参,则应把形参变量说明为()参数。
A指针B引用C值D变量
13、下面程序段的时间复杂度为()
for(inti=0;
i<
m;
i++)
for(intj=0;
j<
n;
j++)
a[i][j]=i*j;
AO(m2)BO(n2)CO(m*n)DO(m+n)
14、下面程序段的时间复杂度为()
intf(unsignedintn){
if(n==0||n==1)return1;
elsereturnn*f(n-1);
}
AO
(1)BO(n)CO(n2)DO(n!
)
15、线性表若是采用链式存储结构时,要求内存中可用存储单元的地址()。
A必须是连续的
B
部分地址必须是连续的
C一定是不连续的
D
连续或不连续都可以
16、数据结构的定义为(D,S),其中D是()的集合。
A算法B数据元素C数据操作D逻辑结构
17、算法分析的目的是()。
A
找出数据结构的合理性
B
研究算法中输入和输出的关系
C
分析算法的效率以求改进
D
分析算法的易懂性和文档性
18、在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行()。
As->
link=p;
p->
link=s;
Bs->
link=p->
link;
Cs->
p=s;
Dp->
s->
19、设单链表中结点结构为(data,link).已知指针q所指结点是指针p所指结点的直接前驱,若在*q
与*p之间插入结点*s,则应执行下列哪一个操作()
p->
Bq->
s->
link=p
Cp->
link=s->
Dp->
link=q;
20、设单链表中结点结构为(data,link).若想摘除结点*p的直接后继,则应执行下列哪一个操作()
Ap->
link->
Bp=p->
Dp=p->
21、设单循环链表中结点的结构为(data,link),且rear是指向非空的带表头结点的单循环链表的尾结点的指针。
若想删除链表第一个结点,则应执行下列哪一个操作(D)
As=rear;
rear=rear->
deletes;
Brear=rear->
deleterear;
Crear=rear->
Ds=rear->
rear->
s为第一个结点硫
22、设单循环链表中结点的结构为(data,link),且first为指向链表表头的指针,current为链表当前指针,在循环链表中检测current是否达到链表表尾的语句是(D)。
Acurrent->
link=nullBfirst->
link=current
Cfirst=currentDcurrent->
link=first
?
23、一个栈的入栈序列为a,b,c,则出栈序列不可能的是(C)。
A
c,b,aBb,a,cCc,a,bDa,c,b
24、栈的数组表示中,top为栈顶指针,栈空的条件是(A)。
top=0Btop=maxSizeC
top=maxSizeDtop=-1
25、栈和队列的共同特点是(C)。
都是先进后出B都是先进先出
只允许在端点处插入和删除D没有共同点
26、假定一个顺序存储的循环队列的队头和队尾指针分别为f和r,则判断队空的条件为(D).
Af+1==rBr+1==fCf==0Df==r
27、当利用大小为n的数组顺序存储一个队列时,该队列的最大长度为(B)
An-2Bn-1CnDn+1
28、当利用大小为n的数组顺序存储一个栈时,假定用top==n表示栈空,则向这个栈插入一个元素时,首先应执行()语句修改top指针。
Atop++;
Btop--;
Ctop=0;
Dtop;
29、设链式栈中结点的结构为(data,link),且top是指向栈顶的指针。
若想摘除链式栈的栈顶结点,并将被摘除结点的值保存到x中,则应执行下列(A)操作。
Ax=top->
data;
top=top->
Btop=top->
x=top->
Cx=top;
Dx=top->
30、设循环队列的结构是:
constintMaxsize=100;
typedefintDataType;
typedefstruct{
DataTypedata[Maxsize];
Intfront,rear;
}Queue;
若有一个Queue类型的队列Q,试问判断队列满的条件应是下列哪一个语句(D)
AQ.front==Q.rear;
BQ.front-Q.rear==Maxsize;
CQ.front+Q.rear==Maxsize;
DQ.front==(Q.rear+1)%Maxsize;
31、设有一个递归算法如下:
intfact(intn)
{if(n<
=0)return1;
elsereturnn*fact(n-1);
}
下面正确的叙述是(B)
A计算fact(n)需要执行n次递归Bfact(7)=5040
C此递归算法最多只能计算到fact(8)D以上结论都不对
32、设有一个递归算法如下
intx(intn){
if(n<
=3)return1;
elsereturnx(n-2)+x(n-4)+1;
试问计算x(x(8))时需要计算(D)次x函数。
A8次B9次C16次D18次
33、设有广义表D(a,b,D),其长度为(B),深度为(A)
A∞B3C2D5
34、广义表A(a),则表尾为(C)
AaB(())C空表D(a)
35、下列广义表是线性表的有(C)
AE(a,(b,c))BE(a,E)CE(a,b)DE(a,L())
36、递归表、再入表、纯表、线性表之间的关系为(C)
A再入表>
递归表>
纯表>
线性表B递归表>
线性表>
再入表>
纯表
C递归表>
线性表D递归表>
纯表
37、某二叉树的前序和后序序列正好相反,则该二叉树一定是( B )的二叉树。
A空或只有一个结点 B高度等于其结点数
C任一结点无左孩子 D任一结点无右孩子
38、对于任何一棵二叉树T,如果其终端结点数为n0,度为2的结点为n2.,则(A)
An0=n2+1Bn2=n0+1Cn0=2n2+1Dn2=2n0+1
39、由权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为(B)
A24B73C48D53
40、已知一个顺序存储的线性表,设每个结点需占m个存储单元,若第一个结点的地址为da1,则第I个结点的地址为( A )。
Ada1+(I-1)*m Bda1+I*m Cda1-I*m Dda1+(I+1)*m
41、34具有35个结点的完全二叉树的深度为(A)
A5B6C7D8
42、对线性表进行折半搜索时,要求线性表必须(C)
A以链接方式存储且结点按关键码有序排列B以数组方式存储
C以数组方式存储且结点按关键码有序排列D以链接方式存储
43、顺序搜索算法适合于存储结构为(B)的线性表。
A散列存储B顺序存储或链接存储
C压缩存储D索引存储
44、采用折半搜索算法搜索长度为n的有序表时,元素的平均搜索长度为(C)
AO(n2)BO(nlog2n)CO(log2n)DO(n)
45、对于一个具有n个顶点和e条边的无向图,进行拓扑排序时,总的时间为(A)
AnBn+1