内容正文:
4.3运用选择结构描述问题求解过程2024—2025学年高中信息技术粤教版(2019)必修1
一、选择题
1.有如下Python 程序段:
x,y,z=142,125,120
res=0
if x>y:
res=x
elif y>z:
res+=z
res-=5
print(res)
运行该程序段后,输出结果是( )
A.115 B.137 C.140 D.157
2.以下Python程序段执行后,输出结果为( )
m=28
if m%3!=0:
print(m,"不能被3整除")
else:
print(m,"能被3整除")
A.m不能被3整除 B.m能被3整除 C.28能被3整除 D.28不能被3整除
3.有如下VB程序段:
s = Text1.Text : t = 0
For i = 1 To Len(s)
c = Mid(s, i, 1)
If c >= "0" And c <= "9" Then
t = t * 10 + Val(c)
ElseIf c >= "A" And c <= "Z" Then
t = 0
Else
t = 1
End If
Next i
在文本框Text1中输入“Wen20Zhou21”(不含引号),执行程序后,变量t的值是( )
A.2021 B.21 C.20 D.121
4.某商场做促销打折活动,消费金额500元以内打8.8折;大于500元(含500元)且小于1000元打8折;1000元以上(含1000元)打7折。小曲使用Python 编写了下面程序,第4行下划线处应填写的代码是( )
1 x=float(input(“消费金额:”))
2 if x<500:
3 s=x*0.88
4 x<1000:
5 s=x*0.8
6 else:
7 s=x*0.7
8 print(“应付金额为:”,s)
A.if B.elif C.else D.while
5.有如下VB程段:
Private Sub Command1_Click()
Const n = 8
Dim i As Integer, a As Integer, s As String
Randomize
i=1
s = s + Str(Int(Rnd * 19) + 1)
Do While i < n
a = Int(Rnd * 19) + 1
If a Mod 2 = i Mod 2 Then
s = s + Str(a)
i = i + 1
End If
Loop
Text1.Text = s
End Sub
运行程序后,文本框 Text1 中可能出现的是( )
A.4 13 20 9 14 19 4 9 B.7 8 19 8 7 18 3 1
C.6 19 12 19 16 11 10 11 D.15 18 7 18 19 12 5 11
6.有如下VB 程序段: ( )
a(1) = 8: a(2) = 7: a(3) = 1: a(4) = 6 a(5) = 9: a(6) = 5: a(7) = 4: a(8) = 7
m = Int(Rnd * 4) * 2 + 1
For i = 1 To m - 1
k = i
For j = i + 1 To m
If a(j) < a(k) Then k = j
Next j
If i <> k Then
t = a(i): a(i) = a(k): a(k) = t
End If Next i
执行该程序段后,数组a各元素的值不可能是( )
A.8 7 1 6 9 5 4 7 B.1 7 8 6 9 5 4 7
C.1 4 5 6 7 8 9 7 D.1 4 5 6 7 7 8 9
7.有如下VB程序段:
key=Val(Text1.Text)
i=0:j=9:n=0
Do While i<=j
m=(i+ j)\2
n=n+1
If key<=a(m)Then
j=m-1
Else
i=m+1
End If
Loop
s=i
Do While i<9 And a(i)=a(i+1)
i=i+1
Loop
Labe12.Caption = Str(n)+":"+Str(i+1-s)
数组元素a(0~9)的值依次为“3,4,7,8,8,8,9,9,10,12”在文本框Text1中输入“8”,点击“查找”按钮后,Labe12中输出的结果是( )
A.3:3 B.3:4 C.4:3 D.4:4
8.if语句的格式正确的是( )
A. B. C. D.
9.某商场做促销打折活动,消费金额500元以内打8.8折;大于500元(含500元)且小于1000元打8折;1000元以上(含1000元)打7折。小曲使用Python编写了下面程序,第4行下划线处应填写的代码是( )
A.if B.elif C.else D.while
10.有如下VB程序段:
Const n=7
Dim a(1 To n)As Integer
k=Int(Rnd*(n\2))+1
For i=k+1 To 2*k
j=i-k
If a(i)<a(j)Then t=a(i):a(i)=a(j):a(j)=t
List1.AddItem Str(a(i))
Next i
若数组元素a(l)〜a(7)的值依次为44,24,32,67,77,58,12,则执行该程序段后,在列表框List1中显示的内容可能为( )
A.67,77,58 B.44,24,32 C.32,24 D.32,58
11.有如下VB程序段:
Dim i As Integer
Dim c As String, s As String, t As String
s = "2021 PYthon": t = ""
For i = 1 To Len(s)
c = Mid(s, i, 1)
If c >= "a" And c <= "z" Then
t = t + c
ElseIf c >= "0" And c <= "9" Then
t = c + t
End If
Next i
Text1.Text = t
执行该程序段后,文本框Text1中显示的内容是( )
A.2021thon B.1202thon C.thon1202 D.noht1202
12.已排序的列表a有n个整型元素,现要查找出现次数最多的值并输出。若出现次数最多的值有多个,则输出最前面的一个。实现该功能的程序段如下,方框中应填入的正确代码为( )
c,m,v=1,1,0
for i inrange(1,n):
print(a[v])
A. B. C. D.
13.有如下VB程序段:
s = Text1.Text
For i = 1 To Len(s)
c = Mid(s, i, 1)
If c >= "A" And c <= "Z" Then c = ①
If c >= "a" And c <= "z" Then
m = ②
c = Chr(Asc("a") + m)
End If
s1 = s1 + c
Next i
Label1.Caption = s1
程序运行时,在文本框Text1中输入“ABC123xyz”,在标签框Label1中输出“bcd123yza”,则划线处的代码为( )
A.① Chr(Asc(c) + 32) ②(Asc(c) - Asc("a")) Mod 26 + 1
B.① Chr(Asc(c) + 32) ②(Asc(c) - Asc("a") + 1) Mod 26
C.① Chr(Asc(c) - 32) ②(Asc(c) - Asc("a")) Mod 26 + 1
D.① Chr(Asc(c) - 32) ②(Asc(c) - Asc("a") + 1) Mod 26
14.某加密程序如下,已知输入的明文是:2023-03-09,运行结束后,输出的密文为
mingwen=input("请输入明文:")
miwen=""
for i in mingwen:
if "0"<=i<="9" :
miwen += str((int(i)+3)%10)
else:
miwen += i
print(miwen)( )
A.5356-36-12 B.5356-36-32 C.2016-16-12 D.53563632
15.给定一个n正整数(n<=20),根据设定的保留位数,舍去一部分数字,剩下的数字按原次序组成一个最大的新数。例如原数36835132,保留4位,最大数为6532。在文本框Text1输入原数,文本框Text2中输入保留的位数,文本框Text3中输出删除后的最大数。实现上述功能的部分VB代码如下∶
Dim a(1 To 20)As String,ys As String,xs As String
Dim k As Integer,h As Integer,n As Integer,i As Integer,j As Integer
ys=Text1.Text:k=Val(Text2.Text)
n=Len(ys):h=1
For i=1 To n
a(i)=mid(ys,i,1)
Next i
For i=1 To k
For j = h To ①
If a(j) > a(h) Then ②
Next j
xs=xs + a(h)
h=h + 1
Next i
Text3.Text=xs
上述程序中划线处可选语句为( )
①n-k+i ②i+k ③n-k+1 ④j=h ⑤h=j
则①②处语句依次是
A.③⑤ B.①⑤ C.①④ D.②⑤
16.有如下VB程序段:
Dim x As String, s As String
x = Text1.Text:s=""
For i= 1 To Len(x)
c = Mid(x, i,1)
If c = "a" Then
s= s + "z"
Else
s= s +Chr(Asc(c)- 1)
End If
Next i
在文本框Text1 中输入“dream”,执行该程序段后,变量s的值是( )
A.cqdal B.csdzn C.esfzn D.cqdzl
17.有如下VB程序段:
s = "": k = 0
For i = 1 To 20 Step 3
If i Mod 7 = 0 Then
k = 1
ElseIf i Mod 5 = 0 Then
k = 2
End If
If i Mod 2 = 0 Then k = 3
s = s + Str(k)
Next i
Label1.Caption = s
该程序段运行后,标签框label1上显示的内容是( )
A.0 3 1 2 0 3 0 B.0 3 1 2 2 3 3
C.0 3 1 3 3 3 3 D.0 3 1 3 0 3 0
18.有如下VB程序段:
Dim s1 As String, s2 As String
s1 = "what doesn't kill you makes you stronger."
s2 = text1.text
i = 1: j = 1
Do While i <= Len(s1) And j <= Len(s2)
If Mid(s1, i, 1) = Mid(s2, j, 1) Then j = j + 1
i = i + 1
Loop
If j > Len(s2) Then
s3 = "true"
Else
s3 = "false"
EndIf
执行该程序段后,s3的值为“false”,则text1输入的文本可能是( )
A."skills" B."waste" C."damage" D."note"
19.下面if语句统计满足“性别 (gender) 为男、职称(rank) 为副教授、年龄(age)小于40岁”条件的人数,正确的语句为( )。
A.if(gender=="男" or age<40 and rank=="副教授"): n+=1
B.if(gender=="男" and age<40 and rank=="副教授"): n+=1
C.if(gender=="男" and age<40 or rank=="副教授"): n+=1
D.if(gender=="男" or age<40 or rank=="副教授"): n+=1
20.有如下VB程序:
Private Sub Command1_Click()
Dim a (10) As Integer
n=6: Text2. Text=""
m=Val (Text1. Text)
For i=1 To 3
k=i
j=i+1
Do While j< = m
If a (k) > a(j) Then k= j
j=j+1
Loop
If i< > k Then
Text2. Text= Str(a(k))+Text2. Text
t=a(i):a(i)=a(k):a(k)=t
End If
Next i
End Sub
如果数组元素a(1)到a(6)的值依次为“40,26,19,21,71,60”,现在运行程序在文本框text1中输入5,点击按钮Command1后文本框text2中显示的内容是( )
A.71 40 26 B.71 60 40 C.26 19 21 D.26 21 19
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
【详解】本题考查的是Python选择语句。x,y,z=142,125,120,满足x>y,执行res=x=142,退出选择语句范围,执行res-=5,故res=142-5=137,选项B正确。
2.D
【详解】本题考查Python程序设计相关内容。m=28,执行m%3,结果为1,不等于0,输出:28不能被3整除。故选D。
3.D
【详解】本题主要考查VB程序的执行。s=“Wen20Zhou21”,t=0,c是截取字符串s位置i处长度为1的字符,当c是数字时,执行t = t * 10 + Val(c),当c是大写字母时,t=0,当c是小写字母时t=1,最后一个小写字母时“u”,此时t=1,下一个字符是“2”,则t=1*10+2=12,最后一个字符是“1”,则t=12*10+1=121,故执行程序后,变量t的值是121,故本题选D选项。
4.B
【详解】本题主要考查Python多分支结构。Python多分支结构格式是if…elif…else,故划线处填elif,故本题选B选项。
5.C
【详解】本题主要考查VB程序的执行。Rnd是随机生成[0,1)之间的数,int是取整部分,变量a的范围是[1,19],故排除A选项,当i与a同奇同偶即a Mod 2 = i Mod 2,执行s = s + Str(a),当i=1时,生成的a应是奇数(即文本框Text1中第二个数),故排除B、D选项,故本题选C选项。
6.D
【详解】本题主要考查VB程序的排序算法。m = Int(Rnd * 4) * 2 + 1,m是随机生成[1,7]之间的整数,m的最大值为7,当m=7时,即内层循环j的范围从i+1到7,数组a中最后一位不参与排序,即a(8)一直为7,故数组a各元素的值不可能是1 4 5 6 7 7 8 9,故本题选D选项。
7.C
【详解】本题主要考查VB程序查找算法。key=8,i=0,j=9,n=0,第一遍循环,满足i<=j,m=(0+9)\2=4,n=n+1=1,key=a(4)=8,j=m-1=3;第二遍循环,满足i<=j,m=(0+3)\2=1,n=n+1=2,key>a(1)=4,i=m+1=2;第三遍循环,满足i<=j,m=(2+3)\2=2,n=n+1=3,key>a(2),i=m+1=3;第四遍循环,满足i<=j,m=(3+3)\2=3,n=n+1=4,key=a(3),j=m-1=2,退出循环,s=i=3。第二个while循环,当i<9且a(i)=a(i+1)时,i递增,循环结束后i=5,i+1-s=5+1-3=3,故点击“查找”按钮后,Labe12中输出的结果是4:3,故本题选C选项。
8.D
【详解】本题考查的是Python的选择语句。选择语句格式如下:
if 条件:
语句
else:
语句
故本题应选D。
9.B
【详解】本题主要考查Python多分支结构。Python多分支结构格式是if…elif…else,故划线处填elif,故本题选B选项。
10.A
【详解】本题主要考查VB程序的执行与调试。k=Int(Rnd*(n\2))+1,k是随机生成[1,3]之间的整数,当k=1时,执行完for循环后,列表框List1中显示的内容为a(2)的值即44(a(1)与a(2)交换);当k=2时,执行完for循环后,列表框List1中显示的内容为44,67;当k=3时,执行完for循环后,列表框List1中显示的内容为67,77,58,故执行该程序段后,在列表框List1中显示的内容可能为67,77,58,故本题选A选项。
11.B
【详解】本题主要考查VB程序的执行。s = "2021 PYthon",t = "",c是截取字符串s位置i处长度为1的字符,如果c是小写字母,则执行 t = t + c(即将小写字母c按顺序拼接到变量t后),如果c是数字,则执行 t = c + t(即将数字拼接到变量t前),故执行该程序段后,文本框Text1中显示的内容是1202thon,故本题选B选项。
12.A
【详解】本题考查Python选择结构应用。由于列表a为有序列表,因此计算每个数的出现次数,可以通过检查相邻两个数进行统计。阅读程序段和选项中的代码可知:变量v为次数最多的值在列表a中的索引,变量c为当前数值的出现次数,变量m已统计次数中的最大值。其算法思想是:若相邻两个数相等,则计数器c加1,否则应该将c变为初值1,首先可以排除选项B,因为该选项中else分支不符合逻辑。选项CD都存在缺陷,例如最多的一组相同的数出现在列表的最后时,均不能准确统计结果。例如a=[2,3,3,3,4,4,4,4,4],此时输出值为3,而A结构合理,可以完成各种情况的统计任务,故选A。
13.B
【详解】本题主要考查VB程序的执行。在文本框Text1中输入“ABC123xyz”,在标签框Label1中输出“bcd123yza”,可知该程序实现将文本框1中的字符串,大写变为小写,且后移一位,数字保持不变,小写字母的ASCII码比大写字母大32,故第一空,判断当变量c是大写字母时,将其变为小写字母,故填Chr(Asc(c) + 32) ,第二空,当c是小写字母时,将其后移一位,故填(Asc(c) - Asc("a") + 1) Mod 26,故本题选B选项。
14.B
【详解】本题考查的是Python选择语句。由if语句可知,如果是数字,则循环后移3个。输入的明文是:2023-03-09,则输出的密文为:5356-36-32。选项B正确。
15.B
【详解】本题主要考查VB程序的执行与调试。第二个嵌套for循环实现将保留的k个数,逐个对比找出最大的数加到字符变量xs中,外层循环变量i的范围是从1到k,故内层循环变量j的范围从h到n-k+i(在保留的n-k个值中进行比较,当外层循环是i时,则内层循环的最后一位是n-k+i),如果a(j)>a(h),则更新h的值(即将最大值赋给a(h)),故①②处语句依次是①n-k+i ⑤h=j,故本题选B选项。
16.D
【详解】本题主要考查VB程序的执行。c是截取字符串x位置i处长度为1的字符,当c="a"时,将字符“z”加到变量s中,其他字符,将其前面一位字符加到s中(即其ASCII码值减1,再将结果转为字符),故在文本框Text1 中输入“dream”,执行该程序段后,变量s的值是cqdzl,故本题选D选项。
17.C
【详解】本题主要考查VB程序的执行。s="",k=0,变量i的范围是从1-20,每次递增3,故i的可取值有1、4、7、10、13、16、19,当i是7时,k=1,当i是10时,k=2,当i是偶数(即i为4、10、16时),k=3,否则k的值保持不变,每次循环最后执行s=s+Str(k),故该程序段运行后,标签框label1上显示的内容是0 3 1 3 3 3 3,故本题选C选项。
18.C
【详解】本题主要考查VB程序的执行与调试。执行该程序段后,s3的值为“false”,表明j<= Len(s2),当Mid(s1, i, 1) = Mid(s2, j, 1)时,j才会递增,若text1输入的文本是选项A、B、D,则执行完后,j>Len(s2),不符合。当text1输入的文本是"damage",执行完后j=2,满足j<=Len(s2),故本题选C选项。
19.B
【详解】本题主要考查if条件分支。题目中的条件都是与的关系,所以要用and连接,故本题选B选项。
20.D
【详解】本题主要考查VB程序的执行。n=6,m=5,Text2. Text="",第一遍循环,i=1,k=1,j=2,执行完while循环后,i=1,k=3,a(3)=19,Text2. Text= Str(a(k))+Text2. Text="19",交换a(1)与a(3)的值,数组元素a(1)到a(6)的值依次为“19,26,40,21,71,60”;第二遍循环,i=2,k=2,j=3,执行完while循环后,i=2,k=4,a(4)=21,Text2. Text= Str(a(k))+Text2.Text="21 19",交换a(2)与a(4)的值,数组元素a(1)到a(6)的值依次为“19,21,40,26,71,60”;第三遍循环,i=3,k=3,j=4,执行完while循环后,i=3,k=4,a(4)=26,Text2. Text= Str(a(k))+Text2. Text="26 21 19",循环结束,故点击按钮Command1后文本框text2中显示的内容是26 21 19,故本题选D选项。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$