1、
《VB程序设计》试卷 试卷十五
一、判断题(共10分,每题1分,在答题卡上回答,A表示正确,B表示错误)
1.
窗体中只能有一个命令按钮设置Default属性为True,在任何情况下,按
2、Line和Circle方法画的直线、矩形和圆形,但不能清除窗体中用直线控件和形状控件产生的直线、矩形和圆形。 7. “打开”对话框和“另存为”对话框,除了标题栏上的文字不同之外,其他内容与用法均相同,因此,也可以用“另存为”对话框来指定要打开的文件。 8. 当图片框的AutoSize属性为True,而影像框的Stretch属性为False时,两者显示图片的效果相同。 9. Pset (X, Y)方法在(X, Y)处画一个点,而Point(X, Y)函数返回(X, Y)点的颜色值。 10. 若要用鼠标在文本框中右击能弹出mnuEdit的快捷菜单,只要在该文本框的Mouse_Dow
3、n()事件中,添加一条 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
4、] 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方法只是隐藏一个窗体,不能从内存中
5、清除该窗体 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.Se
6、lStart = 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 = Driv
7、e1.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,由
8、随机函数产生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
9、 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 = __
10、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]
11、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
12、) [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 F
13、orm_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
14、 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过程是用于
15、在一个字符串变量中查找"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 =
16、 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)
17、 [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
18、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
19、 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
20、 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.
21、已知水平滚动条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 E
22、nd 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 +
23、 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 Co
24、mmand1_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页)






