内容正文:
第三节 顺序结构与分支结构
一尧选择题
1. 用 Python算法控制结构描述院空气质量指数
AQI值大于 100袁小于等于 150 称为轻度污
染曰大于 150 称为中度以上污染遥 设 M 为
AQI值袁Z为污染程度遥 下列选项正确的是
渊 冤
A. if M>150:
Z="中度以上污染"
elif M>100:
Z="轻度污染"
B. if M>150:
Z="中度以上污染"
else:
Z="轻度污染"
C. if M>100:
Z="轻度污染"
elif M>150:
Z="中度以上污染"
D. if 100<M<=150:
Z="轻度污染"
else:
Z="中度以上污染"
2. 下列选项中袁对变量 flag的赋值与其他三项
不等价的是 渊 冤
A. if a>b: B. flag=a>b
flag=True
flag=False
C. if a>b: D. flag=False
flag=True if a>b:
else: flag=True
flag=False
3. 用 Python语言实现野每满 100减 30袁每满 200
减 70袁可以累计上不封顶冶的优惠金额计算袁
设 s为购买商品的原价袁计算优惠金额 t袁下
列选项正确的是 渊 冤
A. t=s//200*70 B. t=s//100*30
if s%200>=100: if s//200>0:
t=t+30 t+=s//200*70
C. if s>=200: D. if s>=100:
t=s//200*70 t=t//100*30
else: else:
t=s//100*30 t=t//200*70
4. 用 Python语句描述城市主干道中机动车平
均行驶速度野不低于 30 为畅通袁小于 20 为
堵塞袁其余为拥挤冶袁设 v为机动车平均行驶速
度渊单位院km/h冤袁则下列选项正确的是渊 冤
A. if v>=30:
print("畅通")
elif v<30:
print("拥挤")
else:
print("堵塞")
B. if v<20:
print("堵塞")
elif v>20:
print("拥挤")
else:
print("畅通")
C. if 20<=v<30:
print("拥挤")
elif v>=30 and v<20:
if v<20:
print("堵塞")
else:
print("畅通")
82
D. if v>=20:
if v<30:
print("拥挤")
else:
print("畅通")
else:
print("堵塞")
5. 天气预报中紫外线指数 index 变化范围用
0~15 的数字来表示袁紫外线指数等级 level
分级方法如图所示袁以下代码选项符合分级
方法的是 渊 冤
A. if index>=6:
level="high"
elif index>=2:
level="mid"
else:
level="low"
B. level="high"
if index<=2:
level="low"
else:
level="mid"
C. if index<6:
if index<=2:
level="low"
else:
level="mid"
else:
level="high"
D. level="high"
if index<2:
level="low"
elif index<6:
level="mid"
6. 已知某同学的 BMI 值存储在变量 X 中袁小
蓝编写程序判断该同学的身体状况信息袁并
保存到变量 Y中袁则下列程序段无法实现该
功能的是 渊 冤
A. Y="偏瘦" B. Y="偏胖"
if X>=18: if X<18:
Y="正常" Y="偏瘦"
elif X>24: elif X<=24:
Y="偏胖" Y="正常"
C. if X>24: D. if 18<=X<=24:
Y="偏胖" Y="正常"
elif X>=18: else:
Y="正常" Y="偏瘦"
else: if X>18:
Y="偏瘦" Y="偏胖"
7. 智慧饮料瓶回收机器的工作流程为院机器通
过身份卡或人脸识别对用户进行身份认证袁
身份识别后用户可投放饮料瓶袁机器对当前
饮料瓶进行判断袁符合回收条件则按塑料瓶
和铝制易拉罐进行分类袁塑料瓶按容量计算
金额袁铝制易拉罐按重量计算金额袁若不符
合回收条件则退回袁结束投瓶后机器统计饮
料瓶个数和金额袁并将回收数据通过网络传
送至服务器遥用 Python语句描述塑料瓶容量
500 毫升以下渊不包含冤0.05 元/个袁500 毫升
到 1200毫升渊不包含冤0.1元/个袁1200毫升及
以上 0.15元/个遥 设容量为 v渊单位为毫升冤袁
价格为 p渊单位为元冤袁则下列选项正确的是
渊 冤
index>=6?
index>2?
level饮'low' level饮'mid' level饮'high'
YN
N Y
83
A. p=0.05 B. p=0.15
if v>=500: if v<500:
p=0.1 p=0.05
elif v>=1200: elif v<1200:
p=0.15 p=0.1
C. p=0.05 D. p=0.15
if v>=500: if v<1200:
p=0.1 p=0.1
if v>1200: else:
p=0.15 p=0.05
8. 输入三个数依次赋给 a袁b袁c袁输出它们中的最
大值袁下列选项不能实现此功能的是 渊 冤
A. max=max(a,b,c) B. max=a
print(max) if b>max:
max=b
if c>max:
max=c
print(max)
C. max=a D. if a>b and a>c:
if b>max: max=a
max=b elif b>c:
else: max=b
max=c else:
print(max) max=c
print(max)
9. 某研究表明袁人体最适宜的环境温度在 18益
到 25益之间渊包括 18益和 25益冤袁设 t为某天
的环境温度袁人体感受存储在变量 r 中袁下
列选项正确的是 渊 冤
A. r="温度过低"
if t>=18:
r="温度适宜"
elif t>25:
r="温度过高"
B. r="温度过低"
if t>=18:
r="温度适宜"
if t>25:
r="温度过高"
C. r="温度适宜"
if t>=25:
r="温度过高"
elif t<18:
r="温度过低"
D. r="温度过高"
if t约=25 and t>=18:
r="温度适宜"
else:
r="温度过低"
10. 某算法的部分流程图如图所示遥 执行这部
分流程袁输入变量 n的值为 5袁则下列说法
正确的是 渊 冤
A. 语句野c臆n?冶共执行了 4次
B. 循环结束后袁变量 a的值为 3
C. 循环结束后袁变量 b的值为 5
D. 循环结束后袁程序输出的值为 6
输出 i
输入 n
a饮1,b饮1,c饮1
i饮2
c饮a+b
a饮b,b饮c
i饮i+1
c臆n?
Y
N
84
第四节 循环结构
一尧选择题
1. 如果正整数 n各个数位上的数字相加的和
是 9的倍数袁那么说明这个数能被 9整除遥
判定能否被 9整除的 Python程序段如下院
n=2022;s=0;t=0
while n>0:
if s%9==0:
print("能被 9整除")
else:
print("不能被 9整除")
方框中的代码由以下三部分组成院
淤s=s+t
于n=n//10
盂t=n%10
下列选项中袁代码顺序正确的是 渊 冤
A. 淤于盂 B. 于淤盂
C. 盂淤于 D. 于盂淤
2. 有如下 Python程序段院
n=0;s=咱1,1,2,2,2,3,1,1,3,3暂
for i in range(0,len(s)-1):
if s咱i暂==s咱i+1暂:
n+=1
else:
n-=1
print(n)
执行以上程序后袁变量 n的值为 渊 冤
A. 0 B. 1 C. -1 D. 2
3. 有如下 Python程序段院
a=咱3,2,1,-8,3,-2,8,6暂
s=t=a咱0暂
for i in range(1,len(a)):
if s>0:
s+=a咱i暂
else:
s=a咱i暂
if s>t:
t=s
print(t)
该程序段的运行结果是 渊 冤
A. 6 B. -10 C. 15 D. 33
4. 有如下 Python程序段院
n=int(input())
s=0
i=1
while i*i<=n:
if i==n//i:
s=s+1
elif n%i==0:
s=s+2
i=i+1
print(s)
若输入 16袁程序运行后输出的结果是
渊 冤
A. 3 B. 4 C. 5 D. 6
5. 有如下 Python程序段院
s="01234"
ans=""
for i in s:
if i in "02468":
ans=ans+i
else:
ans=i+ans
print(ans)
上述程序运行的结果为 渊 冤
A. 10 B. 31024
C. 42013 D. 43210
6. 有如下 Python程序段院
a=咱1,3,4,2,3暂
max=a咱0暂
s=0
for i in range(1,len(a)):
if a咱i暂>max:
max=a咱i暂
s=s+max
print(s)
执行程序段后袁变量 s的值是 渊 冤
A. 15 B. 13 C. 12 D. 7
85
7. 有千位和百位未知的 5 位整数野9**65冶袁能
被 37或 67整除遥以下 Python程序段的功能
是院在满足条件的所有数中袁将最大一个 5
位数的千位和百位依次显示出来遥
i,flag=100,False
while i>0 and not flag:
print(i//10,i%10)
方框中的代码由以下三部分组成院
淤j=90065+i*100
于i-=1
盂if (j%37)*(j%67)==0:flag=True
下列选项中袁代码顺序正确的是 渊 冤
A. 淤于盂 B. 淤盂于
C. 于淤盂 D. 于盂淤
8. 有如下 Python程序段院
t=""
i=0
while i<len(s):
if s咱i:i+len(c1)暂! =c1:
t=t+s咱i暂
i+=1
else:
t=t+c2
s=t
其功能是在字符串 s中将字符串 c1替换为
字符串 c2袁画线处应填的代码是 渊 冤
A. i+=len(c1) B. i+=len(c2)
C. i+=1 D. 什么也不用填
9. 某 Python程序段如下院
while a! =b:
if a>b:
a=a-b
else:
b=b//2
print(b)
若 a袁b的值分别为 22和 16袁程序运行后输
出的结果是 渊 冤
A. 0 B. 1
C. 2 D. 16
10. 有如下 Python程序段院
c,m=0,0
for i in range(2,len(a)):
if a咱i-2暂+a咱i-1暂==a咱i暂:
c+=1
if c>m:
m=c
else:
c=0
若列表 a=咱2,1,3,4,5,9,14,23暂袁执行该程序
段后,变量 m的值是 渊 冤
A. 0 B. 1
C. 2 D. 3
11. 列表 lst长度为 20袁lst咱0暂至 lst咱5暂的值依
次为野p冶野y冶野t冶野h冶野o冶野n冶袁执行如下 Python
程序段后输出的结果是 渊 冤
i=0;j=6
while i<j:
if i%3==0:
print(lst咱i暂,end="")
else:
lst咱j暂=lst咱i暂
j+=1
i+=1
A. hpotny B. photny
C. phynt D. phynto
12. 有如下 Python程序段院
a=咱5,3,8,9,7,3,11暂
n=len(a)-1
cnt=0
for i in range(1,n):
if a咱i暂==a咱i+1暂-a咱i-1暂:
cnt+=1
elif a咱i暂>a咱i+1暂-a咱i-1暂:
cnt+=2
else:
cnt+=3
print(cnt)
执行该程序段后袁变量 cnt的值为 渊 冤
A. 9 B. 10
C. 11 D. 12
86
4. B揖解析铱8*1.2<8/1.2 的值为 False袁故 not(8*1.2<8/
1.2)的值为 True曰9//2 的值为 4袁故表达式的值为
False曰8**2=64袁64屹10袁故值为 True曰6%2=0袁0<
0.1袁故值为 True遥
5. C揖解析铱A尧B尧D的结果为 True袁C的结果为 False遥
6. B揖解析铱a浴 越0 and b浴 越0表示 a和 b均不为 0袁与
之等价的是 a*b! =0遥
7. D
8. D揖解析铱x尧y的取值需满足院x的值为奇数袁y 的值
为偶数或者 x去掉最后一位数码后的数值大于 y遥
9. A揖解析铱%尧*尧/尧//优先级为 2袁**优先级为 1遥
10. A揖解析铱依次输入的内容为 A尧E袁则 abs(ord(a)-
ord(b))%8的值为 4遥
11. D揖解析铱题中 h的单位是 cm袁需要转换成 m遥
12. C
13. B揖解析铱若输入的三位数为整型渊int冤袁要实现生成
六位数需要将该数扩大 1000倍后再加上该数遥
14. B揖解析铱可以用野豫冶和野//冶运算取出三位整数的
十位尧百位袁再按新的权值相加得回文数遥
第二节 基本数据结构
1. D揖解析铱在 Python 中袁关系运算大于等于表示为
野>=冶袁小于等于表示为野<=冶袁逻辑运算符野and冶表
示布尔野与冶袁野or冶表示布尔野或冶遥
2. A揖解析铱字符串的索引从 0开始袁在切片时终值取
不到遥因此袁切片序号为咱7:12暂遥在索引序号为倒序
的情况下袁从原1开始袁则切片序号为咱原6:原1暂遥
3. B揖解析铱字典中的每个元素包含两部分内容院键和
值遥 键和值两者一一对应袁且每个键只能对应一个
值袁字典中的元素是没有顺序的袁引用元素时以键
为索引遥
4. C揖解析铱del list1咱3暂是删除列表 list1的第 4个元素遥
5. C揖解析铱abs(x)返回 x 的绝对值袁len(seq)返回序列
seq的长度袁其中 abs(int(-5.9))=5袁len("ningbo")=6曰
"ningbo"咱2:4暂="ng"曰5%2==2为 False,"n" in "ningbo"
为 True曰判断 5>=2+2**2的结果袁先计算 2+2**2=
6袁5>=6结果为 False遥
6. D
7. D揖解析铱info咱1:4暂表示从列表索引为 1的元素开始
取袁一直取到索引为 3的元素遥
8. B
9. C揖解析铱若 a="123"袁则选项 C得到的 new="123123"遥
10. B揖解析铱n1,n2=3,4为赋值语句袁即 n1=3袁n2=4遥由
题目可知袁当 n1<n2时袁两个变量值交换袁即 n1=
4袁n2=3遥
11. C揖解析铱程序的功能是使用变量 i遍历列表 b袁若
i不在列表 a中袁则将 c咱i暂依次插入到列表 a 中遥
12. C揖解析铱continue 用于跳过当次循环中剩下的语
句袁执行下一次循环遥
13. C揖解析铱程序的功能为利用字典 dic 统计列表 a
中每个元素出现的次数袁3出现了 3次遥
第三节 顺序结构与分支结构
1. A揖解析铱A项袁M>150时袁Z赋值野中度以上污染冶曰
若程序执行 elif 分支袁意味着 M臆150袁若 M 满足
M>100袁Z赋值野轻度污染冶袁符合题意曰B项袁当 M臆
100时袁执行 else分支袁Z赋值为野轻度污染冶袁不符
合题意曰C项袁 当 M>150时袁 不会执行 elif分支袁Z
赋值为野轻度污染冶袁不符合题意曰D项袁当 M臆100
时袁Z赋值为野中度以上污染冶袁不符合题意遥
2. A揖解析铱A 项袁不管 a与 b的大小关系如何袁程序
运行结束后 flag变量的值一定为 False曰B项袁若 a>
b袁则 flag的值为 True袁否则 flag的值为 False曰C项袁
若 a>b袁则 flag的值为 True袁否则 flag的值为 False曰
D项袁若 a>b袁则 flag的值为 True袁否则 flag的值为
False遥
3. A揖解析铱A 项袁先对满 200的计算出优惠金额袁再
对超出部分满足大于 100 的再加上优惠金额 30袁
正确曰B项袁先按满 100减 30计算袁又重复按满 200
减 70计算袁优惠活动重复计算曰C项袁能计算满 200
减 70的活动优惠金额袁超过 200袁多余部分超过 100
的满 100减 30的没有计算曰D项袁计算满 100减 30袁
不到 100的却按满 200减 70的计算遥
4. D揖解析铱A项袁当 v<20时袁输出的是野拥挤冶曰B项袁
当 v逸30时袁输出的是野拥挤冶曰C项袁elif后跟的条
件不可能同时满足袁需要将 and改成 or袁或者此句
改成 else才可以遥
5. C揖解析铱A. index为 2时袁level应为野low冶曰B. 逻辑
错误袁index>2 全部判断为野mid冶曰D. 逻辑错误袁
index为 2时袁level应为野low冶遥
6. A揖解析铱代入特殊的值袁可以快速判断是否能实现
算法要求的功能遥 A项袁当 X=25时袁if X>18条件成
立袁elif不会被执行袁会得到 Y是正常袁不符合要求遥
7. B揖解析铱A项袁当 v逸1200 时袁结果为 p=0.1袁不符
合题意曰C项袁当 v=1200时袁结果为 p=0.1袁不符合题
意曰D项袁当 v<500时袁结果为 p=0.1袁不符合题意遥
8. C揖解析铱C项袁如果 b大于 a袁那么 max会被设置为
b袁如果 b 不大于 a袁else 语句块会执行袁这时 max
会被设置为 c袁不管 c是否大于 a遥
9. B
10. D揖解析铱本题可以通过列表法得出袁循环结束后袁
a=5袁b=8袁c=8袁i=6袁野c臆n?冶共执行 5次遥
第四节 循环结构
1. C揖解析铱淤于盂的排序袁淤不可能排在首位执行袁
因为 t还未赋值遥 通过盂获得 n的余数袁通过淤把
余数相加袁通过于整除 10求得下一轮要处理的数值遥
2. B揖解析铱遍历列表 s中的元素袁如果前后相邻两个
v3020
拥挤
畅通堵塞
199
元素值相等袁n=n+1曰反之袁n=n-1遥 观察列表中的相
邻元素袁相等的情况有 5次袁不相等的情况有 4次袁
所以 n最后值为 1遥
3. C揖解析铱由程序代码可得循环过程中各变量值的
变化如下表袁该程序段的运行结果为 15遥
4. C揖解析铱程序运行过程如下表所示遥
5. B揖解析铱程序运行过程如下表所示遥
6. A揖解析铱s=3+4+4+4袁结果是 15遥
7. C揖解析铱由 i的初值为 100以及所能枚举的最大 5
位数为 99965可知袁在开始枚举验证时先要将 i的
值变为 99袁即野i-=1冶曰然后由 i计算得到每一个 5
位数 j袁即野j=90065+i*100冶曰最后对所有枚举的 j值
进行验证渊能否被 37 或 67 整除冤袁即野if (j%37)*
(j%67)==0:flag==True冶遥
8. A揖解析铱本题需要在字符串遍历的过程中完成部
分子串的替换遥 遍历过程中会遇到两种情况院情况
1袁无需替换袁此时指针 i往后走一位曰情况 2袁要将
c1替换为 c2袁则指针 i 需要往后走的长度为字符
串 c1的长度遥
9. C揖解析铱把 a=22袁b=16代入程序袁模拟循环执行 5
次可以快速得到答案袁第 5次循环后袁a=b袁循环结
束袁b的值为 2遥
10. D揖解析铱判断 i索引位置值等于前后两项相加的
数对个数袁有 3对遥
11. D揖解析铱本题是从 lst咱0暂开始袁间隔 2个输出袁可
以得到 D遥
12. B揖解析铱本题可使用表格袁记录变量的值袁B正确遥
第五节 函数与模块
1. C揖解析铱程序计算 5的阶乘袁5浴=120遥
2. C揖解析铱求得的 m为-5.5向上取整与向下取整之
和的绝对值遥
3. A揖解析铱a袁b是 gcd函数的两个变量袁在调用 gcd函
数时要将输入值 x袁y传递给 a袁b遥
4. C揖解析铱返回的值是字符串中索引值为 s的字符袁
故用 hs咱s暂遥
5. B揖解析铱产生的是咱1,10暂范围内的随机整数袁而
gens的索引序号是咱0,9暂袁即 n-1遥
6. D揖解析铱函数 fun()的功能是将 k进制的字符串 a
转换为十进制数遥 k的默认值为 10袁故将对应的字
符串 n视作十进制数袁fun(n)返回转换后的十进制
数袁结果为 1011遥 同理 fun(n,2)将字符串 n视作二
进制数袁然后返回该数转换成的十进制数袁结果为
11遥
7. B揖解析铱通过关键字参数名称传递值袁实参顺序可
以和形参顺序不一致遥本题在调用函数时设置了关
键字参数 step=3袁begin=2袁故函数的返回值为 a咱2:
10:3暂袁变量 b的值是咱2,5,8暂遥
8. D揖解析铱该程序的功能是生成含有 6个不重复元
素的列表 nums袁并且元素的值是在咱1,10暂范围内
的整数遥
9. B揖解析铱random.randint(3,6)的作用是生成在咱3,6暂
范围内的随机整数袁输入野helloworld冶袁则 n=10遥 当
x<n-x时袁前后交换袁否则原样输出遥 B中字符串发
生了前后交换袁同时 x=5袁这是不可能的遥
10. D揖解析铱A. 中间的两个 3有问题曰月. 3尧7位置需
要调换曰悦. 第 1个 5和接下来连续出现的两个 0
有问题曰D. k的值依次生成 9尧3尧5尧3袁就能生成得
到咱0,0,5,3,3,9暂遥
11. B揖解析铱该程序段的功能是将字符串 s中满足条
件渊小写字母冤的字符相连并输出遥
12. D揖解析铱randint(0,25)的作用是生成在咱0,25暂范围
内的随机整数遥 本题可以采用代入数据验证答案
的方法袁例如当 t=18 时袁chr((18+1)%26+65)的值
s t i a咱i暂
3 3 1 2
15 15 要 要
5 5 2 1
6 6 3 -8
-2 6 4 3
9 9 7 6
3 6 5 -2
1 6 6 8
循环次数 i s
3 4 4
4 5 5
1 2 2
2 3 4
i ans
"0" "0"
"4" "31024"
"1" "10"
"2" "102"
"3" "3102"
循环次数 a=22 b=16
1 6 16
5 2 2
2 6 8
3 6 4
4 2 4
200