内容正文:
2023-2024学年高一上学期选修一第二单元第三节 分支结构
一、选择题
1.“如果a,b,c中任意一个为0,那么y=y2+1”。能实现该功能的 VB 语句是( )
A.If a = 0 And b = 0 And c = 0 Then y = y*y + 1
B.If a * b * c= 0 Then y = y^2 + 1
C.If a = 0, b = 0, c = 0 Then y = y^2 + 1
D.If a = b = c = 0 Then y = y*y + 1
2.有VB程序段如下:
s1 = Text1.Text
s2 = ""
For i = 1 To Len(s1)
c = Mid(s1, i, 1)
If c >= "0" And c <= "9" Then
c = Chr((Asc(c) - Asc("0") + 1) Mod 10 + Asc("0"))
s2 = s2 + c
ElseIf c >= "A" And c <= "Z" Then
c = Chr(Asc(c) + 32)
s2 = c + s2
End If
Next i
Text2.Text = s2
执行该程序段,在文本框Text1中输入“GoLand,19”,则文本框Text2中显示的内容为( )
A.lg20 B.lg210 C.210,dnalog D.210,goland
3.下列语句属于三种结构中的哪一种( )
X=100
If X<0 then
Y=abs(X)
Else
Y=sqr(X)
End if
A.循环结构 B.顺序结构 C.选择结构 D.三项都是
4.下列关于python分支结构的说法错误的是( )
A.分支结构使用保留字if、elif、else来实现,每个if后面必须有elif或者else
B.if-else结构可以嵌套
C.if语句会判断if后面的逻辑变大时,当表达式的结果为真时,执行if后面的语句块
D.缩进是分支结果的语法部分,缩进不正确影响分支功能
5.某地规定70岁及以上老年人可以办理老年卡,办理过程的部分流程图如图所示:
该部分流程图的算法结构属于( )
A.顺序结构 B.选择结构 C.循环结构 D.树形结构
6.【加试题】所谓双向排序是在一遍加工中先从上到下把最大的元素送到最下的位置,再从下到上把最小的元素送到最上的位置。实现上述功能的vb代码如下:
Dim a(1 to 100) as integer
Const n=10
Private Sub form_load()
’生成n个随机数,存储在数组a中,代码略
End Sub
Private Sub command1_click()
Dim i as integer,j as integer
For ①
For j=i to n-i
If a (j)>a(j+1) then
t=a(j):a(j)=a(j+1):a(j+1)=t
End If
Next j
For ②
If a(j)<a(j-1) then
t=a(j):a(j)=a(j-1):a(j-1)=t
End If
Next j
Next i
for i=1 to n
List2.additem str(a(i))
Next i
End Sub
程序中①②处最合适的语句是( )
A.① i=1 to n-1 ②j=n to i+1 step -1
B.① i=1 to n\2 ②j=n-i to i+1 step -1
C.① i=1 to n\2 ②j=n to i+1 step -1
D.① i=1 to n-1 ②j=n-i to i+1 step -1
7.运行如下VB程序:
Private Sub Command1_Click( )
Dim x As Integer
Dim y As String
x=Val(Text1.Text)
If x>=95 Then
y=“非常满意”
ElseIf x>=80 Then
y=“满意”
ElseIf x>=60 Then
y=“基本满意”
Else
y=“不满意”
End If
Label1.Caption=y
End Sub
在文本框Text1中输入50,单击命令按钮Command1后,在标签Label1中显示( )
A.非常满意 B.满意
C.基本满意 D.不满意
8.有如下VB程序段:
For p= 1 To 6
i=l:j=6:q=0
Do While i<= j
m=(i +j)\2
q=q+1
If p= mThen
f(p)=q: Exit Do 'ExitDo表示退出循环
End If
If p>m Then
i=m+1
Else
j=m-1
Loop
Next p
数组元素f(1)到f(6)初始为0,执行该程序段后,其值依次是( )
A.2,3,1,3,2,3 B.3,2,3,1,2,3
C.2,3,1,3,3,2 D.3,2,1,3,2,3
9.【加试题】有以下 VB 程序段
For i = 1 To 2
For j = 1 To 4-i
If d(j) > d(j +1)Then
t = d(j):d(j) = d(j +1):d(j +1) = t
End If
Next j
Next i
数组元素 a(1)到 a(5)的值依次为“51,36,78,18,15”,经过该程序段“加工”后,数组元素a(1)到 a(5)的值依次为()
A.36,18,51,78,15 B.36,18,15,51,78
C.15,18,36,51,78 D.36,51,18,78,15
10.有如下VB程序段:
'给a(1)到a(6)各元素赋初值,代码略
For i = 1 To 6
If i Mod 2 <> 0 Then
If a(i) Mod 10 > 5 Then
a(i) = a(i) \ 10
Else
a(i) = a(i) Mod 10
End If
Else
a(i) = a(i - 1) + 1
End If
Next i
程序运行后a(1)到a(6)的值分别是2,3,4,5,0,1,则a(1)到a(6)各元素的初始值可能是
A.26,1,4,2,8,3 B.12,1,14,2,11,3
C.15,1,2,3,4,5 D.29,1,40,2,3,30
11.有如下VB程序段:
flag = False: txt = "Fighting"
For i = 1 To Len(txt)
ch = Mid(txt, i, 1)
If (ch>="a" And ch<="z" Or ch>="A" And ch<="Z") And Not flag Then
s = ch + s: flag = True
Else
flag = False
End If
Next i
Text1.Text = s
程序运行结束后,Text1中显示的内容是( )
A.Fighting B.ntgF C.gnithgiF D.Fgtn
12.如下图所示流程图,其控制结构属于________。
A.循环结构 B.树形结构 C.分支结构 D.顺序结构
13.列表a有n(n>=2)个正整数,相邻两数的差值为1,0或-1。求相邻两数具有相同差值的连续子序列中,子序列元素和的最大值。实现该功能的程序段如下,加框处应填写的正确代码是( )
A. B. C. D.
14.结构化程序设计由三种基本结构组成,下面不属于这三种基本结构的是( )。
A.顺序结构 B.复合结构 C.选择结构 D.循环结构
15.有如下VB程序段:
s = Text1.Text: n = Len(s)
For i = 1 To n
c = Mid(s, i, 1)
If c >= "a" And c <= "z" Then t = Asc(c) - 32 Else t = Asc(c)
s1 = s1 + Chr(65 + (t - 63) Mod 26)
Next i
已知字符“A”的ASCII码值为65,则在文本框Text1中输入“abXY”,s1的值最终是( )
A.CDZA B.cdZA C.ZACD D.ZAcd
二、填空题
16.编写VB程序,实现如下功能:窗体装载时随机生成10个1至100的整数,并显示在列表框list1中,单击“分组”按钮command1,将这10个数分为奇数和偶数两组,在list2中显示奇数数字,及其个数,list3中显示偶数数字,及其个数。运行界面如第22题图所示,程序代码如下。
第22题图
Dim a(1 To 10) As Integer, b(1 To 10) As Integer, c(1 To 10) As Integer
Private Sub ② () '窗体加载时产生10个1~100的整数
Dim i As Integer
Randomize
List1.Clear
For i =" 1" To 10
a(i) = ③ '随机产生1个1~100的整数
List1.AddItem Str(a(i))
Next i
End Sub
Private Sub Command1_Click()
Dim i As Integer, ji As Integer, ou As Integer
List2.Clear
List3.Clear
ji =" 0:" ou = 0
For i =" 1" To 10
If a(i) Mod 2 <> 0 Then
List2.AddItem Str(a(i))
④
Else
List3.AddItem Str(a(i))
⑤
End If
Next i
List2.AddItem "共有奇数" + Str(ji) + "个"
List3.AddItem "共有偶数" + Str(ou) + "个"
End Sub
(1)观察运行界面,选项中没有用到的控件是 ① ( 选项A. B. C. D.)。
(2)划线②处应填的事件是 ② 。
(3)划线处③的代码应该是: ③ (填选项号)。
A.Int(Rnd()+100)*1
B.Int(Rnd()+1)* 100
C.Int(Rnd() * 100) + 1
(4)请为④、⑤划线处填入合适的代码,④: ,⑤: 。
17.税务部门征收个人所以税,规定如下:
(1)收入在800元以内,免征。
(2)收入在800~1300元内,超过800元的部分纳税5﹪。
(3)收入在1300~1800元内,超过1300元的部分纳税10﹪。
(4)收入在1800~2300元内,超过1800元的部分纳税15﹪。
(5)当收入达到或超过2300时,超过1800元的部分纳税20﹪。
该题程序设计最适合使用_____________结构。
18.小王同学正在学习二元一次方程,老师布置了一个二元一次方程求解的题目,方程为2x+3y=10。请利用VB编程帮他求出此二元一次方程的所有整数解(10≥x≥-10,10≥y≥-10),并将每组解在列表框List1中输出,同时统计出共有多少组解,并将统计结果在文本框Text1中显示。
程序运行界面如图所示,为实现以上功能,请在划线处填入合适代码。
Private Sub Command1_Click()
Dim x As Integer, y As Integer, t As Integer
t = 0
For x =" -10" To 10
For y =" -10" To 10
If Then
List1.AddItem "X:" + Str(x) + " " + "Y:" + Str(y)
t=t+1
Next y
Next x
Text1.Text = Str(t)
End Sub
19.现有如下Visual Basic程序:
Private Sub Command1_Click()
Dim i As Integer, c As String, s As String, t As String
s = Text1.text
t = ""
For i = 1 To Len(s)
c = Mid(s, i, 1)
If c >= "0" And c <= "9" Then t = t + c
Next i
Text2.text = t
End Sub
运行该程序,在文本框Text1中输入“2016_Student”(不包含引号),单击命令按钮Command1后,文本框Text2中显示的内容是 。
20.有如下Visual Basic程序段:
a = "360"
b = Val(a)
c = Len(a)
If b > c Then
Label1.Caption = "取数值"
Else
Label1.Caption = "取字符"
End If
该程序段运行后,在标签Label1上显示的是 。
三、操作题
21.用蒙特卡洛法求圆周率PI的近似值,其算法如下:使用随机函数Rnd,随机生成两个[0,1)之间的随机数,由此构成一个投点坐标(x,y),然后根据x2+y2<=1投点是否在圆内来求PI的近似值。其中总共随机投点n次,统计落点在单位圆内的点数为s,则4s/n即为所求PI的近似值。程序界面如图所示,在Text1中输入投点的个数,单机“计算”按钮,PI的近似值结果显示在Text2中。
(1)要使得按钮的文字显示为“计算”,应该修改该对象的 属性。
(2)要实现上述功能,请在划线处填入合适代码。
Private Sub Command1_Click()
Randomize '随机数初始化
Dim i As Long, n As Long, s As Long
Dim x As Double, y As Double, z As Double
n = Val(Text1.Text)
s = 0
Do While i <= n ' 随机投点n次
x = Rnd: y = Rnd
z =
If z <= 1 Then
s = s + 1
End If
i = i + 1
Loop
Text2.Text =
End Sub
22.小明在高中数学中学到了离散型随机变量的数学期望概念,即离散型随机变量的一切可能的取值Xi与对应的概率pi 乘积之和称为该离散型随机变量的数学期望。公式为:
在程序设计课上,小明设计了一个程序用来计算离散型随机变量的数学期望,Text1中交替输入随机变量和相应概率,并以逗号“,”为分隔符,具体界面如下图所示。
(1)上图窗体标题“数学期望计算”是通过设置窗体的 属性实现的。
(2)程序代码如下,完成填空。
Private Sub Cmd_Click()
Dim s As String, t As String, c As String,X As Single, p As Single, EX As Single
Dim n As Integer, k As Integer
s = Text1.Text
n = Len(s)
k = 0: EX = 0: t = ""
For i = 1 To n
c = Mid(s, i, 1)
If c = "," Then
k = k + 1
If Then
X = Val(t)
Else
p = Val(t)
EX =
End If
Else
t = t + c
End If
Next i
Text2.Text =
End Sub
(3)若Text1中输入:“1,0.3,2,0.3,3,0.4,”,则单击“计算”按钮后,Text2中显示 。
四、简答题
23.判断输入的一个整数能否同时被3和7整除,若能,则输出“Yes”;否则输出“No”。
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
2.A
3.C
4.A
5.B
6.B
7.D
8.A
9.A
10.A
11.B
12.C
13.D
14.B
15.A
16.(1) B (1分), (2) Form_load (2分)
(3) C (2分)
(4) ji=ji+1 (1分), ou=ou+1 (1分)
17.选择(分支)
18. 2*x+3*y="10" end if
19.2016
20.取数值
21. Caption i=1 x*x+y*y 或sqr(x*x+y*y) 4*s/n
22. Caption k Mod 2=1 EX+X*p t = "" Str(EX) 2.1
23.n=int(input("请输入一个整数:"))
if n%3==0 and n%7==0:
print("Yes")
else:
print("No")
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$