Vb专题习题
发布时间:2016-10-09 15:05:07
发布时间:2016-10-09 15:05:07
Vb专题习题
一、选择题
1. 将数学表达式写成Visual Basic表达式,正确的是( )
(A)Sqr(abs(b*b-4ac)) (B)Sqr(abs[b*2-4*a*c])
(C)Sqr(abs(b*b-4*a*c)) (D)Sqr[abs(b*b-4*a*c)]
2. 在Visual Basic中,若要将窗体中某个命令按钮设置成无效状态,应对该按钮的( )属性值进行修改。
(A)Value (B)Visible (C)Enabled (D)Caption
3. 执行如下Visual Basic程序段时,出现了如下图所示的错误:
Private Sub Command1_Click()
Dim a As Integer, b As Integer
a = 5: b = 8
b = a + b
label1.Caption = Str(b)
End Sub
引发此错误的语句可能为( )
(A)Dim a As Integer, b As Integer
(B)a = 5: b = 8
(C)b = a + b
(D)label1.Caption = Str(b)
4. 已知a=5,b=9,c=11,则下列Visual Basic表达式的值为False的是( )
(A)a > b And a > c (B)a < b Or a > c
(C)a < b + c (D)a > c – b
5. 有下列Visual Basic程序段:
某同学正编写一个判断两数大小的程序,其窗体和代码窗口如下图所示:
根据代码窗口中的程序,要在程序运行时判断两数的大小,窗体上必须增加的对象是( )
(A)标签Text1
(B)文本框Text2
(C)命令按钮Command1
(D)文本框Print
若程序要实现“求100内能被3整数的自然数个数”的功能,则方框中正确的语句是( )
(A)i / 3 = 0
(B)i mod 3 = 0
(C)i \ 3 = 0
(D)int(i/3) = 0
6. 有如下Visual Basic程序段:
Private Sub Command1_Click()
Dim a As Integer
a = Int(5 * Rnd + 1) * Int(5 * Rnd - 1)
Print a
End Sub
执行程序后,a的值范围是( )
(A)[0,15] (B)[-1,15] (C)[-4,15] (D)[-5,15]
7. 在Visual Basic中,表达式3 ^ 2 Mod 14 \ 2 ^ 3的值是( )
(A)1 (B)0 (C)2 (D)3
8. 某同学正编写一个判断两数大小的程序,其窗体和代码窗口如下图所示:
根据代码窗口中的程序,要在程序运行时判断两数的大小,窗体上必须增加的对象是( )
(A)标签Text1
(B)文本框Text2
(C)命令按钮Command1
(D)文本框Print
9. 下列Visual Basic程序段中,能实现输出变量a、b、c三个数中最大数的是( )
10、有如下Visual Basic程序段:
x = 3
y =5
Text1.Text = "x+y"
该程序运行后,要文本框Text1中显示的是( )
(A)3+5
(B)x+y
(C)8
(D)3+5=8
11. 在Visual Basic中,下列表达式的值为5的是( )
(A)Int(Sqr(9) + 1.28)
(B)(19 \ 2) Mod 5
(C)Abs(-7) + Sqr(4)
(D)Len("x+y+2")
12. 在Visual Basic中,下列语句定义的数组元素为10个的是( )
(A)Dim a(0 To 10) As Integer
(B)Dim b(1 To 9) As String
(C)Dim c(2 To 10) As Boolean
(D)Dim d(0 To 9) As Date
13. 某Visual Basic工程的代码窗口如图所示:
从图中可以看出,当前正在编辑的是()
A. Command1的Click事件过程代码 B. Timer1的Timer事件过程代码
C. Label1的Click事件过程代码 D. Image1的Click事件过程代码
14. 在Visual Basic中,下列能作为变量名的是()
A. My
B. If
C. a+y
D. 2nd
15. 已知字符A~Z的ASCII码值分别对应65~90。小明编写了一个在标签Label1上显示26个英文大写字母“ABCDE……XYZ”的VB程序。部分程序如下:
a = ""
For i = 65 To 90
Next i
Label1.Caption = a
方框中正确的语句是()
A. a = a + Str(i) B. a = a + Chr(i) C. a = a + Int(i) D. a = a + ASC(i)
16. a = a + b
b = a - b
a = a - b
功能相同的程序段是()
A. a = b
b = a
B. a = a + b
a = a - b
b = a - b
C. t = a
a = b
b = t
D. IF a > b THEN
a = b
ELSE
b = a
END IF
17. 在Visual Basic中,表达式Abs(-3.6) * Sqr(100)的值是()
A. 36
B. 360
C. -36
D. -360
18. 某同学正编写一个判断酒驾行为的Visual Basic程序,其窗体和代码窗口如下图所示。
根据代码窗口中的程序,要在程序运行时获取输入的x值,窗体上必须增加的对象是()
A. 标签Text1 B. 标签Label2 C. 文本框Text1 D. 文本框Label2
19. 某Visual Basic程序如下:
Private Sub Command1_Click()
Dim i As Integer, sum As Integer
sum = 0
For i = 10 To 2 Step -2
sum = sum + i
Next i
text1.Text = Str(sum)
End Sub
运行程序,单击命令按钮Command1后弹出如图所示的出错信息提示,此时程序正执行的语句是()
(A) sum=0
(B) For i=10 to 2 step -2
(C) Sum=sum+i
(D) Text1.text=str(sum)
20. 有如下Visual Basic程序段:
s=0
For i=1 To 5
s=s+i
Next i
该程序运行后,i的值为()
(A)1
(B)5
(C)6
(D)15
21. 在Visual Basic中,某对象的属性窗口如图所示:
该对象名是()
(A) CommandButton
(B) Command1
(C) Command_1
(D) Appearance
22. 有如下Visual Basic程序段:
j = 10
For i = 1 To 9
If a(i) > a(j) Then j = i
Next i
该程序运行后,变量a(j)中存储的是
(A)a(1)至a(10)中的最大值
(B)a(1)至a(10)中的最小值
(C)a(1)至a(10)的累加值
(D)从1计数至9
23.某Visual Basic程序的一个事件过程如下:
Private Sub Command1_Click()
Dim r As Single
Dim pi As Double
r = 100
pi = 3.14
Label1.Caption = "圆面积为:" + Val(pi * r * r)
End Sub
运行程序,单击命令按钮Command1后弹出如图所示的出错信息提示,引起该错误的语句因是()
A.Dim r As Integer
B.Dim pi As Double
C.Pi=3.14
D.Label1.Caption = "圆面积为:" + Val(pi * r * r)
24. 有如下Visual Basic程序段:
s = 0
For i = 1 To 10 Step 4
s = s + i
Next i
该程序运行后,变量s的值是()
(A)0 (B)1 (C)5 (D)15
25.下列Visual Basic表达式的值等于56的是()
(A)Mid("123456",5,3)
(B)Len("55"+1)
(C)Sqr(56)
(D)Abs(-55)+1
26.
27.
28. 小金编写了一个统计随机数分布的VB程序,部分程序如下所示,在调试程序的时候出现如右图所示的错误信息:
n = 0
m = 0
For i = 1 To 100
If Rnd > 0.5 Then
n = n + 1
Else
m = m + 1
Next i
……
小金仔细分析该程序段后,发现其中缺少了( )
A. For B. Next C. End If D. If
29. 有如下VB程序:
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
a = Val(text1.Text)
b = Val(text2.Text)
c = (a + b + Abs(a - b)) \ 3
Text3.Text = Str(c)
End Sub
运行该程序,分别在文本框Text1、Text2中输入5、9,单击命令按钮Command1后,文本框Text3中显示的内容是()
A.6 B.5 C.4 D.7
30.如右图所示的VB程序中,输入以下程序代码,运行后单击命令按钮Command1,出现错误的提示图是: ( )
Private Sub Command1_Click()
Dim a(1 To 4) As Integer
Dim i As Integer
a(1) = 1
For i = 2 To 4
a(i) = 2 * a(i - 1) + 1
Next i
List1.AddItem Str(a(i))
End Sub
A. B.
C. D.
31. 若x表示能被3整除的正整数,则下面逻辑表达式的值一定为真的是: ( )
A. Int(x / 3) = 0 B. 3 Mod x = 0
C. x Mod 3 = 0 D. x\3 = 0
32. 、为使下面左右框内的VB程序段实现相同的功能,则左框内划线处填写的代码应该是( )。
A. A.t=2 | B.B.t=6 |
C.t=t+1 | D.D.t=t+2 |
33. VB表达式S=Int(Rnd()*1000+9000),则S的取值范围是( )
A. B.
C. D.
34. 下表记录了6个数据的排序过程。分析表中数据可知,该排序采用的算法与排序方式分别为( )
原始数据 | 65 | 57 | 59 | 44 | 45 | 69 |
第1遍 | 44 | 65 | 57 | 59 | 45 | 69 |
第2遍 | 44 | 45 | 65 | 57 | 59 | 69 |
第3遍 | 44 | 45 | 57 | 65 | 59 | 69 |
… | … | … | … | … | … | … |
A.冒泡排序,升序 B.选择排序,升序
C.冒泡排序,降序 D.选择排序,降序
35.阶乘是基斯顿﹒卡曼于1808年发明的运算符号。正整数n的阶乘为n!=1×2×3…×n。小王编写了如下VB程序用来求S=1!+2!+3!+…+10!。
Function fac(n As Integer) As Long
fac = 1
For i = 1 To n
fac = fac * i
Next i
End Function
Private Sub Command1_Click()
Dim s As Long, j As Integer
For j = 1 To 10
Next j
Text1.Text = Str(s)
End Sub
方框中的正确语句是:
A.s = s + fac(j) B.s = fac(j)
C.s = s + i * fac(i) D.s = s + fac(i)
36. 下列逻辑表达式中,值为False的是( )
A.Asc("A") < Asc("a") B.Int( Rnd * 49 ) < 49
C.3+4 <= 7 and 5+6 > 9 D."thirty" > "two"
37. 有100个大小形状一样的透明玻璃球,其中有1个玻璃球的重量轻于其他99个玻璃球,小明想利用一台无砝码的天平,运用合理的算法保证一定能找出这颗轻玻璃球的最少的次数为:
A.100 B.10 C.8 D.6
38. 下列VB程序中,f是一个递归函数:
Private Sub Command1_Click()
Dim y As Integer
y = Val(Text1.Text)
Label1.Caption = Str(f(y))
End Sub
Function f(n As Integer) As Integer
If (n = 1) Or (n = 2) Then
f = 1
Else
f = f(n - 1) + f(n - 2)
End If
End Function
程序运行时,在文本框中输入8,单击命令按钮Command1后,Label1中显示的内容是:
A.5 B.8 C.13 D.21
39. 用选择排序将七个数“2022,2017,2018,2014,2021,2012,2015”从小到大进行排序,则第二轮交换数据后的顺序是( )
A.2022,2021,2018,2017,2014,2012,2015
B.2012,2014,2018,2017,2021,2022,2015
C.2012,2017,2018,2014,2021,2022,2015
D.2022,2021,2018,2014,2017,2012,2015
40. 某高校学籍管理系统软件有2万个学生的电子档案(已按学籍号排序),假设从中取出一条记录并与待查项进行比较所花时间为8毫秒,则用对分法在该系统中查找任意一位学生档案最多花费的时间约为 ()
A.16万毫秒 B.8万毫秒 C.10毫秒 D.120毫秒
41. 已知temp1=“12”,temp2=3,则Visual Basic表达式temp1+temp2的值为( B )
A.“15” B.15 C.“123” D.123
B
二、程序填空题(学考部分)
1.编写一个具有下列功能的VB程序:单击“分类”按钮Command1,随机产生10个[10,99]区间中的整数,并将其中3的倍数显示在List1中,余下的数显示在List2中。运行界面如图所示。
(1)要使命令按钮Command1上显示的文本为“分类”,可在其属性窗口中将
属性的属性值改为“分类”。
(2)为实现上述功能,请在划线处填写合适的代码。
Private Sub Command1_Click()
List1.Clear
List2.Clear
Dim a(1 To 10) As Integer
For i = 1 To 10
a(i) =
If Then
List1.AddItem Str(a(i))
Else
End If
Next i
End Sub
2.小丁想买几张6+1彩票,选号时,他希望前4位用自己的生日:11月8日,即1108,特别号码他选了买彩票日子的个位数5,并且他希望前六个数字组成的数能被他的幸运数字9整除。他的好朋友小杰帮他设计了一个VB程序,可以提供一份符合这些要求的号码清单供他挑选。相应的界面如第12题图-1所示。阅读程序并完成后面的问题。
(1)设计应用程序界面时,为添加a所指向的对象,应使用图所示的“控件工具箱”中的 (填写相应编号);在第14题-3图所示的“属性窗口”中,将 属性值设置为“开始”,可使2中b所指向的对象显示“开始”。
(2)请根据题意将下列程序补充完整。
Private Sub Command1_Click()
Dim i as integer, j as integer, c As Integer
Dim n As Long
c = 0
For i = 0 To 99
n = 110800 + i
If ① Then
List1.AddItem Str(n) + " " + "5"
End If
Next i
Label2.Caption = "满足条件的数有:" + Str(c) + "组"
End Sub
3. 小李想用vb制作一个分钟倒计时器,界面如图所示。先在文本框text1中输入分钟数,然后在文本框text2中输入秒钟数,再点击“开始倒计时”按钮开始倒计时。Vb程序如下:
Private Sub Command1_Click()
Timer1.Enabled = ①
End Sub
Private Sub Timer1_Timer()
sec = Val(Text2.Text)
min = Val(Text1.Text)
If sec> 0 Then
sec = sec - 1
Else
sec = 59
If min > 0 Then
min = min - 1
Else
Text1 = 0
Text2 = 0
MsgBox "倒计时时间到"
End If
End If
Text1 = min
Text2 = sec
End Sub
(1)程序中①处应该填 。(选填:True/False)
(2)计时器timer1的inteval属性应该设置为 。
4. 小沈很久没登录自己的电子邮箱了,这次他想给远方的朋友发封电子邮件,但是密码忘记了,请你帮她尽可能找回密码。她零星记得自己的密码信息如下:
①共八位字符,前两位为字母“zj”,后六位是数字,并以66开头(即密码格式为zj66****);
②最后两位数字相同;
③后六位数能被16和46同时整除。
单击“找回密码”按钮(Command1)后,可能的密码显示在列表框List1中。
Private Sub Command1_Click()
Dim s As Long , a As Integer, b As Integer, c As Integer, i As Integer
For i = 0 To 9999
s = 660000 + i
If ① And s Mod 46 = 0 Then
'(选填字母,从下列A、B 、C、D四个选项中选取一项)
a = s Mod 10
b = (s Mod 100) \ 10
If ② Then '(选填字母,从下列A、B 、C、D四个选项中选取一项)
List1.AddItem ("zj" + Str(s))
c = ③ '(填程序代码)
End If
End If
Next i
Label1.Caption = "共有" + Str(c) + "个"
End Sub
(1)解决此问题的算法是_______________。(选填:枚举算法/解析算法/查找算法)
(2)程序中①划线处应填入__________;程序中②划线处应填入_________。
划线①、②处的选项:()
A.s Mod 16 = 0 B.s \ 16 = 0 C.a < > b D.a = b
(3)程序中①划线处应填入的代码_______________________。
5.小兰设计了一个“猜价格”小游戏,用户在Text1中输入所猜的价格,单击“猜一猜”按钮,如果偏高了,Label4标签中将提示“对不起,偏高了!”;若所猜的价格偏低,则Label4标签中将提示“对不起,偏低了!”;若猜中,则Label4标签中将显示“恭喜你,猜对啦!”。界面如图所示。
(1)应用程序界面设计时,为添加“请输入您猜的价格:”对象,应使用图所示的“控件工具箱”中的 (填写相应字母),并在图所示的“属性窗口”中,将 属性值设置为“请输入您猜的价格:”。
(2)解决此问题的相应程序如下,请根据题意将程序补充完整。
Private Sub Command1_Click()
Dim g As Integer
Dim p As Integer
p = 99 '预设价格的值存储到p变量中
g =
If g > p Then
= "对不起,偏高了!"
ElseIf g < p Then
Label4.Caption = "对不起,偏低了!"
Else
Label4.Caption = "恭喜你,猜对啦!"
End Sub
6. 十进制数转二进制数程序界面如第14题-1图所示,相关VB程序运行时,单击命令按钮Command1后,执行十进制数转二进制数并输出显示的程序。
(1)应用程序界面设计。转换得到的二进制数将显示在Label3中,请根据第14题-3图提供信息,确定使用第14题-2图控件工具箱中的 (填写相应编号),修改属性 的值为1010。
第14题-1图 第14题-2图 第14题-3图
(2)解决此问题的相应程序如下,请根据相应注释及题意将程序补充完整。
Private Sub Command1_Click() ‘不停除2到商为0为止,所得余数倒推
Dim sjzs As Integer ‘sjzs:十进制数
Dim rjzs As String ‘rjzs:二进制数
sjzs = Val(Text1.Text)
rjzs = ""
Do While
rjzs = Str(sjzs Mod 2) + rjzs
Label3.Caption = rjzs
End Sub
7. 以下VB程序段的功能是用DO语句求1~1000之间满足“用3除余2,用5除余3,用7除余2”的数。并将结果在list1中列出,并在label1处显示符合条件的数的个数。
(1)程序中①处应填入的代码是________________
(2)程序运行结束后,变量i的值为_______________
Private Sub Command1_Click()
Dim i As Integer
Dim j As Integer
i = 1: j = 0
list1.clear
Do While i <= 1000
If (i Mod 3 = 2 And i Mod 5 = 3 And i Mod 7 = 2) Then
List1.AddItem i
End If
i = i + 1
Loop
Label1.Caption = Str(j)
End Sub
8. 有如下Visual Basic程序段:
If x>100 then
Y=12
___(1)__ x>60 then
Y=8
Else
y=5
____(2)_____
该程序段中,(1)处填写的内容为____________(2)处填写的内容为___________。
9. 用VB软件编写判断闰年的年份。界面如第11题-图1所示,文本框Text1输入年份,单击“判断”按钮Command1,在文本框Text2中输出判断结果(闰年的判断条件是:能被 4 整除但是不能被100整除;或者能被四百整除)。
第11题-图1
(1)应用程序界面设计时,Text1文本框内没有内容显示,这是由于将其属性名为___________ 的值设置为空,窗口显示“闰年判断”是将窗体属性名为___________ 的值设置成了“闰年判断”。(1分,1分)
(2)请根据题意将下列程序补充完整。(2分)
Private Sub Command1_Click()
Dim Year As Integer
_______①____
If (Year Mod 4 = 0) And (Year Mod 100 <> 0) Or (Year Mod 400 = 0) Then
Text2.Text = "是闰年"
Else
Text2.Text = "不是闰年"
End If
End Sub
为实现上述功能, 程序①加框处应填写为________________
10. 编写VB程序,实现如下功能:在文本框Text1中输入骑士奔跑的速度值(为1到10之间的整数),单击“奔跑”按钮Command1,骑士以相应的速度从左往右循环奔跑,单击“停止”按钮Command2,骑士停止奔跑。界面如第14题-1图所示。
(1)在设计应用程序界面时,应使用第14题-2图所示“控件工具箱”中的 (填写相应编号)添加用于输入文字“加减速(1到10)”的控件。
(2)为实现上述功能,请在划线处填入合适代码。
Private Sub Command1_Click()
Dim x As Integer
x =
If (x > 0) And (x <= 10) Then
Timer1.Enabled =
Timer1.Interval = 1000 \ x
Else
Text1.Text = "错误"
End Sub
三、程序填空题(选考部分)
1. 【加试题】编写VB程序,在如第16题-1图所示1×1的正方形区域内产生一定数量、位置随机的点坐标,统计位于0.5×0.5的黑色区域内(包括边界)点的数量。程序运行时界面如第16题-2图所示。
自上而下两个文本框的名称分别是Text1和Text2,“开始”按钮的名称是Command1。在Text1
中输入数据,单击“开始”按钮,在Text2中显示统计结果。“开始”按钮单击事件处理过程的流程图如右图所示。请根据流程图将下列程序补充完整。
Private Sub Command1_Click( )
Dim n As Integer, m As Integer, i As Integer
Dim x As Single, y As Single
n = ①
m=0
Randomize ′初始化Rnd函数
For i = 1 To n
x = Rnd ′随机产生x坐标,0≤x<1
y = Rnd ′随机产生y坐标,0≤y<1
②
Next i
End Sub
2.【加试题】求孪生素数。孪生素数是指两个相邻奇数且都是素数,由于它们是最近的素数,就像孪生兄弟一样。下列Visual Basic程序用于查找100以内的所有孪生素数,其中函数f用于判断一个数是否是素数,程序运行界面如图(第17题-1图)所示,Command1鼠标单击事件过程的流程图如图(第17题-2图)所示。
程序代码如下:
Private Sub Command1_Click()
Dim i As Integer
For i = 3 To 97 ___①___ If f(i) And ② Then List1.AddItem Str(i) + " 和 " + Str(i + 2) End If Next i |
End Sub
Private Function f(x As Integer) As Boolean '自定义函数f,返回值为逻辑型
Dim j As Integer
f = True
For j = 2 To Int(Sqr(x))
If x Mod j = 0 Then
f = ③ '函数返回值
Exit For '跳出For循环
End If
Next j
End Function
(1)程序中加框部分的算法是 (选填:解析算法/枚举算法)(2分)
(2)在程序①、②、③划线处,填入适当的语句或表达式,把程序补充完整:
程序中①划线处应填入 (1分)
程序中②划线处应填入 (1分)
程序中③划线处应填入 (1分)
3. 小王设计了一个程序来列举仁川亚运会奖牌前三的国家。下列VB程序实现如下功能:单击命令按钮Command1后,在列表框List1中按奖牌数由多到少显示国家名称,如图。
请根据算法将下列程序补充完整。
Dim a(1 To 45) As String
Dim b(1 To 45) As Integer
Private Sub Form_Load()
a(1) = "中国"
b(1) = 308 ‘45个代表团名称及奖牌数分别放在a(1)到a(45)及b(1)到b(45)中
End Sub
Private Sub Command1_Click()
Dim i As Integer,j As Integer
Dim t As Integer,f As Integer
List1.Clear
For i = 1 To 3
For j = To i+1 Step -1
If Then
f = a(j): a(j) = a(j - 1): a(j - 1) = f
t = b(j): b(j) = b(j - 1): b(j - 1) = t
End If
Next j
Next i
For i = 1 To 3
List1.AddItem "第" + Str(i) + "名" + a(i) + " 奖牌数" + Str(b(i))
Next i
End Sub
4.[加试题]王五为学生们设计了学校食堂学生校园卡查询系统,在终端机上输入学生的校园卡卡号,可以查出该卡对应的学生姓名及相应的余额。
校园卡信息存储在一个综合的数据库“school.mdb”,其中的“Yue”数据表用来存储学生的校园卡基本信息,包括学号(num)、姓名(name)、余额(money),括号内的为对应字段名。下列VB程序用来实现根据学号查询并显示学生姓名及余额,运行界面如下图所示:
数据库文件与应用程序在同一文件夹中,在文本框Text1中输入学生的学号,单击“查询”按钮,在标签Label4、Label5中分别显示学生姓名和余额。
Private Sub Command1_Click()
Dim adocn As new connection
Dim adors As new recordeset
Dim str1 As string,str2 as string
Str1=”driver=microsoft access driver(*.mdb);dbq=”&app.path&”\ .mdb”
Adocn.open str1
Str2=”select * from Yue where =’”+text1.text+”’”
Adors.open str2,adocn,adOpenDynamic,adLockOptimistic
If adors.eof then
Msgbox”你输入的学号不存在!”
Else
Label4. caption =adors.Fields(“name”).value
=adors.Fields(“money”).value
Endif
Adors.close
Adocn.close
End Sub
为了实现上述目标,在画线处填入合适的语句或表达式:
5. 【加试题】运行下列VB程序,在文本框Text1中输入30,界面如题图所示。
单击“计算”按钮Command1后,则在文本框Text2中显示的内容是 (1) (2分),在文本框Text3中显示的内容是 (2) (2分)。
Private Sub Command1_Click()
Dim s As Integer, t As Integer, n As Integer
n = Val(Text1.Text)
t = 0
s = 0
For i = 1 To n
If Int(Sqr(i)) = Sqr(i) Then
s = s + i
t = t + 1
End If
Next i
Text2.Text = Str(t)
Text3.Text = Str(s)
End Sub
6.小张同学设计一个“简单数据筛选”程序。程序启动时运行界面如图所示。程序运行时列表框List1中产生15个随机整数。在文本框Text1中输入筛选条件(大于或小于某个数)后单击“筛选”按钮Command1,右边列表框List2中显示符合筛选条件的数据,同时标签Label2上显示符合条件的数据个数。
实现上述功能的VB程序如下,但加框处代码有错误,请改正。
Dim a(1 To 15) As Integer
Dim n As Integer 'n为计数器
Dim key As Integer 'key存放筛选条件的数字部分
Dim f As String 'f存放筛选天健的符号部分:大于号或者小于号
Private Sub Form_Load()
Randomize
For i = 1 To 15
a(i) = Int(Rnd * 100)
List1.AddItem Str(a(i))
Next i
End Sub
Private Sub Command1_Click()
Dim c As Integer
Dim st As String
n = 0
'(1)1分
c = Len(st)
f = Mid(st, 1, 1)
key = '(2)2分
If f = "<" Then Se2 '调用过程
If f = ">" Then Se1 '调用过程
Label2.Caption = "有" + Str(n) + "个筛选结果"
End Sub
Private Sub Se1() '筛选过程1
For i = 1 To 15
If a(i) > key Then
List2.AddItem Str(a(i))
n = n + 1
End If
Next i
End Sub
Private Sub Se2() '筛选过程2
For i = 1 To 15
List2.AddItem Str(a(i))
n = n + 1
End If
Next i
End Sub
(1)处应改为____________________________________________
(2)处应改为____________________________________________
(3)处应改为____________________________________________
7. 【加试题】某社区进行“摘葡萄”比赛活动,最后取十人进入决赛,工作人员编制了如下Visual Basic程序,功能是根据葡萄串数进行排序,程序中所有参赛者的成绩保存在数组m中,对应的姓名保存在数组name中。
程序运行界面如第17题图所示,左边列表框List1中显示数据(成绩和姓名),单击 “开始排序”按钮(Command1),排序后的结果按成绩从高到低显示在列表框List2中。
解决此问题的排序部分的程序段如下:
Dim m(1 To 10) As Single
Dim name(1 To 10) As String
Private Sub Command1_Click( )
Dim i As Integer, j As Integer, k As Integer, x As Single, y As String
For i = 1 To 9
k = i
For j = i + 1 To 10
If ① Then k = j
Next j
If k <> i Then
x = m(i) : m(i) = m(k) : ②
y = name (i) : name (i) = name (k) : name (k) = y
End If
Next I
For I = 1 To 10
List2.AddItem Str(m(i)) + " " + name(i)
Next i
End Sub
Private Sub Form_Load()
' 此过程用于对数组a和数组b进行初始赋值,代码略
End Sub
在程序①和②划线处,填入适当的语句或表达式,把程序补充完整:
(1)程序中①划线处应填入 。
(2)程序中②划线处应填入 。
8.【加试题】某单位会员储值卡查询系统具有如下功能:输入会员卡号,即可查出该卡号对应的余额。所有会员卡号和相应的余额已分别保存在数组kh和数组ye中,第i个会员的卡号保存在kh(i)中,对应卡号的余额保存在ye(i)中,卡号从小到大排序。
程序运行界面如第18题图所示,左边列表框List1中显示的是会员卡号和余额,在文本框Text1中输入会员卡号,单击"查询余额"按钮(Command1)后,如果找到此卡号,则在标签Label2中显示"此卡号余额为"和卡号对应的余额值,如果未找到则显示"找不到此卡号,请重新输入"。
解决此问题的部分程序段如下:
Dim kh (1 To n) As Long
Dim ye (1 To n) As Single
Private Sub Command1_Click()
Dim x As Long, i As Long, j As Long, m As Long, f As Boolean
x = Val(Text1.Text)
i = 1: j = n: f = False ‘ 设卡号总数为n
Do While ①
②
If x = kh (m) Then
f = True
ElseIf x < kh (m) Then
j = m - 1
Else
③
End If
Loop
If f Then
Label2.Caption = "此卡号余额为" + Str(ye(m)) + "元"
Else
Label2.Caption = "找不到此卡号,请重新输入"
End If
End Sub
Private Sub Form_Load()
’此过程用于对数组kh和数组ye进行初始赋值,代码略
End Sub
(1)程序中①划线处应填入 。
(2)程序中②划线处应填入 。
(3)程序中③划线处应填入 。