内容正文:
2.2 做出判断的分支
一、选择题
1.下面Python程序运行后,变量m,n的值分别是( )
n,m=7,4
if n>m:
n=m
m=n
A.4,4 B.7,7 C.7,4 D.4,7
2.Python中,分支语句使用的关键字是( )
A.if B.while C.for D.def
3.下列伪代码中体现出来的程序算法结构是( )
A.顺序结构 B.循环结构 C.选择结构 D.三种结构都有
4.如果a,b中任意一个数的值为3的倍数,那么y的值为变为原先的2倍,能实现该功能的Python语句是( )
A.
if a % 3= 0 and b % 3 = 0:
y = у * 2
B.
if a % 3 == 0 or b % 3 == 0:
y = y // 2
C.
if a % 3 == 0 or b % 3 == 0:
y = у + у
D.
if not (a % 3 != 0) and not (b % 3 ! = 0):
y = у ** 2
A.A B.B C.C D.D
5.运行下面Python程序,从键盘输入781,运行结果为( )
x=lnt(input("请输入一个正整数:"))
if x%2==0:
print(x,"是偶数")
else:
print(x,"是奇数")
A.是偶数 B.是奇数 C.781是偶数 D.781是奇数
6.在Python语言中,运行以下程序,输入数值 100,显示的运行结果是 ( )
a= int(input()) # 输入一个数给变量a
if a<= 100:
print("YES")
A.100 B.无结果 C.a D.YES
7.运行以下Python程序段,输入85,输出结果是( )
s=float(input("请输入分数:" ))
if 90<=s<=100:
print("A等第")
elif 75<=s<90:
print("B等第")
elif 60<=s<75:
print("C等第")
elif s<60:
print("D等第")
A.A等第 B.B等第 C.C等第 D.D等第
8.以下是4位Python初学者为解决“分别统计[1000,2000]以内个位数是4的整数个数k1以及十位数和百位数之和等于6的整数个数k2”这一问题而编写的程序代码,其中算法思想错误的是( )
A. B.
C. D.
9.如下 Python 程序段中,实现功能与其它三个不一样的是( )
A.
flag = a > b
B.
if a > b:
flag = True
else:
flag = False
C.
flag = True
if a <= b:
flag = False
D.
if a <= b:
flag = False
flag = True
A.A B.B C.C D.D
10.以下Python程序的基本结构是( )
A.树型结构 B.顺序结构 C.选择结构 D.循环结构
11.某python程序如下:
s=[3,3,3,6,6,8,11,11,9,4,2,5]
r=[]
for i in range(1,len(s)-1):
if not(s[i-1]<s[i]<s[i+1] or s[i-1]>s[i]>s[i+1]):
if s[i-1]==s[i]:
continue
j=len(r)-1
while j>=0 and s[i]<=s[r[j]]:
j-=1
if j==len(r)-1 or j==-1:
j+=1
r=r[:j]+[i]+r[j:]
print(r)
程序运行后,输出的结果为( )
A.[3,6,10] B.[6,11,2] C.[6,3,10] D.[10,3,6]
12.有如下Python程序段:
a = [123,32,66,12,54,95,211]
p = q = a[0]
for x in a[1:]:
if x < p:
p,q = x,p
elif x < q:
q = x
print(q)
执行该程序段后,输出的结果是( )
A.123 B.32 C.211 D.12
13.有如下python程序:
s="hez2023qj98qizhong5"
x,y=",'z'
for t in s:
if '0' <= t <= '9':
x+=t
elif y > t:
y=t
print(x+y)
程序运行后,输出结果为( )
A.2023985e B.2023985z C.29e D.290
14.身体质量指数(BMI)的正常范围是18.5~24kg/m2,现要求当bmi数值位于正常、偏低、偏高时,将变量s的值对应设为"正常"、"消瘦"、"超重"。下列Python程序段中符合要求的是( )
A. B. C. D.
15.一张纸上有个五位数密码,其中的千位数字和十位数字已经模糊不清,如图所示,已知这个数字是27或者37的倍数。现要设计一个算法,找出所有满足这些条件的5位数,并统计个数。现有Python程序段如下:
count=0
for i inrange(0,10):
for j in range(0,10):
m=20000+i*1000+500+j*10+6
if ① :
count=count+1
print(m)
print("一共找到"+str(count)+"个符合条件的密码!")
划线处应填的代码是( )
A.m//27==0 or m//37==0 B.m%27=0 or m%37=0 C.m%27==0 or m%37==0 D.m%27==0 and m%37==0
16.在Python程序设计语言当中,双分支语句通过使用( )实现。
A.if B.if...else C.if...elif...else D.case
二、填空题
17.Python表达式125%100的运算结果是( )
18.Python逻辑表达式5<3 and 3==10%7的运算结果是( )
19.Python表达式125//3的运算结果是( )
20.编写Python程序时,下列表达式应写成( )
21.已知a=5,那么(a>2)*a*2的值是( )
三、判断题
22.选择结构也称分支结构,只有判断条件为True时才会分支结构下的条件语句。( )
四、操作题
23.考拉兹猜想(3*n+1猜想,奇偶归一猜想,冰雹猜想):对于每一个正整数,如果他是奇数,就对他乘以3,再加1,如果是偶数则对他除以2,所得数字继续判断步骤,最终都能得到1结束。
def collatz_conjecture(number):
while number != 1:
if① :
# 偶数
number /=②
print(number)
elif number % 2 ==③ :
# 奇数
number =④
print(number)
n=int(input("请输入任意一个正整数:"))
collatz_conjecture(⑤ )
24.智能穿戴设备正潜移默化的改变着我们的生活,而一套智能穿戴设备要真正发挥它的作用,除了设备本身,其依托的信息系统也发挥着重要的作用。图1是某智能穿戴设备心率测量与分析系统的核心部件示意图,由心率传感器、控制器和报警设备构成;其工作过程为,心率设备每五分钟上报一次测量数据,如果连续5次及以上心率均高于120次/分钟,则系统向用户报警提示。
图1 系统结构示意图 图2系统核心程序代码
请根据以上描述,完成下述问题:
(1)信息系统的输入是指系统获取数据并向系统指挥控制中心传输信息的过程。输入既可以是人工手动录入,也可以是设备自动采集。请分析回答:在心率测量与分析系统中数据输入方式是人工录入还是自动采集?这些数据具体是通过什么设备进行获取的?
(2)该系统中,实现监控和报警的部分核心代码如图2所示。该代码中,负责记录异常心率次数的变量是什么?实现异常心率次数累计的代码是哪一语句?
(3)阅读程序代码,我们发现该系统当前设置是用户心率每分钟高于120次判定为异常心率。实际上,除了上述情况,用户心率每分钟低于40次也是异常心率。请修改完善第6行语句,优化系统,使之能够根据两类情况进行异常心率判定。
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.A
【详解】本题考查的是Python选择语句。初始n=7,m=4。n>m成立,执行n=m=4,m=n=4。故选A。
2.A
【详解】本题考查的是Python分支语句。if是分支语句使用的关键字;while、for是循环语句使用的关键字;def是自定义函数的关键字。故选A。
3.C
【详解】本题考查程序结构。这段伪代码中,根据年龄的不同情况进行判断,选择执行不同的输出语句,这体现了选择结构(也叫分支结构),而整个过程是依次按条件判断执行,没有循环过程,也不存在先执行后面的语句再回头执行前面语句的情况,所以主要体现的是选择结构,答案选C。
4.C
【详解】本题考查的是Python选择语句。a,b中任意一个数的值为3的倍数,故条件应为:a % 3 == 0 or b % 3 == 0,y的值为变为原先的2倍,其代码为: y = у * 2或 y = у + у。故选C。
5.D
【详解】本题考查的是Python选择结构。从键盘输入781,即x=781, x%2=1,故执行 print(x,"是奇数."),输出:781是奇数。故选D。
6.D
【详解】本题考查的是Python选择语句。输入数值100,即a=100,满足a<= 100,执行print("YES"),故本题应选D。
7.B
【详解】本题主要考查Python多分支结构。输入85,满足75<=s<90条件,故执行print("B等第")。选项B正确。
8.A
【详解】本题考查Python代码。原始代码中,虽然通过if条件判断是否个位数是4,但在elif语句中并没有考虑个位数是4的情况。因此,如果个位数是4且十位数和百位数之和等于6,程序会直接跳过这个数字,导致k2的统计结果不准确。故答案为:A。
9.D
【详解】本题考查的是Python选择语句。选项ABC中,如果a>b,则flag = True,如果a <= b,则flag = False。选项D中不管a、b关系如何,最后flag都为True。故选D。
10.C
【详解】本题考查的是Python程序结构。if……else……是选择结构语句。故本题应选C。
11.D
【详解】本题考查Python程序执行与调试。当i=1、2时,均满足s[i-1]=s[i],跳过本轮循环;当i=3时,r=r[:j]+[i]+r[j:]=[3];当i=4时,执行continue跳过本轮循环;当i=5时,不满足第一个if判断条件,跳过;当i=6时, r=r[:j]+[i]+r[j:]=[3,6];当i=7时,执行continue跳过本轮循环;当i=8、9时,不满足第一个if判断条件,跳过;当i=10时,r=r[:j]+[i]+r[j:]=[10,3,6]。循环结束。程序运行后,输出的结果为[10,3,6]。故选D。
12.B
【详解】本题考查Python程序的执行与调试。
第一次循环,x=32,满足x<p,执行 p,q = x,p后,p=32,q=123;
第二次循环,x=66,不满足x<p,满足x<q,q=x=66;
第三次循环,x=12,满足x<p,执行 p,q = x,p后,p=12,q=32,此后再不满足判断条件,即q和p的值不再发生变化。因此执行该程序段后,输出的结果是32。故选B。
13.A
【详解】本题考查Python程序执行与调试。分析程序,可知变量x保存字符串s中的数字,因此x="2023985",若t是字母,且y>t(y='z')时,则更新y=t,即y保存最小ASCII码对应的字母,字符串s中的字母,字符'e'是最小的,因此y=‘e’,输出x+y="2023985e"。故选A。
14.B
【详解】本题考查Python分支结构的应用。选项A有2个选择结构,均会进行判断,不符合;选项C,大于等于18.5,均输出超重,不符合;选项D,小于等于24均会输出消瘦,不符合。故选B。
15.C
【详解】本题考查Python程序执行与调试。已知这个数字是27或者37的倍数,可以通过余数是否为0进行判断,and是且关系,or是或关系,因此①处判断条件是m%27==0 or m%37==0。故选C。
16.B
【详解】本题考查Python分支结构。在Python程序设计语言当中,双分支语句通过使用if...else实现, if...elif...else是多分支结构,故选B。
17.25
【详解】本题考查Python运算符与表达式。在Python中,%代表求模运算,因此表达式125%100的运算结果是25。
18.False
【详解】本题考查Python表达式的运算。逻辑运算符and两边值均为真时值才为真,否则值为假。5<3→False,10%7=3,因此逻辑表达式5<3 and 3==10%7的运算结果是False。
19.41
【详解】本题考查Python表达式的运算。//是整除运算符,因此125//3=41。
20. x=(a-b)/(2*a)
【详解】本题主要考查Python表达式的运算。编写Python程序时,乘运算符是*,因此该表达式应写成x=(a-b)/(2*a)。
21.10
【详解】本题考查Python表达式的运算。在Python中,布尔值可以被转化为数值,True是1,False是0。已知a=5,a>2值为True,即为1,因此(a>2)*a*2的值是10。
22.错误
【详解】本题考查的是选择结构。选择结构也称分支结构,根据条件是否成立选择不同的分支执行。故题干中说法错误。
23. number%2==0 2 1 number*3+1 n
【详解】本题考查的是Python综合应用。①处,判断number的奇偶性,能被2整除就是偶数,故此处应为:number%2==0;②处,根据题意,偶数就对他除以2,故此处应为:2;③处,判断number的奇偶性,不能被2整除就是奇数,故此处应为:1;④处,根据题意,奇数就对他乘以3,再加1,故此处应为:number*3+1;⑤处,调用函数,对n进行考拉兹猜想,故此处应为:n。
24.(1)该系统数据采取自动采集方式,利用心率传感器设备获取
(2)该系统程序代码中,负责记录异常心率次数的变量是cnt;实现异常心率次数累计功能的代码是第7行,cnt=cnt+1
(3)完善第6行语句后结果如下:If (heartRate>120) or (heartRate<40):
【详解】本题考查的是智能设备相关知识。
(1)依据题干描述,可知该系统数据采取自动采集方式,利用心率传感器设备获取。
(2)由代码可知,cnt是负责记录异常心率次数,通过cnt=cnt+1代码实现异常心率次数累计功能。
(3)心率均高于120次/分钟是异常心率,心率每分钟低于40次也是异常心率,两者是或者的关系,故第6行语句应修改为:If (heartRate>120) or (heartRate<40):。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$