武汉职业技术学院 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.Text End 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