全国计算机等级考试二级VB上机题库题型总结(共37页).doc
精选优质文档-倾情为你奉上这些题型是本套全国计算机等级考试VB所常见的。便将此整理一下,以供大学考前使用。祝大家能顺利通过二级。谢谢。上机第1套一、基本操作题(1)在名为Form1的窗体上绘制一个名为Fra1的框架,标题为"框架示例",高度为2000,宽度为3500;在框架中绘制一个文本框。名为Txt1,高度为600,宽度为2000,其位置距框架的左边框和上边框均为800,文本框中的初始内容设置为"文本框示例"二、简单应用题(1)在考生文件夹中有一个工程文件vbsj3.vbp及其窗体文件vbsj3.frm。在名为Form1的窗体上有一个单选按钮数组,含3个单选按钮,均没有标题。程序功能:在运行时,如果选中一个单选按钮后,单击"显示"按钮,则根据单选按钮的选中情况,在窗体上显示"你所在的城市是北京"、"你所在的城市是上海"或"你所在的城市是天津"。要求:请利用属性窗口,为单选按钮依次添加标题:"北京"、"上海"和"天津",设初始选取中的是"北京",再添加一个标题为"显示"的命令按钮,如图1-3所示。删除程序中语句前面的注释符"'",把程序中的问号"?"改为正确的内容,使其实现上述功能,但不得修改程序的其他部分,也不得修改控件的其他属性。最后,将修改后的文件按原文件名保存在原文件夹中。程序源码:Private Sub Cmd1_Click() For i = 0 To 2 If Opt1(i).Value = True Then Print "你所在的城市是" + Opt1(i).Caption End If NextEnd Sub上机第2套题二、简单应用题(1)在考生文件夹中有一个工程文件vbsj3.vbp及其窗体文件vbsj3.frm。请在名为Form1的窗体上建立一个菜单,主菜单项为"项目"(名称为mnuItem),它有两个子菜单项,其名称分别为mnuItemAdd和mnuItemDel,标题分别为"添加"和"删除",然后绘制一个名为Lst1的列表框和一个名为Txt1的文本框。编写适当的事件过程。程序运行后,如果单击"添加"命令,则从键盘上输入要添加到列表框中的项目(内容任意,不少于3个);如果单击"删除"命令,则从键盘上输入要删除的项目,将其从列表框中删除。程序的运行结果如图1-8所示。在考生文件夹中的工程文件vbsj3.vbp(相应的窗体文件名为vbsj3.frm),可以实现上述功能。但程序不完整,请补充完整。程序源码:Private Sub mnuItemAdd_Click() Txt1.Text = InputBox("_请输入要添加的项目")' Lst1.AddItem ?End SubPrivate Sub mnuItemDel_Click()Txt1.Text = InputBox(" _请输入要删除的项目")' For i = 0 To ?' If Lst1.List(i) = ? Then' Lst1.RemoveItem ? End If Next iEnd SubLst1.AddItem Txt1.TextFor i = 0 To Lst1.ListCount - 1If Lst1.List(i) = Txt1.Text ThenLst1.RemoveItem i(2)在考生文件夹中有工程文件vbsj4.vbp及其窗体文件vbsj4.frm。在名为Form1的窗体上有一个名称为Lst1的列表框,一个名称为Txt1的文本框,以及一个名为Cmd1的命令按钮(标题为"复制")。要求程序运行后,在列表框中自动建立4个列表项,分别为"项目1"、"项目2"、"项目3"和"项目4"。如果选择列表框中的一项,则单击"复制"按钮时,可以把该项复制到文本框中,如图1-9所示。 图1-8 图1-9程序源码:Option ExplicitPrivate Sub Cmd1_Click() Dim i As Integer' For i = ? To _Lst1.ListCount-1 If Lst1.Selected(i) = True Then' ? = Lst1.List(i) End If Next iEnd SubPrivate Sub Form_Load() Lst1.AddItem "Item1" Lst1.AddItem "Item2" Lst1.AddItem "Item3" Lst1.AddItem "Item4"End SubFor i = 0 To Lst1.ListCount - 1Txt1.Text = Lst1.List(i)要求:删除程序中语句前面的注释符"'",把程序中的问号"?"改为正确的内容,使其实现上述功能,但不得修改程序的其他部分,也不得修改控件的其他属性。最后,将修改后的文件按原文件名保存在原文件夹中。三、综合应用题在名为Form1的窗体上建立一个名为Txt1的文本框(其MultiLine属性为True,ScrollBars属性为2)和两个名称分别为Cmd1和Cmd2的命令按钮(它们的标题分别为"读取"和"保存"),如图1-10所示。图1-10要求程序运行后,如果单击"读取"按钮则读入dr021.dat文件中的100个整数,放一个数组中(数组下界为1);如果单击"保存"按钮,则筛选出100个整数中的所有偶数,在文本框Txt1中显示出来,并把所有偶数之和存入考生文件夹中的文件dw021.dat。在考生文件夹下有标准模块model.bas,其中writedata过程可以把一个整数存入dw021.dat文件,考生可以把该模块文件添加到自己的工程中。注意:程序中对文件的操作统一使用相对路径;文件必须存放在考生文件夹中,窗体文件名为vbsj5.frm,工程文件名为vbsj5.vbp,结果存入dw021.dat文件,否则没有成绩。'Option ExplicitSub writedata(ByVal a As Integer) Dim sFile As String sFile = "dw021.dat" Open App.Path & sFile For Output As #1 Print #1, a; Close #1End SubDim a(100) As IntegerPrivate Sub Cmd1_Click() Open App.Path & "dr021.dat" For Input As #1 Txt1.Text = "" For i = 1 To 100 Input #1, a(i) Txt1.Text = Txt1.Text & a(i) & Space(1) Next i Close #1End SubPrivate Sub Cmd2_Click() Txt1.Text = "" s = 0 For i = 1 To 100 If a(i) Mod 2 = 0 Then Txt1.Text = Txt1.Text & a(i) & Space(1) s = s + a(i) End If Next writedata sEnd Sub上机第3套题一、基本操作题(2)在Form1窗体上绘制一个名为Txt1的文本框,然后建立一个名为mnuOp的主菜单,其标题为"操作",该菜单有两个名称分别为mnuOpDis和mnuOpCls的子菜单项,其标题分别为"显示"和"清除"。编写适当的事件过程,使程序运行后,若单击"操作"菜单中的"显示"命令,在文本框显示Visual Basic;如果单击"清除"命令,则清除文本框中显示的内容。程序的运行效果如图1-12所示。注意:文件必须存放在考生文件夹中,工程文件名为vbsj2.vbp,窗体文件名为vbsj2.frm。上机第4套一、基本操作题(2)在窗体上绘制一个列表框,名为Lst1,通过属性窗口向列表框中添加4个项目,分别为"项目1"、"项目2"、"项目3"和"项目4"。编写适当的事件过程,使程序运行后,若双击列表框中的某一项,则该项就从列表中消失。程序的运行情况如图1-18所示。注意:文件必须存放在考生文件夹中,工程文件名为vbsj2.vbp,窗体文件名为vbsj2.frm。Private Sub Lst1_DblClick() Lst1.RemoveItem Lst1.ListIndexEnd Sub上机第5套题二、简单应用题(1)在考生文件夹中有一个工程文件vbsj3.vbp及其窗体文件vbsj3.frm。在名为Form1的窗体中有一个名为Txt1的文本框;请在窗体上绘制两个名称分别为Fra1和Fra2的框架,其标题分别为"性别"和"身份";在Fra1中绘制两个名称分别为Opt1和Opt2的单选按钮,其标题分别为"男"和"女";在Fra2中绘制两个名称分别为Opt3和Opt4的单选按钮,其标题分别为"学生"和"老师";再绘制一个名为Cmd1的命令按钮,其标题为"确定"。程序界面如图1-24所示。请编写适当的事件过程,使得在运行时,在Fra1、Fra2中选一个单选按钮,然后单击"确定"按钮,就可以按照表1-2把结果显示在文本框中。表1-2 运行结果表性别身份在文本框中显示的内容男学生男学生男老师男老师女学生女学生女老师女老师程序源码:Private Sub Form_Unload(Cancel As Integer) Open "dw051.dat" For Output As #1 Print #1, Opt1.Value, Opt2.Value, Opt3.Value, Opt4.Value, Txt1.Text Close #1End Sub注意:不得修改窗体文件中已经存在的程序和Txt1的属性,在结束程序运行之前,必须进行能够产生上表中一个结果的操作;必须用窗体右上角的关闭按钮结束程序,否则无成绩。最后保存修改后的文件。参考代码:Private Sub Cmd1_Click() If Opt1.Value = True Then If Opt3.Value = True Then Txt1.Text = "我是" + Opt1.Caption + Opt3.Caption Else Txt1.Text = "我是" + Opt1.Caption + Opt4.Caption End If Else If Opt3.Value = True Then Txt1.Text = "我是" + Opt2.Caption + Opt3.Caption Else Txt1.Text = "我是" + Opt2.Caption + Opt4.Caption End If End IfEnd Sub上机第6套题三、综合应用题在考生文件夹下有文件dr061.dat,文件中有几行汉字。请在窗体Form1上绘制一个名为Txt1的文本框,它能显示多行;再绘制一个名称为Cmd1的命令按钮,其标题为"保存"。编写适当的事件过程,使得在加载窗体时,把dr061.dat文件的内容显示在文本框中,然后在文本的最前面手工插入一行汉字:"计算机VB考试",如图1-31所示。最后单击"保存"按钮,可以把文本框中修改过的内容存到文件dw061.dat中。 图1-31注意:只能在最前面插入文字,不能修改原有文字。文件必须存放在考生文件夹中,以vbsj5.vbp为文件名存储工程文件,以vbsj5.frm为文件名存储窗体文件。Private Sub Form_Load() Dim str1 As String Open App.Path & "dr061.dat" For Input As #1 Do While Not EOF(1) Input #1, str1 Txt1.Text = Txt1.Text + str1 Loop Close #1End SubPrivate Sub Cmd1_Click() Open App.Path & "dw061.dat" For Output As #1 Print #1, Txt1.Text Close #1End Sub上机第7套题一、基本操作题(2)在名为Form1的窗体上放置一个名为Txt1的文本框。程序运行后,用户在文本框中输入的英文字母一律用大写显示(要求焦点在最右端),如图1-33所示。注意:文件必须存放在考生文件夹中,窗体文件名为vbsj2.frm,工程文件名为vbsj2.vbp。 图1-33Private Sub Txt1_Change() Txt1.Text = UCase(Txt1.Text) Txt1.SelStart = Len(Txt1.Text)End Sub上机第9套题二、简单应用题(1)在考生文件夹中有一个工程文件vbsj3.vbp,相应的窗体文件为vbsj3.frm。在名为Form1的窗体上有一个命令按钮和一个文本框。程序运行后,单击命令按钮,即可计算出0200范围内能被3整除的所有整数的和,并在文本框中显示出来,如图1-44所示。在窗体的代码窗口中,已给出了部分程序,其中计算0200范围内能被3整除的所有整数的和的操作在通用过程Fun中实现,请编写该过程的代码。要求:请勿改动程序中的任何内容,只在Function Fun()和End Function之间填入所编写的若干语句。最后,按原文件名并在原文件夹中保存修改后的文件。程序源码:Sub SaveData() Open App.Path & "" & _"dw091.dat" For Output As #1 Print #1, Txt1.Text Close #1End SubFunction Fun() Dim sum As Integer Dim i As Integer For i = 1 To 200 If i Mod 3 = 0 Then sum = sum + i End If NextTxt1.Text = sumFun=sumEnd FunctionPrivate Sub Cmd1_Click() d = Fun() SaveDataEnd Sub上机第10套题一、基本操作题(2)在名为Form1的窗体上绘制一个名为Drv1的DrivelListBox控件,一个名为Dir1的DirListBox控件和一个名为File1的FileListBox控件。编写适当的事件过程,使程序运行时,可以对系统中的文件进行浏览;当双击File1中的文件名时,用MsgBox显示文件名(不显示路径名)。如图1-48所示。注意:程序中不得使用任何变量;文件必须存放在考生文件夹中,窗体文件名为vbsj2.frm,工程文件名为vbsj2.vbp。参考代码:Private Sub Drv1_Change() Dir1.Path = Drv1.DriveEnd SubPrivate Sub Dir1_Change() File1.Path = Dir1.PathEnd SubPrivate Sub File1_Click() MsgBox File1.FileNameEnd Sub上机第12套题二、简单应用题(2)在考生文件夹中有一个工程文件vbsj4.vbp,相应的窗体文件为vbsj4.frm。在名为Form1的窗体上有一个名称为Cmd1,标题为"求小于600的整数之和"的命令按钮。其功能是产生30个01000的随机整数,放入一个数组中,然后输出这30个整数中小于600的所有整数之和。程序运行后,单击命令按钮,即可求出这些整数的和,并在窗体上显示出来,如图1-62所示。程序不完整,请补充完整,并能正确运行。要求:删除程序中语句前面的注释符"'",把程序中的问号"?"改为正确的内容,使其实现上述功能,但不得修改程序的其他部分,也不得修改控件的其他属性。最后,将修改后的文件按原文件名保存在原文件夹中。程序源码Option Base 1Private Sub Cmd1_Click() Dim arrN(30) As Integer Dim Sum As Double Randomize For i = 1 To 30' arrN(i) = Int(Rnd * ?) Next i' Sum = ? For i = 1 To 30' If ? Then' Sum = ? End If Next i Print SumEnd Sub参考代码:arrN(i) = Int(Rnd * 1001)Sum = 0if arrN(i)<600 thenSum = Sum + arrN(i)上机第13套题一、基本操作题(2)在名为Form1的窗体上绘制一个名为Cmd1的命令按钮,标题为"打开",再绘制一个名为dlgFileOpen的通用对话框。程序运行后,若单击命令按钮,则弹出"打开文件"对话框。请按下列要求设置属性和编写代码:设置适当属性,使对话框的标题为"打开文件";设置适当属性,使对话框的"文件类型"下拉式组合框中有两行"文本文件"、"所有文件",如图1-65所示,默认的类型是"文本文件";编写命令按钮的事件过程,使得单击按钮可以弹出"打开文件"对话框。注意:程序中不得使用变量,事件过程中只能写一条语句;文件必须存放在考生文件夹中,工程文件名为vbsj2.vbp,窗体文件名为vbsj2.frm。 图1-65上机第17套题二、简单应用题(2)在考生文件夹中有一个工程文件vbsj4.vbp,相应的窗体文件为vbsj4.frm。在名为Form1的窗体上有一个命令按钮和一个文本框。程序运行后,单击"计算"命令按钮,即可计算出数组arr中每个元素与其下标相除所得的和,并在文本框中显示出来,运行效果如图1-87所示。在窗体的代码窗口中,已给出了部分程序,其中计算数组arr中每个元素与其下标相除所得的和的操作在通用过程Fun中实现,请编写该过程的代码。要求:请勿改动程序中的其他部分,只在Function Fun()和End Function之间填入所编写的若干语句并运行程序。最后按原文件名并在原文件夹中保存修改后的文件。说明:数组arr中共有40个元素,所谓"数组arr中每个元素与其下标相除所得的和",指的是:arr(1)/1+arr(2)/2+arr(3)/3+arr(40)/40。程序源码:Option Base 1Function Fun(a() As Single) As Single Dim sum As Single Dim i As Integer For i = LBound(a) To UBound(a) sum = sum + a(i) / i Next Fun = sumEnd FunctionPrivate Sub Cmd1_Click() Dim arr Dim arr2(40) As Singlearr = Array(11.5, 65.84, 52, 78, 221.23, 22.25, 43.2, 26, 25.6, _56.7,9.6, 89.24, 34.37, 45.44, 56.59, 67.64, 7.8, 9.8, 87.45, _6.18,34.6, 55.8, 64.7, 43.7, 99.4, 84.7, 66.2, 23.9, 55.5, _44.1,13.22, 43.25, 1.22, 28.23, 78.26, 98.23, 56.31, 73.46, _9.63, 48.53) For i = 1 To UBound(arr) arr2(i) = arr(i) Next i r = Fun(arr2() Txt1.Text = Str(r) SaveDataEnd SubSub SaveData() Open "dw171.dat" For Output As #1 Print #1, Txt1.Text Close #1End Sub上机第18套题三、综合应用题数列:1,1,2,3,5,8,3,21的规律是从第3个数开始,每个数是它前面两个数之和。在考生文件夹下有一个工程文件vbsj5.vbp(相应的窗体文件为vbsj5.frm)。窗体Form1中已经给出了所有控件。编写适当的事件过程完成以下功能:选中一个单选按钮后,单击"显示结果"按钮,则计算出上述数列的第n项的值(n是选中的单选按钮后面的数值),并显示在文本框中,如图1-93所示(提示:因计算结果较大,应使用Long型变量)。 图1-93注意:不能修改已经给出的程序和已有的控件的属性;在结束程序运行之前,必须选中一个单选按钮,并单击"显示结果"按钮获得一个结果;必须使用窗体右上角的"关闭"按钮结束程序,否则无成绩。最后把修改后的文件按原文件名存盘。程序源码:Private Sub _Form_Unload(Cancel As _Integer) Opt1(0).Value = False Opt1(1).Value = True Opt1(2).Value = False Cmd1_Click unload_subEnd Sub参考代码:Private Sub Cmd1_Click() Dim a() As Long Dim i As Integer Dim n As Integer For i = 0 To Opt1.Count-1 If Opt1(i).Value = True Then n = Val(Opt1(i).Caption) Exit For End If Next ReDim a(n) a(1) = 1 a(2) = 1 For i = 3 To n a(i) = a(i - 1) + a(i - 2) Next Txt1.Text = a(n)End Sub上机第19套题一、基本操作题(2)在名为Form1的窗体上放置两个名称分别为Lst1和Lst2的列表框。在Lst1中添加"项目1"、"项目2"、"项目10",并设置MultiSelect属性为2(要求在控件属性中设置)。再放置一个名为Cmd1的命令按钮,其标题为"复制"。程序运行后,若单击"复制"按钮,将Lst1中选中的内容(至少两项)复制到Lst2中,如图1-95所示。若选择的项数少于两项,用消息框提示"请至少选择两项"。注意:文件必须存放在考生文件夹中,窗体文件名为vbsj2.frm,工程文件名为vbsj2.vbp。图1-95Private Sub Cmd1_Click() Dim n As Integer Dim i As Integer For i = 0 To Lst1.ListCount - 1 If Lst1.Selected(i) = True Then n = n + 1 End If Next If n < 2 Then MsgBox "请至少选择两项" Else For i = 0 To Lst1.ListCount - 1 If Lst1.Selected(i) = True Then Lst2.AddItem Lst1.List(i) End If Next End IfEnd Sub三、综合应用题在名为Form1的窗体上绘制一个名称为Txt1的文本框,其MultiLine属性为True,初始内容为空白;两个名称分别为Cmd1和Cmd2的命令按钮,它们的标题分别为"添加两条记录"和"显示所有记录"。编写适当的事件过程,程序运行后,如果单击"添加两条记录"命令按钮,则向考生文件夹下的dr191.dat文件中添加两条记录,该文件是一个用随机存取方式建立的文件,共有3个记录,新添加的记录作为第4、第5个记录;如果单击"显示所有记录"命令按钮,则把该文件中的全部记录(包括原来的3个记录和新添加的2个记录,共5个记录)在文本框中显示出来,如图1-98所示。随机文件dr191.dat中的每个记录包括3个字段,分别为姓名、电话号码和邮政编码,其名称、类型和长度分别为: 图1-98其类型定义为:Private Type PalInfo Name As String *8 Tel As String * 10 Post As LongEnd Type变量定义为:Dim Pal As PalInfo要求:单击"添加两条记录"按钮,则打开随机文件dr191.dat,向文件中添加第4、第5个记录。这两条记录依次为(其中的字母必须是小写字母):Zhangnan Wangjie 单击"显示所有记录"按钮,则在文本框中显示dr191.dat文件中的5个记录,每个记录显示一行。存盘时必须存放在考生文件夹中,工程文件名为vbsj5.vbp,窗体文件名为vbsj5.frm。Private Type PalInfo Name As String * 8 Tel As String * 10 Post As LongEnd TypeDim Pal As PalInfoPrivate Sub Cmd1_Click() Open App.Path & "dr191.dat" For Random As #1 Len = Len(Pal) Pal.Name = "Zhangnan" Pal.Tel = "" Pal.Post = Put #1, 4, Pal Pal.Name = "Wangjie" Pal.Tel = "" Pal.Post = Put #1, 5, Pal Close #1End SubPrivate Sub Cmd2_Click() Txt1.Text = "" Open App.Path & "dr191.dat" For Random As #1 Len = Len(Pal) While Not EOF(1) Get #1, , Pal Txt1.Text = Txt1.Text & Pal.Name & Pal.Tel & Pal.Post & vbCrLf Wend Close #1End Sub上机第25套题二、简单应用题(1)在考生文件夹中有一个工程文件vbsj3.vbp,相应的窗体文件为vbsj3.frm。在名为Form1的窗体上有一个名称为Cmd1的命令按钮,其标题为"添加";一个名为Txt1文本框,初始内容为空白;一个名称为Lst1的列表框。程序运行后,如果在文本框中输入一个英文句子(由多个单词组成,各单词之间用一个空格分开),然后单击"添加"按钮,程序将把该英文句子分解为单词,并把每个单词作为一个项目添加到列表框中,如图1-126所示。该程序不完整,请补充完整。图1-126要求:去掉程序中的注释符"'",把程序中的问号"?"改为正确的内容,使其能正确运行,但不得修改程序的其他部分。最后,按原文件名并在原文件夹中保存修改后的文件。程序源码Private Sub Cmd1_Click()Dim S1 As StringDim S2 As StringDim I1 As Integer' S1 = ? I1 = 1 Do' Do While Mid(S1, I1, 1) _<> ? And I1 <= Len(S1) S2 = S2 & Mid(S1, I1, 1) I1 = I1 + 1 Loop' Lst1.AddItem ?' S2 = ? I1 = I1 + 1 Loop While I1 <= Len(S1)End Sub参考代码S1 = Txt1.TextDo While Mid(S1, I1, 1) <> " " And I1 <= Len(S1)Lst1.AddItem S2S2 = ""上机第26套题二、简单应用题(2)在名为Form1的窗体上绘制一个名为Txt1的文本框;再建立一个名为mnuFormat的弹出式菜单,它含有3个名称分别为mnuForat1、mnuFormat2、mnuFormat3的子菜单项,它们的标题分别为"加粗"、"斜体"和"下划线"。请编写适当的事件过程,在运行时当用鼠标右键单击文本框时,弹出此菜单,选中一个菜单项后,则进行菜单标题所描述的操作,如图1-137所示。注意:文件必须存放在考生文件夹中,工程文件名为vbsj4.vbp,窗体文件名为vbsj4.frm。 参考代码:Private Sub Txt1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then Me.PopupMenu mnuFormat End IfEnd SubPrivate Sub mnuFormat1_Click() Txt1.FontBold = TrueEnd SubPrivate Sub mnuFormat2_Click() Txt1.FontItalic = TrueEnd SubPrivate Sub mnuFormat3_Click() Txt1.FontUnderline = TrueEnd Sub三、综合应用题在考生文件夹中有一个工程文件vbsj5.vbp和窗体文件vbsj5.frm。在窗体Form1中已经给出了所有控件。编写适当的事件过程实现以下功能:单击"读数"按钮,则把考生目录下的dr271.dat文件中的一个整数放入Txt1;单击"计算"按钮,则计算出小于该数的最大素数,并显示在Txt2中,如图1-138所示;单击"保存"按钮,则把找到的素数存到考生目录下的dw271.dat文件中。图1-138注意:在结束程序运行之前必须单击"保存"按钮,把结果存入dw271.dat文件,否则无成绩。最后把修改后的文件按原文件名保存。程序源码:Private Sub Cmd1_Click() Open App.Path & "" & _"dr271.dat" For Input As #1 Input #1, a% Txt1.Text = a% Close #1End SubPrivate Sub Cmd3_Click() Open "dw271.dat" For Output As #1 Print #1, Txt2.Text Close #1End Sub参考代码:Private Sub Cmd2_Click() Dim k As Integer k = Val(Txt1.Text) While Not isprime(k) k = k - 1 Wend Txt2.Text = kEnd SubPrivate Function isprime(m As Integer) As Boolean For i = 2 To m - 1 If m Mod i = 0 Then isprime = False Exit Function End If Next isprime = TrueEnd Function上机第29套题二、简单应用题(1)在考生文件夹中有工程文件vbsj3.vbp及其窗体文件vbsj3.f