1、VB机试模拟试卷 4及答案与解析 一、基本操作题( 30分) 1 注意:下面出现的 “考生文件夹 ”均为 c:wexam25160001。 请根据以下各小题的要求设计 Visual Basic应用程序 (包括界面和代码 )。 (1)在名称为 Form1的窗体上建立一个名称为 Text1的文本框,一个名称为 Cmd1,标题为 “输出 ”的命令按钮,如图 4-1所示。要求程序运行后,在文本框输入几个字符,单击 “输出 ”按钮,则在窗体上显示文本框中的文字。 注意:在程序中不能使用任何变量。保存时必须存放在考生文件夹下,窗体文件名为 sjt1.frm,工程文件名为 sjt1.vbp。 (2)在名称为
2、Form1的窗体上建立两个名称分别为 Cmd1和 Cmd2,标题为 “按钮一 ”和 “按钮二 ”的命令按钮,如图 4-2所示。要求程序运行后,如果单击 “按钮一 ”,则把 “按钮二 ”移到 “按钮一 ”上,使两个按钮重合,如图 4-3所示。 注意:在程序中不得使用任何变量 (必须通过属性设置来移动控件 )。保存时必须存放在考生文件夹下,窗体文件名为 sjt2.frm,工程文件名为sjt2.vbp 二、简单应用题( 40分) 2 注意:下面出现的 “考生文件夹 ”均为 c: wexam25160001。 (1)在窗体上建立一个名称为 Text1的文本框,然后建立两个主菜单,其标题分别为 “商品类
3、别 ”和 “帮助 ”,名称分别为 vbMenu和 vbHelp,其中 “商品类别 ”菜单包括 “百货 ”、 “食品 ”和“家电 ”三个子菜单,名称分别为 vbMenu1、 vbMenu2和 vbMenu3。程序运行后,如果在 “商品类别 ”的下拉菜单中选择 “百货 ”,则在文本框内显示 “大类核算 ”;如果选择 “食品 ”,则在文本框内显示 “中类核算 ”;如果选择 “家电 ”,则在文本框内显示“小类核算 ”。程序中不能使用任何变量,直接显示字符串。程序 运行界面如图 6-3所示。 注意:保存时必须存放在考生文件夹下,窗体文件名为 sjt3.frm,工程文件名为 sjt3.vbp。 (2)在考
4、生文件夹中有文件 sjt4.vbp及其窗体文件 sjt4.frm,该程序是不完整的,请在有 ? 号的地方填入正确内容,然后删除 ? 及所有注释符 (即,号 ),但不能修改其他部分。存盘时不得改变文件夹和文件名。 本题描述如下: 窗体上有一个名称为Text1的文本框:两个复选框,名称分别为 Ch1和 Ch2,标题分别为 “英语班 ”和 “计算机班 ”。要求程序运行后,如果只选中 Ch1,单击窗体,则在 文本框中显示 “报名参加英语班 ”;如果只选中 Ch2,然后单击窗体,则在文本框中显示 “报名参加计算机班 ”:如果同时选中 Ch1和 Ch2,单击窗体,则在文本框中显示 “报名参加英语班和计算机
5、班 ”;如果 Ch1和 Ch2都不选取,在单击窗体后,则在文本框中什么都不显示。程序运行界面如图 6-4所示 三、综合应用题( 30分) 3 下面出现的 “考生文件夹 ”均为 c:wexam25160001。 在考生文件夹中有工程文件sjt5.vbp及其窗体文件 sjt5.frm,该程序是不完整的,请在有 ?号的地方填入正确内容,然后删除 ?及所有注释符 (即,号 )但不能修改其他部分。存盘时不得改变文件名和文件夹。 本题描述如下: 在名称为 Form1的窗体上有一个文本框,名称为Text1, MultiLine属性为 True, ScrollBars属性为 2,两个命令按钮,名称分别为Cmd
6、1和 Cmd2,标题分别为 “读入数据 ”和 “排序显示保存 ”,如图 5-6所示。程序运行后,如果单击 “读入数据 ”按钮,则读入 in.txt文件中的 100个整数,放入一个数组中 (数组下界为 1):如果单击 “排序显示保存 ”按钮,则对这 100个整数按从大到小进行排序,把排序后的全部数据在 文本框 Text1中显示出来,然后存入考生文件夹的 out.txt文件中。 (考生文件夹下的标准模块 model.bas中的 putdata过程可以把指定个数的数组元素存入 out txt文件。 )注意:文件必须存放在考生文件夹下,窗体文件名为 sjt5.frm,工程文件名 sjt5.vbp,排序
7、结果存入 out.txt文件中,否则没有成绩。 VB机试模拟试卷 4答案与解析 一、基本操作题( 30分) 1 【正确答案】 (1)在窗体上建立好控件后,先设置控件属性,再编写事件过程。 通过命令按钮的 Caption属性来设置其 标题,单击命令按钮触发 Click事件;文本框显示内容是用 Text属性。文本框中的内容通过其 Text属性得到,在命令 按钮的Click事件中利用 Print方法将文本框中的内容输出,完成题目要求。解题步骤: 第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表 4-1。第二步:编写程序代码。 参考代码: Private Sub Cmd1_Click()
8、Cls Print Text1.Text End Sub 第三步:调试并运行程序。 第四步:按题目要求存盘。 (2)在窗体上建立好控件后,先设置控件的 属性,再编写事件过程。 命令按钮的 Caption属性用来设置其标题,单击命令按钮触发 Click事件,本题考查的是按钮的摆放位置的设置,涉及到对象的 Left和 Top属性。 Left表示控件与所在窗体的左边之间的距离, Top表示控件与所在窗体的顶边之间的距离。让两个按钮位置重合只需将两个按钮的 Left和 Top设置相同即可。 解题步骤: 第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表 4-2。第二步:编写程序代码。 参考代
9、码: Private Sub Cmd1_Click() Cmd2.Left = Cmd1.Left Cmd2.Top = Cmd1.Top End Sub 第三步:调试并运行程序。 第四步:按题目要求存盘。 二、简单应用题( 40分) 2 【正确答案】 (1)在窗体上建立好控件后,先设置控件属性,再编写事件过程。 在 Visual Basic中,菜单也被看作控件,具有属性和事件。菜单的建立在菜单编辑器中完成,菜单的级数通过内缩符号来表示,第一级菜单没有内缩符号,第二级菜单的内缩符号为 1:文本框的内容由 Text属性设置。解题步骤: 第一步:建立界面并设置控件属性。程序中用到的控件及其属 性见
10、表 6-3。第二步:编写程序代码。 参考代码: Private Sub vbMenu1_Click() Text1.Text=“大类核算 “ End Sub Private Sub vbMenu2_Click() Text1.Text=“中类核算 “ End Sub Private Sub vbMenu3_Click() Text1.Text=“小类核算 “ End Sub 第三步:调试并运行程序。 第四步:按题目要求存盘。 (2)在窗体上建立好控件后,先设置控件属性,再编写事件过程。 在 Visual Basic中,复选按钮的标题由 Caption属性设置, Value属性用来表示复选框的状
11、态,复选框的 Value属性有 0、 1或 2三种取值,其作用为: 0:表示未选中; 1:表示选中该复选框; 2:表示该复选框被禁止 (灰色 )。解题步骤: 第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表 6-4。第二步:编写程序代码。 程序提供的代码: Option Explicit Private Sub Form Click() Text1.Text = “ If Ch1.Value = ? Then Text1.TeXt = Text1.Text + “英语班 “ End If If Ch2.Value Then If Text1.Text “ Then Text1.Te
12、xt = ? + “和 “ Text1.Text = Text1.Text + “计算机班 “ End If If Text1.Text “ Then Text1.Text = “报名 参加 “ + Text1.Text End If End Sub 参考代码: Option Explicit Private Sub Form Click() Text1.Text = “ If Ch1.Value = 1 Then Text1.Text = Text1.Text + “英语班 “ End If If Ch2.Value Then If Text1.Text “ Then Text1.Text
13、= Text1.Text + “和 “ Text1.Text = Text1.Text + “计算机班 “ End If If Textl.Text “ Then Text1.Text = “报名参加 “ + Text1.Text End If End Sub 第三步:调试并运行程序。 第四步:按题目要求存盘。 三、综合应用题( 30分) 3 【正确答案】 在窗体上建立好控件后,先设置控件属性,再编写事件过程。 文本框显示的内容由 Text属性设置:按钮的标题由 Caption属性设置,单击命令按钮触发 Click事件:在本题中涉及到文件的操作,读入顺序文件以顺序的方式打开,用 Input#语
14、句读取数 据,另外需要注意的是对文件操作完后,一定要关闭文件。排序的方法有多种,如冒泡排序、选择排序等,本题用的是选择排序法。 选择法排序的思想是:每一次循环从数组的 n-i+1(I=1, 2, , n-1)个元素中选择一个值最小的元素与你 n-i+1个元素的前面那个元素交换位置,即与整个数组的第 i个位置的元素交换位置。如此下去,直到 i=n-1时,排序结束。解题步骤: 第一步:建立界面并设置控件的属性。程序中用到的控件及其属性见表 5-5。第二步:编写程序代码。 程序提供的代码。 model.bas代码: Sub putdata(a() As Integer, n As Integer)
15、Dim sFile As String sFile =“out.txt“ Open App.Path & sFite For Output As #1 For i= 1 To n Print #1, a(i) ; Next Close #1 End Sub 窗体代码: Option Explicit Dim i(1 To 100) As Integer Private Sub Cmd1_ Click() Dim j As Integer Open App Path&“in.txt“For Input As #1 For j = ? To 100 Input #1, i(j) Text1.Tex
16、t = Text1.Text & i(j) & Space(5) Next Close #1 End Sub Private Sub Cmd2_Click() Dim j As Integer Dim k As Integer Dim temp As Integer Dim flag As Boolean For j = 1 To 100 flag = ? For k = 1 To 100 - j If i(k) i(k + 1) Then temp = i (k) i(k) = i(k + 1) i(k + 1) = temp flag = True End If IQ If Not fla
17、g Then Exit For End If Next Text1.Text = “ For j = 1 To 100 Text1.Text = Text1.Text & i(j) & Space(5) Next putdata i, 100 End Sub 参考代码: Option Explicit Dim i(1 To 100) As Integer Private Sub Cmd1_Click() Dim j As Integer Open App. Path& “in.txt“ For Input As #1 For j = 1 To 100 Input #1, i(j) Text1.
18、Text = Text1.Text & i(j) & Space(5) Next Close #1 End Sub Private Sub Cmd2_Click() Dim j As Integer Dim k As Integer Dim temp As Integer Dim flag As Boolean For j = 1 To 100 flag = False For k = 1 To 100 - j If i(k) i(k + 1) Then temp = i (k) i(k) = i(k + 1) i(k + 1) = temp flag = True End If Next If Not flag Then Exit For End If Next Text1.Text = “ For j = 1 To 100 Text1.Text = Text1.Text & i(j) & Space(5) Next putdata i, 100 End Sub 第三步:调试并运行程序。 第四步:按题目要求存盘。