【考研类试卷】计算机学科专业基础综合数据结构-栈、队列和数组(一)及答案解析.doc
《【考研类试卷】计算机学科专业基础综合数据结构-栈、队列和数组(一)及答案解析.doc》由会员分享,可在线阅读,更多相关《【考研类试卷】计算机学科专业基础综合数据结构-栈、队列和数组(一)及答案解析.doc(14页珍藏版)》请在麦多课文档分享上搜索。
1、计算机学科专业基础综合数据结构-栈、队列和数组(一)及答案解析(总分:92.00,做题时间:90 分钟)一、单项选择题(总题数:26,分数:52.00)1.一个栈的输入序列为 123n,若输出序列的第一个元素是 n,输出第 i(1=i=n)个元素是 _ 。(分数:2.00)A.不确定B.n-i+1CiD.n-i2.有六个元素 6,5,4,3,2,1 的顺序进栈,下列 _ 不是合法的出栈序列。(分数:2.00)A.5 4 3 6 1 2B.4 5 3 1 2 6C.3 4 6 5 2 1D.2 3 4 1 5 63.若一个栈的输入序列为 1,2,3,n,输出序列的第一个元素是 i,则第 j个输出
2、元素是 _ 。(分数:2.00)A.i-j-1B.i-jC.j-i+1D.不确定的4.用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时 _ 。(分数:2.00)A.仅修改队头指针B.仅修改队尾指针C.队头、队尾指针都要修改D.队头、队尾指针都可能要修改5.假设以行序为主序存储二维数组 Aarray1100,1100,设每个数据元素占 2个存储单元,基地址为 10,则 LOC5,5= _ 。(分数:2.00)A.808B.818C.1010D.10206.设有一个 10阶的对称矩阵 A,采用压缩存储方式,以行序为主存储,a1,1为第一元素,其存储
3、地址为 1,每个元素占一个地址空间,则 a8,5的地址为 _ 。(分数:2.00)A.13B.33C.18D.407.假设按低下标优先存储整型数组 A-3:8,3:5,-4:0,0:7时,第一个元素的字节存储地址是 100,每个整数占 4个字节,则 A0,4,-2,5的存储地址是( )。(分数:2.00)A.1783B.1784C.1985D.19848.数组 A05,06的每个元素占五个字节,将其按列优先次序存储在起始地址为 1000的内存单元中,则元素 A5,5的地址是 _ 。(分数:2.00)A.1175B.1180C.1205D.12109.设有二维数组 A1:U 1 ,1:U 2 ,
4、已知数据元素 A1,1在位置 2,A2,3在位置 18,A3,2在位置 28,则元素 A4,5在位置 _ 。(分数:2.00)A.46B.45C.48D.3010.将一个 A1100,1100的下三角矩阵按行优先存入一维数组 B15050中,A 中元素 A66,65,在 B数组中的位置 K为 _ 。(分数:2.00)A.4419B.2209C.4417D.231911.设 abcdef以所给的次序进栈,若在进栈操作时,允许退栈操作,则下面得不到的序列为( )。(分数:2.00)A.fedcbaB.bca fedC.dcefbaD.cabdef12.二维数组 A的每个元素是由 6个字符组成的串,
5、其行下标 i=0,1,8,列下标 j=1,2,10。若 A按行先存储,元素 A8,5的起始地址与当 A按列先存储时的元素 _ 的起始地址相同。设每个字符占一个字节。(分数:2.00)A.A8,5B.A3,10C.A 5,8D.A0,913.输入序列为 ABC,可以变为 CBA时,经过的栈操作为 _ 。(分数:2.00)A.push,pop,push,pop,push,popB.push,push,plJsh,pop,pop,popC.push,pLlsh,pop,pop,pllsh,popD.push,pop,push,push,pop,pop14.若用一个大小为 6的数组来实现循环队列且当前
6、 rear和 front的值分别为 0和 3,当从队列中删除一个元素,再加入两个元素后,rear 和 front的值分别为多少? _(分数:2.00)A.1和 5B.2和 4C.4和 2D.5和 115.表达式 3*2(4+2*2-6*3)-5求值过程中当扫描到 6时,对象栈和算符栈为,其中为乘幂( )。(分数:2.00)A.3,2,4,1,1;*(+*-B.32,8;*-C.3,2,4,2,2;*(-D.3,2,8;*(-16.若对 n阶对称矩阵 A以行序为主序方式将其下三角形的元素(包括主对角线上所有元素)依次存放于一维数组 B1(n(n+1)/2中,则在 B中确定 ai(ij)的位置 k
7、的关系为 _ 。(分数:2.00)A.i*(i-1)/2+jB.j*(j-1)/2+iC.i*(i+1)/2+jD.j*(j+1)/2+i17.设有一个 10阶的下三角矩阵 A(包括对角线),按照从上到下、从左到右的顺序存储到连续的 55个存储单元中,每个数组元素占 1个字节的存储空间,则 A54地址与 A00的地址之差为 _ 。(分数:2.00)A.10B.19C.28D.5518.设 A是 n*n的对称矩阵,将 A的对角线及对角线上方的元素以列为主的次序存放在一维数组B1n(n+1)/2中,则上述任一元素 a ij (1i,jn,且 ij)在 B中的位置为 _ 。(分数:2.00)A.i(
8、i-1)/2+jB.j(j-1)/2+iC.j(j-1)/2+i-1D.i(i-1)/2+j-119.设下三角矩阵 A为: (分数:2.00)A.i(i-1)/2+jB.j(j-1)/2+iC.j(j-1)/2+i-1D.i(i-1)/2+j-120.设有一个二维数组 Amn,假设 A00存放位置在 644,A22存放位置在 676,每个元素占一个空间,问 A33存放在 _ 位置。(分数:2.00)A.688B.678C.692D.69621.有一个 100*90的稀疏矩阵,非 0元素有 10个,设每个整型数占 2字节,则用三元组表示该矩阵时,所需的字节数是 _ 。(分数:2.00)A.60B
9、.66C.18000D.3322.循环队列存储在数组 A 0m中,则入队时的操作为 _ 。(分数:2.00)A.rear=rear+1B.rear=(rear+1)%(m一 1)C.rear=(rear+1)%mD.rear=(rear+1)%(m+1)23.依次读入数据元素序列a,b,C,d,e,f,g)进栈,每进一个元素,机器可要求下一个元素进栈或弹栈,如此进行,则栈空时弹出的元素构成的序列是以下哪些序列? _ Ad,e,c,f,b,g,a Bf,e,g,d,a,C,b Ce,f,d,g,b,C,aDc,d,e,b,f,a,g (分数:2.00)A.B.C.D.24.二维数组 Amn按行序
10、为主序存放在内存,每个数组元素占 1个存储单元,则元素 a ij 的地址计算公式是( )。(分数:2.00)A.loc(aij)-loc(all)+(i-1)*m+(j-1)B.loc(aij)-loc(all)+(j-1)*m+(i-1)C.loc(aij)-loc(all)+(i-1)*n+(j-1)D.loc(aij)-loc(all)+(j-1)*n+(i-1)25.向一个栈顶指针为 hs的链栈中插入一个 S结点时,应执行 _ 。(分数:2.00)A.hsnext=s;B.snext=hs;hs=S;C.snext=hsnext;hs 一next=s;D.snext=hs;hs=hsn
11、ext;26.数组 A110,26,28以行优先的顺序存储,设第一个元素的首地址是 100,每个元素占 3个存储长度的存储空间,则元素 A5,0,7的存储地址为 _ 。(分数:2.00)A.913B.910C.915D.923二、综合应用题(总题数:4,分数:40.00)27.设有两个栈 S 1 ,S 2 都采用顺序栈方式,并且共享一个存储区Omaxsizel,为了尽量利用空间,减少溢出的可能,可采用栈顶相向,迎面增长的存储方式。试设计 S 1 ,S 2 有关入栈和出栈的操作算法。(分数:10.00)_28.设从键盘输入一整数的序列:a 1 ,a 2 ,a 3 ,a n ,试编写算法实现:用栈
12、结构存储输入的整数,当 a i -1 时,将 a i 进栈;当 a i =-1时,输出栈顶整数并出栈。算法应对异常情况(入栈满等)给出相应的信息。 (分数:10.00)_29.设表达式以字符形式已存入数组 En中,#为表达式的结束符,试写出判断表达式中括号(和)是否配对的 C语言描述算法:EXYX(E);(注:算法中可调用栈操作的基本算法。) (分数:10.00)_30.设矩阵 A为 (分数:10.00)_计算机学科专业基础综合数据结构-栈、队列和数组(一)答案解析(总分:92.00,做题时间:90 分钟)一、单项选择题(总题数:26,分数:52.00)1.一个栈的输入序列为 123n,若输出
13、序列的第一个元素是 n,输出第 i(1=i=n)个元素是 _ 。(分数:2.00)A.不确定B.n-i+1 CiD.n-i解析:按照堆栈“后进先出”的特点,n 是最后一个入栈的,即 n为栈顶元素。若输出的第一个元素为n,则其余所有元素必定仍在堆栈中。第一个输出元素为 n,则第二个输出元素为 n-1,第 i个输出元素为n-i+1,最后一个(第 n个)输出元素为 1。2.有六个元素 6,5,4,3,2,1 的顺序进栈,下列 _ 不是合法的出栈序列。(分数:2.00)A.5 4 3 6 1 2B.4 5 3 1 2 6C.3 4 6 5 2 1 D.2 3 4 1 5 6解析:考查堆栈“后进先出”的
14、特点。对选项 A来说,第一个出栈元素是 5,因为 6先于 5进栈,所以必定在 5之后出栈,其余的元素出栈顺序任意;对选项 B来说,第一个出栈元素是 4,所以 5和 6两个元素必定在 4之后依次出栈;对选项 C来说,第一个出栈元素是 3,则必有 4、5、6 三个元素依次在 3后面出栈,但是选项 C中的顺序是 3、4、6、5,这是不符合要求的;对选项 D来说,第一个出栈元素是 2,则必有 3、4、5、6 依次在 2后面出栈,D 也是符合要求的,因此答案选 C。 总结:这种问题如何解决呢?我们看第一个出栈元素,然后确定先于第一个元素进栈的所有其他元素,这些元素一定在第一个出栈元素之后顺序出栈。如果第
15、一个元素仍然无法判断出来,可继续看后面的元素,依次类推。举例如下: 假设第一个出栈的元素是 1,则出栈顺序一定是 6、5、4、3、2、1,没有其他情况。 假设第一个出栈的元素是 2,则出栈顺序可能有: 213456;231456;234156; 234516; 234561 (可首先把 23456写出,然后可将 1插到 2之后的任意位置) 假设第一个出栈的元素是 3,则出栈顺序可能有: 3 12 456;34 12 56; 345 12 6; 3456 12 但是 314526是不能的。因为 3出栈之后,当前栈中仍有 4、5、6 三个元素,如果下一个是 1出栈,则肯定先让 2进栈,再让 1进栈
16、,然后 1出栈,此时栈顶就变成 2了,则下一个出栈的只能是 2,而不能是4。3.若一个栈的输入序列为 1,2,3,n,输出序列的第一个元素是 i,则第 j个输出元素是 _ 。(分数:2.00)A.i-j-1B.i-jC.j-i+1D.不确定的 解析:不知道 i,j 的大小关系,所以无法确定。4.用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时 _ 。(分数:2.00)A.仅修改队头指针B.仅修改队尾指针C.队头、队尾指针都要修改D.队头、队尾指针都可能要修改 解析:如果当前队列中仅有一个元素,则删除它时队头、队尾指针都需要修改。5.假设以行序为
17、主序存储二维数组 Aarray1100,1100,设每个数据元素占 2个存储单元,基地址为 10,则 LOC5,5= _ 。(分数:2.00)A.808B.818 C.1010D.1020解析:公式:Loc(A ij )=10(基地址)+(5-1)*100+(5-1)*2=818。6.设有一个 10阶的对称矩阵 A,采用压缩存储方式,以行序为主存储,a1,1为第一元素,其存储地址为 1,每个元素占一个地址空间,则 a8,5的地址为 _ 。(分数:2.00)A.13B.33 C.18D.40解析:n 阶对称矩阵 A中的元素满足下述条件:a ij =a ji (1-i,j-n)。对称矩阵中的每一对
18、数据元素可以共用一个存储空间,因此可以将 n 2 个元素压缩存储到 n(n+1)/2个元的空间中,即可以一维数组保存。 假设用一维数组 sn(n+1)/2作为对称矩阵 A的存储结构,则 sk和矩阵元素 a ij 的下标 i、j 的对应关系为: 当 i-j 时,k=i(i-1)/2+j; 当 ij 时,k=j(j-1)/2+i;7.假设按低下标优先存储整型数组 A-3:8,3:5,-4:0,0:7时,第一个元素的字节存储地址是 100,每个整数占 4个字节,则 A0,4,-2,5的存储地址是( )。(分数:2.00)A.1783B.1784 C.1985D.1984解析:8.数组 A05,06的
19、每个元素占五个字节,将其按列优先次序存储在起始地址为 1000的内存单元中,则元素 A5,5的地址是 _ 。(分数:2.00)A.1175 B.1180C.1205D.1210解析:LOC(i,j)-LOC(0,0)+(mj+i)L。9.设有二维数组 A1:U 1 ,1:U 2 ,已知数据元素 A1,1在位置 2,A2,3在位置 18,A3,2在位置 28,则元素 A4,5在位置 _ 。(分数:2.00)A.46 B.45C.48D.30解析:题目中没有给出该数组是行优先存储还是列优先存储,因此需要首先判断数组的存储方式。 因为 Loc(A3,2)Loc(A2,3),所以数组一定是按行存储的。
20、 因为 A1,1是起始位置,则有 L 1 -2。利用已知条件,根据计算地址的公式有: Loc(A2,3)=L 1 +(2-1)U 2 d+(3-1)d-18,即 2+U 2 d+2d=18 (方程 1) Loc(A3,2)=L 1 +(3-1)U 2 d+(2-1)d-28,即 2+2U 2 d+d-28 (方程 2) 由以上两方程联立,得方程组,解得:U 2 =6,d=2。由此得到数组 A的列数为 6,每个元素占 2个空间。则: Loc(A4,5)=L 1 +(4-1)U 2 d+(5-1)d -2+362+42=46 可以看出,该题目中仅仅求得了列数 U 2 和每个数据元素所占的空间数就求
21、得了某个数据元素的地址,而行数 U 1 并没有求得。这再次说明,在行优先为主的存储方式中,列数是不可或缺的。10.将一个 A1100,1100的下三角矩阵按行优先存入一维数组 B15050中,A 中元素 A66,65,在 B数组中的位置 K为 _ 。(分数:2.00)A.4419B.2209 C.4417D.2319解析:k=i(i-1)/2+j-1。11.设 abcdef以所给的次序进栈,若在进栈操作时,允许退栈操作,则下面得不到的序列为( )。(分数:2.00)A.fedcbaB.bca fedC.dcefbaD.cabdef 解析:见 2解析。12.二维数组 A的每个元素是由 6个字符组
22、成的串,其行下标 i=0,1,8,列下标 j=1,2,10。若 A按行先存储,元素 A8,5的起始地址与当 A按列先存储时的元素 _ 的起始地址相同。设每个字符占一个字节。(分数:2.00)A.A8,5B.A3,10 C.A 5,8D.A0,9解析:二维数组 A0:8,1:10,设起始地址为 0,数组元素 Ai,j按行存储公式为:Loc(Ai,j)=L 1 +(i-1)U 2 d+(j-1)d,数组元素 Ai,j按列存储公式为:Loc(Ai,j)=L 1 +(j-1)U 2 d+(i-1)d,可得 i=3,j=10。13.输入序列为 ABC,可以变为 CBA时,经过的栈操作为 _ 。(分数:2
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 考研 试卷 计算机 学科专业 基础 综合 数据结构 队列 数组 答案 解析 DOC
