内容正文:
4.3运用选择结构描述问题求解过程 2023—2024学年高中信息技术粤教版(2019)必修1
1.有如下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
2.有如下VB程序段:
Const n = 5
Dim b(n)As Integer
For i = 1 To 5
b(i)= i
Next i
For i = 1 To 2
For j = n – 1 To I Step -1
If a(b(j))> a(b(j + 1))Then
t = b(j):b(j)=b(j + 1):b(j + 1)= t
End If
Next j
Next i
数组元素a(1)~a(5)的值依次为“35,24,45,16,77”,运行上述程序段后,数组元素b(1)到b(5)的值依次为( )
A.1,3,5,2,4 B.5,3,1,2,4 C.2,4,1,3,5 D.4,2,1,3,5
3.周文设计了如图所示的程序,对班上同学的英语成绩进行判断,周华的英语成绩为84分,此时输出结果为( )
A.您的成绩等级为: A B.您的成绩等级为: B C.您的成绩等级为: C D.您的成绩等级为: D
4.一名高中生在以下程序输入自己的年龄会得到的结果是( )
s = input("请输入一个数字")
print("s是个小于10的数字" if int(s)<10 else "s是大于10的数字")
A.请输入一个数字 B.s是个小于10的数字
C.s是大于10的数字 D.自己年龄的数值
5.有如下VB程序段:
For i=1 To 5
a(i)=Int(Rnd*9)+1
Next i
For i=1 To 51
If i Mod 2=0 Then
a(i)=a(i)\i
E1se
a(i)=a(i)Mod i
End If
Next i
执行该程序段后,在下列选项中a(1)至a(5)各元素可能是( )
A.0 3 2 1 4 B.1 2 3 4 5
C.0 1 4 2 3 D.0 5 2 2 4
6.有如下部分程序段:
a(1) = "20": a(2) = "16": a(3) = "12": a(4) = "o": a(5) = "k"
For i = 1 To 4
For j = 5 To i + 1 Step -1
If a(j) >a(j - 1) Then t = a(j): a(j) = a(j - 1): a(j - 1) = t
Next j
List1.Additem a(i)
Next i
程序运行后列表框中显示的结果是
A.12,16,20,o,k B.o,k,20,16
C.o,k,20,16,12 D.20,16,12
7.有如下VB程序段,其中数组a各元素已赋值,且a(1)=1, a(2)=2:
t = True
For i=3 To 10
d = a(i - 1)- a(i - 2)
If a(i) - a(i - 1)<>2*d Then
t = False
End If
Next i
执行程序后,t的值是True,则a(10)的值为( )
A.64 B.128 C.256 D.512
8.下列VB程序段功能为:在文本框Text1中显示数组元素a(1)到a(n)中的最大偶数,数组元素均为正整数。
x = 0
i = 1: j = n
Do While
If a(i)Mod 2 =a(j)Mod 2 Then
If Then
If a(i)>a(j)And a(i)>x Then x=a(i)
If a(j)>a(i)And a(j)>x Then x=a(j)
End If
Else If Then
x = a(i)
Else If Then
x = a(j)
End If
i = i + i: j = j- 1
Loop
Text1. Text= Str (x)
上述程序段中方框处可选语句为:
①a(i) Mod 2 = 0
②i<= j
③a(j) > x
④a(i) Mod 2= 0 And a(i) > x
则(1)(2)(3)(4)处语句依次可为( )
A.④③②① B.②④③① C.②①④③ D.④②①③
9.有如下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
10.有如下VB程序段
Const n=9
k = 1
For i = 1 To (n + 1)/ 2 - 1
For j = 1 To n - i * 2
If a(j)* k < a(j + 2)* k Then
t = a(j): a(j)= a(j + 2): a(j + 2)= t
End If
k = -k
Next j
Next i
For i = 1 To (n + 1)\ 2
List2.AddItem Str(a(2 * i - 1))
Next i
已知数组元素 a(1)~a(9)分别是8、6、2、9、6、3、8、11、5,执行程序后list2输出的结果分别是( )
A.2 5 6 8 8 B.8 8 6 5 2 C.6 8 5 8 2 D.2 6 6 8 9
11.使用Python编写一个输出门票价格的程序码,要测试所有分支程序代码是否正确。以下测试数据中,最恰当的一组是( )
h=int(input(“W输入您的身高:”))
if h<=120:
p=0
elif h>140:
p=100
else:
p=50
print(“您需要支付的门票价格是:”,p)
A.120,140 B.130,150 C.100,130,140 D.100,130,150
12.有如下VB程序段:
Dim i As Integer, c As Integer
Dim s As String, min As String, ch As String
s = Text1. Text
min="z":c=0
For i=1 To Len(s)
ch=Mid(s,i,1)
If ch >="a" And ch<="z" And ch < min Then
min=ch
c=1
ElseIf ch=min Then
c=c+1
End If
Next i
Label1.Caption=Str(c)
在文本框Textl中输入“Twinkle, twinkle, little star.”,程序执行后,标签Label1中显示的内容是( )
A.1 B.2 C.3 D.4
13.有如下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
14.居家养老系统为老年人提供信息化、智能化的居家养老服务。手环可以实时心率检测、定时测量体温;时钟可以提供实时监控、语音互通;拐杖可以实时定位、一键呼救等。家人在手机上安装养老系统客户端软件,便可随时了解老人的身体基本情况,并获取针对性健康建议。老年人正常的心率(bpm)范围是60-100次/分钟,当检测心率不正常时,系统会提示异常信息,下列Python程序段符合要求的是( )
A.
status="正常"
if bpm>100:
status="异常"
elif bpm<60:
status="异常"
B.
if bpm<60:
status="异常"
if bpm>100:
status="异常"
else:
status="正常"
C.
status="异常"
if bpm<=100:
status="正常"
elif bpm>=60:
status="正常"
D.
if not (bpm>100 and bpm<60):
status="正常"
else:
status="异常"
A.A B.B C.C D.D
15.有如下VB程序段:
sa = “xxyxyzzx”: sb = “xyz”
i=1:c=0
Do While i <= Len(sa)- Len(sb) + 1
If Mid(sa, i, Len(sb)) = sb Then
sa = Mid(sa, 1, i - 1) + Mid(sa, i + Len(sb),Len(sa)- i- Len(sb) + 1)
i =1
c = c + 1
Else
i = i + 1
End If
Loop
执行该程序段后,变量c的值是( )
A.1 B.2 C.3 D.4
16.若一个数是某个整数的平方,则该数被称为完全平方数。下列程序段用于找出字符串中用逗号分割的完全平方数。部分程序代码如下:
Dim tmp As Single ,s As String ,ch As String ,i As Integer s = "1,20,36,29,3,"
tmp = 0
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch <> "," Then
(1)
Else
If (2) Then
List1.AddItem Str(tmp)
End If
tmp = 0
End If Next i
上述程序段中横线处可选语句为:
① tmp = tmp * 10 + Val(ch) ② tmp = tmp + ch
③ Sqr(tmp) ^ 2 = tmp ④ Int(Sqr(tmp)) = Sqr(tmp)
则(1)(2)处语句依次为( )
A.①③ B.①④ C.②③ D.②④
17.有如下VB程序段:
For i = 1 To 5
k = i
For j = i + 1 To 6
If a(j) Mod 3 <= a(k) Mod 3 Then k = j
Next j
tmp = a(i): a(i) = a(k): a(k) = tmp
Next i
数组元素a(1)~a(6)的值依次为“62,54,35,67,15,34”。执行该程序段后,a(1)~a(6)的值依次为( )
A.15 54 34 67 35 62 B.54 15 67 34 62 35
C.15 34 35 54 62 67 D.15 34 67 62 54 35
18.根据国家标准,室内空气质量指数的正常范围为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
19.如下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
20.有如下Python程序,当程序运行后输入15000,则程序输出结果为( )
salary=float(input())
if salary<=5000:
tax=0
elif salary<=7000:
tax=(salary-5000 )*0.1
elif salary<=10000:
tax=200+( salary-7000)*0.2
else:
tax=800+( salary-10000 )*0.4
print(salary-tax)
A.2800 B.2800.0 C.12200 D.12200.0
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.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选项。
2.D
【详解】本题主要考查VB程序的执行。n=5,第一个for循环实现数组b的赋值,b(1)=1,b(2)=2,b(3)=3,b(4)=4,b(5)=5,嵌套for循环中,当i=1时,执行完内层循环后,数组元素b(1)到b(5)的值依次为4,1,2,3,5,当i=2是,执行完内层循环后,数组元素b(1)到b(5)的值依次为4,2,1,3,5,故本题选D选项。
3.B
【详解】本题考查的是Python多分支语句。84满足70<=score<85条件,故执行level='B',故最后输出的结果为:您的成绩等级为: B,选项B正确。
4.C
【详解】本题主要考查VB程序的执行。如果int(s)小于10,输出s是个小于10的数字,否则输出s是大于10的数字,一名高中生的年龄大约在15到18岁之间,所以输出s是大于10的数字,故本题选C选项。
5.A
【详解】本题主要考查VB程序的执行。第一个for循环随机生成5个[1,9]之间的整数。第二个for循环,变量i的范围是从1到51,当i是偶数时,执行a(i)=a(i)\i,当i是奇数时,执行a(i)=a(i)Mod i,当i=1时,a(1)=a(1) mod 1=0,排除B选项;当i=3时,执行a(3)=a(3) mod 3,执行后a(3)的范围是[0,2],排除C选项;当i=2时,执行a(2)=a(2)\2,执行后a(2)的范围是[0,4],排除D选项,故本题选A选项。
6.B
【详解】本题主要考查VB程序的执行。外层循环i的范围是1到4,内层循环完,列表框1中显示a(i)的值,所以程序运行后列表框中显示的结果应该是4个,观察选项可知程序运行后列表框中显示的结果是o,k,20,16,故本题选B选项。
7.D
【详解】本题主要考查VB程序的执行。执行程序后,t的值是True,说明a(i)-a(i-1)始终等于2*d。当i=3时,d=a(2)-a(1)=1,a(3)-a(2)=2d=2,可得a(3)=4;同理,当i=4时,可得a(4)=8;当i=5时,可得a(5)=16,依次类推,数组a分别为:1、2、4、8、16……,可知a数组是一个等比数列,等比是2,第十项是512,故a(10)的值为512,故本题选D选项。
8.C
【详解】本题主要考查VB程序的执行。i=1,j=n,while循环条件是i<=j,第二个空判断a(i)是不是偶数即a(i) Mod 2 = 0,第三个空如果a(i)Mod 2 <>a(j)Mod 2,继续判断a(i)是不是偶数并且是不是大于x,即 a(i) Mod 2= 0 And a(i) > x,若是更新x的值,第四个空,不满足前面的情况下,判断a(j)是不是大于x,即a(j)>x,若是更新x的值,程序结束后,x即为数组元素a(1)到a(n)中的最大偶数,故本题选C选项。
9.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选项。
10.C
【详解】本题主要考查程序的执行。程序代码仅输出奇数位置“8,2,6,8,5”的排序处理,故偶数位不考虑。第一轮奇数位1~9降序,完成后k=-1,第2轮时,奇数位1~7变为升序,依次类推,第3轮1、3、5降序,第4轮位置1和3升序,得出结果6 8 5 8 2,故本题选C选项。
11.D
【详解】本题考查的是Python程序调式。从程序可知h设定了三个范围: h<=120、 h>140、120 <h<=140,所以要测试所有分支是否正确,只要在这三个范围中取三个数就可以,100,130,150可以满足。故本题应选D。
12.A
【详解】本题主要考查VB程序的执行。s=“Twinkle, twinkle, little star.”,ch是截取字符串s位置i处长度为1的字符,当ch是小写字母且小于min时(min保存比较后最小的字母),更新min的值,且c=1,如果ch等于min时,c递增,当ch=“a”时,min=“a”,c=1,此后的执行,c无变化,故程序执行后,标签Label1中显示的内容是1,故本题选A选项。
13.B
【详解】本题考查的是Python选择语句。x,y,z=142,125,120,满足x>y,执行res=x=142,退出选择语句范围,执行res-=5,故res=142-5=137,选项B正确。
14.A
【详解】本题考查的是Python分支语句。选项B中当bpm<60时,还会执行else语句,不符合题意;选项C中,当bpm<60时,满足if条件,提示正常,不符合题意;选项D中,bpm>100 and bpm<60不可能为真,加上not,if条件肯定为真,输出一直都为正常,不符合题意。故本题应选A。
15.B
【详解】本题主要考查VB程序的执行。while循环条件是i<=Len(sa)- Len(sb) + 1=8-3+1=6,当i=4时,Mid(sa, 4, Len(sb)) = sb,sa=Mid(sa, 1,3) + Mid(sa,7,2)=“xxyzx”,i=1,c=c+1=1,此时while循环条件i<=Len(sa)- Len(sb) + 1=5-3+1=3,当i=2时,Mid(sa, 2, Len(sb)) = sb,sa=Mid(sa, 1,1) + Mid(sa,5,1)=“xx”,i=1,c=c+1=2,字符串sa中再没有子串sb,故执行该程序段后,变量c的值是2,故本题选B选项。
16.B
【详解】本题主要考查VB程序的执行与调试。第一空通过for循环取出字符串s中的整数,如果ch不是符号,则将其加到变量tmp中,故填mp = tmp * 10 + Val(ch) 。第二空如果ch是符号,则判断取到的数tmp是不是完全平方数,使用求平方函数Sqr(),故填 Int(Sqr(tmp)) = Sqr(tmp),故本题选B选项。
17.A
【详解】本题主要考查VB程序的执行。当i=1时,执行完循环后,k=5,交换a(1)与a(5)的值,数组元素a(1)~a(6)的值依次为“15,54,35,67,62,34”;当i=2时,执行完循环后,无交换;当i=3时,执行完循环后,k=6,交换a(3)与a(6)的值,数组元素a(1)~a(6)的值依次为“15,54,34,67,62,35”;当i=4时,执行完循环后,无交换;当i=5时,执行完循环后,k=6,交换a(5)与a(6)的值,数组元素a(1)~a(6)的值依次为“15,54,34,67,35,62”,故执行该程序段后,a(1)~a(6)的值依次为15 54 34 67 35 62,故本题选A选项。
18.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选项。
19.D
【详解】本题考查的是Python选择结构。x=-64,不满足x > 0,也不满足x = 0,故执行else后缩进的语句:y = -1。故本题应选D。
20.D
【详解】本题考查的是Python分支语句。15000不满足<=5000,也不满足<=7000,也不满足<=10000,故执行tax=800+( salary-10000 )*0.4=800+(15000-10000)*0.4=800+2000=2800.0,salary-tax=15000-2800.0=12200.0。故本题应选D。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$