武汉职业技术学院 2005-2006学年度第二学期考试试卷Al 考试科目:《Ⅴ isual 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)下列可作为Ⅴ isual basic变量名的是 A) A#a B) 4A C)?xy D)constA (4)设有如下的记录类型 Type Student number As string age As Integer End Type 则正确引用该记录类型变量的代码是 A) Student. name="张红"B) Dim s as student 张红 C) Dim s As Type Student D) Dim s As Type s name="张红 s name=”张红 (5)执行如下语句 a= Input Box("Today","Tomorrow", "Yesterday") 将显示一个输入对话框,在对话框的输入区中显示的信息是 A) Today B) Tomorrow C) Yesterday D)Day before yesterday (6)在窗体上画一个名称为Lt的列表框,一个名称为 Labell的标签。列表框中 显示若干城市的名称。当单击列表框中的某个城市名时,在标签中显示选中城市的 名称。下列能正确实现上述功能的程序是 共8页
第1页 共8页 武汉职业技术学院 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 ListI Click B) Private Sub ListI Click Labell Caption= List l ListIndex Label l. Name= List1. ListIndex End sub End Sub C) Private Sub List1 Click D) Private Sub List1 Click abell. Name List Text Labell Caption=ListIText End Sub End Sub (7)在窗体上画三个单选按钮,组成一个名为 chkOption的控件数组。用于标识各 个控件数组元素的参数是 A) Tag B)Index C) ListIndex D) Name (8)在窗体上画一个命令按钮,名称为 Command l,然后编写如下事件过程: Option Base O Private Sub Commandl Click Dim city As variant city=Aray("北京"”,"上海","天津","重庆") Print city(l) 程序运行后,如果单击命令按钮,则在窗体上显示的内容是 A)空白 B)错误提示 C)北京 D)上海 (9)假定有以下函数过程: Function Fun(s As String)As String Dim sl As String sl=UCase(Mid(s, 1, 1))+sl Fun=sI End Function 在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Commandl Click Dim Str As String, Str2 As String Strl= Input Box("请输入一个字符串") Str2= Fun(strl) Print str End Sub 程序运行后,单击命令按钮,如果在输入对话框中输入字符串" abcdefg",则单 击"确定"按钮后在窗体上的输出结果为 A)abcdefg B)ABCDEFG C) gfedcba D)GFEDCBA (10)设有语句
第2页 共8页 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#I 则以下错误的叙述是 A)该语句打开C盘根目录下一个已存在的文件 Test. Dat )该语句在C盘根目录下建立一个名为 Test dat的文件 C)该语句建立的文件的文件号为1 D)执行该语句后,就可以通过 Print#语句从文件 Test Dat中读出信息 二、填空题(每空2分,共26分) 请将每空的正确答案写在答题卡【1】~【13】序号的横线上,答在试卷上不得分。 (1)Ⅴ isual basic中有一种控件组合了文本框和列表框的特性,这种控件是【1】 (2)Ⅴ isual basic提供的对数据文件的三种访问方式为随机访问方式、【2】和二 进制访问方式 (3)执行下面的程序段后,变量S的值为【3】 For i=2.6 To 4.9 Step 0.6 Next i (4)为了在运行时把dpic文件夹下的图形文件ajpg装入图片框 Picture,所使 用的语句为【4】 (5)计时器控件能有规律的以一定时间间隔触发【5】事件,并执行该事件过程 中的程序代码 (6)以下程序的功能是:生成20个200到300之间的随机整数,输出其中能被5 整除的数并求出它们的和。请填空。 Private Sub Commandl Click For i=1 To 20 x=Int(【6】*101+200 If【7】=0Then 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 pI a, b
第3页 共8页 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 pl(x As Integer, By Val y As Integer End Sub 该程序运行后,单击窗体,则在窗体上显示的内容是:a=【9】和b=【10】。 (9)在窗体上画一个名称为 Combo的组合框,画两个名称分别为 Labell和Labe2 及 Caption属性分别为"城市名称"和空白的标签。程序运行后,当在组合框中输入 个新项后按回车键(ASCI码为13)时,如果输入的项在组合框的列表中不存在 则自动添加到组合框的列表中,并在 Label2中给出提示"已成功添加输入项"如图所 示;如果存在,则在 Label2中给出提示"输入项已在组合框中"。请在【11】、【12】 和【13】处将程序补充完整 Private Sub Combo【ll】( KeyAscii As Integer) If Key Ascii=13 Then For i=0 To Combo. List count-1 If Combo.Text=【12】Then Labe2 Caption="输入项已在组合框中” Exit Sub End lf Next i Label2 Caption="已成功添加输入项 ombo1.【13】 Cobol.Text End If End Sub 三、读程填程题(共22分) 1.求100以内的素数之和,(每空2分,共10分) Private Sub Commandl Click Dim flag As boolean For i= 2 To 100 flag Forj=2 To i-1 顶页共8页
第4页 共8页 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
It Then End If If flag= Then Next i 2.在控件数组 Picture(0)、 Picture(1)、 Picture(2)和 Picture(3)中移动图片,要求图 片可以在任意两个图片框中拖放,请补全程序。(1到4共4分,其他每空2分, 共12分) Dim you(3)As Boolean Private Sub Form Load Picturel(0). Picture=LoadPicture("d: \a bmp") you(o) End sub Private Sub Picturel Drag Drop(Index As Integer, Source As Control, X As If you(Index)= False Then Picturel(Index). Picture= Source Picture Picture you(Index = True =False End lf End Sub
第5页 共8页 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 Picturel Mouse Down(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) If you( Index) Then Picture(Index) End If End Sub 四、编程题(32分) 1.从键盘输入5个数到数组s(5)中,并求s5)中最大元素的值和它的下标(10 分) 2.以1,2,3,4,5为边长可以形成多少个三角形,不考虑相同情况,请输出这 些三角形的三个边长。(10分) 3.用递归的方法求两个正整数ab的最大公约数,已知a和b的公约数于b和amod b的公约数相同。请写出相应的 Function。(12分) 武汉职业技术学院 2005-200学年度第一学期考试试卷A 考试课目:《 Visual basic程序设计》答题纸 班级 学号 姓名 题号 四总分 分数 选择题(102=20分) 页共8页
第6页 共8页 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 分)
题号 答案b 填空题(13×2=26分) 组合框—2_顺序方式3. 4. Picture l picture=load pictured 5 timer 6. 10.50 11. keypress 12. additem 三、读程填程题(5×2=104×1=44x×2=8共22分) true flag=false loadpictureo drag 四、编程题(10+10+12=32分做在答题纸上,另发) Private Sub Command 1 Click Dim a(5)As Integer For i= 1 To 5 a(i)=Va( nput Box("输入数据") Next For i=2 To 5 a() a(i): xb Print End Sub
第7页 共8页 题号 1 2 3 4 5 6 7 8 9 10 答案 b a d b c d b d b d 二、 填空题(13╳2=26 分) 1. 组合框 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 Command 1 Click For a=1 To 5 For b= 1 to a For c=1 To b Ifb+c>a Then s=s+ 1: Print a, b, c Next c b a End Sub Function gys(m As Integer, n As Integer)As Integer Ifn=0 Then Else gys=gys(n, m Mod n) End If End Function 页共8页
第8页 共8页 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