【考研类试卷】计算机专业基础综合数据结构(栈、队列和数组)-试卷1及答案解析.doc
《【考研类试卷】计算机专业基础综合数据结构(栈、队列和数组)-试卷1及答案解析.doc》由会员分享,可在线阅读,更多相关《【考研类试卷】计算机专业基础综合数据结构(栈、队列和数组)-试卷1及答案解析.doc(12页珍藏版)》请在麦多课文档分享上搜索。
1、计算机专业基础综合数据结构(栈、队列和数组)-试卷 1及答案解析(总分:70.00,做题时间:90 分钟)一、单项选择题(总题数:21,分数:42.00)1.单项选择题 1-40小题。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。(分数:2.00)_2.栈和队列的主要区别在于( )。(分数:2.00)A.它们的逻辑结构不一样B.它们的存储结构不一样C.所包含的运算不一样D.插入和删除运算的限定不一样3.若循环队列以数组 Q0.,m1作为其存储结构,变量 rear表示循环队列中的队尾元素的实际位置,其移动按 rear=(rear+1)MOD m进行,变量 length表示当前循环队列
2、中的元素个数,则循环队列的队首元素的实际位置是( )。(分数:2.00)A.reat一 lengthB.(rearlength+m)MOD mC.(rearlength+1+m)MOD mD.mlength4.一个以向量 Vn存储的栈,其初始栈顶指针 top为 n+1,则对于 x,其正确的进栈操作是( )。(分数:2.00)A.top=top+1;Vtop=xB.Vtop=x;top=top+1C.top=top一 1;Vtop=xD.Vtop=x;top=top 一 15.为了增加内存空间的利用率和减少溢出的可能性,两个栈可以共享一片连续的内存空间,此时应将两栈的栈底分别设在( )。(分数:
3、2.00)A.内存空间的首地址B.内存空间的尾地址C.内存空间的两端D.内存空间的中间6.已知输入序列为 abed,经过输出受限的双端队列后,能得到的输出序列是( )。(分数:2.00)A.daebB.eadbC.dbeaD.以上答案都不对7.假设一个序列 1,2,3,n 依次进栈,如果出栈的第一个元素是 n,那么第 i(1in)个出栈的元素是( )。(分数:2.00)A.不确定B.ni+1C.iD.ni8.假设一个序列 1,2,3,n 依次进栈,如果第一个出栈的元素是 i,那么第 j个出栈的元素是( )。(分数:2.00)A.i-j一 1B.i-jC.j-i+1D.不确定的9.已知当前栈中有
4、 n个元素,此时如果有新的元素需要执行进栈操作,但发生上溢,则由此可以判断,此栈的最大容量为( )。(分数:2.00)A.n一 1B.nC.n+1D.n210.设有 5个元素 a,b,c,d,e 顺序进栈,下列几个选项中,不可能的出栈序列是( )。(分数:2.00)A.a,b,c,d,eB.d,e,c,b,aC.a,c,e,b,dD.c,b,a,d,e11.有 6个元素按 6,5,4,3,2,1 的顺序依次进栈,不合法的出栈序列是( )。(分数:2.00)A.543612B.453126C.346521D.23415612.有 5个元素,其入栈次序为 A,B,C,D,E,在各种可能的出栈次序中
5、,以元素 C,D 最先出栈的次序不包括( )。(分数:2.00)A.CDEBAB.CDBEAC.CDBAED.CDAEB13.对于 4个元素依次进栈,可以得到( )种出栈序列。(分数:2.00)A.10B.12C.14D.1614.现有两栈,其共享空间为 V1,m,topi代表第 i个栈(i=1,2)栈顶,栈 1的底在 V1,栈 2的底在 Vm,若两栈均采用顺序存储方式存储,则栈满的条件是( )。(分数:2.00)A.|top2-top1|=0B.top1+1=top2C.top1+top2=mD.top1=top215.一个递归算法必须包括( )。(分数:2.00)A.递归部分B.终止条件和
6、递归部分C.迭代部分D.终止条件和迭代部分16.执行完下列语句段后,i 值为( )。 int f(int x) return(x0)?x*f(x1):2); i=f(f(1);(分数:2.00)A.2B.4C.8D.无限递归17.表达式 a*(b+c)一 d的后缀表达式是( )。(分数:2.00)A.abcd*+一B.abc+*dC.abc*+dD.一+*abcd18.为了处理参数及返回地址,在递归过程或函数调用时,要用一种称为( )的数据结构。(分数:2.00)A.队列B.多维数组C.栈D.线性表19.若用一个大小为 6的数组来实现循环队列,且当前 rear和 front的值分别为 0和 3
7、,当从队列中删除一个元素,再加入两个元素后,rear 和 front的值分别为( )。(分数:2.00)A.1和 5B.2和 4C.4和 2D.5和 120.队尾已到达一维数组的最高下标,不能再插入元素,然而队中元素个数小于队列的长度,这种现象称作( )。(分数:2.00)A.上溢B.下溢C.假溢出D.队列满21.已知有一维数组 A0.,mn 一 1,若要对应为 m行、n 列的矩阵,将元素 Ak(0kmn)表示成矩阵的第 i行、第 j列的元素(0im,0jn),则下面的对应关系是( )。(分数:2.00)A.i=kn,j=kmB.i=km,j=kmC.i=kn,j=knD.i=km,j=kn二
8、、综合应用题(总题数:14,分数:28.00)22.综合应用题 41-47小题。(分数:2.00)_23.简述栈、队列、循环队列的定义。(分数:2.00)_24.假设以 I和 O分别表示入栈和出栈操作,则对初态和终态均为空的栈操作可由 I和 O组成的序列表示。(1)试指出判别给定序列是否合法的一般规则。 (2)两个不同合法序列(对同一输入序列)能否得到相同的输出元素序列?如能得到,请举例说明。(分数:2.00)_25.有 5个元素,其入栈次序为 A,B,C,D,E,在各种可能的出栈次序中,以元素 C,D 最先出栈(即 C第一个且 D第二个出栈)的次序有哪几个?(分数:2.00)_26.为了增加
9、内存空间的利用率和减少溢出的可能性,通常采用两个栈利用同一块存储空间的方法。通常两个栈的栈底设在内存空间的两端,而栈顶相向,迎面增长。已知有两个栈 s1、s2 都采用顺序栈方式,并且共享一个存储区0maxsize1。 设计共享存储空间的两个栈 s1、s2 的入栈和出栈算法。要求: (1)给出算法的基本设计思想。 (2)根据设计思想,采用 C或 C+或 Java语言描述算法,关键之处给出注释;(分数:2.00)_27.一个 nn的对称矩阵,如果以行或列为主序存入内存,则其容量为多少?(分数:2.00)_28.设有一个 nn的上三角矩阵(a ij ),将其上三角中的元素按先行后列的顺序存于数组 B
10、m中,使得Bk=a ij 且 k=f 1 (i)+f 2 (j)+c,请推导出函数 f 1 、f 2 和常数 c,要求 f 1 和 f 2 中不含常数项。(分数:2.00)_29.已知有一整数序列a 1 ,a 2 ,a 3 ,a n 。栈 A中只保存整数,即序列中元素为整数时允许其入栈。设计一个算法实现如下功能:用栈结构存储入栈的整数,当 a i 一 1时,将 a i 进栈;当 a i =一 1时,输出栈顶整数并出栈。(分数:2.00)_30.设结点结构为(data,link),试用一个全局指针 p和某种链接结构实现一个队列,画出示意图,并给出入队 addq和出队 deleq过程,要求它们的时
11、间复杂性都是 O(1)(不计 new和 dispose时间)。(分数:2.00)_31.判断括号是否匹配是栈的主要应用之一。设字符表达式存储在数组 En中,#为字符表达式的结束符。给出一个算法,用于判断表达式中括号(和)是否配对。要求:(1)给出算法的基本设计思想。(2)根据设计思想,采用 C或 C+或 Java语言描述算法,关键之处给出注释。(分数:2.00)_32.从键盘上输入一个逆波兰表达式,用伪码写出其求值程序。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、一、*、四种运算,例如:23434+2*$。(分数:2.00)_33.假设以 I
12、和 O分别表示入栈和出栈操作。栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由 I和 O组成的序列,称可以操作的序列为合法序列,否则称为非法序列。 (1)下面所示的序列中哪些是合法的? AIOIIOIOO BIOOIOIIO CIIIOIOIO DIIIOOIOO (2)通过对(1)的分析,写出一个算法,判定所给的操作序列是否合法。若合法,返回 true,否则返回 false(假定被判定的操作序列已存入一维数组中)。(分数:2.00)_34.设计一个算法,判断一个算术表达式中的括号是否配对。算术表达式保存在带头结点的单循环链表中,每个结点有两个域:ch 和 link,其中 ch域为字符类
13、型。(分数:2.00)_35.请利用两个栈 s1和 s2来模拟一个队列。已知栈的三个运算定义如下: (1)push(st,X):元素 X入st栈: (2)pop(st,X):st 栈顶元素出栈,赋给变量 X: (3)sempty(st):判 st栈是否为空。 那么如何利用栈的运算来实现该队列的三个运算: (1)enqueue:插入一个元素入队列; (2)dequeue:删除一个元素出队列: (3)queueempty:判队列为空。(请写明算法的思想及必要的注释。)(分数:2.00)_计算机专业基础综合数据结构(栈、队列和数组)-试卷 1答案解析(总分:70.00,做题时间:90 分钟)一、单项
14、选择题(总题数:21,分数:42.00)1.单项选择题 1-40小题。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。(分数:2.00)_解析:2.栈和队列的主要区别在于( )。(分数:2.00)A.它们的逻辑结构不一样B.它们的存储结构不一样C.所包含的运算不一样D.插入和删除运算的限定不一样 解析:解析:栈和队列的逻辑结构都是线性的,都有顺序存储和链式存储,有可能包含的运算不一样,但不是其主要区别。任何数据结构在针对具体问题时所包含的运算都可能不同。所以正确答案是 D。3.若循环队列以数组 Q0.,m1作为其存储结构,变量 rear表示循环队列中的队尾元素的实际位置,其移动按 r
15、ear=(rear+1)MOD m进行,变量 length表示当前循环队列中的元素个数,则循环队列的队首元素的实际位置是( )。(分数:2.00)A.reat一 lengthB.(rearlength+m)MOD mC.(rearlength+1+m)MOD m D.mlength解析:解析:按照循环队列的定义,因为元素移动按照 rear=(rear+1)MOD m进行,则当数组 Qm1存放了元素之后,下一个入队的元素将存放到 QO中,因此队列的首元素的实际位置是(rearlength+1+m)MOD m。4.一个以向量 Vn存储的栈,其初始栈顶指针 top为 n+1,则对于 x,其正确的进栈
16、操作是( )。(分数:2.00)A.top=top+1;Vtop=xB.Vtop=x;top=top+1C.top=top一 1;Vtop=x D.Vtop=x;top=top 一 1解析:解析:此题考查的知识点是入栈的具体操作。操作时要看栈顶的地址,先取得空间,再入栈。本题栈项为 n+1,应该用减法,所以选 C。D 是先存入,破坏原有数据,所以错。5.为了增加内存空间的利用率和减少溢出的可能性,两个栈可以共享一片连续的内存空间,此时应将两栈的栈底分别设在( )。(分数:2.00)A.内存空间的首地址B.内存空间的尾地址C.内存空间的两端 D.内存空间的中间解析:解析:两个栈共享一个内存空间时
17、,需要把两个栈的栈底设在内存空间的两端。6.已知输入序列为 abed,经过输出受限的双端队列后,能得到的输出序列是( )。(分数:2.00)A.daebB.eadb C.dbeaD.以上答案都不对解析:解析:输出受限的双端队列是指删除限制在一端进行,而插入允许在两端进行的队列。 分析选项A,输入序列为 abcd,输出序列为 dacb,由输出受限性质可知以 da开头的结果只有 dabc,选项 A为错误答案。 分析选项 B,输入序列为 abcd,输出序列为 cadb,其输入输出顺序为:先在输出端输入 a,然后在非输出端输入 b,这时队列中的序列为 ba。再在输出端输入 c,这时队列中的序列为 ba
18、c;输出 c,再输出 a;再在输出端输入 d,这时队列中的序列为 bd;输出 d,再输出 b。最后得到输出序列为 cadb。 分析选项 C,输入序列为 abcd,输出序列为 dbca,由输出受限性质可知以 db开头的结果只有 dbac,选项 C为错误答案。7.假设一个序列 1,2,3,n 依次进栈,如果出栈的第一个元素是 n,那么第 i(1in)个出栈的元素是( )。(分数:2.00)A.不确定B.ni+1 C.iD.ni解析:解析:进栈的顺序是:1,2,n,且出栈的第一个元素是 n,那么根据栈后进先出的特点可知,出栈的顺序依次为:n,2,1,那么第 ni+1个出栈元素就是第 i个进栈的元素。
19、8.假设一个序列 1,2,3,n 依次进栈,如果第一个出栈的元素是 i,那么第 j个出栈的元素是( )。(分数:2.00)A.i-j一 1B.i-jC.j-i+1D.不确定的 解析:解析:此题考查的知识点是栈的后进先出特点。若输出序列的第一个元素是 i,只能说明前 i1个元素均入栈,而第 j个元素何时入、出栈并不能确定,所以选 D。9.已知当前栈中有 n个元素,此时如果有新的元素需要执行进栈操作,但发生上溢,则由此可以判断,此栈的最大容量为( )。(分数:2.00)A.n一 1B.n C.n+1D.n2解析:解析:由于栈中有 n个元素是执行进栈操作,但是发生上溢,则说明此栈中最多可以包含 n个
20、数据元素,即栈的最大容量为 n。10.设有 5个元素 a,b,c,d,e 顺序进栈,下列几个选项中,不可能的出栈序列是( )。(分数:2.00)A.a,b,c,d,eB.d,e,c,b,aC.a,c,e,b,d D.c,b,a,d,e解析:解析:由进栈出栈规则可知,对于 a,b,c,d,e 顺序进栈的五个元素,A、B、D 均为可能的出栈序列,所以选 C。11.有 6个元素按 6,5,4,3,2,1 的顺序依次进栈,不合法的出栈序列是( )。(分数:2.00)A.543612B.453126C.346521 D.234156解析:解析:此题考查的知识点是栈的后进先出特点。考查出栈序列,要保证先入
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 考研 试卷 计算机专业 基础 综合 数据结构 队列 数组 答案 解析 DOC
