内容正文:
4.3运用选择结构描述问题求解过程 2023—2024学年高中信息技术粤教版(2019)必修1
1.某VB程序段如下:
n = 6 :i = 1
j = i+1 : key = a(i)
Do While j <= n
If key = a(j) Then
k =i
Do While k < n
a(k)= a(k + 1):k = k + 1
Loop
key =a(j - 1): n = n - 1
Else
j = j + 1
End If
Loop
For i = 1 To n
List1.AddItem a(i)
Next
数组元素a(1)到a(6)的值依次为 “a1,a3,a5,b3,a1,c1”,则经过该程序段“加工”后,列表框List1显示的项依次为( )
A.“a3,a5,b3,a1,c1,c1” B.“a1,a3,a5,b3,c1,c1”
C.“a3,a5,b3,a1,c1” D.“a1,a3,a5,b3,c1”
2.有如下VB程序段:
Dim a(1 To 10) As Integer
s = “8+9+10=”: n = 1
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch >= “0” And ch <= “9” Then
a(n) = a(n) * 10 + Val(ch)
Else
If a(n) > 0 Then n = n + 1
End If
Next i
Text1.Text = Str(n)
数组a各元素的初始值都为0,若执行该程序后,在文本框Text1中显示的值为( )
A.2 B.3 C.4 D.5
3.有如下VB程序段:
sl=Text1. Text
i=l∶t=〞〞
Do While i<= Len(sl)
c=Mid(sl, i, l)
If c >=〞a〞And c <=〞z〞Then
t=t+c
Else
Text2. Text=t
End If
i=i+2
Loop
在文本框 Textl中输入“Hello_New_World!”,执行该程序段后,则文本框Text2中显示的内容是( )
A.low B.orld C.lowrd D.HloNw01!
4.有如下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
5.运行以下Python程序段,变量y的值为( )
x=10
if x>=10:
y=10*x
else:
y=9*x
A.100 B.90 C.80 D.70
6.有如下VB 程序段:
For i = 1 To 4
a(i) = Int(Rnd * 9 + 1)
b(i) = 1 Next i
For i = 1 To 3
For j = i + 1 To 4
If a(i) < a(j) Then
b(i) = b(i) + 1
Else
b(j) = b(j) + 1
End If
Next j Next i
执行该程序段后,数组b各元素的值依次是1,4,2,3,则数组a各元素的值不可能是( )
A.4 1 3 2 B.6 4 5 1 C.6 4 5 5 D.9 1 8 3
7.Python中,分支语句使用的关键字是( )
A.if B.while C.for D.def
8.有如下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"
9.有如下VB程序段:
Dim i As Integer,c As String,s As String,t As Integer
Dim s2 As String,pwd As String
s=Text1.Text:pwd="71zhYEAR":s2="":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)
Else
s2=s2+Mid(pwd,t Mod 8+1,1)
End If
Next i
Text2.Text=s2
运行该程序段,在文本框Text1中输入“20B13A8”,文本框Text2输出的是( )
A.hY B.YE C.YE7 D.hYA
10.有如下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
11.在Python中,下列程序段执行后,变量s的值是( )
w=2
h=5
if h>8:
s=w*2
else:
s=w+1
A.1 B.2 C.3 D.4
12.某商场做促销打折活动,消费金额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
13.有如下VB程序段:
L = 0: R = 7: i = 1
Do While i < R
If a(i) = 0 Then
L = L + 1
t = a(i):a(i) = a(L):a(L) = t
i = i + 1
ElseIf a(i) = 2 Then
R = R - 1
t = a(i):a(i) = a(R):a(R) = t
Else
i = i + 1
End If
Loop
数组元素 a(1)到 a(6)的值依次为“2, 0, 2, 1, 1, 0”。执行该程序段后,下列说法不正确的是( )
A.变量 L 的值为 2 B.变量 R 的值为 5
C.变量 i 的值为 4 D.数组元素值依次为“0, 0, 1, 1, 2, 2”
14.运行下面Python程序,从键盘输入781,运行结果为( )
x=lnt(input("请输入一个正整数:"))
if x%2==0:
print(x,"是偶数")
else:
print(x,"是奇数")
A.是偶数 B.是奇数 C.781是偶数 D.781是奇数
15.以下Python程序段执行后,输出结果为( )
m=29
if m%3!=0
print(m, "不能被3整除")
else:
print(m, "能被3整除")
A.m不能被3整除 B.29不能被3整除 C.29能被3整除 D.m能被3整除
16.有如下VB程序段:
Dim f(1 To 20) As Boolean, a(1 To 20) As Integer
sl = Textl.Text: s2 = Text2.Text
Text3.Text = ""
For i= 1 To Len(s1)
For j= 1 To Len(s2)
If Mid(s1, i, 1)= Mid(s2,j, 1) Then
If Not f(j) Then a(i)= j: f(j) = True: Exit For
End If
Next j
Text3.Text = Text3.Text + Str(a(i))
Next i
若文本框Textl中输入的值为“ABCDEA”,文本框Text2中输入的值为“BAECAD”,f数组元素的初始值均为False,则执行该程序段后,文本框Text3中显示的内容是( )
A.2 1 4 6 3 5 B.2 1 5 3 6 4 C.1 2 3 4 5 1 D.5 1 4 6 3 2
17.有如下VB程序段:
Private Sub Command1_Click()
Dim s As String, ch As String
Dim n As Integer, t As Integer, c As Integer
s = "Go-2020-12"
n = Len(s):t = 0
For i = 1 To n
ch = Mid(s,i,1)
If ch >= "0" And ch <= "9" Then
t = t + Val(ch)
Else
c = t:t = 0
End If
Next i
Label1.Caption = Str(c)
End Sub
执行完以上程序段后,标签Label1上显示的内容为( )
A.7 B.2 C.3 D.4
18.有以下 VB 程序段
For i = 1 To 3
For j = 1 to 10
If j Mod i = 0 Then
a(j) = 1 – a(j)
Next j
Next i
sum = 0
For i = 1 To 10
sum = sum + a(i)
Next i
已知数组 a 的所有元素初值均为 0,运行上述程序段后,变量 sum 的值是( )
A.2 B.3 C.4 D.5
19.有如下VB程序段:
s=Textl. Text
st=""
n= Len(s)
For i=1 To n
a(i)=Mid(s, i, 1)
If a(i)>="A" And a(i) <= "Z" Then a(i)=Chr(Asc("Z") - Asc(a(i))+Asc("A"))
If a(i)>="a" And a(i) <= "z" Then a(i)=Chr(Asc("z") - Asc(a(i))+Asc("a"))
st=st+a(i)
Next i
在文本框Text 1中输入“Happy”,执行该程序段后,变量st的值为( )
A.“Szkkc” B.“yppaH” C.“Happy” D.“Szkkb”
20.有如下VB程序段:
max=a(1)∶c=0∶k=0
For i=1 To 8
If a(i) Mod 2 =1 Then
c=c+1
If a(i)> max Then max=a(i)
Else
k=k+1
End If
Next i
已知数组元素a(1)~a(8)的值分别是“61,23,54,66,84,42,55,98”,执行该程序段后,下列变量的值,正确的是( )
A.c=5 B.i=8 C.max=61 D.k=3
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.C
【详解】本题主要考查VB程序的执行。n=6,i=1,j=i+1=2,key=a(1)=a1,j=5时,key=a(5)=a1,k=i=1,执行完内层循环后,a(1)=a(2)=a3,a(2)=a(3)=a5,a(3)=a(4)=b3,a(4)=a(5)=a1,a(5)=a(6)=c1,key=a(4)=a1,n=n-1=5,j=j+1=6,退出while循环,最后一个for循环中,输出a(1)~a(5),故经过该程序段“加工”后,列表框List1显示的项依次为“a3,a5,b3,a1,c1”,故本题选C选项。
2.C
【详解】本题主要考查VB程序的执行。s=“8+9+10=”,n=1,Len(s)=7,当i=1时,ch=“8”,a(1)=8,当i=2时,ch=“+”,满足a(1)>0,n=n+1=2,当i=3时,ch=“9”,a(2)=9,当i=4时,ch=“+”,满足a(2)>0,n=n+1=3,当i=5时,ch=“1”,a(3)=1,当i=6时,ch=“0”,a(3)=10,当i=7时,ch=“=”,满足a(3)>0,n=n+1=4,程序结束,故执行该程序后,在文本框Text1中显示的值为4,故本题选C选项。
3.C
【详解】本题主要考查VB程序的执行。s1="Hello_New_World!",i=1,t="",i每次递增2,c是截取字符串s1中位置i长度为1的子串,当遇到小写字母时,将其加到变量t中,故执行该程序段后t="lowrd",文本框Text2中显示的内容是lowrd,故本题选C选项。
4.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选项。
5.A
【详解】本题主要考查Python分支结构。x=10,满足x>=10,执行y=10*x=10*10=100,故运行该程序段后变量y的值为100,选A选项。
6.B
【详解】本题主要考查VB程序的执行与调试。第一个for循环实现,随机生成数组a,范围是[1,9],数组b均赋值为1,第二个嵌套for循环,当a(i) < a(j)时,执行b(i) = b(i) + 1,否则执行b(j) = b(j) + 1,由数组b各元素的值依次是1,4,2,3,可知,当i=1时,a(1)>a(2),a(1)>a(3),a(1)>a(4),当i=2时,因为b(2)=4,故b(2)<b(3),b(2)<b(4),故数组a各元素的值不可能是6 4 5 1,故本题选B选项。
7.A
【详解】本题考查的是Python分支语句。if是分支语句使用的关键字;while、for是循环语句使用的关键字;def是自定义函数的关键字。故选A。
8.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选项。
9.B
【详解】本题主要考查VB程序的执行。s=“20B13A8”,该程序通过for循环截取字符串s的每一位进行判断,当截取的是数字时,执行 t=t*10+Val(c),否则执行s2=s2+Mid(pwd,t Mod 8+1,1),i=1时,c=“2”,t=2,i=2时,c=“0”,t=2*10+0=20,i=3时,c="B",20 mod 8+1=5,s2=“Y”,i=4时,c=“1”,t=20*10+1=201,i=5时,c=“3”,t=201*10+3=2013,i=6时,c=“A”,2013 mod 8+1=6,s2=“Y”+“E”=“YE”,后面是数字8,s2的值无变化,故文本框Text2输出的是YE,故本题选B选项。
10.D
【详解】本题主要考查VB程序的执行。c是截取字符串x位置i处长度为1的字符,当c="a"时,将字符“z”加到变量s中,其他字符,将其前面一位字符加到s中(即其ASCII码值减1,再将结果转为字符),故在文本框Text1 中输入“dream”,执行该程序段后,变量s的值是cqdzl,故本题选D选项。
11.C
【详解】本题考查的是Python选择语句。初始w=2,h=5。不满足h>8,执行s=w+1=2+1=3。故本题应选C。
12.B
【详解】本题主要考查Python多分支结构。Python多分支结构格式是if…elif…else,故划线处填elif,故本题选B选项。
13.C
【详解】本题主要考查VB程序的执行与调试。数组元素 a(1)到 a(6)的值依次为“2, 0, 2, 1, 1, 0”,L=0,R=7,i=1,第一遍循环,a(1)=2,R=R-1=6,交换a(1)与a(7)的值,a(1)=0,a(7)=2;第二遍循环,i=1,a(1)=0,L=L+1=1,i=i+1=2;第三遍循环,i=2,a(2)=0,L=L+1=2,i=i+1=3;第四遍循环,i=3,a(3)=2,R=R-1=5,交换a(3)与a(5)的值,a(3)=1,a(5)=2,i=i+1=4,第五遍循环,i=4,a(4)=1,i=i+1=5,循环结束。故执行该程序段后,变量L 的值为 2;变量 R 的值为 5;变量 i 的值为5;数组元素值依次为“0, 0, 1, 1, 2, 2”,故本题选C选项。
14.D
【详解】本题考查的是Python选择结构。从键盘输入781,即x=781, x%2=1,故执行 print(x,"是奇数."),输出:781是奇数。故选D。
15.B
【详解】本题考查Python选择语句。m=29,m%3=1执行 print(m, "不能被3整除"),输出:29不能被3整除。故选B。
16.A
【详解】本题主要考查VB程序的执行。程序通过嵌套循环逐位比较字符串ABCDEA和BAECAD,若相等执行a(i)= j,i=1时,a(1)=2,f(2)=True,退出循环,i=2时,a(2)=1,f(1)=True,退出循环,i=3时,a(3)=4,f(4)=True,退出循环,以此类推,最后将a(i)的值加到Text3.Text中,则执行该程序段后,文本框Text3中显示的内容是2 1 4 6 3 5,故本题选A选项。
17.D
【详解】本题主要考查VB程序的执行。s = "Go-2020-12",n=Len(s)=10,t=0,ch是截取字符串s位置i处长度为1的字符赋给变量ch,如果ch是数字,将该字符转换为数据型并累加到t中,否则执行c=t,t=0,当i=8时,t=2+0+2+0=4,c=t=4,t=0;当i=10时,t=1+2=3,循环结束,故执行完以上程序段后,标签Label1上显示的内容为4(显示c的内容,c=4),故本题选D选项。
18.C
【详解】本题主要考查VB程序的执行。i=1时,a(1)到a(10)均等于1;i等于2时,a(2)=0,a(4)=0,a(6)=0,a(8)=0,a(10)=0,;i等于3时,a(3)=0,a(6)=1,a(9)=0,故程序结束后,sum=1+0+0+0+1+1+1+0+0+0=4,故本题选C选项。
19.D
【详解】本题主要考查VB程序的执行。s=“Happy”,n=5,i=1时,a(1)=H,执行 a(1)=Chr(Asc("Z") - Asc("H")+Asc("A"))=Chr(90-72+65)=Chr(83)="S",当a(i)是小写时执行a(i)=Chr(Asc("z") - Asc(a(i))+Asc("a")),其中Asc("Z")=90,Asc("A")=65,Asc("z")=122,Asc("a")=97,依次类推,执行该程序段后,变量st的值为“Szkkb”,故本题选D选项。
20.C
【详解】本题主要考查VB程序的执行。max=a(1)=61,c=0,k=0,当a(i)为奇数时,c递增,当a(i)大于max时,执行max=a(i)(即当a(i)为奇数时且大于max时,才更新max的值),当a(i)为偶数时,k递增,数组元素a(1)~a(8)没有大于61的奇数,故执行该程序段后max值没有发生变化,max=61,故本题选C选项。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$