第02讲 Python语言基础与三大控制结构(专项训练)(浙江专用)2027年高考信息技术一轮复习讲练测
|
2份
|
16页
|
123人阅读
|
3人下载
内容正文:
第02讲 Python语言基础与三大控制结构
目录
01 课标达标练
考点01 考查算法及其特征
考点02 考查算法的控制结构
考点03 考查算法的描述(流程图)
考点04 考查Python语言程序设计
02 核心突破练
03 真题溯源练
01 考查算法及其特征【★选考高频】
考纲对标:掌握算法的五大特征(有穷性、可行性、确定性、0个或多个输入、1个或多个输出),理解算法与程序的区别;能判断某段描述是否构成算法。浙江选考选择题高频考查。
1.【结合成绩评定考查算法特征】下列关于算法特征的描述,正确的是( )
A. 算法的有穷性指算法中每一步都能被计算机执行
B. 算法的确定性指对相同输入,算法每次执行的步骤与结果都一致
C. 算法可以有0个或多个输入,也可以有0个或多个输出
D. 算法必须通过计算机程序实现,否则无法运行
【答案】B
【解析】本题考查算法的五大特征。
A 错误:有穷性指算法在执行有限步骤后必须终止;“每一步都能被计算机执行”是可行性(能行性)的要求;
B 正确:确定性指算法中每一条指令必须有明确含义,对相同输入,执行的步骤与结果是唯一的;
C 错误:算法可以有0个或多个输入,但必须有1个或多个输出;
D 错误:算法是解决问题的方法和步骤,不依赖于具体编程语言,不一定要通过程序实现。
2.【结合求和程序考查控制结构识别】某Python程序段用于计算1到100之间所有偶数的和,请判断其使用了哪些控制结构,并补全代码。
s = 0
for i in range(1, 101):
if i % 2 == 0:
s = s + i
print(s)
(1) 该程序综合使用了顺序结构、①______结构和②______结构三种控制结构;
(2) 若将range(1, 101)改为range(①______, 101),仍能实现相同功能(只填起始值)。
【答案】(1)①分支;②循环;(2)①2
【解析】本题考查算法三大控制结构与for循环。
程序自上而下依次执行属顺序结构;for循环属于循环结构;用if判断偶数属于分支(选择)结构。求1~100偶数之和,把range起始值改为2(即range(2,101)),仍从偶数2开始遍历,功能不变。
02 考查算法的控制结构【★选考高频】
考纲对标:理解顺序、分支(if-elif-else)、循环(for、while)三种基本控制结构的执行流程;掌握range()函数参数含义以及break与continue语句的区别;能结合具体情境判断程序所属结构并推断运行结果。浙江选考选择题与非选择题均高频考查。
3.【结合停车计费系统考查分支与循环结构】某停车场计费规则为:入场后前3小时每小时收费5元,超过3小时的部分每小时加收2元。计算一辆车停车n小时应收费用的Python程序段中,用if语句判断“n>3”以选择不同计费方式。下列说法正确的是( )
A. 该程序段只使用了顺序结构
B. 该程序段使用了分支结构,用于判断停车时长是否超过3小时
C. 该程序段使用了循环结构,对每个计费单元重复累加
D. 该程序段未使用任何控制结构
【答案】B
【解析】本题考查算法控制结构。
A 错误:程序用if判断n是否大于3以选择不同计费分支,并非只有顺序结构;
B 正确:用if判断“n>3”决定采用哪种计费方式,属于分支(选择)结构;
C 错误:计费可直接由公式计算得出,无需对每小时进行循环累加;
D 错误:程序综合使用了顺序结构与分支结构。
03 考查算法的描述(流程图识读与代码转换)【★选考高频】
考纲对标:掌握流程图中各图形符号(起止框、输入输出框、判断框、处理框、流程线)的含义;能根据流程图推断程序执行结果或补全缺失环节;能将流程图与Python代码相互转换。浙江选考选择题高频考查。
4.【结合网购满减活动考查流程图识读】某购物平台规定:单笔订单金额满300元立减50元,未满不减免。用流程图描述该规则(判断框为“金额≥300?”,处理框为“实付←金额-50”,最后输出“实付”)。若输入金额为280,则输出的实付为( )
A. 280
B. 250
C. 230
D. 330
【答案】A
【解析】本题考查流程图识读。输入金额280,判断“金额≥300?”结果为否,跳过减免处理框,直接输出实付=金额=280,故选A。
5.【结合体温预警考查流程图与代码转换】下列流程图实现“当温度t≥38时输出‘预警’,否则输出‘正常’”。与之功能等价的Python程序段是( )
A. if t >= 38: print('预警') else: print('正常')
B. if t > 38: print('正常') else: print('预警')
C. if t < 38: print('预警') else: print('正常')
D. if t <= 38: print('预警') else: print('正常')
【答案】A
【解析】本题考查流程图与代码转换。流程图判断“t≥38”成立输出“预警”,否则输出“正常”,与A选项的if-else分支完全对应,故选A。
04 考查Python语言程序设计(程序阅读与代码填空)【★选考高频】
考纲对标:掌握Python基础语法(数据类型、变量、运算符、表达式)与字符串、列表的基本操作;能阅读包含循环、分支的程序段推断输出结果;能根据问题描述补全关键代码。浙江选考选择题、非选择题(代码填空)均高频考查。
6.【结合字符串处理考查程序阅读】有如下Python程序段:
s = 'a1B2c3'
res = ''
for ch in s:
if 'a' <= ch <= 'z':
res = res + chr(ord(ch) - 32)
else:
res = res + ch
print(res)
执行该程序段后,输出的结果是( )
A. A1B2C3
B. a1b2c3
C. A1b2C3
D. a1B2c3
【答案】A
【解析】本题考查字符串遍历与分支。对每个字符,若为小写字母则转大写(ord(ch)-32对应大写字母),数字与其他字符保持不变。'a1B2c3'处理后为'A1B2C3',故选A。
7.【结合成绩统计考查代码填空】某程序统计列表score=[82,90,68,75,88]中分数大于等于80的人数,代码如下(划线处需补全):
cnt = 0
for i in score:
if ①______:
②______
print(cnt)
下列填入①②处的代码,正确的是( )
A. ①i >= 80 ②cnt += 1
B. ①i > 80 ②cnt += 1
C. ①score[i] >= 80 ②cnt = cnt + 1
D. ①score[i] > 80 ②cnt += 1
【答案】A
【解析】本题考查for循环遍历列表与计数。for i in score遍历的是列表的元素值,①应判断元素是否≥80(应写i,不能写score[i]);②对满足条件的元素计数,用cnt+=1。故A正确。
1. 【新情境:字符串变换・分支结构】★(2025年11月稽阳联谊学校高三联考 第10题)有如下Python程序段:
s = 'zj25@IT'; s1 = ''
for i in range(len(s)):
c = s[i]
if 'A' <= c <= 'Z':
s1 += chr((ord(c) - ord('A') + 1) % 26 + ord('a'))
elif '0' <= c <= '9':
s1 += str((int(c) + 7) % 10)
else:
s1 = c + s1
执行该程序段后,s1的值是( )
A. @jz92ju
B. jz92@IT
C. @jz29JU
D. 25@ju
【答案】A
【解析】本题考查字符串遍历与分支。逐个字符处理:'z'、'j'、'@'既非大写字母也非数字,采用s1=c+s1前插;'2'→(2+7)%10=9、'5'→(5+7)%10=2,追加;大写'I'→(I-A+1)%26+a='j'、'T'→(T-A+1)%26+a='u'。综合得“@jz92ju”,故选A。
2. 【新情境:大小写转换・分支结构】★(宁波市2025学年第二学期选考模拟考试 第10题)有如下Python程序段:
result, flag = '', 1
for ch in s:
if flag == 1 and 'a' <= ch <= 'z':
result += chr(ord(ch) - 32)
elif ch == '#':
flag = 1 - flag
elif flag == 0:
result += ch
若字符串s的值为'ab#cd#23e#!',执行该程序段后,变量result的值为( )
A. 'ABcdE!'
B. 'AbcdE!'
C. 'ABCDE'
D. 'aBcdE!'
【答案】A
【解析】本题考查字符串遍历与分支。初始flag=1:a、b为小写字母转大写得“AB”;遇“#”flag变0,c、d直接加入得“ABcd”;再遇“#”flag变1,'2'、'3'非小写不加入;'e'转大写得“ABcdE”;最后'!'在flag=0时直接加入,得“ABcdE!”,选A。
3. 【新情境:旋转数组查找・while循环与分支】★(2025年11月稽阳联谊学校高三联考 第11题)有如下Python程序段:
a = a[x:] + a[:x] #x为0~n-1的正整数,列表a各元素递增排列
L = 0; R = len(a) - 1
while L < R:
m = ①______
if a[m] <= a[R] and a[m] < a[L]:
R = m - 1
else:
L = m
print('数组中的最大值位置为:', ②______)
为使程序实现所需功能,划线处应填入的代码是( )
A. ①(L+R+1)//2 ②m
B. ①(L+R)//2 ②m
C. ①(L+R+1)//2 ②L
D. ①(L+R)//2 ②R
【答案】C
【解析】本题考查while循环与二分查找思想。循环结束时L=R,最大值位置即L,②填L;用(L+R+1)//2计算m,可避免L、R相邻时(L+R)//2导致L不更新的死循环,①填(L+R+1)//2,故选C。
1.(选考真题・2026年1月浙江信息技术选考 第7题)某算法的部分流程图如图所示(判断框依次为“k<n?”与“a[k]>4?”,处理框为“c←c+1”与“k←k+1”,初始k←0、c←0)。若n的值为8,数组元素a[0]至a[n-1]依次存放2,3,4,8,5,4,9,6,执行这部分流程后,输出c的值为( )
A. 1
B. 2
C. 3
D. 4
【答案】D
【解析】本题考查流程图识读。流程依次扫描数组a,每遇到一个大于4的元素c加1,最终统计a中大于4的元素个数。a为2,3,4,8,5,4,9,6,其中8、5、9、6大于4,共4个,故输出c=4,选D。
综上,本题选D。
2.(选考真题・2026年1月浙江信息技术选考 第12题)有如下Python程序段:
#获取a的初始值,代码略
i = 1
for j in range(1, len(a)):
if a[j] < a[i]:
a[i + 1] = a[j]
i = i + 1
a[0], a[i - 1] = a[i - 1], a[0]
执行该程序段后,a的值为[2,4,3,5,6,9,7],则下列选项中不可能为a[0]的初始值的是( )
A. 2
B. 5
C. 6
D. 7
【答案】D
【解析】本题考查for循环与列表操作。程序把小于当前标记a[i]的元素依次存入a[i+1]后i自增,最后交换a[0]与a[i-1]。若a[0]初始为7,经程序处理后不可能得到[2,4,3,5,6,9,7],故选D。
3.(选考真题・2024年6月浙江信息技术选考 第11题)有如下Python程序段:
for i in range(0, len(a) - 1, 2):
if i > 0 and a[i] < a[i - 1]:
a[i], a[i - 1] = a[i - 1], a[i]
if a[i] < a[i + 1]:
a[i], a[i + 1] = a[i + 1], a[i]
列表a有6个元素,运行该程序段后,a可能的值是( )
A. [2, 9, 8, 6, 9, 3]
B. [9, 9, 8, 6, 3, 2]
C. [9, 3, 6, 2, 8, 9]
D. [6, 3, 9, 2, 9, 8]
【答案】D
【解析】本题考查for循环、分支与列表元素交换。
A 排除:i=0执行后a[0]≥a[1],A中a[0]=2<a[1]=9不可能;
B 排除:i=2执行后a[2]≥a[1],B中a[2]=8<a[1]=9不可能;
C 排除:i=4执行后a[4]≥a[5],C中a[4]=8<a[5]=9不可能;
D 满足:D中a[0]≥a[1]、a[2]≥a[1]与a[3]、a[4]≥a[3]与a[5]全部成立,故程序结果a可能为D。
4.(选考真题・2025年1月浙江信息技术选考 第10题)
数组元素a[0]~a[n-1]已按升序排列,现要将a[pos](0≤pos≤n-1)的值加1,并保持数组的有序性不变,实现该功能的程序段如下,方框中应填入的正确代码为( )
t = a[pos] + 1
i = pos
while ①______:
a[i] = a[i + 1]
i += 1
a[i] = t
A. i<n-1
B. i<n-1 and t>a[i+1]
C. i<n-1 and a[i]>a[i+1]
D. i<=n-1 or t>a[i]
【答案】B
【解析】本题考查while循环与保持有序性。
A 错误:仅限制不越界,未判断t与右侧元素的大小关系,无法保证有序;
B 正确:当t大于右侧元素a[i+1]且i未越界时右移,将t插回保持升序,故选B;
C 错误:应比较t与a[i+1],而非a[i]与a[i+1];
D 错误:i<=n-1存在越界风险,且用t>a[i]作条件不符合右移逻辑。
综上,本题选B。
学科网(北京)股份有限公司1 / 17
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
第02讲 Python语言基础与三大控制结构
目录
01 课标达标练
考点01 考查算法及其特征
考点02 考查算法的控制结构
考点03 考查算法的描述(流程图)
考点04 考查Python语言程序设计
02 核心突破练
03 真题溯源练
01 考查算法及其特征【★选考高频】
考纲对标:掌握算法的五大特征(有穷性、可行性、确定性、0个或多个输入、1个或多个输出),理解算法与程序的区别;能判断某段描述是否构成算法。浙江选考选择题高频考查。
1.【结合成绩评定考查算法特征】下列关于算法特征的描述,正确的是( )
A. 算法的有穷性指算法中每一步都能被计算机执行
B. 算法的确定性指对相同输入,算法每次执行的步骤与结果都一致
C. 算法可以有0个或多个输入,也可以有0个或多个输出
D. 算法必须通过计算机程序实现,否则无法运行
2.【结合求和程序考查控制结构识别】某Python程序段用于计算1到100之间所有偶数的和,请判断其使用了哪些控制结构,并补全代码。
s = 0
for i in range(1, 101):
if i % 2 == 0:
s = s + i
print(s)
(1) 该程序综合使用了顺序结构、①______结构和②______结构三种控制结构;
(2) 若将range(1, 101)改为range(①______, 101),仍能实现相同功能(只填起始值)。
02 考查算法的控制结构【★选考高频】
考纲对标:理解顺序、分支(if-elif-else)、循环(for、while)三种基本控制结构的执行流程;掌握range()函数参数含义以及break与continue语句的区别;能结合具体情境判断程序所属结构并推断运行结果。浙江选考选择题与非选择题均高频考查。
3.【结合停车计费系统考查分支与循环结构】某停车场计费规则为:入场后前3小时每小时收费5元,超过3小时的部分每小时加收2元。计算一辆车停车n小时应收费用的Python程序段中,用if语句判断“n>3”以选择不同计费方式。下列说法正确的是( )
A. 该程序段只使用了顺序结构
B. 该程序段使用了分支结构,用于判断停车时长是否超过3小时
C. 该程序段使用了循环结构,对每个计费单元重复累加
D. 该程序段未使用任何控制结构
03 考查算法的描述(流程图识读与代码转换)【★选考高频】
考纲对标:掌握流程图中各图形符号(起止框、输入输出框、判断框、处理框、流程线)的含义;能根据流程图推断程序执行结果或补全缺失环节;能将流程图与Python代码相互转换。浙江选考选择题高频考查。
4.【结合网购满减活动考查流程图识读】某购物平台规定:单笔订单金额满300元立减50元,未满不减免。用流程图描述该规则(判断框为“金额≥300?”,处理框为“实付←金额-50”,最后输出“实付”)。若输入金额为280,则输出的实付为( )
A. 280
B. 250
C. 230
D. 330
5.【结合体温预警考查流程图与代码转换】下列流程图实现“当温度t≥38时输出‘预警’,否则输出‘正常’”。与之功能等价的Python程序段是( )
A. if t >= 38: print('预警') else: print('正常')
B. if t > 38: print('正常') else: print('预警')
C. if t < 38: print('预警') else: print('正常')
D. if t <= 38: print('预警') else: print('正常')
04 考查Python语言程序设计(程序阅读与代码填空)【★选考高频】
考纲对标:掌握Python基础语法(数据类型、变量、运算符、表达式)与字符串、列表的基本操作;能阅读包含循环、分支的程序段推断输出结果;能根据问题描述补全关键代码。浙江选考选择题、非选择题(代码填空)均高频考查。
6.【结合字符串处理考查程序阅读】有如下Python程序段:
s = 'a1B2c3'
res = ''
for ch in s:
if 'a' <= ch <= 'z':
res = res + chr(ord(ch) - 32)
else:
res = res + ch
print(res)
执行该程序段后,输出的结果是( )
A. A1B2C3
B. a1b2c3
C. A1b2C3
D. a1B2c3
7.【结合成绩统计考查代码填空】某程序统计列表score=[82,90,68,75,88]中分数大于等于80的人数,代码如下(划线处需补全):
cnt = 0
for i in score:
if ①______:
②______
print(cnt)
下列填入①②处的代码,正确的是( )
A. ①i >= 80 ②cnt += 1
B. ①i > 80 ②cnt += 1
C. ①score[i] >= 80 ②cnt = cnt + 1
D. ①score[i] > 80 ②cnt += 1
1. 【新情境:字符串变换・分支结构】★(2025年11月稽阳联谊学校高三联考 第10题)有如下Python程序段:
s = 'zj25@IT'; s1 = ''
for i in range(len(s)):
c = s[i]
if 'A' <= c <= 'Z':
s1 += chr((ord(c) - ord('A') + 1) % 26 + ord('a'))
elif '0' <= c <= '9':
s1 += str((int(c) + 7) % 10)
else:
s1 = c + s1
执行该程序段后,s1的值是( )
A. @jz92ju
B. jz92@IT
C. @jz29JU
D. 25@ju
2. 【新情境:大小写转换・分支结构】★(宁波市2025学年第二学期选考模拟考试 第10题)有如下Python程序段:
result, flag = '', 1
for ch in s:
if flag == 1 and 'a' <= ch <= 'z':
result += chr(ord(ch) - 32)
elif ch == '#':
flag = 1 - flag
elif flag == 0:
result += ch
若字符串s的值为'ab#cd#23e#!',执行该程序段后,变量result的值为( )
A. 'ABcdE!'
B. 'AbcdE!'
C. 'ABCDE'
D. 'aBcdE!'
3. 【新情境:旋转数组查找・while循环与分支】★(2025年11月稽阳联谊学校高三联考 第11题)有如下Python程序段:
a = a[x:] + a[:x] #x为0~n-1的正整数,列表a各元素递增排列
L = 0; R = len(a) - 1
while L < R:
m = ①______
if a[m] <= a[R] and a[m] < a[L]:
R = m - 1
else:
L = m
print('数组中的最大值位置为:', ②______)
为使程序实现所需功能,划线处应填入的代码是( )
A. ①(L+R+1)//2 ②m
B. ①(L+R)//2 ②m
C. ①(L+R+1)//2 ②L
D. ①(L+R)//2 ②R
1.(选考真题・2026年1月浙江信息技术选考 第7题)某算法的部分流程图如图所示(判断框依次为“k<n?”与“a[k]>4?”,处理框为“c←c+1”与“k←k+1”,初始k←0、c←0)。若n的值为8,数组元素a[0]至a[n-1]依次存放2,3,4,8,5,4,9,6,执行这部分流程后,输出c的值为( )
A. 1
B. 2
C. 3
D. 4
2.(选考真题・2026年1月浙江信息技术选考 第12题)有如下Python程序段:
#获取a的初始值,代码略
i = 1
for j in range(1, len(a)):
if a[j] < a[i]:
a[i + 1] = a[j]
i = i + 1
a[0], a[i - 1] = a[i - 1], a[0]
执行该程序段后,a的值为[2,4,3,5,6,9,7],则下列选项中不可能为a[0]的初始值的是( )
A. 2
B. 5
C. 6
D. 7
3.(选考真题・2024年6月浙江信息技术选考 第11题)有如下Python程序段:
for i in range(0, len(a) - 1, 2):
if i > 0 and a[i] < a[i - 1]:
a[i], a[i - 1] = a[i - 1], a[i]
if a[i] < a[i + 1]:
a[i], a[i + 1] = a[i + 1], a[i]
列表a有6个元素,运行该程序段后,a可能的值是( )
A. [2, 9, 8, 6, 9, 3]
B. [9, 9, 8, 6, 3, 2]
C. [9, 3, 6, 2, 8, 9]
D. [6, 3, 9, 2, 9, 8]
4.(选考真题・2025年1月浙江信息技术选考 第10题)
数组元素a[0]~a[n-1]已按升序排列,现要将a[pos](0≤pos≤n-1)的值加1,并保持数组的有序性不变,实现该功能的程序段如下,方框中应填入的正确代码为( )
t = a[pos] + 1
i = pos
while ①______:
a[i] = a[i + 1]
i += 1
a[i] = t
A. i<n-1
B. i<n-1 and t>a[i+1]
C. i<n-1 and a[i]>a[i+1]
D. i<=n-1 or t>a[i]
学科网(北京)股份有限公司1 / 17
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$