1、二级 VISUAL+BASIC 机试-91 及答案解析(总分:100.00,做题时间:90 分钟)一、1 基本操作题(总题数:1,分数:30.00)请根据以下各小题的要求设计 Visual Basic 应用程序(包括界面和代码)。(分数:30.00)(1).在名称为 Form1 的窗体上建立一个名称为 Command1,宽度为 1600,高度为 600,标题为“输出”的命令按钮,编写适当的事件过程,要求程序运行后,如果单击“输出”命令按钮,则在窗体上显示“Hello World!”,如下图左图所示。程序中不能使用任何变量,直接显示字符串。注意:保存时必须存放在考生文件夹下,窗体文件名为 Sj1
2、.frm,工程文件名为 sj1.vbp。(分数:15.00)_(2).在名称为 Form1 的窗体上建立两个名称分别为 Command1 和 Command2,标题分别为“上午”和“下午”的命令按钮。编写适当的事件过程,要求程序运行后,如果单击“上午”命令按钮,在窗体上显示“上午9:0012:00”;如果单击“下午”命令按钮,在窗体上显示“下午 12:0018:00”。程序中不能使用任何变量,直接显示字符串。程序运行结果如下图右图所示。 注意:保存时必须存放在考生文件夹下,窗体文件名为 sj2.frm,工程文件名为 sj2.vbp。*(分数:15.00)_二、2 简单应用题(总题数:2,分数:
3、40.00)1.在窗体上建立一个名称为 Texl1 的文本框,然后建立两个主菜单,标题分别为“操作系统”和“帮助”,名称分别为 vbOS 和 vbHelp,其中“操作系统”菜单包括“windows”、“Unix”和“AppleMacos”三个子菜单,名称分别为 vbOS1、vbOS2 和 vbOS3。要求程序运行后,在“操作系统”的下拉菜单中选择“windows”,则在文本框内显示“个人用户”;如果选择“Unix”,则在文本框内显示“服务器”;如果选择“AppleMacOS”,则在文本框内显示“苹果电脑”,如下图所示。注意:保存时必须存放在考生文件夹下,窗体文件名为 sj3.frm,工程文件名
4、为 sj3.vbp。(分数:20.00)_2.在考生文件夹中有文件 sj4.vbp 及其窗体文件 sj4.frm,该程序是不完整的,请在有“?”的地方填入正确内容,然后删除“?”及代码前的所有注释符(即号),但不能修改其他部分。存盘时不得改变文件夹和文件名。本题描述如下:窗体上有一个名称为 Text1 的文本框,两个复选框,名称分别为 Check1 和 Check2,标题分别为“C+”和“Basic”。要求程序运行后,如果 Check1 和 Check2 都不选,则单击窗体后,在文本框中什么都不显示;如果只选中 Check1,则单击窗体后,在文本框中显示“我掌握 C+”;如果只选中 Check
5、2,则单击窗体后,在文本框中显示“我掌握 Basic”;如果同时选中 Check1 和 Check2,则单击窗体后,在文本框中显示“我掌握 C+和 Basic”。程序运行后,若选择 Check2,则单击窗体后,显示界面如下图所示。(分数:20.00)_三、3 综合应用题(总题数:1,分数:30.00)3.在考生文件夹中有工程文件 Sj5.vbp 及其窗体文件 sj5.frm,该程序是不完整的,请在有“?”的地方填入正确内容,然后删除“?”及代码前的所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。本题描述如下:在名称为 Form1 的窗体上有一个文本框,名称为 Text1、
6、MultiLine 属性为 True、ScrollBars 属性为 2;两个命令按钮,名称分别为 Command1 和 Command2,标题分别为“读取”和“计算保存”,运行界面如下图所示。要求程序运行后,如果单击“读取”按钮,则读人“in.txt”文件中的 50 个整数,放入一个数组中(数组下界为 1),同时在文本框中显示出来;如果单击“计算保存”按钮,则计算大于或等于 500 的所有数的平均数,并把求得的结果在文本框 Text1 中显示出来,同时把该结果存入考生文件夹中的文件“out.txt”中(在考生文件夹下的标准模块 mode.bas 中的 writedata 过程可以把结果存入指定
7、的文件)。注意:文件必须存放在考生文件夹下,窗体文件名为 sj5.frm,工程文件名为 sj5.vbp,计算结果存入out.txt 文件,否则没有成绩。(分数:30.00)_二级 VISUAL+BASIC 机试-91 答案解析(总分:100.00,做题时间:90 分钟)一、1 基本操作题(总题数:1,分数:30.00)请根据以下各小题的要求设计 Visual Basic 应用程序(包括界面和代码)。(分数:30.00)(1).在名称为 Form1 的窗体上建立一个名称为 Command1,宽度为 1600,高度为 600,标题为“输出”的命令按钮,编写适当的事件过程,要求程序运行后,如果单击“
8、输出”命令按钮,则在窗体上显示“Hello World!”,如下图左图所示。程序中不能使用任何变量,直接显示字符串。注意:保存时必须存放在考生文件夹下,窗体文件名为 Sj1.frm,工程文件名为 sj1.vbp。(分数:15.00)_正确答案:(命令按钮的高度由 Height 属性设置,宽度由 Width 属性设置,单击命令按钮触发 Click 事件;在窗体上打印信息通过 Print 方法来实现。根据题意,新建“标准 EXE”工程,将一个命令按钮添加到窗体中,其名称为 Command1,Caption 属性为输出,Height 属性为 600,width 属性为 1600。双击命令按钮进入代码
9、窗口,编写如下代码:Private Sub Command1_Click()Print“Hello World!“End Sub单击 )解析:(2).在名称为 Form1 的窗体上建立两个名称分别为 Command1 和 Command2,标题分别为“上午”和“下午”的命令按钮。编写适当的事件过程,要求程序运行后,如果单击“上午”命令按钮,在窗体上显示“上午9:0012:00”;如果单击“下午”命令按钮,在窗体上显示“下午 12:0018:00”。程序中不能使用任何变量,直接显示字符串。程序运行结果如下图右图所示。 注意:保存时必须存放在考生文件夹下,窗体文件名为 sj2.frm,工程文件名为
10、 sj2.vbp。*(分数:15.00)_正确答案:(单击命令按钮触发 Click 事件,命令按钮的标题由其 Caption 属性设置;在窗体上打印信息通过 Print 方法来实现。根据题意,新建“标准 EXE”工程,将两个命令按钮和一个标签添加到窗体中,将两个 Command 的名称分别设为 Command1 和 Command2,Caption 属性分别设为“上午”和“下午”,标签的名称为Label1,Caption 属性为空,设置完成后双击Command1 进入代码窗口,编写如下代码:Private Sub Command1_Click()Form1.ClsPrint“上午 9:0012
11、:00“End SubPrivate Sub Command2_Click()Form1.ClsPrint“下午 12:0018:00“End Sub单击 )解析:二、2 简单应用题(总题数:2,分数:40.00)1.在窗体上建立一个名称为 Texl1 的文本框,然后建立两个主菜单,标题分别为“操作系统”和“帮助”,名称分别为 vbOS 和 vbHelp,其中“操作系统”菜单包括“windows”、“Unix”和“AppleMacos”三个子菜单,名称分别为 vbOS1、vbOS2 和 vbOS3。要求程序运行后,在“操作系统”的下拉菜单中选择“windows”,则在文本框内显示“个人用户”;
12、如果选择“Unix”,则在文本框内显示“服务器”;如果选择“AppleMacOS”,则在文本框内显示“苹果电脑”,如下图所示。注意:保存时必须存放在考生文件夹下,窗体文件名为 sj3.frm,工程文件名为 sj3.vbp。(分数:20.00)_正确答案:(在 Visual Basic 中,菜单也被看做控件,具有属性和事件。菜单的建立在菜单编辑器中完成,菜单的级数通过内缩符号来表示,第一级菜单没有内缩符号,第二级菜单的内缩符号为 1。根据题意,新建“标准 EXE”工程,按Ctrl+E组合键打开菜单编辑器,在其中添加如下菜单项:标 签 名 称 内 缩操作系统 vbOS 无Windows vbOS1
13、 一位Unix vbOS2 一位AppleMacOSvbOS3 一位帮助 vbHelp无单击“确定”按钮,完成菜单编辑。再将一个文本框控件添加到窗体中,将其名称设为 Text1。如下代码:Private Sub vbOS1_Click(Index As Integer) Windows 选项Text1.Text=“个人用户“End SubPrivate Sub vbOS2_Click(Index As Integer) Unix 选项Text1.Text=“服务器“End SubPrivate Sub vbOS3_Click(Index As Integer) AppleMacOS 选项Tex
14、t1.Text=“苹果电脑“End Sub单击 )解析:2.在考生文件夹中有文件 sj4.vbp 及其窗体文件 sj4.frm,该程序是不完整的,请在有“?”的地方填入正确内容,然后删除“?”及代码前的所有注释符(即号),但不能修改其他部分。存盘时不得改变文件夹和文件名。本题描述如下:窗体上有一个名称为 Text1 的文本框,两个复选框,名称分别为 Check1 和 Check2,标题分别为“C+”和“Basic”。要求程序运行后,如果 Check1 和 Check2 都不选,则单击窗体后,在文本框中什么都不显示;如果只选中 Check1,则单击窗体后,在文本框中显示“我掌握 C+”;如果只选
15、中 Check2,则单击窗体后,在文本框中显示“我掌握 Basic”;如果同时选中 Check1 和 Check2,则单击窗体后,在文本框中显示“我掌握 C+和 Basic”。程序运行后,若选择 Check2,则单击窗体后,显示界面如下图所示。(分数:20.00)_正确答案:(复选框用来表示状态,在程序运行期间可以改变其状态。复选框标题由 Caption 属性来设置,复选框的 Value 属性用来表示复选框的状态,其取值有:0 表示复选框未被选中;1 表示复选框被选中;2 表示复选框被禁止使用(灰色)。根据题意,将一个文本框控件和两个复选按钮添加到窗体中,文本框控件的名称设为 Text1,复选
16、按钮的名称分别设为 Check1和 Check2,Caption 属性分别设为 C+和 Basic。由于是单击窗体触发事件,因此,双击窗体进入代码窗口,补充后的代码如下:Private Sub form click()Text1.Text=“ “If Check1.Value And Not Check2.Value Then Text1.Text=“我掌握 C+“If Check1.Value=0 And Check2.Value Then Text1.Text=“我掌握 Basic“If Check1.Value And Check2.Value=1 Then Text1.Text=“我掌
17、握 C+和 Basic“End Sub单击 )解析:三、3 综合应用题(总题数:1,分数:30.00)3.在考生文件夹中有工程文件 Sj5.vbp 及其窗体文件 sj5.frm,该程序是不完整的,请在有“?”的地方填入正确内容,然后删除“?”及代码前的所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。本题描述如下:在名称为 Form1 的窗体上有一个文本框,名称为 Text1、MultiLine 属性为 True、ScrollBars 属性为 2;两个命令按钮,名称分别为 Command1 和 Command2,标题分别为“读取”和“计算保存”,运行界面如下图所示。要求程序
18、运行后,如果单击“读取”按钮,则读人“in.txt”文件中的 50 个整数,放入一个数组中(数组下界为 1),同时在文本框中显示出来;如果单击“计算保存”按钮,则计算大于或等于 500 的所有数的平均数,并把求得的结果在文本框 Text1 中显示出来,同时把该结果存入考生文件夹中的文件“out.txt”中(在考生文件夹下的标准模块 mode.bas 中的 writedata 过程可以把结果存入指定的文件)。注意:文件必须存放在考生文件夹下,窗体文件名为 sj5.frm,工程文件名为 sj5.vbp,计算结果存入out.txt 文件,否则没有成绩。(分数:30.00)_正确答案:(文本框显示的内
19、容由 Text 属性设置,Multiline 属性设置文本框是否可多行显示;按钮的标题由 Caption 属性设置,单击命令按钮触发 Click 事件。题中涉及对文件的操作,读入顺序文件以顺序的方式打开,用 Input #语句读取数据,另外需要注意的是对文件操作完后,一定要关闭文件。根据题意要求将一个文本框控件和两个命令按钮添加到窗体中,其中文本框的名称为 Name1,MultiLine属性为 True,滚动属性为 2;命令按钮的名称分别为 Command1 和 Command2,Caption 的属性分别为“读取”和“计算保存”。在“工程”窗口中单击鼠标右键,在弹出的快捷菜单中选择“添加”“
20、添加模块”,然后在弹出对话框的“现存”选项卡中选择“mode.bas”,单击“确定”按钮即添加成功。模块mode.bas 中的代码如下:Function writeData(total As Long)Open “out.txt“ For Output As # 1Write # 1,totalClose # 1End Function窗体中补充后的代码如下: Dim a(50) As Long 全局变量Dim str(50) As String 全局变量Dim total As LongDim n As IntegerPrivate Sub Command1_Click()total=0n=
21、0Text1.Text=“ “Open “in.txt“ For Input As # 1 打开“in.txt”文件Dim i AS IntegerDim temp As IntegerFor i=0 To 49Input # 1,tempa(i)=temp 按顺序读入到数组中Next iFor i=0 To 49If a(i)500 Thentotaltotal+a(i) 当符合条件时进行相加n=n+1 当符合条件是则 n 增 1End Ifstr(i)=a(i)Text1.Text=Text1.Text+str(i)+vbCrLf 将数组中的 50 个数放入 Text 中显示Next itotal=total/nClose # 1End SubPrivate Sub Command2_Click()Text1.Text=totalwriteData(total) 将结果保存到 out.txtEnd Sub单击 )解析: