Vb专题习题

发布时间:2016-10-09 15:05:07

Vb专题习题

一、选择题

1. 将数学表达式写成Visual Basic表达式,正确的是(

ASqr(abs(b*b-4ac)) BSqr(abs[b*2-4*a*c])

CSqr(abs(b*b-4*a*c)) DSqr[abs(b*b-4*a*c)]

2. Visual Basic中,若要将窗体中某个命令按钮设置成无效状态,应对该按钮的(  )属性值进行修改。

AValue BVisible CEnabled DCaption

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

引发此错误的语句可能为(  )

ADim a As Integer, b As Integer

Ba = 5: b = 8

Cb = a + b

Dlabel1.Caption = Str(b)

4. 已知a=5b=9c=11,则下列Visual Basic表达式的值为False的是(

Aa > b And a > c Ba < b Or a > c

Ca < b + c Da > c – b

5. 有下列Visual Basic程序段:

某同学正编写一个判断两数大小的程序,其窗体和代码窗口如下图所示:

根据代码窗口中的程序,要在程序运行时判断两数的大小,窗体上必须增加的对象是(

A)标签Text1

B)文本框Text2

C)命令按钮Command1

D)文本框Print

若程序要实现“求100内能被3整数的自然数个数”的功能,则方框中正确的语句是(

Ai / 3 = 0

Bi mod 3 = 0

Ci \ 3 = 0

Dint(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[015] B[115] C[415] D[515]

7. Visual Basic中,表达式3 ^ 2 Mod 14 \ 2 ^ 3的值是(

A1 B0 C2 D3

8. 某同学正编写一个判断两数大小的程序,其窗体和代码窗口如下图所示:

根据代码窗口中的程序,要在程序运行时判断两数的大小,窗体上必须增加的对象是(

A)标签Text1

B)文本框Text2

C)命令按钮Command1

D)文本框Print

