资源简介 浙教版(2019)选修一3.3栈同步练习学校:___________姓名:___________班级:___________考号:___________一、选择题1.有1个栈初始为空,其元素入栈顺序依次为a,b,c,d,e,f,g,经若干次入栈和出栈操作后,栈底至栈顶元素分别为b,d,f,则第3个出栈元素为( )A.g B.c C.e D.a2.向一个栈顶指针为head的链式栈中插入一个指针r指向的节点时(节点指针域为next),则应执行的操作是( )A.head.next=r B.r.next=head;head=rC.r.next=head.next;head.next=r D.r.next=head;head=head.next3.已知一个栈的入栈顺序是1,2,3,4,…,n,其输出序列为R1,R2,R3,…,Rn,若Rn是1,则Ri是( )A.i B.n-1 C.n-i+1 D.不确定4.下列对栈的描述,正确的是( )A.栈的特点是后进后出 B.栈仅允许在表的一端进行插入或删除操作C.入栈操作时,将把数据元素压入栈底 D.出栈操作时,先将栈顶指针加1,然后将栈顶元素取出5.数据结构栈的特点是( )A.先进先出 B.先进后出C.可以在栈的任意位置取出元素 D.可以在栈的任意位置插入元素6.某序列为a,b,c,d,经过入栈、出栈、入栈、入栈、出栈、出栈操作后,则出栈的序列是( )A.a,b,c B.a,c,b C.b,c,d D.b,a,c7.有一个空栈,规定用I表示一个元素入栈,用O表示一个元素出栈。现经过IIOIOOIO系列操作后,元素的出栈顺序是4,1,3,2,则元素的入栈顺序是( )A.1,3,4,2 B.3,4,1,2 C.2,3,1,4 D.1,4,3,28.用一个底端封闭的圆柱形塑料筒来放取乒乓球,筒的直径只允许一个球进出,且该筒最多可容纳3 个乒乓球。若放入球的编号依次为1、2、 3、4、5,则取出球的顺序可能是( )A.4、 3、 5、 2、 1 B.2、 4、 3、 1、 5C.5、 4、 3、 2、 1 D.1、 5、 4、 3、 29.有如下python程序段,执行该程序段后,输出结果不可能的是( )import random as rdst=[1]*10;top=0for i in range(5): num=rd.randint(1,6) if num>=st[top]: top+=1;st[top]=num elif num%2==0: top-=1while top>=0: print(st[top],end="");top-=1A.6 3 3 1 1 1 B.1 C.4 2 2 D.6 6 6 110.已知栈st中从栈底到栈顶的元素依次为a、b、c,元素d正等待进栈,以下出栈序列不可能的是( )A.c,b,d,a B.c,d,a,b C.c,d,b,a D.c,b,a,d11.一个底端封闭的圆柱形乒乓球收纳筒,最多可容纳4个乒乓球,筒的直径只允许一个球进出。初始时筒内自底向上已存有1,2号球,然后依次放入4个球,顺序为3,4,5,6号,则取出所有乒乓球的顺序可能是( )A.2,6,5,4,3,1 B.3,2,1,6,4,5 C.3,2,1,6,5,4 D.5,4,3,2,1,612.用 I 表示进栈操作,O 表示出栈操作,若元素进栈的顺序为 PQRST,为了得到 PSRTQ 的出栈顺序,则由 I 和 O 表示的操作串是A.IOIIIOOIOO B.IOIIOIOOIO C.IIIIOOIOOO D.IOIIIIOOOO13.由元素1,2,3,4,5,6,7,8依次入栈、出栈,要求每次出栈之前至少有两次连续入栈操作,出栈时可以出栈一个元素,也可以出栈多个元素直至栈空,则数据的出栈序列可能是( )A.3,4,2,5,7,6,1,8 B.2,4,3,1,8,7,6,5C.5,7,6,4,8,3,2,1 D.4,3,5,2,1,6,8,714.有一个空栈,若元素“P”、“y”、“t”、“h”、“o”、“n”依次入栈,其中“o”第一个出栈。则当所有元素全部出栈后,下列说法正确的是( )A.出栈的最后一个元素一定为“P”B.出栈的最后一个元素一定为“n”C.元素“h”一定比“P”、“y”、“t”先出栈D.元素“P”、“y”、“t”、“h”、“o”的出栈序列是不确定的15.一个手机上的趣味小游戏,有3个杯子里装了一些有颜色的液体(如图所示),现在希望通过相互倒水实现将杯子stC装满红色液体,现编写代码如下:stA,stB,stC=['灰','红','蓝'],['红','灰',''],['红','','']tops=[2,1,0]① tops[2]+=1 stC[tops[2]]=stB[tops[1]] tops[1]-=1 ② tops[0]+=1 stA[tops[0]]=stB[tops[1]] tops[1]-=1 ③ tops[1]+=1 stB[tops[1]]=stA[tops[0]] tops[0]-=1④ stA[tops[0]]=stB[tops[1]] tops[1]-=1 ⑤ tops[2]+=1 stC[tops[2]]=stA[tops[0]]在空白处填入哪一种方案,可以将stC杯子中装满红色液体( )A.③⑤①②④ B.③⑤④②① C.③⑤④①② D.③②①⑤④试卷第2页,共2页试卷第1页,共1页参考答案:1.C【详解】本题考查的是栈的操作。栈的特点是:先进后出。其元素入栈顺序依次为a,b,c,d,e,f,g,经若干次入栈和出栈操作后,栈底至栈顶元素分别为b,d,f,故出栈顺序为:a,c,e……。故第三个出栈为e,选C。2.B【详解】本题考查栈。栈顶指针为head,此时指针r指向的节点要进栈,由于是链式栈,因此先将r指向的节点的指针域指向head,即r.next=head,然后让head指向r,即head=r。故答案为:B。3.C【详解】本题考查栈。由于栈先进后出的特性可知,若Rn为1,则必有R1是n。因此R1是n,R2是n-1,Rn是1,因此可推得Ri为n-i+1,因此答案为C。4.B【详解】本题考查数据结构栈。栈的特点是先进后出,或后进先出,因此A选项错误;入栈操作时,将把数据元素压入栈顶,因此C选项错误;出栈操作时,先将栈顶元素取出,然后将栈顶指针减1,因此D选项错误;栈仅允许在表的一端进行插入或删除操作,栈的另一端是封闭的,B选项正确。故答案为:B。5.B【详解】本题考查栈。栈的特点是先进后出,或后进先出,栈的操作只能在栈顶进行,因此答案为B。6.B【详解】本题考查栈操作相关内容。栈的特点是:先进后出。第一步操作是入栈,即a入栈,栈中只有一个元素a;第二步操作是出栈,栈中元素a出栈,出栈序列为:a,此时栈空;第三步操作是入栈,即b入栈,栈中只有一个元素b;第四步操作是入栈,即c入栈,栈中有两个元素b、c;第五步操作是出栈,栈中元素c出栈,出栈序列为:a,c,此时栈中还有一个元素b;第六步操作是出栈,栈中元素b出栈,出栈序列为:a,c,b,此时栈空。故本题答案是B选项。7.B【详解】本题考查栈的常见操作。“I”表示入栈,“O”表示出栈。操作序列为“IIOIOOIO”,元素的出栈序列为“4,1,3,2”。根据操作序列可推演处操作过程如下所示:操作序列 执行操作IIOIOOIO 2出栈IIOIOOI 2入栈IIOIOO 1,3出栈IIOI 1入栈IIO 4出栈II 3,4入栈由此可得,入栈序列为:3,4,1,2。故答案为:B。8.B【详解】本题考查的是栈的相关知识。栈是先进后出。依据题意可知,栈中存储最多3个元素。若放入球的编号依次为1、2、 3、4、5,则第一个出栈的球可能为:1、2、3,故选项A、C错误。因为筒最多可容纳3,故第2个出栈不可能为5,选项D错误。故本题应选B。9.C【详解】本题考查的是栈的操作。num=rd.randint(1,6),num数字是1~6整数。只有生成的数字小于栈顶元素而且为偶数时才出栈,st中初始值都为1,故栈低元素肯定为1(因为生成的num一直不比1小)。故输出的结果最后一位肯定为1,选项C最后一位为2,不符合,故本题应选C。10.B【详解】本题考查的是栈的操作。栈是先进先出。已知栈st中从栈底到栈顶的元素依次为a、b、c,故出栈的时候,a肯定在b、c后,b在c的后面。选项B中a在b前不可能。故本题应选B。11.C【详解】本题考查栈操作相关内容。该题的栈大小只有四个位置,初始已经有1、2在内,进入为3、4、5、6。A选项,2出后,栈内只有1,接下来要出6,代表要将3、4、5、6依次全部先入栈。此时栈大小不足够,选项错误。B选项,3进,3、2、1依次出栈,接下来出栈的是6,说明4、5、6依次进栈,出栈顺序必须是6、5、4,选项错误。C选项,3进,3、2、1依次出栈,接下来出栈的是6,说明4、5、6依次进栈,出栈顺序必须是6、5、4,选项正确。D选项,先出5,说明要进栈3、4、5,此时栈大小不足够,选项错误。故本题答案是C选项。12.A【详解】本题考查栈。P进P出,Q进R进S进,S出,R出,T进T出,Q出。由出栈顺序和进栈顺序可的唯一进出结果。故答案为:A。13.B【详解】本题考查栈的入栈出栈操作。A选项中,1,2,3依次入栈,3出栈;4入栈,出栈,故错误。B选项中,1,2依次入栈,2出栈;3,4依次入栈,4,3,1依次出栈;5,6,7,8依次入栈,8,7,6,5依次出栈,符合题意,正确。C选项中,1,2,3,4,5依次入栈,5出栈;6,7依次入栈,7,6,4依次出栈;8入栈,8出栈,错误。D选项中,1,2,3,4依次入栈,4,3依次出栈;5入栈,5出栈,错误。故答案为:B。14.C【详解】本题考查栈的操作。根据题干描述,“O”第一个出栈,此时“n”还没有进栈,最后一个出栈的也可能是“n”也可能是“p”,故A、B选项错误。因入栈顺序为“p”“y”“t”“h”“o”,此时中间没有出栈的,故出栈的顺序为“o”“h”“t”“y”“p”是固定的。故D选项错误。故答案为:C。15.B【详解】本题考查栈操作相关内容。根据题目描述,三个杯子相当于三个栈,要把stC里装满红色液体,操作步骤应为:先把stA中的蓝色液体倒入到stB中,然后把stA中红色液体倒入到stC中,此时stB红从上到下依次为蓝色灰色和红色,再把stB中蓝色、和灰色依次倒入到stA中,最后stB剩下的红色倒入到stC中,完成任务。对应到代码中,tops数组存储的是三个栈顶指针的位置,根据入栈栈顶指针先加1,再入栈,出栈为先去栈顶元素,再把栈顶指针减1。③对应stA倒入stB,应该是第一步,①对应stB倒入stC,应该是最后一步,故本题答案为B选项。答案第1页,共2页答案第1页,共2页 展开更多...... 收起↑ 资源预览