内容正文:
2.2 做出判断的分支
一、选择题
1.选择结构程序应用的分支语句是( )
A.if B.for C.while D.fenzhi
2.在Python中,以下代码执行时若输入5,则输出的结果是( )
a=int (input())
if a<8:
print(a+5)
else:
print(a)
A.8 B.10 C.15 D.无输出
3.以下程序代码执行结果是( )
a,b,c=42,10,65
if a>b:
min=b
else:
min=a
if min>c:
min=c
print(min)
A.42 B.10 C.65 D.9
4.下列代码如果从键盘输入81,那运行结果是( )。
score=int(input("请输入分数:"))
if score<=100 and score>=00:
if score>=90:
print("优秀")
elif score>=75:
print("良好")
elif score>=60:
print("合格")
else:
print("不合格")
else:
print("分数不对")
A.运行不了,提示有错 B.良好 C.没有任何输出 D.良好分数不对
5.在游览博馆的过程中,李华遇到了不同价格的博物馆纪念币,价格分为15元、20元,李华的手中有300元,为了预估自己最多能够买到多少枚纪念币,他要运用端制计算机程序的方法解决该问题。
count、count1赋初值为0
x、y赋初值为0
money=300
for i in range(1,15):
count1=i+(money-20*i)//15
if count1>count:
count=count1
x=i
y=(money-20*i)//15
print("最多购买纪币",count"枚")
图示中for循环语句中嵌套了if语句,关于嵌套描述错误的是( )
A.if语句中可以嵌套for或while语句
B.if语句中可以嵌套if语句
C.Python语言中else语句可以嵌套自身
D.Python语言中for或while之间可以相互嵌套
6.在计算机中存储容量的基本单位是B(字节),文件大小通常用B、KB、MB、GB、TB等单位来表示,例如:1024B大小的文件比较适合用KB表示为1KB,依据数据量的大小,使用最适合的单位表示文件大小。下图是某学习小组编写的Python程序,输入数据量的大小(B),换算出最适合的单位表示该文件大小。该程序段中循环结构语句while与分支结构语句if的关系是( )
A.先后顺序执行 B.while语句嵌套if语句 C.if语句嵌套while语句 D.无先后顺序执行
7.有如下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
8.有如下 Python 程序段:
s=input("请输入字符串:")
ans=0
for i in s:
if "a"<=i<="z":
ans+=2
elif "0"<=i<="9":
ans+=1
print(ans)
执行程序后,输入“P3fhYT8x”,则输出的结果为( )
A.3 B.7 C.11 D.8
9.某Python程序段的功能是寻找列表中最先出现的最长连续升序段,代码如下:
a=[2,5,7,6,13,4,7,8,10,9] #列表a中的元素均为正整数
a.append(-1)
b=[a[0]]
maxn=1;count=1
for i in range(1,len(a)):
If ▲ :
count+=1
else:
if count>maxn:
maxn=count
b=a[i-count:i]
▲
print(b)
从上到下,划线处应填入的代码是:( )
①a[i]<a[i-1] ②a[i]>a[i-1] ③count=1 ④count=0
A.①③ B.①④ C.②③ D.②④
10.在Python语言中,运行以下程序,输入6, 显示的运行结果是( )
a=int(input()) # 输入一个数给变量a
if a>0:
print("正数")
else:
print("不是正数")
A.6 B.不是正数 C.a D.正数
11.超市进行促销活动,若单笔消费满 200 元打九折,单笔消费满 300 元打八折(单笔消费仅享受一次打折优惠)。设顾客单笔消费 s 元,下列 Python程序能正确描述超市活动的是( )
A.
if s>=300:
s=s*0.8
else:
s=s*0.9
B.
if s>=300:
s=s*0.8
if s>=200:
s=s*0.9
C.
if s>=300:
s=s*0.8
elif s>=200:
s=s*0.9
D.
if s>=200:
s=s*0.9
elif s>=300:
s=s*0.8
A.A B.B C.C D.D
12.有如下Python序段,执行该程序后,变量num值为( )
num=40
if num<60:
num=60
if num==60:
num=num+20
if num>80:
num+=20
else:
num=40
print(num)
A.40 B.60 C.80 D.100
13.有如下程序段:
a=[[2,2,1],[8,0,4],[3,3,0],[6,-1,2],[8,1,-1]]
ans=head=3
p=a[head][2]
while p!=-1:
if a[ans][0] < a[p][0] :
ans=p
p=a[p][2]
print(ans,a[ans][0],sep=",")
则程序运行后,下列说法正确的是( )
A.链表数据值依次为2->8->3->6->8
B.程序输出结果为4,8
C.a[0][2]的值为1,双向链表a的头节点数据值为2
D.a[1][1]的值为0,双向链表a的尾节点数据值为8
14.某Python程序实现的功能是;运行程序输入一个四位整数,能够判断该四位整数是否存在数字重复的位。程序代码如下:
n = int(input(“请输入一个四位正整数:”))
f = [0] * 10
while n > 0:
y = n % 10
①
n=n // 10
if ② :
print(“没有重复的位。”)
else:
print(“有重复的位。”)
划线处的代码应填( )
A.① f[y] = 1 ② sum(f) < 4 #sum()将列表中所有元素求和
B.① f[y] += 1 ② sum(f) < 4
C.① f[y] = 1 ② sum(f) == 4
D.① f[y] += 1 ② sum(f) == 4
15.有Python程序段如下,执行该程序段后,a[0]~a[5]中不可能的值是( )
import random
a=[0]*6
a[0]=random.randint(1,10) #随机生成一个[1,10]范围内的整数
i=1
while i<6:
a[i]=a[i-1]+random.randint(1,10)
if i%2==0:
a[i]=a[i]+a[i]%2
elif a[i]%2==0:
a[i]=a[i]//2
i+=1
print(a)
A.[3,9,14,22,31,20] B.[3,9,20,13,20,27] C.[10,19,26,29,32,39] D.[7,17,20,13,22,12]
16.根据国家标准,室内空气质量指数的正常范围为0.5~2.5,如果空气质量指数大于2.5,则表明空气质量较差,空气质量指数小于0.5,表明空气质量较好,下列选项能正确表示这三种情况的是( )
A.
if zs>2.5:
print ("较差")
elif 0.5<zs<2.5:
print ("正常")
else:
print ("较好")
B.
if 2.5>zs>0.5:
print ("正常")
elif zs<0.5:
print ("较好")
else:
print("较差")
C.
if zs>2.5:
print ("较差")
elif not zs > 0.5:
print ("较好")
else:
print ("正常")
D.
if zs<0.5:
print ("较好")
elif not zs > 2.5:
print ("正常")
else:
print ("较差")
A.A B.B C.C D.D
17.在Python中,表达式23//2**3的值是( )
A.2 B.2.3 C.3 D.1331
二、填空题
18.在解决问题的过程中,常常需要对事物进行判断和选择,Python中使用if语句实现程序的分支选择,当分支比较多时可以用if … …else语句来实现。
19.某Python程序代码如下:
list1=[2,3,4,5,6]
m1=1
m2=2
for n in list1:
if n%3==0:
m1*=n
print (m1-m2)
程序运行后,输出的结果为
20.有10个数据34,22,101,8,14,88,24,17,54,7依次存放在列表list中,有如下Python程序,当程序运行结束时,输出的值是:
list= [34,22, 101,8,14,88,24,17,54,7]
num=list[0]
for i in range(1,10):
if list[i]<num:
num=list[i]
print(num)
21.以下Python程序运行后,当输入20时,输出结果是 。
22.以下Python程序段的运行结果是 。
n = 36
s = 0
for i in [2,3,4,5,6,7,8]:
if n % i == 0:
s = s + 1
print (s)
三、操作题
23.完善以下程序代码完成各题
程序描述:通常我们可以采用“除2取余,倒序输出”的方法,将十进制整数转换为二进制数,例如11除以2,商是5,余数为1;再用5除以2,商是2,余数为1……,依次类推,直到商数为0,最后将余数倒序输出即为二进制数1011。
代码如下:
#十进制转二进制
n=int (input('请输入一个大于0的十进制整数: '))
s= ①
while ② :
if ③ :
s='0'+s
else:
s='1'+s
n= ④
print ('转换之后的二进制数: %s' %s)
(1)①处的语句是( )
A.[ ] B.’ ’ C.0 D.1
(2)②处的语句是( )
A.n>=0 B.n==0 C. n<0 D.n>0
(3)③处的语句是( )
A.n%2==0 B.n//2==0 C. n%2!=0 D.n//2!=0
(4)④处的语句是( )
A.n%2 B.n//2 C. n/2 D.n+1
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.A
【详解】本题主要考查Python分支结构。选择结构程序应用的分支语句是if,循环结构应用的循环语句是for和while,故本题选A选项。
2.B
【详解】本题主要考查Python程序的执行。a=5,满足if判断条件,输出a+5=10,故本题选B选项。
3.B
【详解】本题主要考查Python分支结构。分析程序可知,该程序实现输出a、b、c中的最小数,故执行结果是10,故本题选B选项。
4.B
【详解】本题主要考查Python多分支结构。从键盘输入81,满足条件75<=score<=90,输出“良好”,故本题选B选项。
5.C
【详解】本题主要考查Python嵌套语句。Python语言中else语句是if语句的一部分,因此它不可以嵌套自身,故本题选C选项。
6.A
【详解】本题考查Python程序。在程序中,while语句用于循环执行,不断地将数据量大小除以1024,直到数据量大小小于1024为止。而在while循环之后,又通过if语句判断当前数据量大小所应该使用的单位。 因此,程序中的while语句和if语句是先后顺序执行的。故答案为:A。
7.B
【详解】本题主要考查Python程序的执行。分析程序可知,如果相邻的两个数相等则n递增1,如果不相等则n递减1,s=[1,1,2,2,2,3,1,1,3,3],n初值为0,故n=0+1-1+1+1-1-1+1-1+1=1,故本题选B选项。
8.D
【详解】本题主要考查Python程序的执行。分析程序可知,该程序实现依次取字符串s中的字符,若是小写字母则ans加2,若是数字则ans加1,其他字符跳过。故执行程序后,输入“P3fhYT8x”,则输出的结果为3*2+2=8,故本题选D选项。
9.C
【详解】本题主要考查Python程序的调试。程序段的功能是寻找列表中最先出现的最长连续升序段,第一空当a[i]>a[i-1]时,count递增1,count标记升序段的长度。第二空是重新开始寻找下一个连续升序段,因此重置count值为1,故本题选C选项。
10.D
【详解】本题考查的知识点是Python分支语句应用。输入6,即a=6,满足条件a>=0,所以输出正数。故答案为D选项。
11.C
【详解】本题考查的是分支语句。选项A,遗漏了200数据的判断;选项B,300元以上的也被错判为九折;选项D,300元以上的也被错判为九折。故选C。
12.A
【详解】本题考查的是Python选择语句。num初始值40,满足num<60,执行num=60,执行后满足num==60,执行num=num+20,此时num=80,不满足num>80,执行 num=40,故最后变量num=40。选项A正确。
13.D
【详解】本题主要考查链表及Python程序。分析程序可知,a是双向链表,ans=head=3,故链表数据值依次为6->3->2->8->8;程序运行结束后,ans=1,a[ans][0]=8;a[0][2]的值为1,head=3,双向链表a的头节点数据值为6;a[1][1]的值为0,双向链表a的尾节点数据值为8,故本题选D选项。
14.C
【详解】本题主要考查Python程序的综合应用。用f[y]标记四位整数上y,该数不论出现几次,都赋值为1,即第一空填 f[y] = 1,如果sum(f)==4,说明没有重复的位,反之有重复的位,即第二空填sum(f) == 4,故本题选C选项。
15.A
【详解】本题主要考查Python程序的执行与调试。a[0]=random.randint(1,10) ,随机生成一个[1,10]范围内的整数。每次循环a[i]=a[i-1]+random.randint(1,10),如果索引i是偶数(从2开始),则执行a+[i]=a[i]+a[i]%2,执行完对应的a[i]必为偶数,即a[2]、a[4]必是偶数,[3,9,14,22,31,20]不符合条件,故本题选A选项。
16.D
【详解】本题考查Python程序设计相关内容。分析4个选项:A选项中,elif条件错误,应为0.5<=zs<=2.5;B选项中,if条件错误,应为2.5>=zs>=0.5;C选项中,elif中条件错误,应为not zs>=0.5;D选项正确。故本题答案为D选项。
17.A
【详解】本题考查的是Python表达式。**表示幂运算,优先级最高,//表示整除。23//2**3=23//8=2。故本题应选A。
18.elif
【详解】本题主要考查Python分支结构。在解决问题的过程中,常常需要对事物进行判断和选择,Python中使用if语句实现程序的分支选择,当分支比较多时可以用if …elif…else语句来实现。
19.16
【详解】本题主要考查Python程序的执行。当n取到3和6时,满足if判断条件,m1=1*3*6=18,m1-m2=18-2=16,故输出的结果是16。
20.7
【详解】本题主要考查Python程序的执行。分析程序可知,该程序求列表list的最小值,将其保存到变量num中,故输出的值是:7。
21.20
【详解】本题考查的是Python选择语句。当输入20时,x=20,满足x%5==0,执行print(x),故输出20。
22.4
【详解】本题主要考查Python程序执行。分析程序可知,变量s统计列表[2,3,4,5,6,7,8]中是36因子的个数,满足的数有2、3、4、6,故运行的结果是4。
23. B D A B
【详解】本题主要考查Python程序的综合应用。①变量s的数据类型是字符型,用于保存转换之后的二进制数,初值为空字符串,故选B选项。②依次循环,直到商数为0,故此处循环条件是n>0,选D选项。③此处判断n能否整除2,如果能整除2,则执行s='0'+s,否则执行s='1'+s,故选A选项。④每次循环之后,更新n的值为n//2,故选B选项。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$