9. 下列Visual Basic程序段中,能实现输出变量abc三个数中最大数的是(

10有如下Visual Basic程序段:

x = 3

y =5

Text1.Text = "x+y"

该程序运行后,要文本框Text1中显示的是(

A3+5

Bx+y

C8

D3+5=8

11. Visual Basic中,下列表达式的值为5的是(

AInt(Sqr(9) + 1.28)

B(19 \ 2) Mod 5

CAbs(-7) + Sqr(4)

DLen("x+y+2")

12. Visual Basic中,下列语句定义的数组元素为10个的是(

ADim a(0 To 10) As Integer

BDim b(1 To 9) As String

CDim c(2 To 10) As Boolean

DDim d(0 To 9) As Date

13. Visual Basic工程的代码窗口如图所示:

从图中可以看出,当前正在编辑的是()

A. Command1Click事件过程代码 B. Timer1Timer事件过程代码

C. Label1Click事件过程代码 D. Image1Click事件过程代码

14. Visual Basic中,下列能作为变量名的是()

A. My

B. If

C. a+y

D. 2nd

15. 已知字符AZASCII码值分别对应6590。小明编写了一个在标签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的值为()

A1

B5 

C6

D15

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)中存储的是

Aa(1)a(10)中的最大值

Ba(1)a(10)中的最小值   

Ca(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的值是()

A0    (B1   (C5     (D15

25.下列Visual Basic表达式的值等于56的是()

AMid("123456",5,3)

BLen("55"+1)

CSqr(56)

DAbs(-55)+1

26.

27.

28. 小金编写了一个统计随机数分布的VB程序,部分程序如下所示,在调试程序的时候出现如右图所示的错误信息:

n = 0

m = 0

For i = 1 To 100

If Rnd > 05 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

运行该程序,分别在文本框Text1Text2中输入59,单击命令按钮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

BB.t=6

C.t=t+1

DD.t=t+2

33. VB表达式S=IntRnd()*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

方框中的正确语句是:

As = s + fac(j) Bs = fac(j)

Cs = s + i * fac(i) Ds = s + fac(i)

36. 下列逻辑表达式中,值为False的是(

AAsc("A") < Asc("a") BInt( Rnd * 49 ) < 49

C3+4 <= 7 and 5+6 > 9 D"thirty" > "two"

37. 100个大小形状一样的透明玻璃球,其中有1个玻璃球的重量轻于其他99个玻璃球,小明想利用一台无砝码的天平,运用合理的算法保证一定能找出这颗轻玻璃球的最少的次数为:

A100 B10 C8 D6

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中显示的内容是:

A5 B8 C13 D21

39. 用选择排序将七个数“2022201720182014202120122015从小到大进行排序,则第二轮交换数据后的顺序是(

A2022202120182017201420122015

B2012201420182017202120222015

C2012201720182014202120222015

D2022202120182014201720122015

40. 某高校学籍管理系统软件有2万个学生的电子档案(已按学籍号排序),假设从中取出一条记录并与待查项进行比较所花时间为8毫秒,则用对分法在该系统中查找任意一位学生档案最多花费的时间约为 ()

A16万毫秒 B8万毫秒 C10毫秒 D120毫秒

41. 已知temp1=12”,temp2=3,则Visual Basic表达式temp1+temp2的值为( B

A.15 B.15 C.123 D.123

B

二、程序填空题(学考部分)

1.编写一个具有下列功能的VB程序:单击“分类”按钮Command1,随机产生10[1099]区间中的整数,并将其中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位用自己的生日:118,即1108,特别号码他选了买彩票日子的个位数5,并且他希望前六个数字组成的数能被他的幸运数字9整除。他的好朋友小杰帮他设计了一个VB程序,可以提供一份符合这些要求的号码清单供他挑选。相应的界面如第12题图-1所示。阅读程序并完成后面的问题。

1)设计应用程序界面时,为添加a所指向的对象,应使用图所示的“控件工具箱”中的 (填写相应编号);在第14-3图所示的“属性窗口”中,将 属性值设置为“开始”,可使2b所指向的对象显示“开始”。

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)计时器timer1inteval属性应该设置为

4. 小沈很久没登录自己的电子邮箱了,这次他想给远方的朋友发封电子邮件,但是密码忘记了,请你帮她尽可能找回密码。她零星记得自己的密码信息如下:

①共八位字符,前两位为字母“zj”,后六位是数字,并以66开头(即密码格式为zj66****);

②最后两位数字相同;

③后六位数能被1646同时整除。

单击“找回密码”按钮(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

'(选填字母,从下列AB CD四个选项中选取一项)

a = s Mod 10

b = (s Mod 100) \ 10

If Then '(选填字母,从下列AB CD四个选项中选取一项)

List1.AddItem ("zj" + Str(s))

c = '(填程序代码)

End If

End If

Next i

Label1.Caption = "共有" + Str(c) + ""

End Sub

1)解决此问题的算法是_______________。(选填:枚举算法/解析算法/查找算法)

2)程序中①划线处应填入__________;程序中②划线处应填入_________

划线①、②处的选项:()

As Mod 16 = 0 Bs \ 16 = 0 Ca < > b Da = 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中输入骑士奔跑的速度值(为110之间的整数),单击“奔跑”按钮Command1,骑士以相应的速度从左往右循环奔跑,单击“停止”按钮Command2,骑士停止奔跑。界面如第14-1图所示。

1)在设计应用程序界面时,应使用第14-2图所示“控件工具箱”中的 (填写相应编号)添加用于输入文字“加减速(110)”的控件。

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图所示。

自上而下两个文本框的名称分别是Text1Text2,“开始”按钮的名称是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坐标,0x1

y = Rnd ′随机产生y坐标,0y1

Next i

Text2.Text = Str(m)

End Sub

2.【加试题】求孪生素数。孪生素数是指两个相邻奇数且都是素数,由于它们是最近的素数,就像孪生兄弟一样。下列Visual Basic程序用于查找100以内的所有孪生素数,其中函数f用于判断一个数是否是素数,程序运行界面如图(17-1)所示,Command1鼠标单击事件过程的流程图如图(17-2)所示。

程序代码如下:

Private Sub Command1_Click()

Dim i As Integer

List1.Clear '清除列表框内容

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中输入学生的学号,单击“查询”按钮,在标签Label4Label5中分别显示学生姓名和余额。

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

'11

c = Len(st)

f = Mid(st, 1, 1)

key = '22

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

If Then '32

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)程序中划线处应填入

Vb专题习题

相关推荐