1、高中信息技术 VB循环语句 浏览题阅览题 会考复习题 学校:___________姓名:___________班级:___________考号:___________ 评卷人 得分 一、选择题 1.下列程序运行后的运行结果为▁▁▁。 X=8:Y=X:Z=10 IF X<=Y THEN PRINT X;Y; ELSE IF Z>=X THEN PRINT Z END IF END IF A.10 8 B.8 8 C.10 10 D.8 10 【答案】B 【解析】 2.数组排
2、序。点击“产生随机数”按钮,让计算机随机产生10个整数,并对这10个整数进行标号,再点击“排序”按钮,对这10个整数进行从大到小排序。如图所示。 程序代码如下: Dim a(1 To 10) As Integer Dim i, j, k, kt As Integer Private Sub Command1_Click() List1.Clear '清除列表框数据 For i = 1 To 10 Randomize '随机数初始化 a(i) = Int(Rnd() * 1000) List1.AddItem Str(i) + ”=” + Str(a
3、i)) Next i Command2.Enabled = True '激活排序按钮 End Sub Private Sub Command2_Click() For i = 1 To 9 k = i For j =____①____To 10 If a(j) > a(k) Then k = j Next j If i <> k Then __②____ End If Next i List2.Clear For i = 1 To 10 List2.AddItem Str(i) + ” =” + Str(a(i)) Next i En
4、d Sub 请在①、②划线处填入合适的语句或表达式,把程序补充完整: 程序中①划线处应填入__________________; 程序中②划线处应填入__________________。 【答案】①I+1;②t=a(k):a(k)=a(i):a(i)=t 【解析】 3.由“For k=35 To 0 Step 3 : Next k ”循环语句控制的循环次数是_______。 A、12 B、0 C、-10 D、-11 【答案】B 【解析】 4.Sub test7() For i = 1 To 6 S = S + (-1) ^ i *2 ^ i Ne
5、xt i
MsgBox (S)
End sub
该程序的运行结果是( )
A、126 B、-126 C、-42 D、42
【答案】D
【解析】
5.Sub test2()
a = 12:b = 12:c = 5
Label1.Caption = ""
Label2.Caption = ""
If a > b Or Not b 7、解析】
7. 小金编写了VB程序,部分程序如下所示,在调试程序的时候出现如图所示的错误信息:
Private Sub Command1_Click()
Dim x As String, i As Integer
For i =" 1" To 10
If i Mod x =" 1" Then
x = "奇数"
Else
x = "偶数"
Next i
……
End Sub
产生此错误的语句是( )。
A.For B.End If
C.Next 8、 D.If
【答案】B
【解析】
8.下图是当循环、直到循环两种循环结构,请结合下图选择下列说法中正确的是 ( )
A.当循环是当条件成立退出循环
B.当循环不可能出现不执行循环步骤的情况
C.直到循环是条件成立时执行循环步骤
D.直到循环至少执行一次循环步骤
【答案】D
【解析】
9.对以下程序段的说法正确的是( )
s=0
i=0
Do While s<10
i=i+1
s=s+i*i
Loop
A.该程序的循环体执行了3次
B.该程序段结束后i的值为3
C.该程序段结束后i的值为4
D.该程序段结束后s的值为13
【答案】A 9、BD
【解析】
10.某算法的流程图如下所示:
输入a,b,c
a>b?
a←b
a>c?
a←c
输出a
开始
Y
Y
N
N
结束
当输入a、b、c的值分别为5、2、8时,该算法的输出结果为( )
A. 8 B. 2 C. 5 D. 7
【答案】B
【解析】
11.若输入两数1,-4,输出结果_______
A.-5 B.-3
C.5 D.3
【答案】C
【解析】
12.某算法要实现0到100的偶数之和,流程图如图所示。则ißi+2被执行的次数是
2
10、
A.50 B.51 C.100 D.101
【答案】B
【解析】
13.在某银行取款机上,用户银行卡密码验证的过程如下图所示:当用户输入密码时,若第1次输入错误,第2次输入才正确,则整个操作过程的执行流程是( )
A、①→②→③→④→⑤
B、①→②→③→④→⑥→⑦
C、①→②→③→④→⑥→②→③→④→⑤
D、①→②→③→④→⑥→⑦→②→③→④→⑤
【答案】C
【解析】
14.求两数之和的算法是:输入两数a和b的值,计算c=a+b,输出c的值。该算法的基本结构属于( )。
A.顺序结构 B.选择结构 11、 C.循环结构 D.框架结构
【答案】A
【解析】
15. 下列VB程序段的运行结果是:
Dim a(1 To 3) As Integer
a(1)=1
For i=2 To 3
a(i)=2*a(i-1)+1
Next
Print a(i-1)
A、0 B、3 C、7 D、15
【答案】C
【解析】
16.有如下程序段:
For i = 1 To 2
For j = 2 To 7 - i
If a(j) > a(j - 1) Then
k = a(j): a(j) = a(j - 1 12、): a(j - 1) = k
End If
Next j
Next i
数组元素a(1)到a(6)的值依次为“71,54,58,29,31,78”,经过该程序段“加工”后,下列说法正确的是( )
A.数组元素a(1)到a(6)的值依次为54,29,31,58,71,78
B.此过程中数据共需比较次数为8次
C.此过程中数据共需交换次数为5次
D.此过程中数据“54”共被比较5次
【答案】C
【解析】
17.某算法的部分流程图如第5题图所示。执行这部分流 程后,“x←x—2”被执行的次数为
A.0 B.1 C.2 D.3
【答案】C
13、解析】
18.有如下 VB 程序,它的输出结果是
S=0
For i=1 To 10
If i mod 2=0 Then S=S+i
Next i
Print “S=”;S
A.S=0 B.S=25 C.S=30 D.S=55
【答案】C
【解析】
19.下列VB程序段运行完毕后,变量x的值为
x="2" : y=64
Do while x<= Sqr(y)
x= 14、x+3
Loop
A. 2 B. 5 C. 8 D. 11
【答案】D
【解析】
20.某算法流程图如图所示,执行该算法后,“s←s+i”共被执行的次数是( )
Y
N
开始
i<20?
i←i+3
s+i←s
S←1:i←1
输出s的值
结束
A.0 B.6 C.7 D.8
【答案】C
【解析】
21.小明编写一个模拟qq登录的VB程序。当输入用户名、密码和验证码,点击登录按钮后,会跳出信息框提示是否验证成功。部分程序与流程图如下所示:
uname = 15、 Text1.Text '输入用户名
psd = Text2.Text '输入密码
vcode = Val(Text3.Text) '输入验证码
If vcode <> Val(Label3.Caption) Then
MsgBox “” ①
' Label3显示的是随机验证码
ElseIf uname <> "admin" Or psd <> "123456" Then
MsgBox “ ②
”
Else
MsgBox “ 16、 ③
”
方框中正确的语句是( )。
A. ①中“验证成功” B. ②中“输出用户名或密码有误”
C. ②中“验证成功 D. ③中“输出验证码错误”
【答案】B
【解析】
Sub test3()双重循环运行 输出图形 与3重复,但3已改题
For i =" 1" To22.step 1
s = ""
For j =" 1" To 2 * i - 1
s =" Str(j)" + s
Next j
List1.AddItem s
Next i
End Sub
该程序的运行后列表框输出的第三行是 ( )
A.33333
B.55555
C. 17、12345
D.54321
【答案】D
【解析】
23.若输入28,以上代码输出结果是 。
Dim x as long
x=inputbox(“输入x的值”)
y="x" mod 7
if y="4" or y="5" or y=" 6" then
xq=y-3
else
xq=y+4
end if
print xq
【答案】4
【解析】
24.下列为部分VB程序语句代码:( )
s=32
For i=1 To 10 Step
s=s/2
Next i
上述程序语句执行结束后,s的值为2,则循环语句的步长( 18、划横线处)应填( )
A.1 B.2 C.3 D.4
【答案】C
【解析】
25.如图所示的部分流程图中,“s←s+i”被执行次数为( )
A. 0 B. 1
C. 32 D. 33
【答案】C
【解析】
26.以下语句中错误的是( )
A.Const var1=123
B.Dim var2 As String
C.x+y=9
D.Dim d(1 to 500) As Double
【答案】C
【解析】
27.以下关于循环结构的描述中,正确的是( )。
A 19、.与分支结构不同,循环结构一定会对循环条件进行多次判断。
B.循环结构中,重复执行的内容有时候一次都不被执行。
C.在循环结构的流程图中,除了有向下的流程线外还应有向上返回的流程线。
D.根据实际需要,在流程图中可出现多个循环结构。
【答案】BCD
【解析】
评卷人
得分
二、操作题
28.求两个整数的最大公约数分析:求最大公约数的算法思想:
(1)对于已知两数m,n,使得m>n;
(2)m除以n得余数r;
(3)若r=0,则n为求得的最大公约数,算法结束;否则执行(4);
(4)m←n,n←r,再重复执行(2)。
例如: 求 m=14 ,n=6 20、 的最大公约数.
M n r
14 6 2
6 2 0
请根据以上思路补充下面的程序代码:
Private Sub Command1_Click()
m = InputBox("m=")
n = InputBox("n=")
If m < n Then t = m: m = n: n = t
r = ________________
Do While (r <> 0)
m = n
n = r
r = m Mod n
Loop
Print "最大公约数=", n
End Sub
【答案】m mod n
【解析】
评卷人
得分
三、填 21、空题
29.有如下Visual Basic程序段:
s=0
n=1
for i=4 to 1 step -1
n=n*i
s=s+a
next i
问:该程序段运行后,
(1)共循环___________次。
(2)变量s的值是___________。
【答案】(1)4 (2) 64
【解析】
30.小贝对街机中的”打手掌”游戏很感谢兴趣,于是也用VB做了个打手游戏,界面如图。点击开始按钮command1,标签label1开始从3秒倒计时,倒计时结束开打,如果打中手掌,label1显示”打中了”,如果超过去3.1秒,则显示”没打中”,游戏结束。点开始按钮可以重 22、来。请根据题意将下列程序补充完整。
Dim t As Integer ‘t用来计时
Private Sub Command1_click( )
Image1.left=64
Label1.caption=””
t=0
Timer1.interval=100
(1)______________
Image1.Enabled=False
End sub
Private Sub Image1_click( )
Timer1.Enabled=False
Image1. Enadled=False
Label1.caption=”打中了”
End Sub
Pr 23、ivate Sub Timer1.Timer( )
t = t +1
if t<=30 then label1.caption=3-int(t/10)
if t>32 then
label1.caption=”没打中”
For i=1 to 10 ‘手迅速移开的动画
Image1.left=Image1.left-20
For j=1 to 10000
Doevents
Nextj
Next i
Timer1.Enabled=False
Image1.Enabled=False
End if
If t=30 then
‘当t=30时,即倒计时3秒结束,允许开 24、打,对象image1开始允许响应事件
(2)_____________
End if
End sub
【答案】
(1)timer1.enabled=true
(2)image1.enabled=true
【解析】
31.用VB编写的函数bubble_sort是一个用冒泡方法实现排序的函数,其调用时需要三个参数:布尔类型参数sx来确定是升序还是降序,sx为True时为升序,否则为降序;整数型数组a()是待排序的数据,数据从a(1)开始存放;整数型参数n表示传入的数组长度,该函数的返回值也是一个整数型数组。所以调用此函数实现排序非常方便:
比如有一个整数型数组a(1 25、to 10)需要降序排序,可以直接这样调用:
a()=bubble_sort(False,a(),10)
该函数VB代码如下:
Function bubble_sort(sx As Boolean,a() As Integer,n As Integer) As Integer()
Dim i,j,t As Integer
For i=1 To n-1
For j=____①____ Step-1
If ____②____ Then
If a(j)<a(j-1) Then t=a(j):a(j)=a(j-1):a(j-1)=t
Else
If a(j)>a(j-1) 26、Then t=a(j):a(j)=a(j-1):a(j-1)=t
End If
Next j
Next i
bubble_sort=a()
End Function
请将代码补充完整:
①___________________________________________。
②___________________________________________。
【答案】(1)n to i+1 (2)sx 或者sx=True
【解析】
32.已知出租车计费方法如下:路程在3公里以内(包含3公里)收起步价10元,路程超过3公里不超过10公里(包含10公里)部分按每 27、公里2元计费,超出10公里部分按每公里3元计费。现要设计一个VB出租车计费系统程序,在路程文本框中中输入路程数,单击计算按钮可以计算出应付金额并显示到金额文本框中,请回答以下问题:
图一
在设计该程序界面时,要从图二界面到图一界面,需要进行哪些设置?
________________________________________________________________
________________________________________________________________
为计算按钮添加单击事件后,并在其中添加程序代码,代码如下:
Dim d 28、As Single
Dim f As Single
d = Val(Text1.Text)
If d <= 3 Then ‘3公里以下计费
f = 10
end if
If d > 3 And d <= 10 Then ‘3公里至10公里计费
‘①
End If
If d > 10 Then ‘10公里以上计费
'②
End If
Text2.Text = Str(f) 29、
请完善以上程序代码,在①,②处填入正确的语句
①________________________________
②________________________________
完善程序代码后,若输入路程数为10,则应付金额为________元
实现该程序所用的算法结构属于______________(选择结构/循环结构)
【答案】(1)添加一个按钮设置caption属性值为“计算”,将窗体的caption属性值设置为“出租车计费系统”;(2)f=10+(d-3)*2 f=10+14+(d-10)*3;(3)24;(4)选择结构
【解析】
33.某同学编写了 30、VB程序其功能和界面如下所示。在文本框(text1)中输入一段英文,点击“统计删除”按钮,在标签(Label3)中显示该语句中最长的单词(如有多个长度相同的单词则显示靠后的单词),在标签(Label5)中显示该单词的字符长度,在标签(Label7)中显示删除该单词后的句子。
Private Sub Command1_Click()
Dim s As Integer,imax As Integer,pimax As Integer,t As Integer
Dim source As String
source=Text1.Text
s=Len(source)
imax=1
p 31、imax=1
t=0
For i=1 To s
d=____①____
If (d>=“a” And d<=“z”) Or (d>=“A” And d<=“Z”) Then
____②____
Else
If t>=imax Then
imax=t
____③____
End If
t=0
End If
Next i
Label3.Caption=Mid(source,pimax,imax)
Label5.Caption=imax
Label7.Caption=____④____+Mid(source,pimax+imax,s-im 32、ax)
End Sub
①处程序代码为_________________________________________________。
②处程序代码为_________________________________________________。
③处程序代码为_________________________________________________。
④处程序代码为_________________________________________________。
【答案】①Mid(source,i,1) ②t=t+1 ③pimax=i-t
④Mid(so 33、urce,1,pimax-1)
【解析】
34.求结果
(1)输入356,输出结果:
Dim x as Integer
x=inputbox(“输入x的值”)
a=x mod 10
b=int(x/10) mod 10
c=x\100
s=a+b+c
print s
(2)输入a=1,b=2,输出结果:
(3)输出结果:
(4)输入8,输出结果:
【答案】(1)14 (2)2.5 (3)87856 (4)10 5
【解析】
35.小明编写了一个VB程序,功能如下:在文本框Text1中输入一段英文,并在文本框Text2中输入英文段落中的某个单词(或字 34、符串),单击“最大间距”按钮(Command1)后,在文本框Text3中显示该单词在文中某两次出现的最大间距,若只出现一次或不出现则显示值为0。程序运行界面如下图所示:
实现上述功能的VB程序如下:
Private Sub Command1_Click()
Dim a(1 To 1000) As String '数组a存储文中出现该指定单词(或字符串)的各个位置
Dim s As String, c As String ,ch As String
Dim n As Integer, max As Integer, i As Integer
s = Text1.Te 35、xt
c = Text2.Text
n = 0: Max = 0
For i = 1 To Len(s) - Len(c) + 1
ch = ①
If ch = c Then
n = n + 1
a(n) = i
If n >= 2 Then [来源:学|科|网Z|X|X|K]
If a(n) - a(n - 1) - Len(c) > Max Then Max = a(n) - a(n - 1) - Len(c)
End If
End If
Next i
T 36、ext3.Text = ②
End Sub
以上程序段运行时,为了实现上述功能,划线处①和②应填入的代码分别为:
(1)_______________________________; (2)_______________________________
【答案】⑴ (2 分) Mid(s, i, Len(c)) ⑵(2 分) Str(Max)
【解析】
36.某Visual Basic程序如下:
Private Sub Command1_Click()
Dim x As Integer, y As Integer ,a As Integer ,b As In 37、teger
X=0
y=0
For a=1 To 3
x=x+1
For b=2 to 4
y=y+1
Next b
Next a
Text1.text=str(a)
Text2.text=str(b)
End Sub
单击Command1按钮后,Text1显示 ① ,Text2显示 ② 。
【答案】①3(2分);②9(2分)
【解析】
37.【加试题】小王模拟超市收银机扫描商品条形码后计算总价的过程制作了一个VB程序。功能如下:在文本框Text1中输入商品条形码,按回车键后会将已经输入的条形码显示在列表框Lis 38、t1中,同时将商品明细显示在列表框List2中。点击按钮“计算商品总价”后,会将所有商品的总价显示在文本框Text2中。程序界面如图所示:
实现上述功能的部分VB程序如下,请在三个划线处填入合适代码。
'定义全局数组变量
Dim a(1 To 10) As Long
Dim b(1 To 10) As String
'自动加载条形码信息以及对应的商品信息
Private Sub Form_Load()
Dim i As Integer
a(1) = 503741
For i = 2 To 10
a(i) = a(i - 1) + 1
Next i
b(1) = "可 39、乐 5.00"
b(2) = "薯片 7.50"
b(3) = "牛奶 5.60"
b(4) = "橙汁 7.50"
b(5) = "面包 4.00"
b(6) = "蜂蜜 28.00"
b(7) = "蛋糕 12.00"
b(8) = "绿箭 3.50"
b(9) = "饼干 6.00"
b(10) = "雪碧 5.00"
End Sub
'输入条形码,查找条形码,并显示条形码及其对应的商品信息
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim txm As Long:
Dim i As Integer:
D 40、im j As Integer
txm = Val(Text1.Text)
If KeyAscii = 13 Then
If txm >= 503741 And txm <= 503750 Then
List1.AddItem txm
Text1.Text = ""
i = 1: j = 10
Do While i <= j
①
If txm = a(m) Then
List2.AddItem b(m)
Exit Do
ElseIf txm > a(m) Then
i = m + 1
Else
②
End If
Loop
E 41、lse
MsgBox "条形码输入错误,无此商品"
Text1.Text = ""
End If
End If
End Sub
'计算所购商品的总额
Private Sub Command1_Click()
Dim i As Integer, mx As String, jg As String, sum As Single
For i = 0 To 9
If List2.List(i) <> "" Then
mx = List2.List(i)
sum = sum + Mid(mx, 4)
End If
Next i
Text2.Text = ③ 42、
End Sub
【答案】(1)m = (i + j) \ 2 (2)j = m - 1 (3)Str(sum)
【解析】
(1)首先判断这是一个属于对分查找的程序,m是中间数,所以m=(i+j)\2。(2)查找的顺序要么是m+1,要么是m-1,所以这里的j=m-1.(3)sum的变量用于存储不断增加的总额的值,最终要加上str()函数。
38.每次将一张白纸沿垂直和水平中线对半撕成四张纸片,然后取其中一张纸片照这样再撕成四张纸片,一直这样下去,计算撕了n次后纸片的总张数,现在要用VB来实现该程序。程序界面及功能如下图所示,在文本框中输入撕的次数,单击计算按钮,显 43、示纸片数。
请完善并改正下面的程序代码:
Private Sub Command1_Click()
Dim i, n, s As Integer
n = Val(Text1. Caption) ‘① 获得撕纸片的次数
s=1 ‘s为纸片数,初始时为1
For i = 1 To n
② ‘计算撕了n次后的纸片数量
Next i
Label2.Caption = Str(s) 显示最终的纸片数
End Sub
注释①所在行语句中有错误,应改为_____________
在横线②中填入正确的语句_______________
在用VB设计应用程序时,一般经历的阶段的正确顺序是__________(填字母顺序)
a 运行调试程序 b 问题和算法分析
c 应用程序界面设计 d 事件处理过程代码编写
【答案】(1)n=val(textl.text)
s=s+3
(3)bcda
【解析】






