内容正文:
4.3运用选择结构描述问题求解过程 2023—2024学年高中信息技术粤教版(2019)必修1
1.阅读下面的Python程序,要使程序的输出结果是True,则在画线处应填入( )
a=5
b=8
if :
print("True")
else:
print("False")
A.a>b B.a<b C.a==b D.a=b
2.小东学习了Python程序设计后,编写了计算话费充值优惠的程序如下所示。用户输入充值金额,程序会计算并输出优惠后需要支付的金额。当用户输入充值金额53时,输出结果是( )
1 cz=float(input("请输入充值金额(元):"))
2 if cz<=38:
3 zf=cz
4 elif cz<=50:
5 zf=cz-3
6 elif cz<=100:
6 zf=cz-6
7 else:
8 zf=cz*0.9
9 print(zf)
A.47.0 B.50.0 C.55.0 D.53.0
3.下面程序的功能是:产生30个[1,100]范围内的随机整数,并统计这30 个随机数中不重复的整数的个数,最后将统计结果显示在标签Label1 中。例如:5个随机数[1,2,3,2,1]中不重复数字个数为3。程序部分代码如下:
count = 0
For i = 1 To 30
a(i) = Int(Rnd * 100) + 1
Next i
For i = 1 To 30
Next i
For i = 1 To 100
If b(i) <> 0 Then count = count + 1
Next i
Label1.Caption= “不重复数字个数” + Str(count)
为实现上述功能,则程序划线处应填入的语句为( )
A.b(i)=1 B.b(a(i)) = a(b(i)) + 1
C.b(i)=b(i)+1 D.b(a(i)) = b(a(i)) + 1
4.将长度为奇数的字符串s从首位字符开始依次存入a(1),a(n - 1),a(3),a(n - 3)...。如:字符串“xuankao”分存后得到a(1)=“x”,a(6)=“u”,a(3)=“a”,a(4)=“n”,a(5)=“k”,a(2)= “a”,a(7)= “o”,下列能实现该功能的程序段是( )
A.For i = 1 To Len(s)
If I Mod 2= 0 Then
a(i) = Mid(s, i, 1)
Else
a(Len(s) - i + 1) = Mid(s, i, 1)
End If
Next i
B.For i = 1 To Len(s)
If i Mod 2= 0 Then
a(Len(s) - i+1) = Mid(s, i, 1)
Else
a(i) = Mid(s, Len(s) - i+1, 1)
End If
Next i
C.For i = 1 To Len(s)
If i Mod 2 = 1 Then
a(i) = Mid(s, i, 1)
Else
a(Len(s) - i+1) = Mid(s, i, 1)
End If
Next i
D.For i= 1 To Len(s)
If i Mod 2 = 1 Then
a(i) = Mid(s, i, 1)
Else
a(Len(s) - i+1) =Mid(s, Len(s) - i+1, 1)
End If
Next i
5.有如下VB程序段:
Dim a(1To 5)As Integer
i=1:n=5
Randomize
For i=1 To n
x=Int(Rnd*10)*2+1
If(x Mod 10+x\10)Mod 2=0 Then
a(i)=x
Else
a(n-i+1)=x
End If
Next i
数组元素的初值均为0,执行该程序段后,a(1)至a(5)的值可能的是( )
A.17,11,5,19,15 B.11,0,11,0,15
C.7,0,5,13,17 D.0,0,3,19,11
6.有如下VB程序段:
a(1)=4:a(2)=5:a(3)=1
a(4)=2:a(5)=3:a(6)=6
k=1
For i=l to 5000
k=(k+a(k)-1)Mod 6+1
Next i
执行该程序段后,变量k的值为( )
A.0 B.1 C.2 D.5
7.有如下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
8.给定一个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.②⑤
9.如下Python程序段运行后,y的值是( )
x = -64
if x > 0 :
y = 1
elif x == 0 :
y = 0
else:
y = -1
A.1 B.0 C.64 D.-1
10.以下程序用于统计自然数1到n之间出现多少个x(0<=x<=9),空缺处应填入的代码是( )
n = Val(Text1.Text)
x = Val(Text2.Text)
k = 0
For i = 1 To n
________①_________
Do While temp <> 0
y= temp Mod 10
If ________②_________ Then k = k + 1
temp = temp \ 10
Loop
Next
Label1.Caption = Str(k)
A.①temp=n ② y=x B.①temp = i ② y=x
C.①temp=i ② i=x D.①temp=n ② i=x
11.某商场做促销打折活动,消费金额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
12.有如下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”
13.在下列程序中,若程序运行后输入20,输出的s的值为( )
A.30 B.50 C.40 D.20
14.有如下VB程序段:
Const s= "3123abc21d64"
Dim flag (0 To 9) As Integer
Dim i As Integer,c As String
For i=0 To 9
flag (i)=0
Next i
For i=1 To Len(s)
c=Mid (s,i,1)
If c>="0" And c <= "9" Then flag(Val(c))=flag(Val(c))+1
Next i
执行该程序后,数组变量flag(3)的值为( )
A.0 B.1 C.2 D.3
15.周文设计了如图所示的程序,对班上同学的英语成绩进行判断,周华的英语成绩为84分,此时输出结果为( )
A.您的成绩等级为: A B.您的成绩等级为: B C.您的成绩等级为: C D.您的成绩等级为: D
16.有如下程序段:
key=5:pmin=a(1)
For i=2 To 6
If a(i)>key And a(i)<pmin Then pmin =a(i)
Next i
数组元素a(1)到a(6)的值依次为“9,1,7,3,8,4”,执行程序后,变量pmin的值为( )
A.1 B.4 C.7 D.9
17.用 VB 程序编写了一个找最大值的程序,程序功能:在文本框中输入数字串(数据间用逗号分隔,以数字开头,逗号结尾),单击“寻找”按钮 Command1 后,在 Label3中输出最大的数值。程序运行界面如图所示:
Private Sub Command1_Click()
Dim i As Integer, max As Integer, j As Integer
Dim s As String, c As String, t As String
s = Text1.Text
i = 1 : j = 1
max = 0 : t = ""
Do While j <= Len(s)
c = Mid(s, j, 1)
If c = "," Then
t = Mid(s, i, j - i)
If Val(t) > max Then max = Val(t)
①
End If
②
Loop
Label3.Caption = Str(max)
End Sub
将划线处代码补充完成,正确的是( )
A.① i=i+1 ② j=j+1 B.① i=j+1 ② j=j+1
C.① j=j+1 ② i=i+1 D.① j=i+1 ② i=i+1
18.有如下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
19.用 VB 编写统计某字母开头的单词个数的程序。程序功能:在文本框 Text1 中输入待统计的句子,在文本框 Text2 中输入某字母,单击“统计”按钮Command1后,将结果显示在Label3中。输入要求:句子以“.”结束;单词之间用空格分隔,单词没有缩写或其他特殊形式。程序运行界面如图所示:
Private Sub Command1_Click()
Dim i As Integer, n As Integer,b As Integer
Dim c As String, t As String, s As String, f As Boolean
s = Text1.Text
t = Text2.Text
b = Len(s)
f = True
For i = 1 To b
c = Mid(s, i, 1)
If ① Then
n = n + 1
②
ElseIf c = " " Or c = "." Then
③
Else
f = False
End If
Next i
Label3.Caption = "以" + t + "为开头的单词个数:" + Str(n)
End Sub
为实现上述程序,空格处应填入的代码是( )
A.① f And c = t ② f = False ③ f = True
B.① f = False And c = t ② f = False ③ f = True
C.① c = t ② f = True ③ f = False
D.① f = True And c = t ② f = True ③ f = False
20.某产品质量检测综合指标x,当0≤x<6为不合格,6≤x<8为合格,8≤x≤10为优秀。设计Python程序段,输入x(O≤x≤10),输出质检等级,则能实现该功能的是( )
A.
x =int (input ())
s=" "
if 0<=x:
s= "不及格"
elif 6<=x:
s ="及格"
else:
s="优秀"
print (s)
B.
x =int (input ())
s=" "
if 8<=x:
s= "优秀"
elif 6<=x:
s="及格"
else:
s ="不及格"
print (s)
C.
x=int (input ())
s=" "
if 0<=x:
s="不及格"
if 6<=x:
s ="及格"
else:
s = "优秀"
print (s)
D.
x=int (input ())
s =" "
if 8<=x:
s= "优秀"
if 6<=x:
s ="及格"
if 0<=x:
s = "不及格"
print (s)
A.A B.B C.C D.D
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
【详解】本题考查的是Python的选择语句。if条件满足时,执行 print("True"),a=5,b=8,故画线处应填入:a<b。故本题应选B。
2.A
【详解】本题考查的是Python多分支语句。输入充值金额53时,不满足 cz<=38,不满足cz<=50,满足cz<=100,执行zf=cz-6=53-6=47。故本题应选A。
3.D
【详解】本题主要考查VB程序的执行与调试。第一个for循环产生30个[1,100]范围内的随机整数,第二个for循环统计每个数字的出现次数,故填b(a(i)) = b(a(i)) + 1,第三个for循环统计出现的所有数字,即所有b(i)不等于0的值(重复数字为一个),故本题选D选项。
4.C
【详解】本题主要考查VB程序的执行。根据题干要求可知,奇数位保存的字符不变,偶数位逆着保存字符,故当i是奇数时,即 i Mod 2 = 1 ,执行 a(i) = Mid(s, i, 1),当i是偶数时,执行a(Len(s) - i+1) = Mid(s, i, 1),故本题选C选项。
5.A
【详解】本题主要考查VB程序的执行。数组元素的初值均为0, x=Int(Rnd*10)*2+1,x是随机生成[1,19]之间的整数,故执行程序段后,a(1)至a(5)的值不可能有0,故本题选A选项。
6.C
【详解】本题主要考查VB程序的执行。当i=1时,k=(k+a(k)-1)Mod 6+1=5;当i=2时,k=(k+a(k)-1)Mod 6+1=2;当i=3时,k=(k+a(k)-1)Mod 6+1=1;当i=4时,k=(k+a(k)-1)Mod 6+1=5,故k的值每循环3次重复一次,5000 mod 3=2,故i=5000时,k=2,执行该程序段后,变量k的值为2,故本题选C选项。
7.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选项。
8.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选项。
9.D
【详解】本题考查的是Python选择结构。x=-64,不满足x > 0,也不满足x = 0,故执行else后缩进的语句:y = -1。故本题应选D。
10.B
【详解】本题考查VB程序段阅读,枚举算法,循环嵌套。根据题干以及算法整体结构,可推知程序采用枚举算法将所有数据全都列举,然后逐一判断是否包含x,进行统计。①处可根据下方Do while temp<>0 得知,此处应该是对temp赋值,将循环变量赋值给temp,故temp=i
②处根据上下两条语句,y= temp Mod 10以及temp = temp \ 10,可知,Do while循环中将temp从低位开始每一位取出存入y,进而判断y和x是否相等,如相等,则temp中存在一个x,统计变量k=k+1。故推出②处的语句为y=x
11.B
【详解】本题主要考查Python多分支结构。Python多分支结构格式是if…elif…else,故划线处填elif,故本题选B选项。
12.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选项。
13.A
【详解】本题主要考查分支结构。当s的值为20,20>60不满足条件,则s+=20不执行。只执行s+=10(扩写表达式:s=s+10),s=20+10=30,故本题选A选项。
14.C
【详解】本题主要考查VB程序的执行。第一个for循环将flag数组全部赋值为0,第二个for循环,截取字符串的s的每一个字符,若是数字,则执行 flag(Val(c))=flag(Val(c))+1,字符串s中有两个3,故执行该程序后,数组变量flag(3)的值为2,故本题选C选项。
15.B
【详解】本题考查的是Python多分支语句。84满足70<=score<85条件,故执行level='B',故最后输出的结果为:您的成绩等级为: B,选项B正确。
16.C
【详解】本题主要考查VB程序的执行。设定最小值是pmin,从数组中的第2个数据开始遍历,直到数组中的最后一个数据,key=5,若出现比key大,且比最小值pmin小的数据,更新pmin,遍历过程中,7、8是比key大的数据,且7比当前的pmin小,故程序执行后,pmin的值是7,故本题选C选项。
17.A
【详解】本题主要考查VB程序的执行。 c = Mid(s, j, 1),如果c不是“,”,则j递增,继续截取下一位,故②处填j=j+1,如果c是“,”,则执行t = Mid(s, i, j - i),并且判断t与max的大小,i递增,故①处填i=i+1,故本题选A选项。
18.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选项。
19.D
【详解】本题主要考查VB程序的调试。① 变量t保存输入开头字母,变量n保存以s为开头的单词个数,如果f为True且c等于t,则变量n递增,故此处填f=True And c=t。 ②如果f为True且c等于t,则变量n递增,同时赋值f为True,故此处填f=True。 ③截取的字符c是空格或是符号"."时,赋值f为False,故此处填f=False。故本题选D选项。
20.B
【详解】本题考查分支结构。A选项错误,0<=x这个条件始终为真,所以s总是被设置为"不及格",不会执行后面的elif和else。C选项错误,当x在[8,10]之间,if 0<=x仍然会执行,s被先设置为"不及格",然后设置为"及格",这与题目不符合。D选项错误,所有if条件都是独立判断的,最后s都会被if 0<=x覆盖为"不及格"。故答案为:B。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$