内容正文:
2023-2024学年高一上学期粤教版(2019)必修一4.3 运用选择结构描述问题求解过程
一、选择题
1.有如下 VB 程序段:
x = 86420: s1 = "ByeBye2020": s2 = "Fighting2021"
result = ""
Do While x > 0
r = x Mod 10
If r Mod 3 = 0 Then
result = Mid(s1, r + 1, 1) & result
Else
result = result & Mid(s2, r + 1, 1)
End If
x = x \ 10
Loop
Text1.Text = result
执行该程序段后,文本框 Text1 中显示的内容是 ( )
A.Bgt22 B.eBihg C.2Bgt2 D.2yeFn
2.有如下VB程序段
Private Sub Command1_Click()
Dim s As Integer
Dim i As Integer
s = 0
For i =" 1" To 20 Step 2
If s < 20 Then
s =" s" + i
End If
Next i
Text1.Text = Str(s)
Text2.Text = Str(i)
End Sub
执行以上程序后,变量s和i的值分别为
A.9 20 B.16 21 C.25 11 D.25 21
3.有如下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
4.有如下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
5.【加试题】有如下VB程序段:
For i = 1 To 2
k = i
For j = 6 To i + 1 Step -1
If a(j) > a(k) Then k = j
Next j
If k <> i then
t = a(i) : a(i) = a(k) : a(k) = t
End If
Next i
数组元素 a(1)到 a(6)的值依次为“71,46,31,58,29,78”,经过该程序段“加工”后,数组元素a(1)到 a(6)的值依次为
A.29,31,46,58,71,78
B.78,71,58,46,31,29
C.46,29,31,58,71,78
D.78,71,31,58,29,46
6.有如下 VB 程序段:
s = ""
n = Val( Text 1 . Text) k = 128 : c = 0
Do While n > 0
If n >= k Then
n = n - k
s = s + " 1 "
Else
s = s + " 0 "
End If
k = k \ 2
c = c + 1 Loop
For i = 1 To 8 - c
s = s + " 0 " Next i
在文本框Text1中输入184,执行该程序段后,变量s和c的值分别为 ( )
A."10111000",5 B."10111000",3 C."00011101",5 D."00011101",3
7.有如下VB程序段:
Dim t(0 To 9) As Integer
n = Val(Text1.Text)
For i = 10 To 30
a = i Mod 10
b = i \ 10
If a = n Or b = n Then t(n) = t(n) + 1
Next i
Label1.Caption = Str(t(n))
数组t中各个元素初值均为0,在文本框Text1中分别输入2时,执行该程序后,Label1中显示的内容为( )
A.2 B.10 C.11 D.12
8.已排序的列表a有n个整型元素,现要查找出现次数最多的值并输出。若出现次数最多的值有多个,则输出最前面的一个。实现该功能的程序段如下,方框中应填入的正确代码为( )
c,m,v=1,1,0
for i inrange(1,n):
print(a[v])
A. B. C. D.
9.有如下 VB 程序段:
For i = 1 To 6
x = Int(Rnd * 10) +1
If i Mod 2 = 1 Then
a(i) = 2 * x + 1
ElseIf x mod 2 = 0 then
a(i) = x \ 2
Else
a(i) = x - 1
End If
Next i
执行程序后,a 数组各元素可能的是 ( )
A.3,2,7,4,20,6 B.9,3,11,5,17,7 C.5,0,9,4,13,10 D.3,3,9,0,19,5
10.下列有关If 单分支语句说法错误的是( )。
A.If(条件表达式)后面加冒号:
B.执行过程中条件表达式为真,执行语句A,为假则不执行语句A
C.If(条件表达式)后面可以不加冒号:
D.当语句A由多个语句构成时,严格遵守相同的缩进
11.有如下Python程序段:
a=int(input("请输入一个数:"))
if a>0:
a=a%10
elif a==0:
a=a+1
else:
a=a**2
a=a+10
print(a)
输入a值为20,执行该程序段后,输出的结果是( )
A.14 B.11 C.10 D.1
12.有如下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
13.某商场做促销打折活动,消费金额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
14.有VB程序段如下:
p = Val(Text1.Text)
t = 0: j = 2: flag = True
s = Text1.Text + "="
Do While p > 1 And flag
If p Mod j = 0 Then
t = t + 1
p = p \ j
s = s + Str(j) + "*"
Else
If t = 1 Then flag = False
t = 0: j = j + 1
End If
If p = 1 And t = 1 Then flag = False
Loop
If flag Then
Text2.Text = Mid(s, 1, Len(s) - 1)
Else
Text2.Text = Text1.Text + "不是漂亮数"
End If
执行该程序段,在文本框Text1中输入6,则文本框Text2中显示的内容为( )
A.6= 2* 3 B.6= 2* 3*
C.6= 1* 2* 3 D.6不是漂亮数
15.依据选择排序思想:设计一个对数组a进行剔除重复数据后升序排序的程序。实现该功能的VB程序段如下:
i=1
bottom=n 'n为a数组元素的个数
Do While i<=bottom-1
k=i
For j=bttom Toi+1 Step-1
If a(j)<a(k)Then
k=j
ElseIf a(j)=a(k)Then
If (1) Then (2) Else (3)
bottom=bttom-1
End If
Next j
If k <>I Then t=a(k): a(k)=a(i): a(i)=t
i=i+1
Loop
上述程序中方框处可选语句为:
①k=j②k=bottom③a(j)=a(bottom)
则(1)、(2)、(3)处语句依次是( )
A.②①③ B.②③① C.③①② D.①②③
二、填空题
16.以下Python程序运行后,当输入20时,输出结果是 。
17.在编程语言中, 是指在程序执行过程中,根据条件选择执行不同代码块的语句。
18.复制以下代码,并在Python中运行该程序,当输入三条边长分别是12、33、41,则运行结果是( ):
a = int(input('请输入第 1 边:'))
b = int(input('请输入第 2 边:'))
c = int(input('请输入第 3 边:'))
if a>0 and b>0 and c>0 and a+b>c and a+c>b and b+c>a:
if a==b==c:
print('等边三角形')
elif a==b or a==c or b==c:
print('等腰三角形')
elif (a**2+b**2==c**2) or (b**2+c**2==a**2) or (a**2+c**2==b**2):
print('直角三角形')
else:
print('普通三角形')
else:
print('不能组成三角形')
19.有Python程序代码如下:
n=int(input("请输入一个整数n:"))
if n < 0 :
s = 0
elif n < 16 :
s = n ** 3
else :
s = n * n ** 2
print(s)
若要测试所有分支程序代码是否正确,请列举一组合适的数据
三、操作题
20.对数组a中的n个元素进行排序,生成左右交替上升的数据序列,结果如下表所示:
a(1)
a(2)
a(3)
……
a(n-2)
a(n-1)
a(n)
27
35
39
……
49
39
33
小华由此设计一个VB程序,功能如下:单击“排序”按钮Command1,随机生成10个两位奇数,将随机生成的数据序列显示在文本框Text1中,在文本框Text2中显示完成排序后的数据序列,运行结果如图所示。
Private Sub Command1_Click()
Dim a(1 To 10) As Integer
Randomize
Const n = 10
For i = 1 To n
a(i) = ①
Text1.Text = Text1.Text + Str(a(i))
Next i
For i = 1 To n \ 2
For j = n - i + 1 To i + 1 Step -1
If a(j) < a(j - 1) Then
t = a(j - 1)
②
a(j) = t
End If
Next j
For j = i + 1 To n - i
If Then t = a(j): a(j) = a(j + 1): a(j + 1) = t
End If
Next j
Next i
For i = 1 To n
Text2.Text = Text2.Text + Str(a(i))
Next i
End Sub
(1)代码Command1_Click()中的Click属于
(单选,填字母:A.对象名/B.事件名/C.方法名/D.事件处理过程名)。
(2)程序代码中,划线①处的代码可能是 (单选,填字母)。
A.Int(Rnd * 88) + 11 B.Int(Rnd * 89) + 11
C.Int(Rnd * 44) * 2 + 11 D.Int(Rnd * 45) * 2 + 11
程序代码中,在划线②处填入合适的代码。
(3)程序代码中,加框处语句有错,请改正。
改正:
四、简答题
21.列举Python程序设计语言中,IF 语句的三种常见格式。
22.解释什么是条件语句,并给出一个使用条件语句的例子。
23.描述Python中如何使用if语句实现条件分支,并给出一个实际应用的例子。
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.C
2.D
3.B
4.D
5.D
6.A
7.C
8.A
9.D
10.C
11.C
12.A
13.B
14.D
15.A
16.20
17.条件语句或选择结构
18.普通三角形
19. -1,15,16 或其他等价答案
20. B D a(j - 1)=a(j) a(j) < a(j + 1)
21.单分支语句格式:
If(条件表达式):
语句A
双分支if语句格式:
If(条件表达式):
语句A
else:
语句B
if...elif...else语句格式:
If(条件表达式):
语句1
elif:
语句2
...
elif:
语句N
else:
语句N+1
22.条件语句是一种基于特定条件执行不同代码块的编程结构。例如,在Python中,条件语句可以表示为:if x > 0: print("x is positive")。
23.if语句用于实现条件分支,例如:if x > 10: print("x is greater than 10")。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$