内容正文:
Python程序及数据结构基础
一、选择题
1.(2025·浙江·高考真题)有后缀表达式“13+2*3+2*”,现利用栈计算该表达式:从左向右扫描,遇到数字时,数字入栈;遇到运算符时,两个元素出栈,用运算符计算,所得结果入栈。如此反复操作,直到扫描结束,栈顶元素是( )
A.21 B.22 C.23 D.24
2.(2024·浙江·高考真题)某完全二叉树包含5个节点,其根节点在后序遍历序列、中序遍历序列中的位置序号分别记为x,y,则x-y的值为( )
A.0 B.1 C.2 D.3
3.(2024·浙江·高考真题)栈初始为空,经过一系列入栈、出栈操作后,栈又为空。若元素入栈的顺序为“生”“旦”“净”“末”“丑”,则所有可能的出栈序列中,以“旦”结尾的序列个数为( )
A.3 B.4 C.5 D.6
4.(2024·浙江·高考真题)某同学根据下图所示流程图编写的Python程序段如下:
n = int(input())
if n <= 20:
z = 0
if n <= 50:
z = 1
else:
z = 2
用下列输入数据测试程序段与流程图,两者得到的z值不同的是( )
A.60 B.50 C.30 D.10
5.(2025·浙江·高考真题)某校组织学生进行阳光月跑活动,30天内总里程满50km达标。每天组织一次跑步,平均速度(S)达到6km/h时方可计入总里程(T),每天的跑步里程(K)若超过4km按4km计入,否则按实计入。判断某学生是否达标的部分流程图如图所示,(1)~(4)处可选表达式为①T←T+K ②T≥50? ③i≤n? ④K←4,则(1)~(4)处表达式序号依次为( )
A.③①④② B.③④①② C.②①④③ D.②④①③
6.(2023·浙江·高考真题)某二叉树的树形结构如图所示,其前序遍历结果为BDEFCA,则中序遍历结果为( )
A.EDCFBA B.ECFDAB C.BFDEAC D.EDFCBA
7.(2023·浙江·高考真题)下列二叉树中,中序遍历结果为BAEDFC的是( )
A. B. C. D.
8.(2023·浙江·高考真题)有1个队列,队首到队尾的元素依次为8,3,2,9,5。约定:T操作是指队列中1个元素出队后再入队,Q操作是指队列中l个元素出队。则经过TTTQTTQ系列操作后,队列中队首到队尾的元素依次为( )
A.2,9,5 B.2,5,8 C.5,8,2 D.8,3,2
9.(2023·浙江·高考真题)栈s的最大长度为3,初始为空,经过一系列入栈、出栈操作,若元素入栈的顺序是a,b,c,d,e,f,则可能的出栈序列为( )
A.f,e,d,c,b,a B.c,b,a,f,e,d C.c,a,b,d,e,f D.c,e,d,b,a,f
10.(2025·浙江·高考真题)某二叉树如图所示,若其中的一个叶子节点增加右子树(仅包含节点N),则新二叉树的中序遍历结果不可能是( )
A.CNBDAE B.CBDNAE C.CBDAEN D.NCBDAE
11.(2023·浙江·高考真题)定义如下函数:
def f(a,s):
if a>=s:
return a
else:
return f(a+1,s-a)
执行语句k=f(6,21)后,k的值为( )
A.6 B.7 C.8 D.9
12.(2024·浙江·高考真题)数组元素a[0]至a[n-1]依次存放着n个数据,现需要将元素a[n-1]插入在下标为x(0≤x<n-1)的位置,例如:n为5,数组a为[0,3,4,6,7],x为2,插入操作后a为[0,3,7,4,6]。实现该功能的程序段如下,方框中应填入的正确代码为( )
temp=a[n-1]
for i in range(n-2,x-1,-1):
a[x]=temp
A.a[i+1]=a[i] B.a[i-1]=a[i] C.a[i]=a[i+1] D.a[i]=a[i-1]
13.(2023·浙江·高考真题)某算法的部分流程图如图所示,执行这部分流程,若输入x的值依次为l0,7,8,12,0,则输出k的值是( )
A.2 B.3 C.4 D.5
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案
题号
1
2
3
4
5
6
7
8
9
10
答案
B
B
C
D
B
A
C
B
B
D
题号
11
12
13
答案
C
A
B
1.B
2.B
3.C
4.D
5.B
6.A
7.C
8.B
9.B
10.D
11.C
12.A
13.B
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$
Python程序及数据结构基础
一、选择题
1.(2025·浙江·高考真题)有后缀表达式“13+2*3+2*”,现利用栈计算该表达式:从左向右扫描,遇到数字时,数字入栈;遇到运算符时,两个元素出栈,用运算符计算,所得结果入栈。如此反复操作,直到扫描结束,栈顶元素是( )
A.21 B.22 C.23 D.24
【答案】B
【知识点】栈的基本操作
【详解】本题考查栈。对于后缀表达式 13+2*3+2*,我们使用栈 stack 来存储数字和计算结果。 扫描到 1,将 1 压入栈:stack = [1]。 扫描到 3,将 3 压入栈:stack = [1, 3]。 扫描到 +,从栈中弹出两个元素:3 和 1,计算 1 + 3 = 4,将结果 4 压入栈:stack = [4]。 扫描到 2,将 2 压入栈:stack = [4, 2]。 扫描到 *,从栈中弹出两个元素:2 和 4,计算 4 * 2 = 8,将结果 8 压入栈:stack = [8]。 扫描到 3,将 3 压入栈:stack = [8, 3]。 扫描到 +,从栈中弹出两个元素:3 和 8,计算 8 + 3 = 11,将结果 11 压入栈:stack = [11]。 扫描到 2,将 2 压入栈:stack = [11, 2]。 扫描到 *,从栈中弹出两个元素:2 和 11,计算 11 * 2 = 22,将结果 22 压入栈:stack = [22]。扫描结束后,栈顶元素是 22。因此,本题选择B。
2.(2024·浙江·高考真题)某完全二叉树包含5个节点,其根节点在后序遍历序列、中序遍历序列中的位置序号分别记为x,y,则x-y的值为( )
A.0 B.1 C.2 D.3
【答案】B
【知识点】二叉树的遍历
【详解】本题考查树的遍历相关内容。分析题目内容,推知:
该二叉树为完全二叉树且包含5个节点,其结构如图所示:,由后序遍历规则知,其访问过程为:3-4-1-2-0,则其根节点的位置x处于第5个,即x=5;由中序遍历的规则知,其访问过程为:3-1-4-0-2,则其根节点的位置y处于第4个,即y=4;由此得出:x-y=1,故本题答案是B选项。
3.(2024·浙江·高考真题)栈初始为空,经过一系列入栈、出栈操作后,栈又为空。若元素入栈的顺序为“生”“旦”“净”“末”“丑”,则所有可能的出栈序列中,以“旦”结尾的序列个数为( )
A.3 B.4 C.5 D.6
【答案】C
【知识点】栈的基本操作
【详解】本题考查栈操作相关内容。栈的特点是先进后出。入栈的顺序为“生”“旦”“净”“末”“丑”,且要求以“旦”结尾。分析题目内容,推知:要以“旦”结尾,“生”一定是第一个出栈,剩余3个元素的排列有6种方案:净、末、丑;末、丑、净;丑、末、净;末、净、丑;净、丑、末;丑、净、末。但丑、净、末不可能是出栈序列(丑出栈,说明净和末都在栈内,且末在净上面,出栈时,末先于净出栈),则所有可能的出栈序列为:(1)生、净、末、丑、旦;(2)生、末、丑、净、旦;(3)生、丑、末、净、旦;(4)生、末、净、丑、旦;(5)生、净、丑、末、旦。即以“旦”结尾的序列个数为5,故本题答案是C选项。
4.(2024·浙江·高考真题)某同学根据下图所示流程图编写的Python程序段如下:
n = int(input())
if n <= 20:
z = 0
if n <= 50:
z = 1
else:
z = 2
用下列输入数据测试程序段与流程图,两者得到的z值不同的是( )
A.60 B.50 C.30 D.10
【答案】D
【知识点】算法的描述
【详解】本题考查算法描述相关内容。分析流程图及程序段,推知:
程序段:程序段中有两个if语句:第一个if语句是判断n是否小于等于20,若成立z = 0;第二个if语句是判断n是否小于等于50,若成立,执行z=1,否则执行z=2;(2)流程图:流程图表示的是if语句的嵌套,当n大于20时,去判断嵌套if语句的情况。两者描述的算法不相同。
分析四个选项,ABC选项,输入的n的值均大于20,第一个if语句均不会执行,执行第二个if语句,则A选项:n=60,z=2;B选项:n=50,z=1;C选项:n=30,z=1;这三个选项程序段与流程图得到的z值相同。D选项,程序段:先执行n <= 20成立,z=0,再执行n <= 50成立,z = 1,z最终值为1,而在流程图中得到的z值为0。故本题答案是D选项。
5.(2025·浙江·高考真题)某校组织学生进行阳光月跑活动,30天内总里程满50km达标。每天组织一次跑步,平均速度(S)达到6km/h时方可计入总里程(T),每天的跑步里程(K)若超过4km按4km计入,否则按实计入。判断某学生是否达标的部分流程图如图所示,(1)~(4)处可选表达式为①T←T+K ②T≥50? ③i≤n? ④K←4,则(1)~(4)处表达式序号依次为( )
A.③①④② B.③④①② C.②①④③ D.②④①③
【答案】B
【知识点】算法的描述
【详解】本题考查流程图。(1)处为循环条件,此处需要遍历30天内的里程和速度,累计30天内的总里程,故此处为i≤n?。(2)处为当每天跑步的里程K超过4时,按4km计入,故此处为K←4。(3)处为累计总里程T,故此处为T←T+K。(4)处为判断该月总里程是否达标,故此处为T≥50?。因此,本题选择B。
6.(2023·浙江·高考真题)某二叉树的树形结构如图所示,其前序遍历结果为BDEFCA,则中序遍历结果为( )
A.EDCFBA B.ECFDAB C.BFDEAC D.EDFCBA
【答案】A
【知识点】二叉树
【详解】本题考查二叉树的遍历相关知识。
前序遍历规则为“根左右”,已知前序遍历结果为BDEFCA,结合题干中树形结构图可知该二叉树的树形结构应为:
前序遍历规则为“左根右”,根据完整的二叉树结构图,得出中序遍历为EDCFBA。故本题应选A。
7.(2023·浙江·高考真题)下列二叉树中,中序遍历结果为BAEDFC的是( )
A. B. C. D.
【答案】C
【知识点】二叉树
【详解】本题考查的是二叉树遍历相关知识。二叉树的中序遍历:先遍历左子树节点,再遍历根节点,再遍历右子树节点。选项A中序遍历结果为EDFBAC;选项B中序遍历结果为BEDFAC;选项C中序遍历结果为BAEDFC;选项D中序遍历结果为BACEDF,故本题应选C。
8.(2023·浙江·高考真题)有1个队列,队首到队尾的元素依次为8,3,2,9,5。约定:T操作是指队列中1个元素出队后再入队,Q操作是指队列中l个元素出队。则经过TTTQTTQ系列操作后,队列中队首到队尾的元素依次为( )
A.2,9,5 B.2,5,8 C.5,8,2 D.8,3,2
【答案】B
【知识点】队列的基本操作
【详解】本题考查的是队列操作。队列操作原则是先进先出。经过TTT操作后队首到队尾的元素依次为9,5,8,3,2;再经过Q操作后队首到队尾的元素依次为5,8,3,2;再经过TT操作后队首到队尾的元素依次为3,2,5,8;再经过Q操作后队首到队尾的元素依次为2,5,8。故选项B正确。
9.(2023·浙江·高考真题)栈s的最大长度为3,初始为空,经过一系列入栈、出栈操作,若元素入栈的顺序是a,b,c,d,e,f,则可能的出栈序列为( )
A.f,e,d,c,b,a B.c,b,a,f,e,d C.c,a,b,d,e,f D.c,e,d,b,a,f
【答案】B
【知识点】栈的概念与特性
【详解】本题考查栈的基本操作。栈是先进后出,题干中限定条件栈s的最大长度为3,初始为空。A选项f最先出栈,说明a,b,c,d,e,f需要全部入栈后,f才能出栈,但这种情况下栈长度需要为6,不符合题意,故A选项错误;B选项c最先出栈,此时a,b,c入栈,接着c,b,a依次出栈,此时栈s内为空,接下来f出栈,说明d,e,f需要入栈,接着f,e,d出栈,过程中栈内长度符合题意,故B选项正确;C选项c最先出栈,此时a,b,c入栈,接着c出栈,此时栈内a,b,由于b是栈顶元素,所以接下来出栈元素不可能是a,故C选项错误;D选项c最先出栈,此时a,b,c入栈,接着c出栈,此时栈内a,b,接下来e出栈,需要d,e入栈,此时栈内a,b,d,e,栈长度为4,不符合题意,故D答案错误。本题应选B。
10.(2025·浙江·高考真题)某二叉树如图所示,若其中的一个叶子节点增加右子树(仅包含节点N),则新二叉树的中序遍历结果不可能是( )
A.CNBDAE B.CBDNAE C.CBDAEN D.NCBDAE
【答案】D
【知识点】二叉树
【详解】本题考查二叉树。由于二叉树的中序遍历顺序为左根右,因此,无论在这个二叉树的哪个叶子节点增加右子树(仅包含节点N),该节点N都不可能出现在中序遍历的第一个位置。因此,本题选择D。
11.(2023·浙江·高考真题)定义如下函数:
def f(a,s):
if a>=s:
return a
else:
return f(a+1,s-a)
执行语句k=f(6,21)后,k的值为( )
A.6 B.7 C.8 D.9
【答案】C
【知识点】典型算法
【详解】本题考查递归算法及自定义函数。由自定义函数f(a,s)可知:当参数a≥s时(即递归结束条件),返回值a,否则递归调用f(a+1,s-a)。执行语句k=f(6,21),第一次调用函数f(6,21)未达到递归结束条件,第二次调用函数f(7,15);未达到递归结束条件,第三次调用函数f(8,8),满足递归结束条件a≥s,返回值为a,得到答案8,故选C。
12.(2024·浙江·高考真题)数组元素a[0]至a[n-1]依次存放着n个数据,现需要将元素a[n-1]插入在下标为x(0≤x<n-1)的位置,例如:n为5,数组a为[0,3,4,6,7],x为2,插入操作后a为[0,3,7,4,6]。实现该功能的程序段如下,方框中应填入的正确代码为( )
temp=a[n-1]
for i in range(n-2,x-1,-1):
a[x]=temp
A.a[i+1]=a[i] B.a[i-1]=a[i] C.a[i]=a[i+1] D.a[i]=a[i-1]
【答案】A
【知识点】典型算法
【详解】本题考查的是列表插入操作。初始a=[0,3,4,6,7],x=2,n=5。首先备份最后一个元素7。接着通过for循环,i范围从n-2开始到x结束,根据a终值为[0,3,7,4,6],可推导出循环体是进行了后移移位操作,既a[i+1]=a[i]。故本题应选A。
13.(2023·浙江·高考真题)某算法的部分流程图如图所示,执行这部分流程,若输入x的值依次为l0,7,8,12,0,则输出k的值是( )
A.2 B.3 C.4 D.5
【答案】B
【知识点】算法的描述
【详解】本题考查的是流程图识读。阅读流程图可知,该程序功能是依次输入x并累加,如果累加结果大于等于10,记录次数k,并重置累加结果为0。输入10满足条件,记录k=1,重置y=0;输入7,8后再次满足条件,记录k=1+1=2,重置y=0;输入12后再次满足条件,记录k=2+1=3,重置y=0;输入0,程序结束。故本题应选B。
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
$$