内容正文:
2023-2024学年高一上学期选修1第二章第2节 选择结构程序
一、选择题
1.有以下程序段:
n=int(input(“请输入数字:”))
if n>5 :
print(4*n)
else :
print(7*n)
如果输入5,则程序运行的结果为 ( )
A.32 B.35 C.49 D.56
2.在机场托运行李,每人免费25千克,超过25千克不到50千克,则超出部分按每千克10元收费,如果超过50千克,则超过部分按每千克20元收费。这种计费程序最适合用到的程序结构是( )。
A.循环 B.赋值 C.分支 D.顺序
3.已知a=8、b=6,以下程序段
If (a Mod 3 = 0) Or (b Mod 3 = 0) Then
c = a * b
Else
c = a + b
End If
执行后变量c的值为( )
A.8 B.14 C.48 D.6
4.有如下程序段:
Private Sub Command1_Click()
s = "Tokyo_Olympic_Games"
ans = ""
For i = 1 To Len(s)
c = Mid(s, i, 1)
If (2020 \ 10 ^ 2 - i) <= Len(s) Mod 10 \ 3 Then
If c >= "a" And c <= "z" Then c = Chr(Asc(c) - Asc("a") + Asc("A"))
End If
ans = ans + c
Next i
Label1.Caption = ans
End Sub
执行上述程序段后,标签Labele1中输出的内容为( )
A.TOKYO_OLYMPIC_GAMES B.TOKYO_OLYMPIC_GAMes
C.Tokyo_Olympic_GaMES D.Tokyo_Olympic_GameS
5.某地规定70岁及以上老年人可以办理老年卡,办理过程的部分流程图如下图所示:
该部分流程图的算法结构属于( )
A.顺序结构 B.选择结构 C.循环结构 D.重复结构
6.现有如下Visual Basic程序段:
y = -100 :x = 100
If x > 10 Then
y = -1
Elseif x > 50 Then
y = 1
Else
y = 0
End if
该程序段执行后,变量y的值是( )
A.-100 B.-1 C.1 D.0
7.小陈申请了一个网银账号,登录网银账号时,要输入密码,一般情况下,如果密码输入的错误次数超过3次,那么当日网银账号将被锁定,次日自动解锁。下图是登陆网银的流程图,小陈不小心输入密码错误了2次,第3次才正确,那么她的操作流程应该是:( )
A.①②③①②③①②③④⑤
B.①②③①②③④⑤
C.①②③④⑤
D.①②③④⑤⑥
8.回文字符串的特征是从左到右读和从右到左读是完全一样的,如“abba”、“abcba”,判断字符串是否是回文字符串的VB程序段如下:
s = "abba"
n = Len(s) 's 是待判断的字符串
i = n \ 2: j = i + 1 + n Mod 2
Do While i > 0
Loop
If i = 0 Then Text1.Text= "对称" Else Text1.Text= "不对称"
方框中的代码由以下三部分组成:
①j = j + 1: i = i - 1
②If c1 <> c2 Then Exit Do
③c1 = Mid(s, i, 1): c2 = Mid(s, j, 1)
下列选项中,代码顺序正确的是( )
A.①③② B.③②① C.②③① D.③①②
9.有如下VB程序段:
x=25: y=20
If x>y Then
y =y+20
If y>50 Then y=y^2
Else
y=y^2
y=x+y
End If
Label1. Caption=Str(y)
该程序段执行后,标签Labell中显示的内容是( )
A.1600 B.425 C.400 D.40
10.以下流程图的运行结果为( )
A.50 45 B.50 0 C.45 5 D.15 0
11.在VB中,设a=8,下面程序段执行后,b的值是( )
If a>=0 Then
b=a+2
Else
b=a-2
End If
A.6 B.8 C.10 D.12
12.下列程序段执行后,变量c的值为( )
b=4
c=10
If b<5 Then
c=1-b
Else
c=b-l
End If
A.-6 B.3 C.-3 D.6
13.有如下VB程序段:
Dim n As Integer , i As Integer
Dim s As String , ch As String
s=text1.Text
n=Len(s) '(1)
For i = 1 To n '(2)
ch=Mid(s,i,1)
If Asc(ch) >= 65 and Asc(ch) <= 97 Then
ch=Chr(Asc(ch)+32)
End If
Label1.Caption=Label1.Caption+ch
Next i
已知字母“A”的ASCII码65,字母“a”ASCII码97。若在Text1中输入“Happy2018”,则Label1中应显示()
A.H2018 B.APPY2018 C.HAPPY2018 D.Happy2018
14.某算法的VB程序段如下:
i = 1: j = 7: s = ""
key = 34
Do While i <= j
m = (i + j) \ 2
If key = a(m) Then
s = s + "2": Exit Do 'Exit Do 表示退出循环
ElseIf key < a(m) Then
j = m - 1: s = s + "1"
Else
i = m + 1: s = s + "3"
End If
Loop
Text1.Text = s
数组元素a(1)到a(9)的值依次为“15,26,34,47,53,59,60,72,85”。若该程序段执行后,文本框Text1中显示的内容可能是()
A.31
B.132
C.313
D.1312
15.有如下 VB 程序段:
Dim p As Integer, q As Integer, s As Integer, t As Integer
p = Val(Text1.Text)
t = 0
For q = p+ 1 To 2 * p
s = (p * q) Mod (q - p)
If s = 0 Then
t = t+ 1
End If
Next q
Label1.Caption = Str(t)
该程序段运行时,在文本框Textl中输入8 , 则在标签Labell中显示的内容是()
A.3 B.4 C.5 D.6
二、填空题
16.(1)某省实施《中华人民共和国道路交通安全法》办法中规定,机动车驾驶人驾驶机动车超过规定时速但未超过百分之五十的,处于二百元罚款。超过百分之五十(未造成交通事故)的,处五百元罚款,每多超过五公里,加处二百元罚款,不足五公里的忽略不计,但最高罚款不得超过二千元。用于计算罚款额的Visual Basic程序如下:
Private Sub Command1_Click()
Dim v0 As Integer, v As Integer, x As Integer
v0 = Val(Text1.Text) 'v0 存储规定速度
v = Val(Text2.Text) 'v存储实际速度
If v > v0 And v <= 1.5 * v0 Then
x = 200
ElseIf v > 1.5 * v0 Then
x = 500+ Int((v - 1.5 * v0) / 5) * 200
Else
x = 0
End If
If x > 2000 Then x = 2000
Label1.Caption = Str(x)
End Sub
运行该程序时,在Text1文本框中输入50,在Text2文本框中输入60,点击Command1时,在Label1的Caption上显示的罚款金为 。
(2)如下一段Visual Basic程序:
Private Sub Command1_Click()
Dim i As Integer,sum As Integer
Dim x As Integer,n as Integer
n=Val(Text1.text)
sum = 0
For i = 1 To n
x = Int(Sqr(i))
If x * x = i Then sum =sum + x
Next i
Label1.Caption = Str(sum)
End Sub
在Text1框中输入10时,点击Command1时,Label1上显示的是 。
17.某电信部门规定:拨打市内电话时,如果通话时间不超过3分钟(含3分钟),则收取通话费0.2元,如果通话时间超过3分钟,则超过部分以每分钟0.1元收取通话费(通话时间为整数)。下面是计算通话费用的流程图,请认真分析并回答问题根据题意,完善流程图(如图)
(1)如图中①执行功能是_________
(2)如图中①位置应该填入_________
(3)该流程图属于_________结构。
(4)当X=10时输出Y的结果为_____________
18.
上图描述的是计算地铁票价的算法。计价规则是:1到5站,3元;6到11站,4元;12站及12站以上,5元。流程图中X表示所乘站数,Y表示票价。
空白1处应填入:____________。
19.现有如下Visual Basic程序段:
Private Sub Command1_Click()
Dim a , b , c as Integer
a = 27: b = 9: c = -6
If a > b And b > 0 Then
If c < 0 Then
a = a - c
Else
a = a - b
Else
a = b + c
End If
Print a
End Sub
该程序段运行之后,变量a的值为 。
20.下列VB程序运行时,在文本框Text1中输入字符串”while”,在文本框Text2和Text3中分别输入2和5,单击命令按钮Command1后,在文本框Text4中显示的内容是 。
Private Sub Command1_click ( )
Dim n As Integer , m As Integer , k As Integer
n= Len ( Text1.Text )
m= Val ( Text2.Text )
k= Val ( Text3.Text )
If m + k -1 > n Then
Text4.Text = Mid ( Text1.Text , 1 , m – 1 )
Else
Text4.Text = Mid ( Text1.Text , 1 , m–1 ) + Mid ( Text1.Text , m+k , n–m–k +1 )
End If
End Sub
三、操作题
21.一个三位正整数,它是一个奇数,它的百位数、十位数、个位数之和为9的倍数,例如225。试求所有满足上述条件的数的和。
(1) 我们可以用 算法来完成本题。
(2) 假设我们通过某一方法得到一个三位数X各位数字之和为S,如何判断S是9的倍数?写出VB语言的关系表达式
(3) 用VB语言完成本题。
22.下列程序段的功能是输入一个学生的一门课分数x(百分制),当x≥90时,输出“优秀”;当80≤x≤89 时,输出“良好”;当 70≤x≤79 时,输出“中等”;当60≤x≤69 时,输出“及格”,当 x<60 时,输出“不及格”的情况。请将程序补充完整。
Private Sub Command1_Click( )
x = InputBox("请输入一个分数:")
Select Case x
Print "优秀"
Case 80 To 89
Print "良好"
Case 70 To 79
Print
Case 60 To 69
Print "及格"
Print "不及格"
End Select
End Sub
四、简答题
23.判断输入的一个整数能否同时被3和7整除,若能,则输出“Yes”;否则输出“No”。
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
2.C
3.C
4.D
5.B
6.B
7.A
8.B
9.D
10.B
11.C
12.B
13.C
14.B
15.B
16.(1)200(2分)
(2)6(2分)
17.(1)判断;(2)X<=3;(3)选择;(4)0.9
18.x>=12或 x>11
19.33
20.w
21. 枚举 s mod 9 = 0 具体代码如下:
sum = 0
for i=101 to 999 step 2
gw = i mod 10
sw = i \ 10 mod 10
bw = i \ 100 mod 10
s = gw + sw + bw
if s mod 9 = 0 then
sum = sum + i
end if
next
print sum
22. Case Is>=90 “中等” Case Else 或Case Is <60
23.n=int(input("请输入一个整数:"))
if n%3==0 and n%7==0:
print("Yes")
else:
print("No")
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$