史朝阳数据结构C语言A卷.docx
- 文档编号:8799813
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:10
- 大小:21.30KB
史朝阳数据结构C语言A卷.docx
《史朝阳数据结构C语言A卷.docx》由会员分享,可在线阅读,更多相关《史朝阳数据结构C语言A卷.docx(10页珍藏版)》请在冰豆网上搜索。
史朝阳数据结构C语言A卷
郑州大学软件技术学院
《数据结构(C语言)》课程
2015-2016学年第一学期期末试题A卷
(适用专业:
2014级网络工程专业考试时间:
120分钟)
题号
一
二
三
四
五
总分
分数
合分人:
复查人:
一、单选题:
(每题2分,共30分)
(说明:
将答案写在试卷后面的答题纸上)
分数
评卷人
第1题.数据结构是研究()的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。
A.数值计算B.非数值计算
C.数值加减运算D.数值乘除运算
第2题.数据元素是()。
A.对客观事物的符号表示。
B.不可分割的最小数据单位。
C.数据的基本单位,在计算机程序中通常作为一整体进行考虑和处理。
D.性质相同的数据元素的集合,数据的一个子集。
第3题.数据结构的形式化定义为:
数据结构是一个二元组
Data_Structure=(D,S);其中S表示()。
A.D上关系的有限集B.数据项
C.数据D.数据元素的有限集
第4题.数据的两种存储结构是指()。
A.层次结构和树形结构。
B.集合结构和线性结构。
C.线性结构和树形结构。
D.顺序结构和链式结构。
第5题.抽象数据类型可以用以下三元组表示:
ADT=(D,S,P);
其中P是指()。
A.D上的关系有限集B.S上的关系有限集
C.对D的基本操作集D.对S的基本操作集
第6题.一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有穷时间内完成,这个性质是指算法的()。
A.有穷性B.确定性C.可行性D.输入输出
第7题.在n个结点的顺序表中,算法的时间复杂度是O
(1)的操作是:
()。
A.访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)
B.在第i个结点后插入一个新结点(1≤i≤n)
C.删除第i个结点(1≤i≤n)
D.将n个结点从小到大排序
第8题.向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动()个元素
A.8B.63.5C.63D.7
第9题.线性表L在()情况下适用于使用链式结构实现。
A.需经常修改L中的结点值B.需不断对L进行删除插入
C.L中含有大量的结点D.L中结点结构复杂
第10题.链接存储的存储结构所占存储空间()。
A.分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
B.只有一部分,存放结点值
C.只有一部分,存储表示结点间关系的指针
D.分两部分,一部分存放结点值,另一部分存放结点所占单元数
第11题.设a1、a2、a3为3个结点,整数P0,3,4代表地址,则如下的链式存储结构称为()。
P0
3
4
P0
a1
3
a2
4
A3
0
A.循环链表B.单链表C.双向循环链表D.双向链表
第12题.栈中元素的进出原则是()。
A.先进先出B.后进先出C.栈空则进D.栈满则出
第13题.若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为()。
A.iB.n=iC.n-i+1D.不确定
第14题.判定一个栈ST(最多元素为m0)为空的条件是()。
A.ST->top<>0B.ST->top=0
C.ST->top<>m0D.ST->top=m0。
第15题.判定一个队列QU(最多元素为m0)为满队列的条件是()。
A.QU->rear-QU->front==m0
B.QU->rear-QU->front-1==m0
C.QU->front==QU->rear
D.QU->front==QU->rear+1
二、判断题:
(每题2分,共20分)
(说明:
将答案写在试卷后面的答题纸上)
分数
评卷人
()第1题.数据的4类基本结构分别是:
集合、线性结构、树形结构和层次结构。
()第2题.线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
()第3题.在表结构中最常用的是线性表,栈和队列不太常用。
()第4题.栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。
()第5题.对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。
()第6题.栈和链表是两种不同的数据结构。
()第7题.线性表在物理存储空间中也一定是连续的。
()第8题.线性表在顺序存储时,逻辑上相邻的元素在存储的物理位置次序上也相邻。
()第9题.顺序存储方式只能用于存储线性结构。
()第10题.线性表的逻辑顺序与存储顺序总是一致的。
三、填空题:
(每空2分,共20分)
(说明:
将答案写在试卷后面的答题纸上)
分数
评卷人
第1题.由3个结点所构成的二叉树有种形态。
第2题.一棵深度为6的满二叉树有个分支结点和个叶子。
注:
满二叉树没有度为1的结点,所以分支结点数就是二度结点数。
第3题.一棵具有257个结点的完全二叉树,它的深度为。
第4题.设一棵完全二叉树有700个结点,则共有个叶子结点。
第5题.设有一稀疏图G,则G采用存储较省空间。
第6题.在对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置至少需比较次。
第7题.线性有序表(a1,a2,a3,…,a256)是从小到大排列的,对一个给定的值k,用二分法检索表中与k相等的元素,在查找不成功的情况下,最多需要检索
次。
设有100个结点,用二分法查找时,最大比较次数是。
第8题.在各种查找方法中,平均查找长度与结点个数n无关的查找方法是。
四、编程题:
(每题10分,共20分)
(说明:
将答案写在试卷后面的答题纸上)
分数
评卷人
第1题.有栈程序如下,请写出出栈操作函数Pop()的代码。
//C语言算法,VC++6.0语法
#include
typedefintStatus;
#defineTRUE1
#defineFALSE0
#defineOK2
#defineERROR-1
#defineOVERFLOW-2
#defineNEW_ERROR-3
typedefintStackElemType;
#defineSTACK_INIT_SIZE100
#defineSTACK_INCREMENT10
typedefstruct
{
StackElemType*base;
StackElemType*top;
intstackSize;
}SqStack;
StatusInitStack(SqStack&S)
{
S.base=(StackElemType*)newStackElemType[STACK_INIT_SIZE];
if(S.base==NULL)
{
cout<<"InitStack()函数出错--初始化栈分配空间出错!
\n";
returnNEW_ERROR;
}
S.top=S.base;
S.stackSize=STACK_INIT_SIZE;
returnOK;
}
StatusStackEmpty(SqStack&S)
{
if(S.top==S.base)
{
returnTRUE;
}
else
{
returnFALSE;
}
}
//入栈
StatusPush(SqStack&S,StackElemTypee)
{
if(S.top-S.base>=S.stackSize)
{
StackElemType*p=S.base;
S.base=newStackElemType[S.stackSize+STACK_INCREMENT];
if(S.base==NULL)
{
cout<<"Push()函数出错--栈满重新分配空间出错!
\n";
returnNEW_ERROR;
}
for(inti=0;i { S.base[i]=p[i]; } S.top=S.base+S.stackSize; S.stackSize+=STACK_INCREMENT; delete[]p; } *S.top++=e; returnOK; } StatusGetTop(SqStack&S,StackElemType&e) { if(S.top==S.base) { cout<<"GetTop()函数出错--获取栈顶元素,栈为空! \n"; returnERROR; } e=*(S.top-1); returnOK; } //出栈(请写出此函数体代码) StatusPop(SqStack&S,StackElemType&e) { } 第2题.有队列程序如下,请写出如队列操作函数EnQueue()的代码。 #include #include constintQueueSize=20; typedefstructsqqueue { chardata[QueueSize]; intfront,rear; }SqQueue; //入队列(请写出此函数体代码) intEnQueue(SqQueue&sq,charx) { } intOutQueue(SqQueue&sq,char&x) { if(sq.rear==sq.front) return0; sq.front=(sq.front+1)%QueueSize; x=sq.data[sq.front]; return1; } 五、问答题: (每题5分,共10分) (说明: 将答案写在试卷后面的答题纸上) 分数 评卷人 第1题.选取散列函数H(key)=(3*key)%11,用线性探测法处理冲突,对下列关键码序列构造一个散列地址空间为0~10,表长为11的散列表,{22,41,53,08,46,30,01,31,66}。 第2题.请写出下列二叉树的中序遍历序列。 12 717 2111621 4913 郑州大学软件技术学院 《数据结构(C语言)》课程 2015-2016学年第一学期期末试题A卷 答题纸 (适用专业: 2014级网络工程专业考试时间: 120分钟) 合分人: 复查人: 题号 一 二 三 四 五 平时成绩 总分 分数 一、选择题: (每题2分,共30分) 分数 评卷人 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 二、判断题: (每题2分,共20分) 分数 评卷人 1 2 3 4 5 6 7 8 9 10 三、填空题: (每空2分,共20分) 分数 评卷人 1 2 3 4 5 6 7 8 四、编程题: (每题10分,共20分) 分数 评卷人 1. 2. 五、问答题: (每题5分,共10分) 分数 评卷人 1. 2.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 朝阳 数据结构 语言