1、国家二级 VB机试(上机操作)模拟试卷 448及答案与解析 一、基本操作题 1 (1)在名称为 Form1的窗体上添加一个名称为 L1,标题为 “业余爱好 ”的标签,再添加一个名称为 Ch1的复选框数组,含 3个复选框,它们的 Index属性分别为 0、1、 2,标题依次为 “体育 ”、 “音乐 ”、 “美术 ”,清设置复选框的属性,使其初始状态如下表所示。 程序运行后的窗体如图所示。 注意:存艇时必须存放在考生文件夹下,工程文件名为 sjt1 vbp窗体文件名保存为 sjt1 frm。 (2)在名称为 Form1的窗体上添加一个名称为 Text1的文本框;再建立一个下拉菜单,菜单标题为 “操
2、作 ”,名称为 M1,此菜单下含有两个菜单项,名称分别为 Show和Hide,标题分别为 “显示 ”、 “隐藏 ”,请编写适当的事件过程,使程序运行时,单击“隐藏 ”菜单项,文本框消失;单击 “显示 ”菜单项。文本框重新出现,程序运行后的窗体如图所示。要求程序中不得使用变量,每个事件过程中只能写一条语句。注意:存盘时必须存放在考生文件夹下,工程文件名保存为 sjt2 vbp窗体文件名保存为 sjt2 frm。 二、简单应用题 2 (1)在学生文件夹下有一个工程文件 sjl3 vbp(相应的窗体文件名为 sjt3 frm),在窗体上添加一个名称为 List1的列表框和一个名称为 Text1的文本
3、框,如图 1所示。编写窗体的 MouseDown事件过程。程序运行后,如果用鼠标单击窗体,则从键盘上输入要添加到列表框中的项目 (内容任意,不少于三个 );如果用鼠标右键单击窗体,则从键盘上输入要删除的项目,将其从列表框中删除。程序的运行情况如图 2所示。这个程序不完整,请把它补充完整,并能正确运行。 要求:去掉程序中的注释符,把程序中的 ?改为适当的内容,使其正确运行,但不能修改程序中的其他部分。最后 将修改后的文件按原文件名存盘。(2)在考生文件夹下有一个工程文件 sjt4 vbp(相应的窗体文件名为 sjt4 frm),其功能是通过调用过程 FindMin求数组的最小值。程序运行后,在
4、4个文本框中各输入一个整数,然后单击命令按钮,即可求出数组的最小值,并住窗体上显示出来 (如图所示 )。 要求:去掉程序中的注释符,把程序中的 ?改为正确的内容,使其实现上述功能,们不能修改程序中的其他部分。最后把修改后的文件按原文件名存盘。三、综合应用题 3 在考生文件夹下有一个工程文件 sjt5 vbp,其名称为 Form1的窗体上已有三个文本框 Text1、 Text2、 Text3,以及部分程序代码,请完成以下工作。 在属性窗口中修改 Text3的适当属性,使其在运行时不显示,作为模拟的剪贴板使用,窗体如图所示。 建立下拉式菜单,如下表所示。 窗体文件中给出了所有任何件过程,但不完整,
5、请去掉程序中的注释符,把程序中的 ?改为正确的内容,以便实现如下功能:当光标所住的文件框中无内容时, “剪切 ”、 “复制 ”不可用,否则可以把该文本框中的内容剪切或复制到 Text3中;若 Text3中无内容,则 “粘贴 ”不能用,否则可以把 Text3中的内容粘贴在光标所在的文本框中的内容之后。 注意:不能修改程序中的其他部分,各菜单项的标题名称必须正确。最后将修改后的文件按原文件名存盘。 国家二级 VB机试(上机操作)模拟试卷 448答案与解析 一、基本操作题 1 【正确答案】 (1)步骤 1:建立界面,按照题目要求建立一个名称为 L1, Caption属性为 “业余爱好 ”的标签和 1
6、个名称为 Chl的复选框数组,包含 3个复选框,并设置其相应属性,如图 3 24所示。设置其他控件相关属性,程序中用到的控件及属性见表 3 24。步骤 2:调试并运行程序,关闭程序 后按题目要求存盘。 (2)步骤 1:新建一个 “标准 EXE”工程,在窗体中绘制一个文本框,在属性设置窗口中将其 Name属性值设置为 Text1。打开菜单编辑器,按表 3 25设置建立菜单项。步骤 2:打开代码编辑窗口,在指定位置编写如下代码。 参考答案 Private Sub Hide Click() Text1 visible=False当用户单击了 ”隐藏 ”菜单项时,则 Text1不可见 End Sub
7、Private Sub Show Click() Text1 ViSible=True同理, Text1可见 End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 【试题解析】 (1)复选框有一个特殊属性就是 Value属性,它的取值和用法与单选按钮有所差别。如果 Value属性的值取为 0,代表复选框处于未选中状态,此时复选框的选项部分是一个空白的小方块;如果 Value属性的值取为 1,代表复选框处于选中状态,此时复选框的选项部分是一个带有 “、 ”标记的小方块;若 Value属性的值取为 2,代表复选框处于禁止选择状态。系统默认值为 0,即未选中状态。复选框是否可用通过其
8、: Enabled属性设置。 (2)文本框的 Visible属性用于设置其在运行时是否可见。通过 “菜单编辑器 ”窗口建立菜单项。 二、简单应用题 2 【正确答案】 (1)步骤 1:打开本题工程文件,按表 3 18所列在窗体画出控件并设置其属性。 步骤 2:打开代码编辑窗口,去掉程序中的注释符 “”,将问号改为正确的内容。 参考答案 Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Sinqle) If Button=1 Then Text1 Text=InputBox(“请输入要
9、添加的项目 “) List1 AddItem Text1 Text将 Text1中的内容加入列表 End If If Button=2 Then Text1 Text=InputBox(“请输入要删除的项目 “) 列表总数用 ListCount求得 For i =0 ToList1 ListCount-1 判断列表项是否为要删除的项 If List1 List(i) =Text1 Text Then 删除 i所对应的项 List1 Removeltem i EndIf Next i EndIf End Sub 程序结束 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 (2)步骤 1:打开
10、本题工程文件。 步骤 2:打开代码编辑窗口,去掉程序中的注释符 “”, 将问号改为正确的内容。 参考答案 Option Base 1 Private Function FindMin(a()As Integer) Dim Start As Integer Dim Finish As Integer, i As Integer Start=LBound(a)求数组下界值 Fini sh=UBound(a)求数组上界值 Min=a(Start)将第一个数赋给最小值进行比较 For i=Start To Finish循环判断找最小值 If a(i) 【试题解析】 (1)当在窗体上按下鼠标键时将触发其
11、 MouseDown事件,该事件过程的参数 Button值为 1时表示当前按下的是鼠标左键;当 Button值为 2时表示当前按下的是鼠标右键。向列表框添加项目使用 Addhem方法,删除列表项使用RemoveItem方法。当执行删除操作时,本题在 For循环语句中逐一判断列表中各项是否与输入内容一致,若一致则删除列表框中该项。 程序中用到了 InputBox()函数,其格式为: InputBox(prompt, title, default, xpos, ypos, helpfile, context) 其中常用参数为 prompt和 title。 prompt是一个字符串,其长度不得超过
12、1024个字符,它是在对话框内显示的信息,用来提示用户输入。 title:是一个字符串,它是对话框的标题,显示在对话框顶部的标题区。 (2)文本框里的内容 (包括数字 )默认都是当做字符串来处理的,如果需要参与数据运算,则需先用 Val()函数将其转化为数字 (例如 Val(Text1 Text)。 CInt函数将数值转换为整型。 这里需要指出的是,利用 Array对数组 各元素赋值,声明数组的类型只能是Variant。 在本题的 FindMin过程中,用变量 Min记录最小值,最初把数组的第一个元素的值赋给 Min,然后通过 For循环语句将其后的元素依次与之比较,如果小于Min的值则与之交
13、换,依次类推,最终 Min的值就是数组各元素中的最小值。 在窗体上打印信息可以通过 Print方法来实现,其形式为: 对象 Print要显示的内容 三、综合应用题 3 【正确答案】 步骤 1:打开本题工程文件,将 Text3的 Visible属性设置为False,然后按照题 目要求建立菜单并设置其属性,如图 3 20所示。菜单属性如表 3 12所示。 步骤 2:打开代码编辑窗口,去掉程序中的注释符 “”,将问号改为正确的内容。 参考答案 Dim which As Integer Private Sub copy Click()复制按钮 If which=1 Then当焦点在 Text1中,将
14、Text1中的内容复制给 Text3 Text3 Text =Text1 Text Else If which=2 Then同理,焦点在 Text2中,将 Text2中的内容复制给 Text3 Text3 Text=Text2 Text End If End Sub Private Sub cut Click()剪切按钮 If which=1 Then当焦点在 Text1中,则将内容复制给 Text3,并清空 Text1内容 Text3 Text=Text1 Text Text1 Text=” ElSeIf which=2 Then同上 Text3 Text=Text2 Text Text2
15、Text=“ EndIf End Sub Private Sub edit Click()编辑 If which=1 Then If Text1 Text=“Then Cut Enabled=False Copy Enabled=False Else Cut Enabled=True Copy Enabled=True End If ElseIf which=2 Then If Text2 Text=“Then Cut Enabled=FalSe Copy Enabled=False Else Cut Enabled=True Copy Enabled=True EndIf EndIf If
16、Text3 Text=“Then PaSte Enabled=False Else PaSte Enabled=True EndIf End Sub Private Sub paste Click()粘贴按钮 If which=1 Then当焦点在 Text1中则将 Text3的内容追加到 Text1文件末尾 Text1 Text=Text1 Text+Text3 Text ElseIf which=2 Then同上 Text2 Text=Text2 Text+Text3 Text EndIf End Sub Private Sub Text1 GotFocus()本过程的作用是当焦点在 Te
17、xt1中时, which=1 WhiCh=1 End Sub Private Sub Text2 GotFocus()本过程的作用是当焦点在 Text2中时, which=2 which=2 End Sub 步骤3:调试并运行程序,关闭程序后按题目要求存盘。 【试题解析】 本题中隐藏的文本框 Text3的功能相当于剪贴板。在文本框 (17extl或 Text2)获得焦点触发的 GotFocus事件过程中,用窗体变量 which记录下该 文本框序号 (1或 2)。在 “编辑 ”菜单的 Click事件过程中,首先根据 which的不同值来判断相应文本框 (Text1或 Text2)的内容是否为空,如果内容为空则设置 “剪切 ”和 “复制 ”菜单项不可用,否则设置 “剪切 ”和 “复制 ”菜单项可用;其次判断 Text3文本框的内容是否为空,如果内容为空则设置 “粘贴 ”菜单项不可用,否则设置 “粘贴 ”菜单项可用。 在 “复制 ”命令的单击事件过程中,根据 which的值不同,将相应文本框 (Text1或 Text2)中的内容复制到 Text3文本框中。在 “剪切 ”命令的单击事件过程中除应执行与 “复制 ”命令相同的语句外,还应执行清除当前文本框中内容的语句。在 “粘贴 ”命令的单击事件过程中,也要根据 which值的不同,将 Text3文本框中的内容粘贴到文本框中的原内容之后。