武汉职业技术学院
2005~2006学年度第二学期考试试卷[A]
考试科目:《Visual Basic程序设计》
适用班级:计算机系网络04401班 答题时间:100分钟
班级 学号 姓名
选择题(2分/题,共20分)
(1)以下不能在"工程资源管理器"窗口中列出的文件类型是
A).bas B).res C).frm D).ocx
(2)以下关于窗体的描述中,错误的是
A)执行Unload Form1语句后,窗体Form1消失,但仍在内存中
B)窗体的Load 事件在加载窗体时发生
C)当窗体的Enabled 属性为False时,通过鼠标和键盘对窗体的操作都被禁止
D)窗体的Height、Width属性用于设置窗体的高和宽
(3)下列可作为Visual Basic变量名的是
A)A#A B)4A C)?xy D)constA
(4)设有如下的记录类型
Type Student
number As String
name As String
age As Integer
End Type
则正确引用该记录类型变量的代码是
A) Student.name = "张红" B) Dim s As Student
s.name = "张红"
C) Dim s As Type Student D) Dim s As Type
s.name = "张红" s.name = "张红"
(5) 执行如下语句:
a = InputBox("Today", "Tomorrow", "Yesterday")
将显示一个输入对话框,在对话框的输入区中显示的信息是
A)Today B)Tomorrow C)Yesterday D)Day before yesterday
(6) 在窗体上画一个名称为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
(7) 在窗体上画三个单选按钮,组成一个名为chkOption的控件数组。用于标识各个控件数组元素的参数是
A)Tag B)Index C)ListIndex D)Name
(8) 在窗体上画一个命令按钮,名称为Command1,然后编写如下事件过程:
Option Base 0
Private Sub Command1_Click()
Dim city As Variant
city = Array("北京", "上海", "天津", "重庆")
Print city(1)
End Sub
程序运行后,如果单击命令按钮,则在窗体上显示的内容是
A)空白 B)错误提示 C)北京 D)上海
(9 )假定有以下函数过程:
Function Fun(S As String) As String
Dim s1 As String
For i = 1 To Len(S)
s1 = UCase(Mid(S, i, 1)) + s1
Next i
Fun = s1
End Function
在窗体上画一个命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Dim Str1 As String, Str2 As String
Str1 = InputBox("请输入一个字符串")
Str2 = Fun(Str1)
Print Str2
End Sub
程序运行后,单击命令按钮,如果在输入对话框中输入字符串"abcdefg",则单击"确定"按钮后在窗体上的输出结果为
A)abcdefg B)ABCDEFG C) gfedcba D)GFEDCBA
(10)设有语句
Open "c:\Test.Dat" For Output As #1
则以下错误的叙述是
A)该语句打开C盘根目录下一个已存在的文件Test.Dat
B)该语句在C盘根目录下建立一个名为Test.Dat的文件
C)该语句建立的文件的文件号为1
D)执行该语句后,就可以通过Print #语句从文件Test.Dat中读出信息
填空题(每空2分,共26分)
请将每空的正确答案写在答题卡【1】~【13】序号的横线上,答在试卷上不得分。
(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个200到300之间的随机整数,输出其中能被5整除的数并求出它们的和。请填空。
Private Sub Command1_Click()
For i = 1 To 20
x = Int( 【6】 * 101 + 200)
If 【7】 = 0 Then
Print x
S = S + 【8】
End If
Next i
Print "Sum = "; S
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 = 【9】 和 b = 【10】 。
(9)在窗体上画一个名称为Combo1的组合框,画两个名称分别为Label1和Label2及Caption 属性分别为"城市名称"和空白的标签。程序运行后,当在组合框中输入一个新项后按回车键(ASCII码为13)时,如果输入的项在组合框的列表中不存在,则自动添加到组合框的列表中,并在Label2中给出提示"已成功添加输入项"如图所示;如果存在,则在Label2中给出提示"输入项已在组合框中"。请在 【11】、【12】 和【13】处将程序补充完整。
Private Sub Combo1_ 【11】 (KeyAscii As Integer)
If KeyAscii = 13 Then
For i = 0 To Combo1.ListCount-1
If Combo1.Text = 【12】 Then
Label2.Caption = "输入项已在组合框中"
Exit Sub
End If
Next i
Label2.Caption = "已成功添加输入项"
Combo1. 【13】 Combo1.TextEnd If
End Sub
读程填程题(共22分)
1.求100以内的素数之和,(每空2分,共10分)
Private Sub Command1_Click()
Dim flag As Boolean
s = 0
For i = 2 To 100
flag = _________________
For j = 2 To i – 1
If ____________ Then
__________________
End If
Next j
If flag =_________ Then ______________
Next i
MsgBox (s)
End Sub
2.在控件数组Picture(0)、Picture(1) 、Picture(2)和 Picture(3)中移动图片,要求图片可以在任意两个图片框中拖放,请补全程序。(1到4共4分,其他每空2分,共12分)
Dim you(3) As Boolean
Private Sub Form_Load()
Picture1(0).Picture = LoadPicture("d:\a.bmp")
you(0) = _________:you(1) = ________
you(2) = _________:you(3) = ________
End Sub
Private Sub Picture1_DragDrop(Index As Integer, Source As Control, X As Single, Y As Single)
If you(Index) = False Then
Picture1(Index).Picture = Source.Picture
Source.Picture = ________________________
you(Index) = True
you(________________________) = False
End If
End Sub
Private Sub Picture1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
If you(Index) = ________________ Then
Picture1(Index). ________________
End If
End Sub
四、编程题(32分)
1.从键盘输入5个数到数组s(5)中,并求s(5)中最大元素的值和它的下标(10分)
2.以1,2,3,4,5为边长可以形成多少个三角形,不考虑相同情况,请输出这些三角形的三个边长。(10分)
3. 用递归的方法求两个正整数a,b的最大公约数,已知a和b的公约数于b和a mod b的公约数相同。请写出相应的Function。(12分)
武汉职业技术学院
2005~2006学年度第一学期考试试卷[A]
考试课目:《Visual Basic程序设计》答题纸
班级 学号 姓名
题 号
一
二
三
四
总 分
分 数
选择题(10╳2=20分)
题号
1
2
3
4
5
6
7
8
9
10
答案
b
a
d
b
c
d
b
d
b
d
填空题(13╳2=26分)
组合框 2 顺序方式 3. 9
4. Picture1.picture=loadpicture() 5 timer 6. rnd
7. X mod 5 8. x 9. 30
10. 50 11. keypress 12. additem
13.
读程填程题(5╳2=10 4╳1=4 4╳2=8 共22分)
1. true I mod j=0 flag=false s=s+i
2. ture false false false
loadpicture() source.index false drag
编程题(10+10+12=32分 做在答题纸上,另发)
1.
Private Sub Command1_Click()
Dim a(5) As Integer
For i = 1 To 5
a(i) = Val(InputBox("输入数据"))
Next i
ma = a(1): xb = 1
For i = 2 To 5
If a(i) > ma Then ma = a(i): xb = i
Next i
Print ma, xb
End Sub
2.
Private Sub Command1_Click()
s = 0
For a = 1 To 5
For b = 1 To a
For c = 1 To b
If b + c > a Then s = s + 1: Print a, b, c
Next c, b, a
Print s
End Sub
3.
Function gys(m As Integer, n As Integer) As Integer
If n = 0 Then
gys = m
Else
gys = gys(n, m Mod n)
End If
End Function