内容正文:
第5单元 栈及其应用
学校:___________姓名:___________班级:___________考号:___________
一、选择题
1.下列表达式值为True时,能表示正整数x为偶数的是( )
A.x / 2 = x \ 2 B.x \ 2 = 0
C.x Mod 2 = 1 D.Int(x / 2) = x \ 2
2.栈S从栈底到栈顶的元素依次为1,2,3,队列Q初始为空。约定:U操作是指元素出栈后入队,H操作是指元素出队后再入队。经过UUHU系列操作后,队列中队首到队尾的元素依次为( )
A.2,1,3 B.3,1,2 C.1,3,2 D.2,3,1
3.用I表示进栈操作,O表示出栈操作,若元素进栈的顺序为ABCDE,为了得到ADCEB的出栈顺序,则由I和O表示的操作串是( )
A.IOIIIOOIOO B.IOIIOIOOIO C.IIOOIOOO D.IOIIIOOOO
4.字符串变量a,b的值分别是“120”,“20”,下列表达式的值结果为“True”的是( )
A.a>b or a<b and a+b>b B.Not Mid(a+b,2,3)<b
C.Int(Rnd*5)*4+1>Val(b) D.Val(a)Mod 100\10=Sqr(4)
5.python中eval()函数用来执行一个字符串表达式,并返回表达式的值,语句eval('2+4/5')执行后的输出结果是()
A.2.8 B.2 C.2+4/5 D.'2+4/5'
6.已知x="123",y="456",则表达式x+y 的值为( )
A."123456" B."567" C."123"+"456" D."579"
7.表示图中坐标轴上阴影部分的表达式是( )
A.(a<x<=b) and x>=c B.(x>a and x<=b) or x>=c
C.(x>a and x<=b) and x>=c D.(a<x<=b) or x>=c
8.假设a=9,b=2,那么下列运算中,错误的是( )
A.a+b的值是11 B.a//b的值是4 C.a%b的值是1 D.a**b的值是18
9.下面程序运行结果是( )
c=0
for i in range(1,20):
if i%2!=0 or i%3==0:
c=c+1
print(c)
A.12 B.13 C.14 D.15
10.某种表达式可通过栈来求解,方法如下:遍历表达式,遇到数值则入栈,遇到运算符,则将栈顶两个数值出栈,用该运算符计算,并将结果入栈。按照该方法直到遍历完表达式,栈顶元素即为表达式的运算结果。若X代表入栈,Y代表出栈,当利用栈求表达式“1 2 3 * +”时,栈的操作序号为( )
A.XXXYYYYX B.XXXYYXYYX
C.XXYYXXYY D.XXXXYYYXXYYYX
11.Python表达式3*4**2%10的值是()
A.0 B.2 C.4 D.8
12.假设栈S的最大长度为3,其初始状态和终止状态均为空,经过一系列入栈和出栈的操作,若元素最后的出栈序列为F,E,D,C,B,A,则可能的入栈顺序为( )
A.ABCDEF B.ACDFEB C.BEFACD D.BFDECA
13.关于python发布代码及安装使用代码,下列说法错误的是()
A.创建一个文件夹mymodule,其中包含mymodule.py和setup.py(包含发布的元数据)两个文件
B.在DOS命令行中打开mymodule所在的目录,使用“python setup.py sdist”命令构建发布文件
C.已经构建发布的模块必须先导入程序,然后才能使用。导入时只能使用语句“import mymodule”,不可以用“from mymodule import *”
D.下载安装,使用“python setup.py install”命令安装到你的Python本地副本中
14.有一个空栈,若元素“P”、“y”、“t”、“h”、“o”、“n”依次入栈,其中“o”第一个出栈。则当所有元素全部出栈后,下列说法正确的是( )
A.出栈的最后一个元素一定为“P”
B.出栈的最后一个元素一定为“n”
C.元素“h”一定比“P”、“y”、“t”先出栈
D.元素“P”、“y”、“t”、“h”、“o”的出栈序列是不确定的
15.已知 x=2,语句 x*=x+1 执行后,x的值是( )。
A.2 B.3 C.5 D.6
16.如下程序段
s = 0
for i in range(1,11):
t = 2 * i - 1
s = s + t
print (s)
执行后,屏幕将输出( )
A.55 B.100 C.110 D.210
17.在Python中,小明想编写程序实现交换变量a和b的值,第4行下划线处应该填写( )
1 a=12
2 B=24
3 pring(a,b)
4
5 pring(a,b)
A.a==b B.a,b=b,a C.a=b,b=a D.b<=>a
18.在VB中,若x=16,y=5,则表达式x-y Mod 3^2 的值是 ( )。
A.0 B.9 C.10 D.11
19.有一个栈,栈底到栈顶的元素依次为 c,a,b,g,e,f。已经出栈的元素可以重新入栈(不考虑入栈顺序)。经过5次出栈、5次入栈后,栈中的元素不可能为( )
A.a,b,c,e,f,g B.c,b,a,g,f,e C.c,a,b,g,e,f D.c,a,g,b,f,e
20.下列优先级最高的运算符是( )。
A.// B.> C.and D.+
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.A
【详解】本题主要考查程序表达式知识点。x \ 2 = 0,x Mod 2 = 1,Int(x / 2) = x \ 2,均不能保证x是偶数,x / 2 = x \ 2表达式值为True时,能表示正整数x为偶数,故本题选A选项。
2.D
【详解】本题考查栈、队列相关内容。栈的特点是后进先出,队列的特点是先进先出。初始状态,栈中从栈顶到栈底的元素为3、2、1,队列为空。第一次操作:U,即将栈顶元素3出栈后入队,队列中队首元素为3;第二次操作:U,即将栈顶元素2出栈后入队,队列中队首元素为3,队尾元素为2;第三次操作:H,即将队首元素3出队后再入队,队列中队首元素为2,队尾元素为3;第四次操作:U,即将栈顶元素1出栈后再入队,队列中从队首到队尾各元素依次为2、3、1。故本题答案是D选项。
3.A
【详解】本题考查栈。我们需要通过I(进栈)和O(出栈)的操作顺序得到出栈顺序为ADCEB。分析如下:首先A进栈:I;A出栈:O,当前栈:空,当前出栈序列:A;B进栈:I,当前栈:B;C进栈:I,当前栈:BC;D进栈:I,当前栈:BCD;D出栈:O,当前栈:BC,当前出栈序列:AD;C出栈:O,当前栈:B,当前出栈序列:ADC;E进栈:I,当前栈:BE;E出栈:O,当前栈:B,当前出栈序列:ADCE;B出栈:O,当前栈:空,当前出栈序列:ADCEB;因此,为了得到ADCEB的出栈顺序,由I和O表示的操作串是IOIIIOOIOO。故答案为:A。
4.B
【详解】本题主要考查表达式的运算。字符串变量a=120,b=20,a>b or a<b and a+b>b值为False(逻辑运算符or两边有一真值为真,逻辑运算符and两边有一假值为假);Mid(a+b,2,3)=202,202<20值为False,故Not Mid(a+b,2,3)<b值为True;Int(Rnd*5)*4+1是产生[1,17]之间的整数,Val(b)=20,故Int(Rnd*5)*4+1>Val(b)值为False;Val(a) Mod 100\10=120 mod 100\10=120 mod 10=0,Sqr(4)=2,故Val(a)Mod 100\10=Sqr(4)值为False,故本题选B选项。
5.A
【详解】本题主要考查Python函数。eval()函数用来执行一个字符串表达式,并返回表达式的值,2+4/5=2+0.8=2.8,故语句eval('2+4/5')执行后的输出结果是2.8,故本题选A选项。
6.A
【详解】本题考查的知识点是表达式的相关知识。题干中x和y被赋的值都是字符串,表达式x+y 中的“+”表示将x和y两个字符连接起来即"123456",故答案为A选项。
7.C
【详解】本题主要考查表达式知识点。由题可知,阴影由两部分组成,两部分为并列关系,数学表达式为(x>a and x<=b) and x>=c,故本题选C选项。
8.D
【详解】本题考查运算表达式。a**b 的值是9的2次方等于81,而不是18。故答案为D选项。
9.B
【详解】本题主要考查Python程序的执行。c=0,变量i的范围是1~19,如果i是奇数或i能整除3,则c递增,满足if条件的i有13个:1、3、5、6、7、9、11、12、13、15、17、18、19,故c=13,故本题选B选项。
10.B
【详解】本题考查数据结构栈操作相关内容。利用栈求表达式“1 2 3 * +”,依据求解方法,“1”为数值,执行入栈操作“X”;“2”为数值,执行入栈操作“X”;“3”为数值,执行入栈操作“X”;“*”为运算符,则“3”、“2”依次出栈,即“YY”,执行:3*2操作,并将结果6入栈“X”;“+”为运算符,则“6”、“1”依次出栈,即“YY”,执行:6+1操作,并将结果7入栈“X”。则栈的操作序号为:XXXYYXYYX。故本题答案是B选项。
11.D
【详解】本题考查的是Python表达式。在Python中,*表示乘,**是幂次方,%是求余。**运算级别最高,故3*4**2%10=3*16%10=48%10=8,选项D正确。
12.D
【详解】本题考查栈。ABCDEF依次入栈再依次出栈,第一个出栈为F,需要栈的最大长度为6,A选项错误;ACDFEB依次入栈,第一个出栈为F,需要栈的最大长度为4,B选项错误;BEFACD依次入栈再依次出栈,当F,E出栈后,ACD入栈,D出栈,此时需要栈的最大长度为4,C选项错误;故答案为:D。
13.C
【详解】本题主要考查Python代码发布。创建一个文件夹mymodule,其中包含mymodule.py和setup.py(包含发布的元数据)两个文件;在DOS命令行中打开mymodule所在的目录,使用“python setup.py sdist”命令构建发布文件;已经构建发布的模块必须先导入程序,然后才能使用。导入时可以使用语句“import mymodule”,也可以用“from mymodule import *”;下载安装,使用“python setup.py install”命令安装到你的Python本地副本中,故本题选C选项。
14.C
【详解】本题考查栈的操作。根据题干描述,“O”第一个出栈,此时“n”还没有进栈,最后一个出栈的也可能是“n”也可能是“p”,故A、B选项错误。因入栈顺序为“p”“y”“t”“h”“o”,此时中间没有出栈的,故出栈的顺序为“o”“h”“t”“y”“p”是固定的。故D选项错误。故答案为:C。
15.D
【详解】本题考查的是Python赋值语句。x*=x+1等价于赋值语句x=x*(x+1)。执行后x的值为:2*(2+1)=6。故本题应选D。
16.B
【详解】本题主要考查Python程序的执行。s=0,变量i的范围是从1-10,循环体是t=2*i-1,s=s+t,故执行后,s=0+2*1-1+2*2-1+2*3-1+2*4-1+2*5-1+2*6-1+2*7-1+2*8-1+2*9-1+2*10-1=100,故本题选B选项。
17.B
【详解】本题考查的是Python赋值。实现交换变量a和b的值,可使用语句:a,b=b,a。故选项B正确。
18.D
【详解】本题主要考查VB程序表达式。算术运算符:优先级由高到低分别为:-(取负)、^(平方)、*或/、\、Mod、+或-,则表达式x-y Mod 3^2 =16-5 mod 9=16-5=11,故本题选D选项。
19.A
【详解】本题考查栈的操作相关内容。初始状态下,栈中有6个元素:c、a、b、g、e、f,经过5次出栈,栈中还剩1个元素:c,后再5次入栈,不管入栈顺序如何,栈底元素始终是c,A选项中的序列不可能出现,故本题答案是A选项。
20.A
【详解】本题考查的是Python运算符。Python运算符优先级:算术运算符 >关系运算术关系>逻辑运算符。算术运算符中*、/、// 优先级高于+、-。故本题应选A。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$