自考文学类真题汇总Word格式.docx
- 文档编号:16686845
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:146
- 大小:696.98KB
自考文学类真题汇总Word格式.docx
《自考文学类真题汇总Word格式.docx》由会员分享,可在线阅读,更多相关《自考文学类真题汇总Word格式.docx(146页珍藏版)》请在冰豆网上搜索。
},图G的拓扑序列是()
A.V1,V2,V3,V4B.V1,V3,V2,V4
C.V1,V3,V4,V2D.V1,V2,V4,V3
11.平均时间复杂度为O(nlogn)的稳定排序算法是()
A.快速排序B.堆排序
C.归并排序D.冒泡排序
12.已知关键字序列为(51,22,83,46,75,18,68,30),对其进行快速排序,第一趟划分完成后的关键字序列是()
A.(18,22,30,46,51,68,75,83)B.(30,18,22,46,51,75,83,68)
C.(46,30,22,18,51,75,68,83)D.(30,22,18,46,51,75,68,83)
13.某索引顺序表共有元素395个,平均分成5块。
若先对索引表采用顺序查找,再对块中元素进行顺序查找,则在等概率情况下,分块查找成功的平均查找长度是()
A.43B.79
C.198D.200
14.在含有10个关键字的3阶B-树中进行查找,至多访问的结点个数为()
A.2B.3
C.4D.5
15.ISAM文件系统中采用多级索引的目的是()
A.提高检索效率B.提高存储效率
C.减少数据的冗余D.方便文件的修改
二、填空题(本大题共10小题,每小题2分,共20分)
请在每小题的空格中填上正确答案。
错填、不填均无分。
16.数据结构由数据的逻辑结构、存储结构和数据的____________三部分组成。
17.在单链表中某结点后插入一个新结点,需要修改_______________个结点指针域的值。
18.设栈S的初始状态为空,若元素a、b、c、d、e、f依次进栈,得到的出栈序列是b、d、c、f、e、a,则栈S的容量至少是________________。
19.长度为零的串称为________________。
20.广义表G=(a,b,(c,d,(e,f)),G)的长度为________________。
21.一棵树T采用孩子兄弟链表存储,如果树T中某个结点为叶子结点,则该结点在二叉链表中所对应的结点一定是________________。
22.一个有n个顶点的无向连通图,最少有________________条边。
23.当待排关键字序列基本有序时,快速排序、简单选择排序和直接插入排序三种排序方法中,运行效率最高的是________________。
24.在一棵深度为h的具有n个结点的二叉排序树中,查找任一结点的最多比较次数是______________。
25.不定长文件指的是文件的____________大小不固定。
三、解答题(本大题共4小题,每小题5分,共20分)
26.已知一棵二叉排序树(结点值大小按字母顺序)的前序遍历序列为EBACDFHG,
请回答下列问题:
(1)画出此二叉排序树;
(2)若将此二叉排序树看作森林的二叉链表存储,请画出对应的森林。
27.已知有向图的邻接表如图所示,请回答下面问题:
(1)给出该图的邻接矩阵;
(2)从结点A出发,写出该图的深度优先遍历序列。
28.已知待排记录的关键字序列为{25,96,11,63,57,78,44},请回答下列问题:
(1)画出堆排序的初始堆(大根堆);
(2)画出第二次重建堆之后的堆。
29.已知关键字序列为(56,23,41,79,38,62,18),用散列函数H(key)=key%11将其散列到散列表HT[0..10]中,采用线性探测法处理冲突。
(1)画出散列存储后的散列表:
(2)求在等概率情况下查找成功的平均查找长度。
四、算法阅读题(本大题共4小题,每小题5分,共20分)
30.阅读下列程序。
voidf30(intA[],intn)
{
inti,j,m;
for(i=1;
i<
n;
i++)
for(j=0;
j<
i;
j++)
m=A[i*n+j];
A[i*n+j]=A[j*n+i];
A[j*n+i]=m;
}
回答下列问题:
(1)已知矩阵B=
,将其按行优先存于一维数组A中,给出执行函数调
用f30(A,3)后矩阵B的值;
(2)简述函数f30的功能。
31.假设以二叉链表表示二叉树,其类型定义如下:
typedefstructnode{
chardata;
structnode*Ichild,*rchild;
∥左右孩子指针
}*BinTree;
阅读下列程序。
voidf31(BinTreeT)
InitStack(S);
∥初始化一个堆栈S
while(T||!
StackEmpty(S)
while(T)
Push(S,T);
T=T->
lchild;
if(!
StackEmpty(S))
T=Pop(S);
printf(“%c”,T->
data);
rchild;
(1)已知以T为根指针的二叉树如图所示,
请写出执行f31(T)的输出结果:
(2)简述算法f31的功能。
32.阅读下列程序。
voidf32(intA[],intn)
inti,j,m=l,t;
for(i=0;
i<
n-l&
&
m;
i++)
j<
j++)
printf(“%d”,A[j]);
printf(“\n”);
m=0:
for(j=1;
n-i;
if(A[j-1]>
A[j])
t=A[j-l];
A[j-1]=A[j];
A[j]=t;
m=1;
回答问题:
已知整型数组A[]={34,26,15,89,42},写出执行函数调用f32(A,5)后的输出结果。
33.已知顺序表的表结构定义如下:
#defineMAXLEN100
typedefintKeyType;
typedefstruct{
KeyTypekey;
InfoTypeotherinfo;
}NodeType;
typedefNodeTypeSqList[MAXLEN];
Intf33(SqListR,NodeTypeX,intp,intq)
{intm;
if(p>
q)return-1;
m=(p+q)/2;
if(R[m].key==X.key)returnm;
if(R[m].key>
X.key)returnf33(R,X,p,m-l);
elsereturnf33(R,X,m+l,q);
(1)若有序的顺序表R的关键字序列为(2,5,13,26,55,80,105),分别写出X.key=18和X.key=26时,执行函数调用f33(R,X,0,6)的函数返回值。
(2)简述算法f33的功能。
五、算法设计题(本题10分)
34.假设用带头结点的单循环链表表示线性表,单链表的类型定义如下:
intdata;
structnode*next;
}LinkNode,*LinkList;
编写程序,求头指针为head的单循环链表中data域值为正整数的结点个数占结点总数的比例,若为空表输出0,并给出所写算法的时间复杂度。
函数原型为:
floatf34(LinkListhead):
全国2010年10月高等教育自学考试
数据结构试题
课程代码:
02331
1.数据的四种存储结构是()
A.顺序存储结构、链接存储结构、索引存储结构和散列存储结构
B.线性存储结构、非线性存储结构、树型存储结构和图型存储结构
C.集合存储结构、一对一存储结构、一对多存储结构和多对多存储结构
D.顺序存储结构、树型存储结构、图型存储结构和散列存储结构
2.若对某线性表最常用的操作是在最后一个结点之后插入一个新结点或删除最后一个结点,要使操作时间最少,下列选项中,应选择的存储结构是()
A.无头结点的单向链表B.带头结点的单向链表
C.带头结点的双循环链表D.带头结点的单循环链表
3.若带头结点的单链表的头指针为head,则判断链表是否为空的条件是()
A.head=NULLB.head->
next=NULL
C.head!
=NULLD.head->
next!
=head
4.若元素的入栈顺序为1,2,3....,n,如果第2个出栈的元素是n,则输出的第i(1<
=i<
=n)个元素是()
A.n-iB.n-i+l
C.n-i+2D.无法确定
5.串匹配算法的本质是()
A.串复制B.串比较
C.子串定位D.子串链接
6.设有一个10阶的对称矩阵A,采用行优先压缩存储方式,a11为第一个元素,其存储地址为1,每个元素占一个字节空间,则a85的地址为()
A.13B.18
C.33D.40
7.若一棵二叉树的前序遍历序列与后序遍历序列相同,则该二叉树可能的形状是()
A.树中没有度为2的结点B.树中只有一个根结点
C.树中非叶结点均只有左子树D.树中非叶结点均只有右子树
8.若根结点的层数为1,则具有n个结点的二叉树的最大高度是()
A.nB.
C.+1D.n/2
9.在图G中求两个结点之间的最短路径可以采用的算法是()
A.迪杰斯特拉(Dijkstra)算法B.克鲁斯卡尔(Kruskal)算法
C.普里姆(Prim)算法D.广度优先遍历(BFS)算法
10.下图G=(V,E)是一个带权连通图,G的最小生成树的权为()
A.15
B.16
C.17
D.18
11.在下图中,从顶点1出发进行深度优先遍历可得到的序列是()
A.1234567
B.1426375
C.1425367
D.1246537
12.如果在排序过程中不改变关键字相同元素的相对位置,则认为该排序方法是()
A.不稳定的B.稳定的
C.基于交换的D.基于选择的
13.设有一组关键字(19,14,23,1,6,20,4,27,5,11,10,9),用散列函数H(key)=key%13构造散列表,用拉链法解决冲突,散列地址为1的链中记录个数为()
A.1B.2
C.3D.4
14.已知二叉树结点关键字类型为字符,下列二叉树中符合二叉排序树性质的是()
15.若需高效地查询多关键字文件,可以采用的文件组织方式为()
A.顺序文件B.索引文件
C.散列文件D.倒排文件
请每小题的空格中填上正确答案。
16.下面程序段的时间复杂度为___________。
sum=1;
for(i=0;
sum<
n;
sum+=1;
17.已知链表结点定义如下:
typedefstructnode{
chardata[16];
structnode*next;
}LinkStrNode;
如果每个字符占1个字节,指针占4个字节,则该链表的存储密度是___________。
18.使用一个100个元素的数组存储循环队列,如果采取少用一个元素空间的方法来区别循环队列的队空和队满,约定队头指针front等于队尾指针rear时表示队空。
若为front=8,rear=7,则队列中的元素个数为___________。
19.3个结点可以组成___________种不同树型的二叉树。
20.用5个权值{3,2,4,5,1}构造的哈夫曼(Huffman)树的带权路径长度是___________。
21.若无向图G中有n个顶点m条边,采用邻接矩阵存储,则该矩阵中非0元素的个数为___________。
22.影响排序效率的两个因素是关键字的___________次数和记录的移动次数。
23.对任一m阶的B树,每个结点中最多包含___________个关键字。
24.若两个关键字通过散列函数映射到同一个散列地址,这种现象称为___________。
25.如果要为文件中的每个记录建立一个索引项,则这样建立的索引表称为___________。
26.要在[0..n-l]的向量空间中建立两个栈stackl和stack2,请回答:
(1)应该如何设计这两个栈才能充分利用整个向量空间?
(2)若stackl的栈顶指针为topl,stack2的栈顶指针为top2,如果需要充分利用整个向量空间,则:
栈stackl空的条件是:
___________;
栈stack2空的条件是:
栈stackl和栈stack2满的条件是:
___________。
27.已知广义表如下:
A=(B,y)
B=(x,L)
L=(a,b)
要求:
(1)写出下列操作的结果
tail(A)=_______________.
head(B)=______________。
(2)请画出广义表A对应的图形表示。
28.已知二叉树如下:
请画出该二叉树对应的森林。
29.请回答下列问题:
(1)英文缩写DAG的中文含义是什么?
(2)请给出下面DAG图的全部拓扑排序。
30.已知线性表(a1,a2,a3...,an)按顺序存放在数组a中,每个元素均为整数,下列程序的功能是将所有小于0的元素移到全部大于等于0的元素之前。
例如,有7个整数的原始序列为(x,x,-x,-x,x,x,-x),变换后数组中保存的序列是(-x,-x,-x,x,x,x,x)。
请在程序处填入合适的内容,使其成为完整的算法。
f30(inta[],intn)
{intk,m,temp;
m=
(1);
while(a[m]<
0&
m<
n)
m=
(2);
k=m;
while(k<
{while(a[k]>
=0&
k<
k=(3);
if(k<
{temp=a[k];
a[k]=a[m];
a[m]=(4);
m=(5);
(1)
(2)
(3)
(4)
(5)
31.阅读下列程序,并回答问题:
#include<
stdio.h>
substr(char*t,char*s,intpos,intlen)
{while(len>
0&
*s)
{*t=*(s+pos-l);
t++;
s++;
len--;
*t='
\0'
;
char*f31(char*s)
{chart[100];
if(strlen(s)=1)
returns;
substr(t,s,1,1);
substr(s,s,2,strlen(s)-1);
f31(s);
returnstrcat(s,t);
main()
{charstr[100]='
'
String'
printf('
%s\n'
f31(str));
(1)请写出执行该程序后的输出结果;
(2)简述函数f31的功能。
32.下面程序实现插入排序算法。
typedefstruct{
intkey;
Infootherinfo;
}SeqList;
voidInsertSort(SeqListR[],intn)
{/*待排序列保存在R[1..n]中*/
SeqListx;
inti,j,k,lo,hi,mi;
for(i=2;
=n;
(1);
lo=1;
hi=i-l;
while(lo<
=hi)
mi=(lo+hi)/2;
if(
(2))break;
if(R[mi].key>
x.key)hi=mi-l;
elselo=mi+l;
if(mi=lo)k=i-mi;
elsek=i-mi-1;
k;
(3);
R[i-j]=x;
在空白处填写适当的内容,使该程序功能完整。
33.设有单链表类型定义如下:
}*LinkList;
阅读下列算法,并回答问题:
voidf33(LinkListhead,intA,intB)
LinkListp=NULL;
While(head!
=NULL)
if(head->
data>
A&
head->
data<
B)
p=head;
head=head->
next;
if(p!
printf("
%d\n"
p->
(1)已知链表h如下图所示,给出执行f33(h,5,8)之后的输出结果;
34.已知二叉树的定义如下:
structnode*lchild,*rchild;
}*Bitptr;
编写递归算法求二叉树的高度。
intf34(Bitptrt);
全国2010年1月高等教育自学考试
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
1.若一个算法的时间复杂度用T(n)表示,其中n的含义是()
A.问题规模B.语句条数
C.循环层数D.函数数量
2.具有线性结构的数据结构是()
A.树B.图
C.栈和队列D.广义表
3.将长度为n的单链表连接在长度为m的单链表之后,其算法的时间复杂度为()
A.O
(1)B.O(m)
C.O(n)D.O(m+n)
4.在带头结点的双向循环链表中插入一个新结点,需要修改的指针域数量是()
A.2个B.3个.
C.4个D.6个
5.假设以数组A[60]存放循环队列的元素,其头指针是front=47,当前队列有50个元素,则队列的尾指针值为()
A.3B.37
C.50D.97
6.若栈采用链式存储结构,则下列说法中正确的是()
A.需要判断栈满且需要判断栈空
B.不需要判断栈满但需要判断栈空
C.需要判断栈满但不需要判断栈空
D.不需要判断栈满也不需要判断栈空
7.若串str=”Software”,其子串的数目是()
A.8B.9
C.36D.37
8.设有一个10阶的下三角矩阵A,采用行优先压缩存储方式,all为第一个元素,其存储地址为1000,每个元素占一个地址单元,则a85的地址为()
A.1012B.1017
C.1032D.1039
9.允许结点共享的广义表称为()
A.纯表B.线性表
C.递归表D.再入表
10.下列数据结构中,不属于二叉树的是()
A.B树B.AVL树
C.二叉排序树D.哈夫曼树
11.对下面有向图给出了四种可能的拓扑序列,其中错误的是()
A.1,5,2,6,3,4B.1,5,6,2,3,4
C.5,1,6,3,4,2D.5,1,2,6,4,3
12.以v1为起始结点对下图进行深度优先遍历,正确的遍历序列是()
A.v1,v2,v3,v4,v5,v6,v7B.v1,v2,v5,v4,v3,v7,v6
C.v1,v2,v3,v4,v7,v5,v6D.v1,v2,v5,v6,v7,v3,v4
13.下列排序算法中不稳定的是()
A.快速排序B.归并排序
C.冒泡排序D.直接插入排序
14.一个有序表为(1,3,9,12,32,41,45,62,75,77,82,95,100),当采用折半查找方法查找值32时,查找成功需要的比较次数是()
A.2B.3
C.4D.8
15.采用ISAM组织文件的方式属于()
A.链组织B.顺序组织
C.散列组织D.索引组织
请在每小题的空格中填上正确答案。
16.数据元素及其关系在计算机存储器内的表示称为_________。
17.长度为n的线性表采用单链表结构存储时,在等概率情况下查找第i个元素的时间复杂度是_________。
18.下面是在顺序栈上实现的一个栈基本操作,该操作的功能是_________。
typedefstruct{
DataTypedata[100]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自考 文学 类真题 汇总