武汉职业技术学院
2005~2006学年度第二学期考试试卷[B]
考试科目:《Visual Basic程序设计》
适用班级:计算机系网络04401班 答题时间:100分钟
班级 学号 姓名
选择题(1分/题,共6分)
(1)以下不能在"工程资源管理器"窗口中列出的文件类型是
A).bas B).res C).frm D).ocx
(2)下列可作为Visual Basic变量名的是
A)A#A B)4A C)?xy D)constA
(3) 在窗体上画一个名称为List1的列表框,一个名称为Label1的标签。列表框中显示若干城市的名称。当单击列表框中的某个城市名时,在标签中显示选中城市的名称。下列能正确实现上述功能的程序是
A) Private Sub List1_Click() B)Private Sub List1_Click()
Label1.Caption = List1.ListIndex Label1. Name = List1. ListIndex
End Sub End Sub
C) Private Sub List1_Click() D)Private Sub List1_Click()
Label1.Name = List1.Text Label1.Caption = List1.Text
End Sub End Sub
(4) 在窗体上画三个单选按钮,组成一个名为chkOption的控件数组。用于标识各个控件数组元素的参数是
A)Tag B)Index C)ListIndex D)Name
(5) 在窗体上画一个命令按钮,名称为Command1,然后编写如下事件过程:
Option Base 0
Private Sub Command1_Click()
Dim city As Variant
city = Array("北京", "上海", "天津", "重庆")
Print city(1)
End Sub
程序运行后,如果单击命令按钮,则在窗体上显示的内容是
A)空白 B)错误提示 C)北京 D)上海
(6)设有语句
Open "c:\Test.Dat" For Output As #1
则以下错误的叙述是
A)该语句打开C盘根目录下一个已存在的文件Test.Dat
B)该语句在C盘根目录下建立一个名为Test.Dat的文件
C)该语句建立的文件的文件号为1
D)执行该语句后,就可以通过Print #语句从文件Test.Dat中读出信息
填空题(每空2分,共28分)
请将每空的正确答案写在答题卡【1】~【14】序号的横线上,答在试卷上不得分。
(1)Visual Basic中有一种控件组合了文本框和列表框的特性,这种控件是 【1】 。
(2)Visual Basic提供的对数据文件的三种访问方式为随机访问方式、【2】和二进制访问方式。
(3)执行下面的程序段后,变量S的值为 【3】 。
S = 5
For i = 2.6 To 4.9 Step 0.6
S = S + 1
Next i
(4)为了在运行时把d:\pic文件夹下的图形文件a.jpg装入图片框Picture1,所使用的语句为 【4】 。
(5)计时器控件能有规律的以一定时间间隔触发 【5】 事件,并执行该事件过程中的程序代码。
(6)以下程序的功能是:生成20个大写的英文字母(A的Ascii码为65)。请填空。
Private Sub Command1_Click()
【6】
For i = 1 To 20
a = Int(Rnd *【7】 26 + 【8】)
Print 【9】
Next i
End Sub
(7)设有如下程序
Private Sub Form_Click()
Dim a As Integer, b As Integer
a = 20: b = 50
p1 a, b
Print "a="; a, "b="; b
End Sub
Sub p1(x As Integer, byval y As Integer)
x = x * 10
y = y + 20
End Sub
该程序运行后,单击窗体,则在窗体上显示的内容是:a = 【10】 和 b = 【11】 。
(9)在窗体上画一个名称为Combo1的组合框,画两个名称分别为Label1和Label2及Caption 属性分别为"城市名称"和空白的标签。程序运行后,当在组合框中输入一个新项后按回车键(ASCII码为13)时,如果输入的项在组合框的列表中不存在,则自动添加到组合框的列表中,并在Label2中给出提示"已成功添加输入项"如图所示;如果存在,则在Label2中给出提示"输入项已在组合框中"。请在 【12】、【13】 和【14】处将程序补充完整。
Private Sub Combo1_ 【12】 (KeyAscii As Integer)
If KeyAscii = 13 Then
For i = 0 To Combo1.ListCount-1
If Combo1.Text = 【13】 Then
Label2.Caption = "输入项已在组合框中"
Exit Sub
End If
Next i
Label2.Caption = "已成功添加输入项"
Combo1. 【14】 Combo1.TextEnd If
End Sub
读程填程题(共24分)
1.求100以内的素数之和,(每空2分,共10分)
Private Sub Command1_Click()
Dim flag As Boolean
s = 0
For i = 2 To 100
flag = False
For j = 2 To i – 1
If ____________ Then
__________________
End If
Next j
If flag =_________ Then ______________
Next i
MsgBox (___________)
End Sub
2.在控件数组Picture(0)、Picture(1)中移动图片,要求图片可以在这两个图片框中移动,按“->”向右移动,按“<-”向左移动,“->”和“<-”的keycode分别为39和37,请补全程序。(其他每空2分,共14分)
Dim you(1) As Boolean
Private Sub Form_Load()
Picture1(0).Picture = LoadPicture("e:\a.bmp")
you(0) = ________
you(1) = ________
End Sub
Private Sub Picture1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
If Index = 0 Then
If KeyCode = 39 And __________ Then
Picture1(1).Picture = ___________
Picture1(0).Picture =___________
you(0) = _______: you(1) =________
End If
End If
If Index = 1 Then
‘此处省略多行语句,不要求考生完成
End If
End Sub
四、编程题(42分)
从键盘输入二维数组a(4,5)(共30个元素),编写程序求这30个数的最大数,以及这个数的数组下标。 (10分)
2.在窗体上随机打印100个小写的英文字母(a的ascii码为97)。(10分)
3.编写程序,在文本框中任意输入一个字符,在窗体上输出该字符的Ascii码。(10分)
4. 用递归的方法打印如下图形。(12分)
1
1 2 1
1 2 3 2 1
1 2 3 4 5 4 3 2 1
1 2 3 4 …9…4 3 2 1
武汉职业技术学院
2005~2006学年度第一学期考试试卷[B]
考试课目:《Visual Basic程序设计》答题纸
班级 学号 姓名
题 号
一
二
三
四
总 分
分 数
选择题(6╳1=6分)
题号
1
2
3
4
5
6
答案
c
d
d
b
d
d
填空题(14╳2=28分)
组合框 2 顺序方式 3. 9
4. Picture1.picture=loadpicture(“a.jpg”)
5. timer 6. s=0
7. rnd 8. 65 9. char(a)
10. 200 11. 50 12. press
13. combo1.list(i) 14. additem
读程填程题(2╳12共24分)
1. I mod j=0 flag=false s=s+i true s
2. true false you(1)=false picture(0).picture
loadpicture() false true
编程题(10+10+10+12=42分 做在答题纸上,另发)
1.
Private Sub Command1_Click()
Dim a(4, 5) As Integer
Dim x As Integer, y As Integer, zuida As Integer
For i = 0 To 4
For j = 0 To 5
a(i, j) = Val(InputBox("输入数据"))
Next j, i
zuida = a(0, 0)
x = 0: y = 0
For i = 0 To 4
For j = 0 To 5
If a(i, j) > zuida Then zuida = a(i, j): x = i: y = j
Next j, i
Print zuida, x, y
End Sub
2.
Private Sub Command1_Click()
Randomize
For i = 1 To 100
c = Int(Rnd * 26) + 65
Print Chr(c)
Next i
End Sub
3.
Private Sub Text1_KeyPress(KeyAscii As Integer)
Print KeyAscii
End Sub
4.
Sub prin(n)
If n = 1 Then
Print n
Else
prin (n - 1)
Print
For i = 1 To n
Print i;
Next i
For i = n - 1 To 1 Step -1
Print i;
Next i
Print
End If
End Sub
Private Sub Command1_Click()
n = Val(InputBox("输入n"))
prin (n)
End Sub