资源描述
《VB程序设计》试卷 试卷十五
一、判断题(共10分,每题1分,在答题卡上回答,A表示正确,B表示错误)
1.
窗体中只能有一个命令按钮设置Default属性为True,在任何情况下,按<Enter>键,就相当于执行该命令按钮的Click()事件。
2.
直线控件没有Left和Top属性。
3.
在VB工具箱中双击控件图标,可以在窗体中添加控件,但不能直接将控件引入到框架中。
4.
Style属性为0和2的组合框由于下拉,故不能多选,但Style属性为1的组合框不是下拉的,所以可以多选。
5.
单选按钮和复选框都没有双击事件。
6.
Cls方法能清除窗体中用Line和Circle方法画的直线、矩形和圆形,但不能清除窗体中用直线控件和形状控件产生的直线、矩形和圆形。
7.
“打开”对话框和“另存为”对话框,除了标题栏上的文字不同之外,其他内容与用法均相同,因此,也可以用“另存为”对话框来指定要打开的文件。
8.
当图片框的AutoSize属性为True,而影像框的Stretch属性为False时,两者显示图片的效果相同。
9.
Pset (X, Y)方法在(X, Y)处画一个点,而Point(X, Y)函数返回(X, Y)点的颜色值。
10.
若要用鼠标在文本框中右击能弹出mnuEdit的快捷菜单,只要在该文本框的Mouse_Down()事件中,添加一条 PopupMenu mnuEdit 语句便可。
二、单选题(共20分,每题2分)
11.
VB提供了许多目录和文件操作语句,其中删除文件夹语句的关键词是 。
[A] ChDir [B] RmDir [C] KillDir [D] DelDir
12.
标签的WordWrap = True 可以固定标签宽度来显示多行文本,它必须和 属性一起设置。
[A] MultiLine [B] AutoSize [C] Alignment [D] Width
13.
表达式4 + 5 \ 4 * 9 / 8 Mod 3的值是 。
[A] 7 [B] 5 [C] 6 [D] 9
14.
在默认的情况下,由Dim axyz(3, 2 To 4) As String * 2语句定义的数组占用______字节的内存空间。
[A] 24 [B] 18 [C] 9 [D] 48
15.
以下叙述中错误的是 。
[A] 以.BAS为扩展名的文件是标准模块文件,是一个纯代码性质的文件。
[B] 编程人员不能改变窗体或控件的事件名称,但是可以改变控件的名称
[C] 在Visual Basic工具箱中的所有控件都具有宽度(Width)和高度(Height)属性
[D] 用Hide方法只是隐藏一个窗体,不能从内存中清除该窗体
16.
要使得文件列表框File1中,只显示文件后缀名为bmp和jpg的图片文件,应设置其Pattern属性为______。
[A] "*.bmp|*.jpg" [B] "*.bmp", "*.jpg" [C] "*.bmp;*.jpg" [D] "*.bmp, *.jpg "
17.
执行以下代码后,窗体上打印出的结果是______。
a = 1 : b = 5 : c = -1
Print c = b > a
[A] True [B] False [C] -1 [D] 出错
18.
在文本框Text1中用鼠标拖动选中文本块时,如果Text1.SelStart = 15,Text1.SelLength = 10,那么Text1.SelText的属性值与______的函数值相同。
[A] Mid(Text1,14,10) [B] Mid(Text1,15,10) [C] Mid(Text1,16,10) [D] Mid(Text1,10,15)
19.
当驱动器列表框Drive1中的驱动器符改变时,为使文件夹列表框Dir1中显示的路径也作相应的改变,应当在 的Change事件中添加 代码。
[A] Drive1,Dir1.Path = Drive1.Drive [B] Dir1,Dir1.Path = Drive1.Drive
[C] Drive1,Drive1.Drive = Dir1.Path [D] Dir1,Drive1.Drive = Dir1.Path
20.
Sub过程与Function过程最根本的区别是____。
[A] 前者可以使用Call或直接使用过程名调用,后者不可以
[B] 后者可以有参数,前者不可以
[C] 两种过程参数的传递方式不同
[D] 后者可通过函数名返回值,但前者不能通过过程名返回
三、程序填空选择题(共20分,每空2分)
阅读下列程序说明和相应的程序,在每小题提供的若干可选答案中,挑选一个正确答案。
1. 单击命令按钮cmd2,由随机函数产生50个100 — 300之间(包括100和300)的随机整数。放入第一个数组中,将它们中的偶数放入另一个数组,再对偶数数组按从大到小的顺序进行排序,先后将这三组数值显示在窗体中。
Private Sub cmd2_Click()
Dim N%(50), M%(), I%, J%, T%, P%
Cls
Print "原始数组:"
For I = 1 To 50
N(I) = ___(21)___
Print N(I),
If I Mod 5 = 0 Then Print
If N(I) Mod 2 = 0 Then J = J + 1 : ReDim Preserve M(J) : M(J) = N(I)
Next I
Print "偶数数组:"
For I = 1 To J
Print M(I),
If I Mod 5 = 0 Then Print
Next I
Print : Print "排序后的偶数数组:"
For I = 1 To J - 1
P = I
For K = ___(22)___
If ___(23)___ Then P = K
Next K
If I <> P Then ___(24)___
Print M(I),
If I Mod 5 = 0 Then Print
Next I
Print M(I)
End Sub
(21) [A] Int(100 + Rnd() * 201) [B] Int(200 + Rnd() * 101)
[C] Int(101 + Rnd() * 199) [D] Int(100 + Rnd() * 200)
(22) [A] K = I + 1 To 50 [B] J = I + 1 To 50 [C] J = I + 1 To K [D] K = I + 1 To J
(23) [A] M(I) < M(K) [B] M(I) > M(K) [C] M(P) < M(K) [D] M(K) < M(P)
(24) [A] T = M(P) : M(I) = M(P): M(I) = T [B] T = M(I) : M(P) = M(I) : M(P) = T
[C] M(I) = T : T = M(P) : M(P) = M(I) [D] T = M(I) : M(I) = M(P) : M(P) = T
2. 窗体上有一个列表框List1和一个文本框Text1,在属性窗口已设置文本框的MultiLine属性为True,ScrollBars属性为2-Verticle。程序启动或单击窗体后,随机生成20个二位数,作为列表项添加到列表框List1中,单击选择List1的一个列表项,求出选中的二位数的全部因子(包括1和该数本身),在文本框Text1中逐行显示。
Private Sub Form_Load()
Randomize
___(25)___
End Sub
Private Sub Form_Click()
Dim I As Integer
___(26)___
Text1 = ""
For I = 0 To 19
List1.AddItem Int(Rnd * 90 + 10)
Next I
End Sub
Private Sub List1_Click()
Dim I As Integer, X As Integer
X = Val(List1.Text)
Text1 = ""
For I = 1 To X
If X Mod I = 0 Then Text1 = ___(27)___
Next I
End Sub
(25) [A] Call Form1_Click [B] Form_Click() [C] Form1_Click [D] Form_Click
(26) [A] List1.Clear [B] List1.Cls [C] List1 = "" [D] List1.ListCount = 0
(27) [A] I & vbCrLf [B] Text1 & I & vbCrLf [C] X & vbCrLf [D]Text1 & X & vbCrLf
3. 下列FindStr过程是用于在一个字符串变量中查找"red",并用输出对话框给出找到的个数或"没有找到"的查找结果。
Option Explicit
Public Sub FindStr()
Dim Str1 As String, Length As Integer, Sum As Integer, I As Integer
Str1 = InputBox("请输入一个字符串")
Length = ___(28)___
I = 1
Sum = 0
Do While ___(29)___
If ___(30)___ Then Sum = Sum + 1
I = I + 1
Loop
If Sum = 0 Then
MsgBox "没有找到!"
Else
MsgBox "找到了" & Str(Sum) & "个"
End If
End Sub
(28) [A] Len(Str1) [B] Val(Str1) [C] Chr(Str1) [D] Str(Str1)
(29) [A] I = Length - 1 [B] I > Length - 1 [C] I < Length - 1 [D] I = Length
(30) [A] Left(Str1, 3) = "red" [B] Str1 = "red"
[C] Mid(Text1, I, 3) = Str1 [D] Mid(Str1, I, 3) = "red"
四、程序阅读题(共20分,每题5分)
1.请写出从键盘输入”1.2”,"Ab"和“FGfg”后,窗体的输出结果。
Private Sub Form_Click()
Dim sHex As String, X As String * 1
Dim nDec As Long, N As Integer, I As Integer, Ai As Integer
sHex = UCase(InputBox("请输入一个字符串"))
N = Len(sHex)
nDec = 0
Do While I < N
X = Mid$(sHex, N - I, 1)
Select Case X
Case "A" To "F" : Ai = Asc(X) - Asc("A") + 10
Case "0" To "9" : Ai = Val(X)
Case Else
Ai = 0 : N = N - 1
sHex = Left(sHex, N - I) + Right(sHex, I)
I = I - 1
End Select
nDec = nDec + Ai * 16 ^ I
I = I + 1
Loop
Print sHex; " H ="; nDec
End Sub
2. 请写出以下程序运行后两次单击命令按钮的输出结果。
Dim x As Integer
Private Sub Command1_Click()
Dim y As Integer
Static z As Integer
x = x + 1 : y = y + 1 : z = z + 1
Call abc(x, y, z + y)
Print x, y, z
End Sub
Static Sub abc(a, b, c)
a = a + 1 : b = b + 1 : c = c + 1 : x = x + 1
End Sub
Private Sub Form_Load()
x = 1 : y = 1 : z = 1
End Sub
3. 已知水平滚动条HScroll1的有关属性已经在属性窗口进行了如下的设置:
Min为1 Max为10 SmallChange为1 LargeChange为2 Value为5
写出连续3次单击水平滚动条HScroll1右端箭头后,窗体上显示的结果。
Private Sub HScroll1_Change()
Static y As Integer
If HScroll1.Value Mod 2 = 0 Then
y = y + HScroll1.Value
Print "y="; y
End If
End Sub
4. 请写出在文本框中输入“小李”(2个汉字)并按下回车键后,窗体上显示的结果。
Private Sub Text1_Change()
Print Text1.Text; ",你好!"
End Sub
五、程序设计题(本题共30分,每题10分)
注意:在做程序设计题时,务必在窗体和模块的通用部位写上“Option Explicit”语句。
1. 试用Form_Click()事件过程计算下列求和式,在窗体显示结果。
S = 1 + 12 + 123 + 1234 + 12345 + …… + 12345…n
例如n = 7,S = 1 + 12 + 123 + 1234 + 12345 +123456 + 1234567
n通过输入框输入,其值为 1 — 9;如果输入不在此范围,再次弹出输入框重输。
2. 编写一个绘制“饼图”的子程序 BingTu()。调用时,传递3个实际参数X、Y、Z,子程序就在图片框 Picture1 中画出内切圆,按3个实参的比例分为3个扇形,并用三种不同的颜色(X-红,Y-绿,Z-黄)填充,如右图所示。下面是已经完成的“饼图”按钮 Command1_Click()事件中调用子程序 BingTu()的代码。试按上述要求完成“饼图”的子程序 BingTu()的代码编写。
Private Sub Command1_Click()
Dim X!, Y!, Z!
X = Val(InputBox("X ="))
Y = Val(InputBox("Y ="))
Z = Val(InputBox("Z ="))
Call BingTu(X, Y, Z)
End Sub
3. 在D盘根目录有考试成绩文件“D:\KsCj.txt”,格式如下表所示。要求在标准模块的Sub Main()过程中编写代码,打开该文件,逐一读入姓名和成绩,求出最高分、最低分和平均分。最后按下表所示的格式,添加到考试成绩文件的最后。
运行前的KsCj.txt
运行后的KsCj.txt
李妮娜, 92
周嘉楠, 78
......
毛梅燕, 55
王松, 46
李妮娜, 92
周嘉楠, 78
......
毛梅燕, 55
王松, 46
最高分: 94
最低分: 48
平均分: 78.9188311688312
第6页(共5页)
展开阅读全文