内容正文:
2.2 做出判断的分支2024-2025学年高中信息技术教科版(2019)必修1
一、选择题
1.有如下python程序段:
x = input("请输入一个数字字符:")
y = input("请输入一个数字字符:")
if x > y:
x,y = y,x
else:
x,y = x + y,y
print(x+y)
该程序段运行后,若输入x的值为 10 ,y的值为 9,则输出结果是( )
A.1099 B.910 C.28 D.19
2.下列程序的输出结果是( )
for x in"Python":
if x=="h";
break
else:
print(x,end="")
A.Python B.Pyton C.Pyth D.Pyt
3.下列变量的命名遵循的规则,不正确的是( )
A.可以用数字开头 B.区分大小写 C.可以用下划线开头 D.不能使用保留字
4.在 Python程序设计语言中,if语句属于( )
A.顺序结构 B.分支结构 C.循环结构 D.流程结构
5.有如下Python程序段:
import random
a=[0]*6
for i in range(1,6):
tmp=random.randint(5,24)
if tmp%2==0 or i%2==1:
a[i]=a[i-1]+tmp
print(a)
运行程序后,数组a的值可能的是( )
A.[0, 9, 29, 50, 0, 20] B.[8, 20, 44, 62, 86, 109]
C.[0, 8, 14, 21, 39, 0] D.[0, 10, 24, 43, 0, 30]
6.列表list1=[i for i in range(1,7)if i %2==0]中有( )个元素。
A.4 B.2 C.3 D.1
7.阅读下列Python程序段,程序输出结果应为( )
a,b,c=3,2,3
if a>b and a>c:
print(a)
if b>a and b>c:
print(b)
if c>a and c>b:
print(c)
A.两个3 B.一个3 C.三个3 D.没有任何输出
8.有如下Python代码,输出结果是( )
A.4 3 . B.5 4 3 C.4 3 1 0 D.5 4 3 1 0
9.某Python程序如下:
s=[2,3,4,9,7,8,5]
n=len(s)
for i in range(n-1):
for j in range(n-1,i,-1):
if s[j]<s[j-1]:
s[j],s[j-1]=s[j-1],s[j]
下列说法正确的是( )
A.整个加工过程总的交换次数为21
B.该程序段执行后,s的值为[9,8,7,5,4,3,2]
C.若s的初始值已有序,则该算法的时间复杂度为O(1)
D.每一遍加工中,最小的元素“上浮”
10.有如下对分查找程序段
#列表a存放整数升序数据,代码略
key=int(input())
f=[0]*9
i=0
j=8
while i<=j:
m=(i+j)//2
f[m]=1
if a[m]>key:
j=m-1
else:
i=m+1
print(f)
输入待查找数据,执行该程序段后,下列选项中,列表f的值不可能的是( )
A.[0, 0, 0, 0, 1, 1, 1, 0, 0] B.[1, 1, 0, 0, 1, 0, 0, 0, 0]
C.[0, 1, 0, 0, 1, 0, 1, 0, 0] D.[0, 0, 0, 0, 1, 0, 1, 1, 0]
11.下面是一段程序中的部分代码,其中有( )处错误。其实现的功能是:输入任意整数a、b,判断b的值是否为零,如果不等于0,则输出(a-b)/b,否则输出“错误”。
A.1 B.2 C.3 D.4
12.小明想要统计一篇英语作文中某些单词出现的次数,他设计了如下算法:
#将要统计的单词储存在列表lis中,代码略
wordcount={}
#导入作文,分词后储存在列表zw中,代码略
for word in zw:
if word in lis:
_____①______:
wordcount[word]+=1
_____②______:
wordcount[word]=1
print(wordcount)
横线处应填入的代码是( )
A.①if word in wordcount ②else
B.①if word in lis ②else
C.①if wordcount[word]!=1 ②else
D.①if wordcount[word]==True ②elif wordcount[word]==False
13.在Python程序设计语言当中,双分支语句通过使用( )实现。
A.if B.if...else C.if...elif...else D.case
14.下列 Python 程序段的功能为查找列表a中的最大值。
#为列表a赋值,元素均为整型数据,代码略
(1)
for i in range(1,5):
if a[i]>max:
(2)
print(max)
划线处(1)、(2)的代码分别为( )
A.max=0 a[i]=max B.max=0 max=a[i]
C.max=a[0] max=a[i] D.max=a[0] a[i]=max
15.有如下Python程序段:
s1="abcdefgh"; s2="0213"; res=""
j=0; m=0
for i in range(len(s1)):
k=m+int(s2[j])
res+=s1[k]
j+=1
if j==4:
m=4
j=0
该程序段运行后,res的值为( )
A."acbdacbd" B."acbdegfh" C."acbdefgh" D."abcdefgh"
16.寻找最长无重复数字子串。输入一串仅由0~9组成的数字字符串,找出其中不含有重复字符的最长子串,若有多个长度相同的子串,则输出最后一个。如:输入数字字符串"1231255768",其最长的无重复数字子串有"3125"、"5678",则输出"5678",长度为4。实现该功能的python程序如下:
def repeat(s,x,y):#判断字符串s从位置x到y是否有重复字符
#无重复返回True(若x=y,为无重复),有重复返回Flase,代码略。
s1=input("请输入一个数字字符串: ")
len=len(s1)
left,right,maxlen=0,0,0
while right<len:
if not repeat(s1,left,right):
⑴ else:
if ⑵ :
maxlen=right-left+1
s2=s1[left:right+1]
⑶
print("最长无重复子串为: ",s2,"长度是: ",maxlen)
加框处的可选代码为:
①left+=1 ②right+=1 ③right-=1
④right-left>maxlen ⑤right-left+1>=maxlen
为使程序正确运行, 则程序段(1)(2)(3)处代码依次为( )
A.①④③ B.③⑤① C.②④① D.①⑤②
17.有一组正整数,要求对其中的奇偶数进行交换。交换后偶数在前,奇数在后,并保持相对顺序不变。将划线处的代码补充完整,正确的是( )
a=[5,10,21,7,24,14,9,11,36,37]
n=len(a) ;b=[0]*n
num=0;k=0
while k <10:
if ① :
b[num]=a[k]
num+=1
else:
②
k+=1
for j in range(n-num,n):
③
print(a)
A.①a[k]%2==1 ②a[k-num]=a[k] ③a[j]=b[j-n+num]
B.①a[k]%2==0 ②b[k-num]=a[k] ③a[j]=b[j+num]
C.①a[k]%2==0 ②a[k-num]=a[k] ③a[j]=b[j+num]
D.①a[k]%2==1 ②b[k-num]=a[k] ③a[j]=b[j-n+num]
18.某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
19.有如下python程序段:
import random
flag=[False]*10
a=[0]*6
i=0
while i<6:
a[i]=random. randint (1,9)
if not flag[a[i]]:
flag[a[i]]=True
i+=1
print(a)
该程序执行后,列表 a 的值可能的是( )
A.[7,1,6,3,2,1] B.[8,9,1,3,0,4]
C.[5,7,3,3,8,2] D.[6,3,5,2,4,1]
20.列表lista中存储了若干个人的体重(单位:kg),下列Python程序段的功能是:输入体重key,统计体重不超过key的人数,最后输出统计结果。
lista=[65,55,41,46,55,49,19,45,62,76]
count=0
key=int(input("please input key:"))
for i in range(0,len(lista)):
if :
count+=1
print("体重不超过",key,"的人数为:",count)
则程序中划线处的代码应为( )
A.lista[i]>count B.lista[i]>=key
C.lista[i]<key D.lista[i]<=key
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.A
【详解】本题考查Python程序。如果输入x的值为10,y的值为9,那么if语句条件不满足,因此进入else分支。在else分支中,x和y的值将变为"109"和"9",然后将它们连接在一起,所以最终输出结果是"1099"。故答案为A选项。
2.D
【详解】本题主要考查Python程序的执行。变量x依次取字符串“Python”中的字符,如果x的值是“h”时,则循环结束,否则输出x。该程序实现输出字符串“Python”字符串中字符“h”前的子串,故程序的输出结果是Pyt,故本题选D选项。
3.A
【详解】本题考查变量名的命名规则。Python中变量的命名遵循的规则:以字母或下划线开头,后面可以是字母、数字或下划线;区分大小写;不能使用保留字。故选A。
4.B
【详解】本题主要考查条件语句。if语句属于分支语句 ,for、while属于循环结构,故本题选B选项。
5.A
【详解】本题主要考查Python程序的调试。tmp=random.randint(5,24),tmp是随机生成[5,24]之间的整数,i从1开始,故a[0]=0不变,排除选项B;如果tmp%2==0 or i%2==1,即tmp是偶数的同时i是奇数,则执行 a[i]=a[i-1]+tmp,当i=1时,都会执行a[i]=a[i-1]+tmp,选项A、C、D均符合;当i=2时,如果tmp是偶数,则执行a[i]=a[i-1]+tmp,选项A中,29-9=20满足偶数的条件,选项C中,14-8=6满足偶数的条件,选项D中,24-10=14满足偶数的条件;当i=3时,选项A、C、D均符合;当i=4时,同理i=2的情况,选项A、D中,当tmp是奇数则跳过if,a[4]=0,选项A符合,选项B中,39-21=18,也满足;当i=5时,均满足if判断条件,故a[5]不可能为0,排除选项C,选项D中tmp最大为24,即a[5]最大为24,排除选项D,故本题选A选项。
6.C
【详解】本题主要考查Python列表的操作。range(start, stop, [step]),start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5;step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)。list1=[i for i in range(1,7)if i %2==0]满足if条件的i有2、4、6,即一共有3个元素,故本题选C选项。
7.D
【详解】本题考查Python分支结构。给定变量a、b、c的值分别为3、2、3。首先,第一个条件语句if a>b and a>c不成立,因为a并不大于b和c,所以与该条件相关的print(a)不会执行。接着,第二个条件语句if b>a and b>c也不成立,因为b并不大于a和c,所以与该条件相关的print(b)也不会执行。最后,第三个条件语句if c>a and c>b也不成立,因为c并不大于a和b,所以与该条件相关的print(c)也不会执行。因此,整个程序没有任何输出。故答案为:D。
8.C
【详解】本题主要考查Python程序的执行。分析程序可知,变量i的初值为5,每循环一次递减1,但i=2时,跳过本次循环,故输出结果是4 3 1 0 ,故本题选C选项。
9.D
【详解】本题主要考查排序算法及Python程序实现。分析程序可知,该程序实现升序排序,整个加工过程总的交换次数为5次,分别是5和8、5和7、5和9、7和9、8和9;该程序段执行后,s的值为[2, 3, 4, 5, 7, 8, 9];若s的初始值已有序,但仍要执行循环进行比较,因此该算法的时间复杂度不可能为O(1);每一遍加工中,最小的元素“上浮”,故本题选D选项。
10.C
【详解】本题主要考查对分查找算法。变量m是依次查找的下标索引值,第一次循环,m=4,f[4]=1,根据二叉树查找规则,往后查找只会在m=4的左边或右边进行查找,不会出现选项C中f[1]和f[6]同时为1的情况,故本题选C选项。
11.C
【详解】本题主要考查Python分支结构。if语句后面需要跟冒号,if语句后print语句的格式也不对,else部分即与if判断条件相反,else后面的b=0可省略,一共有3处错误,故本题选C选项。
12.A
【详解】本题主要考查Python程序的执行与调试。①如果word 在 统计的单词列表lis中,同时若该单词word在要统计的列表wordcount中,即已经统计过了,则wordcount[word]递增1,故填if word in wordcount。②如果word不在lis中,即对应else部分,则置wordcount[word]为1,故本题选A选项。
13.B
【详解】本题考查Python分支结构。在Python程序设计语言当中,双分支语句通过使用if...else实现, if...elif...else是多分支结构,故选B。
14.C
【详解】本题主要考查Python程序调试。分析程序可知,初始值将第一个元素a[0]赋给变量max,if判断条件中,如果a[i]>max,则更新max=a[i],故划线处(1)、(2)的代码分别为max=a[0]、 max=a[i],故本题选C选项。
15.B
【详解】本题主要考查Python程序的执行。分析程序,当j==4时,赋值m=4,j=0, 而k=m+int(s2[j]),res+=s1[k],即对s1字符串每4位一处理,而 s2="0213",即每4位中按照索引0、2、1、3的顺序从s1中截取字符,故该程序段运行后,res的值为"acbdegfh",故本题选B选项。
16.D
【详解】本题主要考查Python程序的综合应用。① 如果满足not repeat(s1,left,right),则说明有重复了,则left递增1继续判断,故填left+=1。②由下一行更新了maxlen说明产生了新的最长字串,故if判断条件是right-left+1>=maxlen。③此处右端点right递增1,继续判断,故填right+=1,故选D选项。
17.A
【详解】本题主要考查Python程序的综合应用。要求对其中的奇偶数进行交换。交换后偶数在前,奇数在后。该算法的思想是将偶数保存到列表a中,奇数保存到列表b中,最后再将列表b中的奇数并到列表a中偶数的后面。第一空判断a[k]是否为奇数,即a[k]%2==1。第二空如果a[k]是偶数则保存到列表a前面,即a[k-num]=a[k]。最后再把列表b并到列表a存放到偶数的后面,即a[j]=b[j-n+num],故本题选A选项。
18.C
【详解】本题主要考查Python程序的综合应用。用f[y]标记四位整数上y,该数不论出现几次,都赋值为1,即第一空填 f[y] = 1,如果sum(f)==4,说明没有重复的位,反之有重复的位,即第二空填sum(f) == 4,故本题选C选项。
19.D
【详解】本题考查Python程序的执行与调试。 a[i]=random. randint (1,9),a[i]是随机生成1~9之间的整数,因此排除B选项。由if判断条件可知,列表a中的元素没有重复,排除A、C选项。故选D。
20.D
【详解】本题主要考查Python程序的执行与调试。体重存储在列表lista中,要统计体重不超过key的人数,则if条件为lista[i]<=key,故选项D正确。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$