1、二级 VISUAL+BASIC 机试-120 及答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)完成下列问题:(分数:30.00)(1).在标题为“列表框”、名称为 Form1 的窗体上画一个名称为 List1 的列表框,通过属性窗口输入 4 个列表项:“数学”、“语文”、“历史”、“地理”,列表项采用复选框形式,如图 1 所示。列表框的宽为 1100,高不限。*注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1.vbp,窗体文件名为 sjt1.frm。(分数:15.00)_(2).在名称为 Form1 的窗体上建立一个名称为 menu
2、1、标题为“文件”的弹出式菜单,其中含有 3 个菜单项,它们的标题分别为:“打开”、“关闭”、“保存”,名称分别为 m1、m2、m3。再画一个命令按钮,名称为 Command1、标题为“弹出菜单”。要求:编写命令按钮的 Click 事件过程,使程序运行时,单击“弹出菜单”按钮可弹出“文件”菜单(如图 2 所示)。*注意:程序中不得使用变量,事件过程中只能写一条语句。存盘时必须存放在考生文件夹下,工程文件名为 sjt2.vbp,窗体文件名为 sjt2.frm。(分数:15.00)_二、简单应用题(总题数:1,分数:40.00)完成下列问题:(分数:40.00)(1).在考生文件夹下有一个工程文件
3、 sjt3.vbp,相应的窗体文件为 sjt3.frm。其功能是产生 20 个01000 的随机数,放入一个数组中,然后输出这 20 个整数的平均值。程序运行后,单击命令按钮(名称为 Command1,标题为“输出平均值”),即可求出其平均值,并在窗体上显示出来(如图 3 所示)。这个程序不完整,清把它补充完整,并能正确运行。*要求:在程序中的横线处填写正确的内容,使其实现上述功能,但不能修改程序的其他部分,最后把修改后的文件按原文件名存盘。题目提供的源程序Option Base 1Private Sub Command1_Click()Dim arrN(20) As IntegerDim A
4、ver As SingleDim Sum As Integer, iRandomizeFor i=1 To 20arrN(i)=Int(Rnd* (1) )Next iSum= (2) For i=1 To 20Sum= (3) Next iAver= (4) Print AverEnd Sub(分数:20.00)_(2).在考生文件夹下有一个工程文件 sjt4.vbp,相应的窗体文件为 sjt4.frm,在窗体上有一个命令按钮和一个文本框。程序运行后,单击命令按钮,即可计算出 0200 范围内能被 3 整除的所有整数的和,并在文本框中显示出来。在窗体的代码窗口中,已给出了部分程序,其中计算能
5、被 3 整除的整数的和的操作在通用过程 Fun 中实现,请编写该过程代码。要求:请勿改动程序中的任何内容,只在 Function Fun()和 End Function 之间填入若干语句。最后把修改后的文件按原文件名存盘。题目提供的源程序Sub SaveData()Open App.Path & “/“ & “outtxt.txt“ For Output As #1Print #1.Text1.TextClose #1End SubFunction Fun()考生应编写的程序End FunctionPrivate Sub Command1_Click()d=Fun()Text1.Text=dS
6、aveDataEnd Sub(分数:20.00)_三、综合应用题(总题数:1,分数:30.00)1.以下数列:1,1,2,3,5,8,13,21,的规律是从第三个数开始,每个数是它前面两个数之和。在考生文件下有一个工程文件 sjt5.vbp。窗体中已经给出了所有控件,如图 4 所示。请编写适当的事件过程完成以下功能:选中一个单选按钮后,单击“计算”按钮,则计算出上述数列的第 n 项的值,并显示在文本框中,n 是选中的单选按钮后面的数值。(提示:因计算结果较大,应使用长整型变量。)(分数:30.00)_二级 VISUAL+BASIC 机试-120 答案解析(总分:100.00,做题时间:90 分
7、钟)一、基本操作题(总题数:1,分数:30.00)完成下列问题:(分数:30.00)(1).在标题为“列表框”、名称为 Form1 的窗体上画一个名称为 List1 的列表框,通过属性窗口输入 4 个列表项:“数学”、“语文”、“历史”、“地理”,列表项采用复选框形式,如图 1 所示。列表框的宽为 1100,高不限。*注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1.vbp,窗体文件名为 sjt1.frm。(分数:15.00)_正确答案:(操作步骤第 1 步:新建一标准 EXE 工程,设置窗体的 Caption 属性为“列表框”。第 2 步:在窗体上画一个列表框,保持默认名称 Lis
8、t1 不变,在列表框的 List 属性中输入 4 个选项:“数学”、“语文”、“历史”、“地理”,并修改列表框 List1 的 Style 属性值为 1-Checkbox,修改列表框 List1 的 Width 属性值为 1100。第 3 步:调试、运行并保存程序。)解析:解析 列表框控件的列表项存储在 List 属性中。列表框的样式由 Style 属性决定,默认为 0-Standard,列表项的前面不显示复选框;当把 Style 属性设置为 1-Checkbox 时,列表项的前面将显示复选框。(2).在名称为 Form1 的窗体上建立一个名称为 menu1、标题为“文件”的弹出式菜单,其中含
9、有 3 个菜单项,它们的标题分别为:“打开”、“关闭”、“保存”,名称分别为 m1、m2、m3。再画一个命令按钮,名称为 Command1、标题为“弹出菜单”。要求:编写命令按钮的 Click 事件过程,使程序运行时,单击“弹出菜单”按钮可弹出“文件”菜单(如图 2 所示)。*注意:程序中不得使用变量,事件过程中只能写一条语句。存盘时必须存放在考生文件夹下,工程文件名为 sjt2.vbp,窗体文件名为 sjt2.frm。(分数:15.00)_正确答案:(操作步骤第 1 步:新建一标准 EXE 工程,保持窗体的默认属性不变。第 2 步:打开菜单编辑器,在弹出的“菜单编辑器”窗口中按题目要求设计菜
10、单。设计好菜单之后的“菜单编辑器”如图 1 所示。)解析:解析 与设计下拉式菜单一样,设计弹出式菜单也是使用菜单编辑器。菜单编辑器设计的菜单默认都是作为下拉式菜单显示在窗口的顶部,若不希望菜单出现在窗口的顶部,则应将主菜单的 Visible 属性设置为 False。注意只需将主菜单的 Visible 属性设置为 False,子菜单的 Visible 属性必须设置为True。例如,本题中只需要将“文件”菜单 menu1 的 Visible 属性设置为 False,即在菜单编辑器内不选中可见复选框;m1、m2、m3 这 3 个子菜单项的 Visible 属性必须设置为 True,即在菜单编辑器内要
11、选中可见复选框。显示弹出菜单所使用的方法是 PopupMenu。该方法的使用形式是:对象.PopupMenu 菜单名, 标志参数,X,Y其中,菜单名是必需的,其他参数是可选的。二、简单应用题(总题数:1,分数:40.00)完成下列问题:(分数:40.00)(1).在考生文件夹下有一个工程文件 sjt3.vbp,相应的窗体文件为 sjt3.frm。其功能是产生 20 个01000 的随机数,放入一个数组中,然后输出这 20 个整数的平均值。程序运行后,单击命令按钮(名称为 Command1,标题为“输出平均值”),即可求出其平均值,并在窗体上显示出来(如图 3 所示)。这个程序不完整,清把它补充
12、完整,并能正确运行。*要求:在程序中的横线处填写正确的内容,使其实现上述功能,但不能修改程序的其他部分,最后把修改后的文件按原文件名存盘。题目提供的源程序Option Base 1Private Sub Command1_Click()Dim arrN(20) As IntegerDim Aver As SingleDim Sum As Integer, iRandomizeFor i=1 To 20arrN(i)=Int(Rnd* (1) )Next iSum= (2) For i=1 To 20Sum= (3) Next iAver= (4) Print AverEnd Sub(分数:20
13、.00)_正确答案:(操作步骤第 1 步:打开工程 sjt3.vbp。第 2 步:修改程序。第 3 步:调试、运行并保存程序。11001 20 3sum+arrN(i) 4sum/20)解析:解析 产生一个 ab 之间的随机整数的方法是:Int(Rnd*(b-a+1)+a)。累加求和时先设一个用于存储总和的变量,该变量的初始值为 0,如 sum=0,累加的方法为 sum=sum+m,其中 m 为需要累加的值。总数除以量的个数即可得到平均值。(2).在考生文件夹下有一个工程文件 sjt4.vbp,相应的窗体文件为 sjt4.frm,在窗体上有一个命令按钮和一个文本框。程序运行后,单击命令按钮,即
14、可计算出 0200 范围内能被 3 整除的所有整数的和,并在文本框中显示出来。在窗体的代码窗口中,已给出了部分程序,其中计算能被 3 整除的整数的和的操作在通用过程 Fun 中实现,请编写该过程代码。要求:请勿改动程序中的任何内容,只在 Function Fun()和 End Function 之间填入若干语句。最后把修改后的文件按原文件名存盘。题目提供的源程序Sub SaveData()Open App.Path & “/“ & “outtxt.txt“ For Output As #1Print #1.Text1.TextClose #1End SubFunction Fun()考生应编写
15、的程序End FunctionPrivate Sub Command1_Click()d=Fun()Text1.Text=dSaveDataEnd Sub(分数:20.00)_正确答案:(操作步骤第 1 步:打开工程文件 sjt4.vbp第 2 步:编写函数 Fun,参考程序如下。Function Fun( )Sum=0For i=0 To 200If i Mod 3=0 Then Sum=Sum+iNext iFun=SumEnd Function第 3 步:调试、运行并保存程序。)解析:解析 使用 Mod 运算符来判断两个数的整除关系。三、综合应用题(总题数:1,分数:30.00)1.以下
16、数列:1,1,2,3,5,8,13,21,的规律是从第三个数开始,每个数是它前面两个数之和。在考生文件下有一个工程文件 sjt5.vbp。窗体中已经给出了所有控件,如图 4 所示。请编写适当的事件过程完成以下功能:选中一个单选按钮后,单击“计算”按钮,则计算出上述数列的第 n 项的值,并显示在文本框中,n 是选中的单选按钮后面的数值。(提示:因计算结果较大,应使用长整型变量。)(分数:30.00)_正确答案:(操作步骤第 1 步:打开题目对应工程文件 sjt5.vbp。第 2 步:双击“计算”按钮进入代码编写窗口,编写代码。参考代码如下:Private Sub Command1_Click()
17、Dim SL() As LongDim n As Integer通过被选中的单选按钮的标题属性得到需要计算的项数If Op1(0).Value=True Thenn=Val(Op1(0).Caption)Elself Op1(1).Value=True Thenn=Val(Op1(1).Caption)Elsen=Val(Op1(2).Caption)End IfReDim SL(1 To n) 根据项数定义数组SL(1)=1SL(2)=1For i=3 To nSL(i)=SL(i-1)+SL(i-2) 通过下标表示各数之间的关系Next iText1=SL(n)End Sub第 3 步:调试、运行并保存程序。)解析:解析 题目中所指的数列就是著名的斐波那契数列。可以有多种方法求出斐波那契数列,其中一种方法是用数组来存储数列的各个值,因为数组的下标可以方便地表示出前后数之间的关系。题目中要求:“单击计算按钮,则计算出上述数列的第 n 项的值”,所以应该在“计算”按钮的单击事件过程完成数列的计算。计算时可以根据当前选中的单选按钮的标题得到应该计算的项数。