内容正文:
高效作业8[第8课 顺序结构 分支结构]
【A级 新教材落实与巩固】
1.下列Python表达式中,值为True的是( C )
A.not (3>2 or 'a'>'b')
B.len('python')==max([2,6,1,4,7])
C.'3'+'2' > '13'+'12'
D.7%8==1 or 19//5==4.5
【解析】 选项C,”32”>”1312”,字符串按首字符进行比较,”3”>”1”,表达式的值为True。
2.下列Python表达式中,值为True的是( A )
A. ”1”+”2”<”2”
B.20//6<20%6
C.int(-3.6)>-3
D. ”ba” in ”caabc”
【解析】 选项A,”1”+”2”=”12”<”2”,值为True。
3.下列Python表达式中,值为4的是( C )
A.abs(int(-2.3 **2))
B.len(str(1)+”3”)
C.(8//3%4)**2
D.int(3.63 *10+0.5)//10*1.0
【解析】 选项A,abs(int(-2.3 ** 2))=5;选项B,len(str(1)+”3”)=2;选项D,int(3.63 * 10+0.5)//10*1.0=3.0;选项C符合题意。
4.己知s=”2023杭州亚运”,则下列Python表达式中,值为True的是( D )
A.s[1]==”2”
B.s[2:4]==23
C.len(s)==7
D.5<len(s)<10
【解析】 选项A,已知s=”2023 杭州亚运”,则s[1]==”0”,因为索引从0 开始,选项错误;选项B,变量s 是字符串类型的数据,所以s[2:4]==”23”,选项错误;选项C,字符串”2023 杭州亚运”中共有8 个字符,所以len(s)==8,选项错误;选项D,5<len(s)<10 结果为True,选项正确。
5.已知变量s=”2012abc2”,下列Python 表达式中,值最小的是( A )
A.int(s[2:4]+”6”)//8
B.len(s)*3
C.round(float(s[:3])/4)
D.int(s[-1]) **4
【解析】 选项A,s[2:4]=”12”,故原式=126//8=15。选项B,len(s)=8,故原式=24。选项C,s[:3]=”201”,故round(float(s[:3]/4)=50,注意保留整数部分。选项D,s[-1]=”2”,故原式=2**4=16。故选项A的值最小。
6.最近,小蓝所在的学校进行了体检,并获得了全校学生的身高和体重信息。小蓝利用该信息计算全校学生的身体质量指数BMI。公式为BMI=体重/身高2,其中身高单位为m,体重单位为kg。若BMI值小于18,则偏瘦;若BMI值在18到24之间,则正常;若BMI值大于24,则偏胖。已知浮点型变量h表示身高数据,浮点型变量w表示体重数据,则下列Python表达式中,能够正确计算身体质量指数BMI并四舍五入保留两位小数的是( C )
A.int(w/h*h*100+0.5)/100
B.round(w//h**2,2)
C.int(w*h**(-2)*100+0.5)/100
D.round(h/w/w,2)
【解析】 选项A,括号里表达式计算的是w/h*h=w,选项错误;选项B,括号里表达式用了整除符号,选项错误;选项D,表达式是h/w/w,和题干公式不符,选项错误。
7.2024·开化中学检测假设用变量s 表示跑步里程(公里),t 表示跑步时长(秒),v 表示配速(x 分y秒/公里)。则根据s 和t 求得x 和y 的Python 表达式分别为( A )
A.int(t/s//60)和int(t/s%60)
B.int(s/t//60)和int(s/t%60)
C.int(t/s%60)和int(t/s//60)
D.int(s/t%60)和int(s/t//60)
【解析】 从配速的单位(x 分y 秒/公里)来看,配速就是每公里跑步所需的时间,图中用时26 分45 秒,跑步4.87公里,配速5 分26 秒。因此用跑步时长t 除以跑步里程s 的结果为配速,整数部分为分,余数部分为秒,选项A正确。
8.下列Python表达式能正确计算得到结果的是( A )
A.从存放着大陆居民身份证号码的变量s中提取出生年月日:s[-12:-4]
B.判断a,b,c三条边是否能构成三角形:a+b>c and a-b<c
C.将小写字母ch转换为大写字母的表达式可以写成:chr(ord(ch)+32)
D.若x='1a3',判断变量x中存放的是否是数字字符:x in ”123456789”
【解析】 选项B,三角形任意两边之和大于第三边,选项错误;选项C,chr(ord(ch)+32)的功能是将大写字母转换为小写字母,选项错误;选项D,x='1a3',x in ”123456789”只能判断x是否为该字符串的子串,不能判断x中存放的是否是数字字符,选项错误。
9.键盘依次输入33和44,执行如下程序段后,输出的结果是( A )
a=input()
b=input()
c=int(a+b)
d=int(a)+int(b)
print(c,d)
A.3344 77 B.77 3344
C.77 77 D.3344 3344
【解析】 c=int(a+b)=3344;d=int(a)+int(b)=77, 选项A正确。
10.有如下Python程序段:
list1=[6,6,17,20,2,9]
list2=[12,2,3,3,5]
p1=max(list1)+len(list2)
p2=list1[3]//list2[3]
ans=p1%p2
print(ans)
执行该程序段后,输出的结果是( B )
A.0 B.1
C.2 D.3
【解析】 p1=max(list1)+len(list2)=20+5=25;p2=list1[3]//list2[3]=20//3=6;ans=p1%p2=25%6=1,选项B正确。
11.有如下Python程序段:
num=40
if num<60:
num=60
if num==60:
num=num+20
if num>80:
num+=20
else:
num=40
执行该程序段后,变量num的值为( A )
A.40 B.60
C.80 D.100
【解析】 共有3个分支语句,第1个分支条件成立,语句结束,num=60;第2个分支条件成立,语句结束,num=80;第3个分支条件不成立,语句结束,num=40。选项A正确。
12.2024·黄岩中学检测使用Python 编写一个输出门票价格的程序,代码如下。
h=int(input(”请输入您的身高: ”))
if h<=120:
p=0
elif h>140:
p=100
else:
p=50
print(”您需要支付的门票价格是: ”,p)
要测试所有分支程序代码是否正确,以下测试数据中,最恰当的一组是( D )
A.120,140 B.130,150
C.100,130,140 D.100,130,150
【解析】 每个分支都需要测试,选项D的数据分别符合三个分支条件,选项正确。
13.有如下Python程序段:
s='ABC'
a=chr(ord(s[0])+32)
b=chr(ord(s[1])+32)
y=s[2]+a+b
执行该程序段后,y的值为__'Cab'__。
【解析】 a=chr(ord(s[0])+32),转换为小写字母,值为“a”;b=chr(ord(s[1])+32)转换为小写字母,值为“b”,s[2]='C',y='Cab'。
14.有如下Python程序段:
list1=[2,4,5,8]
a=list1[2]-list1[0]
b=list1[3]-list1[1]
c=int((a**2+b**2)**0.5)
执行该程序段后,c的值为__5__。
【解析】 a=list1[2]-list1[0]=3;b=list1[3]-list1[1]=4; a**2+b**2=25,则c的值为5。
15.有如下Python程序段:
list1=['AaBbCc','12345',345 ]
n=list1[1]
nn=int(list1[1])
m=int(n[0:2])
ans1=m+list1[2]
nn/=1000
ans2=round(nn,1)
执行该程序段后,ans1的值为__357__,ans2的值为__12.3__。
【解析】 n=list1[1]=”12345”;nn=int(list1[1])=12345;m=int(n[0:2])=12;ans1=m+list1[2]=357;nn/=1000=12.345;round(nn,1)保留1位小数,ans2=12.3。
【B级 素养形成与评价】
16.2024·书生中学检测有如下Python程序段:
a=[2,3,5,6,9]
x=min(a);y=max(a);ans=a[1]
if x**2>y:
ans=ans+x**2
ans=ans//2
else:
ans=ans+y
ans=ans%y
print(ans)
执行该程序段后,输出的结果是( D )
A.6
B.5
C.4
D.3
【解析】 x=2;y=9;ans=3;条件x**2>y不成立,则执行else中的语句:ans=ans+y=12;ans=ans%y=3,选项D正确。
17.有如下Python程序段,若要使x=3,则k 的值可取的是( A )
k=int(input(”请输入一个数: ”))
if 0<k<=10:
if k>5:
if k>8:
x=0
else:
x=1
else:
if k>2:
x=3
else:
x=4
print(x)
A.3,4,5 B.2,3,4
C.5,6,7 D.4,5,6
【解析】 x=3,则需要满足 2<k<=5,满足要求的数只有3,4,5,选项A正确。
18.有如下Python程序段:
a=int(input())
b=int(input())
if a%3==0:
if b%2==0:
c=a**b
else:
c=a*b
else:
c=a-b
print(c)
若依次输入3和4,则执行该程序段后,输出的结果是( B )
A.-1 B.81
C.12 D.64
【解析】 a=3;b=4;条件a%3==0成立,条件b%2==0成立,c=a ** b=81,选项B正确。
19.有如下Python 程序段:
L=['pear', 'apple', 'orange']
n=len(L[2])
ans=3
if n%2==0:
ans*=n
else:
ans+=n
ans-=5
print(ans)
执行该程序段后,输出的结果是( A )
A.13 B.3
C.18 D.8
【解析】 L[2]='orange',n=6,条件n%2==0成立,ans*=n=3*6=18,ans-=5,ans=13,选项A正确。
20.下列语句中,与“若x 小于0,则y=-1,否则y=1”功能相同的是( B )
A.if x<0
y=-1
y=1
B.y=1,
if x<0:,
y=-1)
C.if x<0:
y=-1
if x>0:
y=1
D.if x>0:
y=1
else:
y=-1
【解析】 选项A,y一直为1,选项错误;选项C,没有考虑x为0的情况,选项错误;选项D,x为0时,则y=-1,选项错误。
21.用Python算法控制结构描述“小李起床20分钟后去锻炼,锻炼50分钟后去学校”,设t为起床后经过的时间, 下列选项正确的是( B )
A.if t>50:
print(”去学校”)
else:
print(”去锻炼”)
B.if t>50:
print(”去学校”)
elif t>20:
print(”去锻炼”)
C.if t>20 and t<50:
print(”去锻炼”)
else:
print(”去学校”)
D.if t>20:
print(”去锻炼”)
elif t>50:
print(”去学校”)
【解析】 选项A,t<=50时,都去锻炼,选项错误;选项C,t<=20 or t>= 50时,都去学校,选项错误;选项D,多分支执行过程,从上到下执行,当第1个条件满足,不会再执行第2个条件,即t>20时,都去锻炼,选项错误。
22. 已知m、n 均为小于26的正整数,下列Python程序段中,能实现和语句n=(n+m)%26同样功能的是( B )
A.if n+m>26:
n=n+m-26
else:
n=n+m
B.if n+m<26:
n=n+m
else:
n=n+m-26
C.n=n%26+m%26
D.n=n+m
if n>26
n=n-26
【解析】 根据n=(n+m)%26可知,当n+m的值小于26时,结果不变;大于等于26时,需要对其取余, 转换成0到25之间的一个数。选项A,当n+m的结果为26时, 返回n的值为26,正确的n应为0,选项错误;选项C,由于n和m均为小于26的正整数,故对26取余等于其本身, 此时的结果为n=n+m,选项错误;选项D,未考虑相加的结果等于26时需要取余的情况,选项错误。
23.2024·丽水中学检测象限是平面直角坐标系(笛卡尔坐标系)中横轴和纵轴所划分的四个区域,每一个区域叫做一个象限。象限以原点为中心,X、Y 轴为分界线,原点和坐标轴上的点不属于任何象限。某同学根据输入的坐标点(x,y)来判断该坐标点的位置所在,下列实现该分类的Python 程序段中正确的是( D )
A.if x==0 and y==0:
result=”原点”
if x==0 or y==0:
result=”数轴”
if x!=0 and y!=0:
result=”象限”
B.if x==0 or y==0:
result=”数轴”
elif x==0 and y==0:
result=”原点”
else:
result=”象限”
C.if x!=0 and y!=0:
result=”象限”
elif x==0 or y==0:
result=”数轴”
else:
result=”原点”
D.if x!=0 and y!=0:
result=”象限”
if x==0 and y==0:
result=”原点”
elif x==0 or y==0:
result=”数轴”
【解析】 根据定义,(0,0)是原点,即if x==0 and y==0 表示原点;(0,y)或者(x,0)分别表示在Y 轴上与在X 轴上,即if x==0 or y==0 且x 与y 不同时为0 表示在数轴上;因此排除选项B、C,原点的判断需在数轴之前。而选项A,当x==y==0 时,第1 个和第2 个if条件均成立,选项错误。选项D正确。
24.下列选项中,对变量flag 的赋值与其他三项不等价的是( A )
A.if a>b:
flag=True
flag=False B.flag=a>b
C.if a>b:
flag=True
else:
flag=False D.flag=False
if a>b:
flag=True
【解析】 选项B、C、D均实现的是当a>b时flag=True, 当a<=b时flag=False。而选项A中不管a与b的大小关系如何, 最后都会执行赋值语句flag=False, 因此与其他选项不等价。
25. 2024·龙游中学检测用Python实现“每满100 减30,每满200 减70,可以累计上不封顶” 的优惠金额计算,设s 为购买商品的原价,计算优惠金额t,下列选项正确的是( A )
A.t=s//200*70
if s%200>=100:
t=t+30
B.t=s//100*30
if s//200>0:
t+=s//200*70
C.if s>=200:
t=s//200*70
else:
t==s//100*30
D.if s>=100:
t=t//100*30
else:
t=t//200*70
【解析】 选项A,满200的计算出优惠金额,再对超出部分满足大于100的再加上优惠金额30,选项正确;选项B,先按满100减30计算,又按满200减70计算,优惠活动重复计算,选项错误;选项C,能计算满200减70的活动优惠金额,原价超过200时,多余部分超过100的满100减30的没有计算,选项错误;选项D,计算满100减30,不到100的却按满200减70计算,选项错误。
26. [多选]智慧饮料瓶回收机器的工作流程为:机器通过身份卡或人脸识别对用户进行身份认证, 身份识别后用户可投放饮料瓶,机器对当前饮料瓶进行判断,符合回收条件则按塑料瓶和铝制易拉罐进行分类,塑料瓶按容量计算金额,铝制易拉罐按重量计算金额,若不符合回收条件则退回,结束投瓶后机器统计饮料瓶个数和金额,并将回收数据通过网络传送至服务器。用Python 语句描述塑料瓶容量500 毫升以下(不包含)0.05 元/个,500 毫升到1200 毫升(不包含)0.1 元/个,1200 毫升及以上0.15 元/个。设容量为v(单位为毫升),价格为p(单位为元),则下列选项正确的是( BC )
A.p=0.05
if v>=500:
p=0.1
elif v>=1200:
p=0.15
B.p=0.15
if v <500:
p=0.05
elif v<1200:
p=0.1
C.p=0.05
if v>=500:
p=0.1
if v>=1200:
p=0.15 D.p=0.15
if v<1200:
p=0.1
else:
p=0.05
【解析】 选项A 逻辑错误,v>=500时,只会执行if,不会执行elif,p 的值是0.1 或0.05;选项D,只考虑了v<1200和v>=1200两种情况,p 的值是0.1 或0.05。
学科网(北京)股份有限公司
$$