2014年全国计算机二级考试VB上机题库(一)
一、基本操作题
  (1)在名称为Form1的窗体上绘制一个文本框,名称为Txt1,字体为“宋体”,文本框中的初始内容为“二级Visual Basic”;再绘制一个命令按钮,名称为Cmd1,标题为“改 变字体为楷体”。请编写适当事件过程,使得在运行时,单击命令按钮,则把文本框中文 字的字体改为楷体,如图50-1所示。
  

  注意:程序中不得使用任何变量;文件必须存放在考生文件夹中,工程文件名为
  vbsj1.vbp,窗体文件名为vbsj1.frm。
  (2)在名称为Form1的窗体上绘制一个名称为Cmd1的命令按钮,其标题为“移动”,
  位于窗体的左上部。编写适当的事件过程,使程序运行后,每单击一次窗体,都使得命令按钮同时向右、向下移动100。程序的运行情况如图50-2所示。
  

  注意:不得使用任何变量;文件必须存放在考生文件夹中,工程文件名为vbsj2.vbp, 窗体文件名为vbsj2.frm。
二、简单应用题
  (1)在名称为 Form1 的窗体中绘制一个名称为 Lab1 的标签,其标题为“0”,BorderStyle 属性为 1;再添加一个名称为 Tmr1 的计时器。请设置适当的控件属性,并编写适当的事 件过程,使得在运行时,每隔 1 秒钟标签中的数字加 1。程序运行时效果如图 50-3 所示。
  

  注意:程序中不得使用任何变量;文件必须存放在考生文件夹中,工程文件名为
  vbsj3.vbp,窗体文件名为 vbsj3.frm。
  (2)在考生文件夹中有一个工程文件 vbsj4.vbp 及窗体文件 vbsj4.frm。在名称为 Form1 的窗体上有一个名称为 Cmd1 的命令按钮,其标题为“下一个”。要求在窗体上建立一个单选按钮数组 Opt1,含 4 个单选按钮,标题分别为“A”、“B”、“C”和“D”,初始状态 下,“A”为选中状态。程序运行效果如图 50-4 所示。
  

  要求程序运行时,使得每单击命令按钮一次,就选中下一个单选按钮,如果已经选中最后一个单选按钮,再单击命令按钮,则选中第 1 个单选按钮。 窗体文件中已经给出了命令按钮的 Click 事件过程,但不完整,请去掉程序中的注释 符“’”,把程序中的问号“?”改为正确的内容。 注意:不能修改程序的其他部分。最后,按原文件名并在原文件夹中保存修改后的文件。
三、综合应用题
  编写一个程序,输入货物的数量及单价,求总价并输出。 窗体标题设置为“模拟售货机”,窗体上的两个标签(分别命名为 Lab1 和 Lab2,标 题为“货物的数量(个):”和“货物的单价(元):”)两个名称分别为 Txt1 和 Txt2 的文 本框;一个名称为 Cmd1 的命令按钮,其标题为“总价”。结果显示在名称为 Pic1 的图片 框中。当用户输入货物的数量与单价后,单击“总价”按钮,输出正确的结果,程序运行 效果如图 50-5 所示。
  注意:在存盘时,工程文件名为 vbsj5.vbp,窗体文件名为 vbsj5.frm。
  

试题答案及详解
  一、基本操作题
  第 1 小题
  【审题分析】本题需在命令按钮的单击事件过程中,通过修改文本框的 FontName 属性值为"楷体_GB2312"来改变文本框中文本的字体。
  【操作步骤】
  步骤 1:新建一个"标准 EXE"工程,按表 50-1 在窗体中画出控件并设置其相关属性。
  表 50-1
  步骤 2:打开代码编辑窗口,编写命令按钮的单击事件过程。
  参考代码:
  Private Sub Cmd1_Click()
  Txt1.FontName = "楷体_GB2312"
  End Sub
  步骤 3:按要求将文件保存至考生文件夹中。
  第 2 小题
  【审题分析】要使命令按钮位于窗体左上角需将其 Top 属性值和 Left 属性值设置为 0; 要在单击一次窗体后,命令按钮同时向右、向下移动 100,需在窗体的单击事件过程中, 设置命令按钮的 Top 属性值和 Left 属性值各增加 100。
  【操作步骤】
  步骤 1:新建一个"标准 EXE"工程,按表 50-2 在窗体中画出控件并设置其相关属性。
  表 50-2
  步骤 2:打开代码编辑窗口,编写命令按钮的 Click 事件过程。
  参考代码:
  PrivateSub Cmd1_Click()
  Cmd1.Left=Cmd1.left+100
  Cmd1.Top=Cmd1.Top+100
  End Sub
  步骤 3:按要求将文件保存至考生文件夹中。
二、简单应用题
  第 1 小题
  【审题分析】根据题目要求,要在程序运行时能每隔 1 秒,标签中的数字加 1,需将计时器的 Interval 属性值设置为 1000 毫秒,Enabled 属性值设置为 True,在计时器的 Timer 事件过程中将标签中的数值加 1。
  105
  ′ó?ò??ì3?????úμè????ê?ר?? http://club.topsage.com/forum-49-1.html ê??ˉ??àí 属性。
  【操作步骤】
  步骤 1:新建一个"标准 EXE"工程,按表 50-3 在窗体中画出控件并设置其相关属
  表 50-3
  步骤 2:双击窗体上的计时器控件,在其 Timer 事件过程中加入以下代码:
  参考代码:
  Private Sub Tmr1_Timer()
  Lab1.Caption = Lab1.Caption + 1
  End Sub
  步骤 3:按要求将文件保存至考生文件夹中。
  第 2 小题
  【审题分析】本题源程序在命令按钮的单击事件过程中,首先利用 For 循环语句(循 环变 k 的初值为 0,终值为 3)逐一检查单选按钮数组中的每个元素是否被选中,若选 中则用变 n 记录下选中单选按钮的索引号,即 n=k。循环结束后,取消对当前选中单选按钮的选择,且变 n 增 1;接着判断 n 的值是否为 4,若是则将 n 的值置为 0,重新从 单选按钮数组的第 1 个元素开始;最后设置索引号为 n 的单选按钮被选中。
  【操作步骤】
  步骤 1:打开考生文件中的本题工程文件 vbsj4.vbp,按表 50-4 在窗体中用"复制" 和"粘贴"命令画出包含 4 个元素的单选数组和 1 个命令按钮并设置属性。
  表 50-4
  步骤 2:打开代码编辑窗口,去掉程序中的注释符"’",将问号"?"改为正确的内容。
  参考代码:
  Private Sub Cmd1_Click()
  For k = 0 To 3
  If Opt1(k).Value Then
  106
  n
  = k
  End If
  Next k
  Opt1(n).Value = False
  n = n + 1
  If n = 4 Then
  n = 0
  End If
  Opt1(n).Value = True
  End Sub
  步骤 3:按要求将文件保存至考生文件夹中。
三、综合应用题
  【审题分析】本题其实就是设计一个简单的乘法运算,为避免不必要的错误,可在执行运算前用 Val 函数将文本框中数字字符串转换为数值数据。
  【操作步骤】
  步骤 1:新建一个"标准 EXE"工程,按表 50-5 在窗体中画出控件并设置其相关属性。
  表 50-5
  步骤 2:打开代码编辑窗口,编写"总价"命令按钮的单击事件过程。
  参考代码:
  Private Sub Cmd1_Click()
  Dim num As Integer
  Dim rmb As Currency
  num = Val(Txt1.Text)
  rmb = Val(Txt2.Text)
  Pic1.Cls
  Pic1.Print num * rmb
  End Sub
步骤 3:按要求将文件保存至考生文件夹中。
2014年全国计算机二级考试VB上机题库(二)
 一、基本操作题
  (1)在名为 Form1 的窗体上建立一个名为 Hsb1 的水平滚动条,其最大值为 300,最 小值为 0。要求程序运行后,每次移动滚动框时,都执行语句 Form1.Print Hsb1.Value,运 行效果如图 51-1 所示。
  

  注意:程序中不能使用任何其他变量;文件必须存放在考生文件夹中,窗体文件名为vbsj1.frm,工程文件名为 vbsj1.vbp。
  (2)在窗体绘制一个名为 Pic1 的图片框和一个名为 Cmd1 且其标题为“显示”的命 令按钮。编写适当的事件过程,使程序运行后,若单击“显示”命令按钮,则在图片框中 显示“这是一个图片框”,运行效果如图 51-2 所示。
  

注意:不要使用任何变量,直接显示字符串;文件必须存放在考生文件夹中,窗体文 件名为 vbsj2.frm,工程文件名为 vbsj2.vbp。
二、简单应用题
  (1)在考生文件夹中有工程文件 vbsj3.vbp 及其窗体文件 vbsj3.frm。在名为 Form1的窗体上有 3 个名称分别为 Txt1、Txt2 和 Txt3 的文本框;1 个名称为 Cmd1 的命令按钮, 其标题为“计算”。
  要求程序运行后,在 Txt1 和 Txt2 中分别输入两个整数,单击“计算”按钮后,可把 两个整数之间的所有整数(含两个整数)累加起来并在 Txt3 中显示出来,如图 51-3 所示。
  

  要求:在有问号“?”的地方填入正确内容,然后删除“?”及所有注释符“’”,但 不得修改其他部分。保存时不得改变文件名和文件夹。
  (2)在考生文件夹中有一个工程文件 vbsj4.vbp,相应的窗体文件为 vbsj4.frm。在名 为 Form1 的窗体上有两个名称分别为 Cmd1 和 Cmd2 的命令按钮;一个名称为 Lab1 的标 签控件;一个名称为 Tmr1 计时器控件。
  程序运行后,在命令按钮 Cmd1 中显示为“开始”;在命令按钮 Cmd2 中显示为“停 止”;标签中字号大小为 18 号、字体为粗体、显示为“欢迎光临”(标签的 AutoSize 属性 为 True);计时器的 Interval 属性设置为 100,Enabled 属性设置为 False。
  此时如果单击“开始”命令按钮,则该按钮变为禁用,标题变为“继续”,同时标签 自左至右移动(每个时间间隔移动 50),如图 51-4 所示。当标签移动出窗体右边界后,自 动从左边界开始向右移动;如果单击“停止”命令按钮,则该按钮变为禁用,“继续”命 令按钮变为有效,同时标签停止移动;再次单击“继续”命令按钮后,标签继续移动。本 程序不完整,请补充完整,并能正确运行。
  

  要求:去掉程序中的注释符“’”,把程序中的问号“?”改为正确的内容,使其实现上述功能,但不得修改程序的其他部分。最后,按原文件名并在原文件夹中保存修改后的文件。
三、综合应用题
  在考生文件夹下有一个工程文件vbsj5.vbp,相应的窗体文件为vbsj5.frm。在窗体Form1 上有两个名称分别为Cmd1和Cmd2的命令按钮,它们的标题分别为“写入文件”和“读出 文件”,如图51-5所示。
  

  其中“文件写入”命令按钮事件过程用来建立一个通讯录,以随机存取方式保存到文 件dw1.dat中;而“文件读出”命令按钮事件过程用来读出文件dw1.dat中的每个记录,并 在窗体上显示出来。
  通讯录中的每个记录由3个字段组成:姓名(Name)、电话(Tel)和邮政编码(Pos)。
  各字段的类型和长度为: 姓名(Name):字符串 15 电话(Tel):字符串 15 邮政编码(Pos):长整型(Long)
  程序运行后,如果单击“文件写入”命令按钮,则可以随机存取方式打开文件dw1.dat, 并根据提示向文件中添加记录,每写入一个记录后,都要询问是否再输入新记录,回答“Y”
  (或“y”)则输入新记录,回答“N”(或“n”)则停止输入;如果单击“文件读出”命 令按钮,则可以随机存取方式打开文件dw1.dat,读出文件中的全部记录,并在窗体上显 示出来。该程序不完整,请把它补充完整。
  要求:
  ①去掉程序中的注释符“’”,把程序中的问号“?”改为正确的内容,使其能正确运行,但不能修改程序中的其他部分。
  ②文件dw1.dat中已有3个记录,请运行程序,单击“文件写入”命令按钮,向文件dw1.dat 中添加以下2个记录(全部采用西文方式),如下所示。
  Tom (010)12345678 100000
  Jim (010)87654321 100001
  ③运行程序,单击“文件读出”命令按钮,在窗体上显示全部记录。
  ④用原来的文件名保存工程文件和窗体文件。
 试题答案及详解
  一、基本操作题
  第 1 小题
  【审题分析】本题只需按要求在窗体上画出滚动条并设置其属性,并在滚动条的 107 ′ó?ò??ì3?????úμè????ê?ר?? http://club.topsage.com/forum-49-1.html ê??ˉ??àí Change 事件过程中执行语句:Form1.Print Hsb1.Value。
  【操作步骤】
  步骤 1:新建一个"标准 EXE"工程,在窗体 Form1 中画一个水平滚动条,其属性及 其值见表 51-1。
  表 51-1
  步骤 2:在代码编辑窗口中,编写水平滚动条的 Change 事件过程。
  参考代码:
  Private Sub Hsb1_Change()
  Form1.Print Hsb1.Value
  End Sub
  步骤 3:按要求将文件保存至考生文件夹中。
  第 2 小题
  【审题分析】本题只需按要求在窗体上画出控件并设置其属性,并在按钮的 Click 事件过程中用图片框的 Print 语句输出"这是一个图片框"。
  【操作步骤】
  步骤 1:新建一个"标准 EXE"工程,在窗体 Form1 中画一个图片框和一个命令按钮, 其属性及其值见表 51-2。
  表 51-2
  步骤 2:在代码编辑窗口中,编写水平滚动条的 Change 事件过程。
  参考代码:
  Private Sub Cmd1_Click()
  Pic1.Print "这是一个图片框"
  End Sub
  步骤 3:按要求将文件保存至考生文件夹中。
二、简单应用题
  第 1 小题
  【审题分析】本题"计算"按钮单击事件过程源代码的设计思路:先用两变 a 和 b 分别记录在两个文本框输入的数据,并通过比较大小,使变 b 的值始终大于变 a 的值,
  t 为交换变 a 和 b 值的中间变 。然后利用 For 循环(循环变 i 的初值为 a,终值为 b), 将 i 的值逐个累加到变 s,循环结束时将变 s 的值显示在文本框中。
  【操作步骤】
  步骤 1:打开考生文件下的本题工程文件 vbsj3.vbp,在代码编辑窗口,编写"计算" 按钮的 Click 事件过程。
  参考代码:
  b
  s
  = i
  = s + i
  步骤 2:按要求将文件保存至考生文件夹中。
  108
  第 2 小题
  【审题分析】本题全部控件已画出,相关属性设置也在程序源码的窗体加载事件中设置,只需按题目要求完善其他相关事件过程。由于标签在窗体上的移动是在计时器的 Timer 事件过程中完成的,单击"开始"按钮时就应启动计时器,因此 Cmd1_Click 事件过程中的第 1 个?处应为 True;要禁用"开始"按钮就应设置其 Enabled 属性值为 False,第 2 个?处应为 False。
  单击"停止"按钮时要停止标签移动,就是要停止计时器,故 Cmd2_Click 事件过程中的第 3 个?处应为 False。在 Tmr1_Timer 事件过程中,要让标签每次自左至右移动 50, 可在每个时间间隔使标签的 Left 属性值在原有基础上加 50 来实现,故该事件过程中第 4 个?处应改为:Lab1.Left + 50;为防止标签移出窗体,在执行移动语句前先用 If?Then?
  Else 对其位置进行判断。
  【操作步骤】
  步骤 1:打开考生文件下的本题工程文件 vbsj4.vbp,在代码编辑窗口,去掉程序中的 注释符"’",将问号"?"改为正确的内容。
  参考代码:
  Tmr1.Enabled = True
  Cmd1.Enabled = False
  Tmr1.Enabled = False
  Lab1.Left = Lab1.Left + 50
  步骤 2:按要求将文件保存至考生文件夹中。
三、综合应用题
  【知识点播】LOF 函数可返回一个用 Open 语句打开的文件的大小,该大小以字节为单位,返回值为 Long 数据类型。
  【审题分析】本题源程序设计思路:在"文件写入"命令按钮的单击事件过程中,先用 Open 语句打开考生文件夹下的随机文件 dw1.dat,并通过计算得到随机文件现有记录数,存入变 RecNum;然后在 Do 循环中,为自定义数据类型变 Pers 的各元素赋值, 用 Put 语句将该变 的值写入打开的随机文件中(记录号为 RecNum+1),并通过输入对 话框询问是否要再输入新记录,Do 循环以输入对话框中返回值为"Y"(或"y")作为循环条件。
  在 "文件读出"命令按钮的单击事件过程中,先用 Open 语句打开考生文件夹下的随机 文件 dw1.dat,并通过计算得到随机文件现有记录数,存入变 RecNum;然后利用 For 循环语句(初值为 1,终值为 RecNum 的值),用 Get 语句读入随机文件中相应记录号的记录,赋值给变 Pers,并将变 Pers 各元素的值用 Print 方法显示在窗体上。
  【操作步骤】
  步骤 1:打开考生文件中的本题工程文件 vbsj5.vbp,在代码编辑窗口,去掉程序中的注释符"’",将问号"?"改为正确的内容。
  步骤 2:按要求将文件保存至考生文件夹中。
2014年全国计算机二级考试VB上机题库(三)
一、基本操作题
  (1)在名为 Form1 的窗体上建立级联菜单,该菜单含“文件”、“帮助”两项名称分 别为 mnuFile 和 mnuHelp 的主菜单项。其中“文件”菜单包括 3 个名称分别为 mnuFileOpen、 mnuFileClose、mnuFileExit的子菜单项,它们的标题分别为“打开”、“关闭”、“退出”, 如图 52-1 所示。
  

  注意:只建立菜单,不必定义其事件过程;文件必须存放在考生文件夹中,窗体文件 名为 vbsj1.frm,工程文件名为 vbsj1.vbp。
  (2)在 Form1 窗体上绘制一个名为 Txt1 的文本框,然后建立一个名为 mnuOp 的主 菜单,其标题为“操作”,该菜单有两个名称分别为 mnuOpDis 和 mnuOpCls 的子菜单项, 其标题分别为“显示”和“清除”。编写适当的事件过程,使程序运行后,若单击“操作” 菜单中的“显示”命令,在文本框显示 VisualBasic;如果单击“清除”命令,则清除文 本框中显示的内容。程序的运行效果如图 52-2 所示。
  

  注意:文件必须存放在考生文件夹中,工程文件名为vbsj2.vbp ,窗体文件名为vbsj2.frm。
二、简单应用题
  (1)在考生文件夹中有一个工程文件vbsj3.vbp及窗体文件vbsj3.frm。在名为Form1 的窗体中有两个图片框,名称分别为Pic1和Pic2,其中的图片分别是火箭和云层;有一个 计时器,名为Tmr1,有一个命令按钮,名为Cmd1,标题为“发射”。并给出了两个事件 过程,但并不完整,请补充完整。
  要求:①设置计时器的属性,使其在初始状态下不计时。②设置计时器的属性,使其 每隔0.1秒调用Timer事件过程一次。③去掉程序中的注释符“’”,把程序中的问号“?” 改为正确的内容,使得在运行时单击“发射”按钮,则火箭每隔0.1秒向上移动一次,当 到达云层的下方时停止移动,如图52-3所示。
  

  注意:不能修改程序的其他部分。最后,按原文件名并在原文件夹中保存修改后的文件。
  (2)在考生文件夹中有一个工程文件vbsj4.vbp和窗体文件vbsj4.frm。在名为Form1的窗体上,有一个名为Cmd1的命令按钮,其标题为“移动”;一个名为Vsb1的垂直滚动条;一个名为Txt1的文本框,它的初始内容为空。程序的功能是在文本框中输入一个整数,单击“移动”按钮后,如果输入的是正数,滚动条中的滚动框向下移动与该数相符的刻度,
  如图52-4所示;但如果超过了滚动条的最大刻度,则不移动,并且显示“输入的数值太大”; 如果输入的是负数,滚动条中的滚动框向上移动与该数相等的刻度,但如果超过了滚动条的最小刻度,则不移动,并且显示“输入的数值太小”。
  

  要求:去掉程序中的注释符“’”,把程序中的问号“?”改为正确的内容,使其实现上述功能,但不得修改程序的其他部分,也不得修改控件的属性。最后把修改过的程序按原名保存。
三、综合应用题
  在名为 Form1 的窗体上建立一个名称为 Txt1 的文本框,其 MultiLine 属性为 True, ScrollBars 属性为 2;3 个名称分别为 Cmd1、Cmd2 和 Cmd3 的命令按钮,它们的标题分 别为“读数”、“计算”和“保存”。
  要求程序运行后,如果单击“读数”按钮,则读入 dr2.dat 文件中的 100 个整数,放 入一个数组中(数组下界为 1),同时在文件框中显示出来;如果单击“计算”按钮,则 计算小于或等于 300 的所有数之和,并把结果在文本框 Txt1 中显示出来,如果单击“保 存”按钮,把该结果存入考生文件夹中的文件 dw1.dat 中(在考生文件夹下有标准模块 model.bas,其中的 writedata 过程可以把结果存入指定的文件,考生可以把该模块文件添 加到自己的工程中,直接调用此过程),如图 52-5 所示。
  

  注意:文件必须放在考生文件夹中,窗体文件名为 vbsj5.frm,工程文件名为 vbsj5.vbp, 计算结果存入 dw1.dat 文件,否则没有成绩。
试题答案及详解
  一、基本操作题
  第 1 小题
  【审题分析】本题只需按题目要求利用 VB 菜单设计器建立一个二级菜单即可。
  【操作步骤】
  步骤 1:新建一个"标准 EXE"工程,选择【工具】?【菜单编辑器】命令,打开菜单设计器。
  步骤 2:在"标题"栏中输入"文件",在"名称"栏中输入 mnuFile;单击"下一个" 按钮,在"标题"栏中输入"帮助",在"名称"栏中输入 mnuHelp;单击"下一个"按钮,再单击编辑区的"右箭头"按钮,在"标题"栏中输入"打开",在"名称"栏中输入 mnuFileOpen;单击"下一个"按钮,在"标题"栏中输入"关闭",在"名称"栏中输入 mnuFileClose;单击"下一个"按钮,在"标题"栏中输入"退出",在"名称"栏中输入 mnuFileExit,;选定"帮助"项,单击编辑区的"下箭头"按钮,将其移至所有菜单项的下面。
  步骤 3:按要求将文件保存至考生文件夹中。
  【考试误区】分清标题和名称及菜单项间的层次关系。
  第 2 小题
  【知识点播】菜单中所包含的每一个菜单项都可看成是一个命令按钮,程序运行时,选择某菜单项将触发其 Click 事件。
  【审题分析】要实现本题中的功能,应在"显示"菜单项的 Click 事件过程中,将字符串 Visual Basic 赋值给文本框的 Text 属性,在"清除"菜单项的 Click 事件过程中,设置文本框的 Text 属性值为空白。
  【操作步骤】
  步骤 1:新建一个"标准 EXE"工程,在窗体 Form1 中加入一个文本框,在属性设置窗口中将其 Name 属性值设置为 Txt1,Text 属性设置为空白。
  步骤 2:选择【工具】?【菜单编辑器】命令,打开菜单设计器。
  步骤 3:在"标题"栏中输入"操作",在"名称"栏中输入 mnuOp;单击"下一个" 按钮,再单击编辑区的"右箭头"按钮,在"标题"栏中输入"显示",在"名称"栏中输入 mnuOpDis;单击"下一个"按钮,在"标题"栏中输入"清除",在"名称"栏中输入 mnuOpCls。
  步骤 4:单击窗体 Form1 的"操作"菜单下的"显示"项,在打开的代码编辑窗口中输入代码。
  步骤 5:单击代码编辑窗口中的对象下拉列表框,从中选择 mnuOpCls,在其 Click 事件过程中输入代码:Txt1.Text = ""。
  步骤 6:按要求将文件保存至考生文件夹中。
  【考试误区】清除文本框中所显示的信息是通过设置 Text 属性来实现的,文本框没有 Cls 方法。
二、简单应用题
  第 1 小题
  【审题分析】本题通过计时器来控制火箭移动。单击"发射"按钮时启动计时器,在计时器的 Timer 事件过程中,如果火箭尚未抵达云层(即 Pic1.Top > Pic2.Top + Pic2.Height),则通过 Move 方法,使火箭(图片框 Pic1)每次加速上移,否则通过停止计时器来停止火箭上移。
  【操作步骤】
  步骤 1:打开考生文件中的本题工程文件 vbsj3.vbp,设置计时器的 Enabled 属性值为False,Interval 属性值为 100。
  步骤 2:在代码编辑窗口,去掉程序中的注释符"’",将问号"?"改为正确的内容。
  参考代码:
  Tmr1.Enabled = True
  If Pic1.Top > Pic2.Top + Pic2.Height Then
  Tmr1.Enabled = False
  步骤 3:按要求将文件保存至考生文件夹中。
  第 2 小题
  【审题分析】本题程序设计思路:在"移动"按钮的单击事件过程中,首先判断滚动条在当前位置基础上移动与文本框中输入数值相等的刻度时,是否超过滚动条 Max 属性值的限制,若是则弹出消息框显示"输入的数值太大";否则接着判断滚动条在当前位置基础上移动与文本框中输入数值相等的刻度时,是否超过滚动条 Min 属性值的限制,若是则弹出消息框显示"输入的数值太小",否则设置滚动条的 Value 属性值为原有 Value 属性值加上文本框中的输入值。
  【操作步骤】
  步骤 1:打开考生文件中的本题工程文件 vbsj4.vbp,在代码编辑窗口,去掉程序中的注释符"’",将问号"?"改为正确的内容。
  步骤 2:按要求将文件保存至考生文件夹中。
三、综合应用题
  【审题分析】本题源程序已提供 Writedate 自定义过程,需编写"读数"、"计算"和"保存"命令的单击事件过程。程序设计思路:在"读数"按钮的单击事件过程中,用 Open 语句以 Input 方式打开数据文件 dr1.dat,通过 For 循环语句(初值为 1,终值为 100)将数据文件中的数据用 Input 语句依次读出并赋值给数组元素 arr(i),同时显示在文本框中,为使数据间保持一定间隔,每个数据后用 Space(5)加入 5 个空格;在"计算"按钮的 Click 事件过程中,利用 For 循环语句(循环变 i 的初值为 1,终值为 100)依次将数组 arr 中小于或等于 300 的元素的值显示在文本框中(条件表达式为:arr(i)<=300),并将其值累加到变Sum,循环结束后将结果显示在窗体上。在"保存"按钮的 Click 事件过程中,通过调用WriteData 过程将文本框中的值写入数据文件 dw1.dat。
  【操作步骤】
  步骤 1:新建一个"标准 EXE"工程,按下表在窗体中画出控件并设置其相关属性。
  步骤 2:选择【工程】?【添加模块】命令,打开添加模块对话框,将考生文件夹下的model.bas 添加到当前工程中。
  步骤 3:在代码编辑窗口编写以下事件过程。
  参考代码:
  Dim arr(1 To 100) As Integer
  Private Sub Cmd1_Click()
  Txt1.Text = ""
  Open App.Path & "\dr1.dat" For Input As #1
  ′ó?ò??ì3?????úμè????ê?ר?? http://club.topsage.com/forum-49-1.html ê??ˉ??àí
  For i = 1 To 100
  Input #1, arr(i)
  Txt1.Text = Txt1.Text & arr(i) & Space(5)
  Next
  Close #1
  End Sub
  Private Sub Cmd2_Click()
  Dim sum As Integer
  For i = 1 To 100
  If arr(i) <= 300 Then
  sum = sum + arr(i)
  End If
  Next
  Txt1.Text = sum
  End Sub
  Private Sub Cmd3_Click()
  writedata "dw1.dat", Txt1.Text
  End Sub
步骤 4:按要求将文件保存至考生文件夹中。
2014年全国计算机二级考试VB上机题库(四)
一、基本操作题
  (1)在名为Form1的窗体上绘制一个名为Cmd1的命令按钮,其标题为“移动按钮”。编写适当的事件过程,使得程序运行时,每单击命令按钮一次,该按钮向右移动50,如图53-1所示。 注意:程序中不得使用变量,事件过程中只能写一条语句;文件必须存放在考生文件夹中,工程文件名为vbsj1.vbp,窗体文件名为vbsj1.frm。
  

  (2)在 Form1 的窗体上绘制一个名为 Lab1 的标签框,设置相关属性,使标签有框 架。然后建立一个名为 mnuOp 的主菜单,其标题为“操作”,该菜单有两个名称分为 mnuOpDis 和 mnuOpHide 的菜单项,其标题分别为“显示”和“隐藏”。编写适当的事件 过程,程序运行后,若单击“操作”菜单中的“显示”命令,则在标签框中显示“二级 Visual Basic”;如果单击“隐藏”命令,则隐藏标签框。程序的运行情况如图 53-2 所示。 注意:程序中不得使用任何变量;文件必须存放在考生文件夹中,工程文件名为vbsj2.vbp,窗体文件名为 vbsj2.frm。
  

二、简单应用题
  (1)在名称为 Form1、KeyPreview 属性为 True 的窗体上绘制一个名称为 Lst1 的列表 框;一个名称为 Txt1 的文本框。编写窗体的 KeyDown 事件过程。程序运行后,如果按 键,则从键盘上输入要添加到列表框中的项目(内容任意,不少于 3 个);如果按键, 则从键盘上输入要删除的项目,将其从列表框中删除。程序的运行效果如图 53-3 所示。
  

  在考生文件夹中有一个工程文件 vbsj3.vbp(相应的窗体文件名为 vbsj3.frm),可以实 现上述功能。但本程序不完整,请补充完整。
  要求:去掉程序中的注释符“’”,把程序中的问号“?”改为适当的内容,使其正确运行,但不得修改程序的其他部分。最后,按原文件名并在原文件夹中保存修改后的文件。
  (2)在考生文件夹中有一个工程文件 vbsj4.vbp 及窗体文件 vbsj4.frm。在名为 Form1 的窗体上已经绘制出所有控件。
  要求程序运行后,在 Txt1 文本框中输入一个任意的字符串(要求串的长度≥10),然后选择组合框中的 3 个截取运算选项之一。单击“确定”按钮,将截取运算后的结果显示在 Txt2 中,如图 53-4 所示。窗体文件中已经给出了程序,但不完整,请补充完整。
  

  要求:请去掉程序中的注释符“’”,把程序中的问号“?”改为正确的内容。注意: 不得修改已经给出的程序。最后,按原文件名并在原文件夹中保存修改后的文件。
 三、综合应用题
  在名为Form1的窗体上建立两个名称分别为Opt1和Opt2、标题分别为“1-500之间素数 和”和“500-700之间素数和”的单选按钮,一个名为Txt1文本框和两个名称分别为Cmd1 和Cmd2,标题分别为“计算”和“保存”命令按钮。
  程序运行后,如果选中一个单选按钮并单击‘计算”按钮,则计算出该单选按钮标题 所指明的所有素数之和,并在文本框中显示出来,如图53-5所示。如果单击“保存”按钮, 则把计算结果存入dw2.dat文件中,该文件必须放在考生文件夹中(在考生文件夹中有标 准模块model.bas,其中writedata过程可以把结果存入指定的文件,而isprime函数可以判断 整数x是否为素数,如果是素数,则函数返回True,否则返回False,考生可以将该模块文 件添加到自己的工程中)。
  

  注意:必须把500~700之间的素数之和存入考生文件夹下的dw2.dat文件中,否则没有 成绩。保存程序时必须存放在考生文件夹中,窗体文件名为vbsj5.frm,工程文件名为 vbsj5.vbp。
试题答案及详解
  一、基本操作题
  第 1 小题
  【审题分析】要实现本题要求的功能,只需在命令按钮的单击事件过程中,设置命令按钮的 Left 属性值增加 50。
  【操作步骤】
  步骤 1:新建一个"标准 EXE"工程,在窗体中画一个名 Cmd1 命令按钮,并设置其Caption 属性值为"移动按钮"。
  步骤 2:打开代码编辑窗口,编写命令按钮的 Click 事件过程。
  参考代码:
  Private Sub Cmd1_Click()
  Cmd1.Left = Cmd1.Left + 50
  End Sub
  步骤 3:按要求将文件保存至考生文件夹中。
  第 2 小题
  【审题分析】本题需用菜单设计器建立菜单,并编写"显示"和"隐藏"菜单项的单击事件过程。
  【操作步骤】
  步骤 1:新建一个"标准 EXE"工程,在窗体 Form1 中画一个标签,在属性设置窗口中将其 Name 属性值设置为 Lab1,Caption 属性设置为空白,BorderStyle 属性设置为 1-Fixed Single。
  步骤 2:选择【工具】?【菜单编辑器】命令,打开菜单设计器,按表 53-1 中的设置建立菜单项。
  表 53-1
  步骤 3:打开代码编辑窗口,编写以下事件过程:
  参考代码:
  Private Sub mnuOpDis_Click()
  Lab1.Visible = True
  Lab1.Caption = "二级 Visual Basic"
  End Sub
  Private Sub mnuOpHide_Click()
  Lab1.Visible = False
  End Sub
  步骤 4:按要求将文件保存至考生文件夹中。
二、简单应用题
  第 1 小题
  【知识点播】①KeyPreview 属性用于设置是否在控件的键盘事件之前激活窗体的键盘事件,键盘事件有 KeyDown、KeyUp 和 KeyPress。②KeyDown(KeyCode As Integer,Shift as Integer)事件是在对象具有焦点时,按下键盘上的键时触发该对象的事件,其中 KeyCode 参数是表示所按键的位置信息的代码,Shift 参数代表按键时 Shift、Ctrl、Alt 键的状态。
  【审题分析】本题程序设计思路:在窗体的 KeyDown 事件过程中,先后用两个 If 语句判断当前键盘上按下的是否是键或键,若是键则通过输入框输入内容,显示在文本框中,并添加到列表框中;若是键则通过输入框输入内容,显示在文本框中, 利用 For 循环语句逐一判断列表框中的各项是否与文本框中的内容一致,若一致则删除该项目。ListCount 属性可返回列表框中当前的列表项总数,由于循环的初值为 0,故终值就应为 Lst1.ListCount-1。
  【操作步骤】
  步骤 1:打开考生文件中的本题工程文件 vbsj3.vbp,按表 53-2 在窗体中画出控件并设置其相关属性。
  表 53-2
  步骤 2:在代码编辑窗口,去掉程序中的注释符"’",将问号"?"改为正确的内容。
  参考代码:
  Lst1.AddItem Txt1.Text
  For i = 0 To Lst1.ListCount – 1
  If Lst1.List(i) = Txt1.Text Then
  Lt1.RemoveItem i
  步骤 3:按要求将文件保存至考生文件夹中。
  第 2 小题
  【知识点播】①Trim 函数用于删除字符串左右两边的空格;②Right()函数用于取出已有字符串最右边指定个数的字符串;③Left()函数用于取出已有字符串最左边指定个数的字符串;④Mid(字符串,起始位置[,个数])函数用于从已有字符串中取出从指定位置开始的含指定个数字符的字符串。
  【审题分析】本题源程序的中心设计思想是:将文本框 Txt1 中的字符串按组合框中所选要求进行截取并放入文本框 Txt2 中。源程序以组合框列表项的索引号(即 ListIndex 属性值)作为 Select Case 语句的判断表达式,故第 1 个?处应为 Cbo1.ListIndex;组合框中第三项要求截取第 3~6 个字符,其实就是从字符串的第 3 个字符开始,截取 4 个字符, 故 Mid 函数的第 2、3 个参数应为 3 和 4;最后的?处是将截取结果显示在文本框中,故应为 tmpStr。
  【操作步骤】
  步骤 1:打开考生文件中的本题工程文件 vbsj4.vbp,在代码编辑窗口,去掉程序中的注释符"’",将问号"?"改为正确的内容。
  参考代码:
  Select Case Cbo1.ListIndex
  tmpStr = Mid(Trim(Txt1.Text), 3, 4)
  Txt2.Text = tmpStr
  步骤 2:按要求将文件保存至考生文件夹中。
三、综合应用题
  【审题分析】本题源程序中已包含一个能判断一个数是否为素数的函数 isprime。因此本题在利用 If 语句判断单选按钮选中情况的基础上,可以通过循环调用 isprime 函数来判断指定范围内素数的和。
  【操作步骤】
  步骤 1:打开考生文件中的本题工程文件 vbsj5.vbp,在代码编辑窗口,去掉程序中的注释符"’",将问号"?"改为正确的内容。
步骤 2:按要求将文件保存至考生文件夹中。
2014年全国计算机二级考试VB上机题库(五)
一、基本操作题
  (1)在窗体上绘制一个名为 Txt1 的文本框,其 Text 属性为空白;再绘制一个名为Lst1 的列表框,通过属性窗口向列表框中添加 4 个项目,分别为“项目 1”、“项目 2”、“项 目 3”和“项目 4”。编写适当的事件过程,使程序运行后,在文本框中输入一个字符串, 若双击列表框中的任何一项,则把文本框的中的字符串添加到列表框中。程序的运行效果 如图 54-1 所示。
  

  注意:文件必须存放在考生文件夹中,工程文件名为 vbsj1.vbp,窗体文件名为vbsj1.frm。
  (2)在名为 Form1 的窗体上建立一个名为 Txt1 的文本框;一个名为 Cmd1 的命令按 钮,其标题为“输出”。要求程序运行后,在文本框中任意输入一个字符串,然后单击“输出”按钮,则将文本框中的文字显示在窗体上,如图 54-2 所示。
  

  注意:在程序中不能使用任何变量;文件必须存放在考生文件夹中,窗体文件名为vbsj2.frm,工程文件名为 vbsj2.vbp。
二、简单应用题
  (1)在考生文件夹中有一个工程文件 vbsj3.vbp 及其窗体文件 vbsj3.frm,含有 Form1和 Form2 两个窗体,Form1 为启动窗体。两个窗体上的控件如图 54-3 和图 54-4 所示。
  

  程序运行后,在 Form1 窗体的文本框中输入有关信息(“密码”框中显示“*”字符), 然后单击“提交”按钮则弹出“确认”对话框(即 Form2 窗体),并在对话框中显示输入 的信息。单击“确认”按钮则程序结束;单击“返回”按钮,则对话框消失,回到 Form1 窗体。在给出的窗体文件中已经给出程序,但不完整。
  要求:①把 Form1 的标题改为“注册”,把 Form2 的标题改为“确认”。②设置适当 的属性,使 Form2 标题栏上的所有按钮消失。③删除程序中语句前面的注释符“’”,把程 序中的问号“?”改为正确的内容,使其实现上述功能,但不得修改程序的其他部分,也 不得修改控件的其他属性。最后,将修改后的文件按原文件名保存在原文件夹中。
  (2)在考生文件夹中有一个工程文件vbsj4.vbp及窗体文件vbsj4.frm。在名为Form1的窗体上有一个圆和一条直线(直线的名称为Lin1)构成一个钟表的图标;有两个名称分别为Cmd1和Cmd2的命令按钮,标题分别为“开始”和“停止”;还有一个名为Tmr1的计时器。
  程序运行时,钟表指针不动,单击“开始”按钮,则钟表上的指针(即Lin1)开始顺时针旋转(每秒转6º,一分钟转一圈);单击“停止”按钮,则指针暂停旋转。运行时的 窗体如图54-5所示。请设置计时器的适当属性,使得每秒激活计时器的Timer事件一次; 编写两个按钮的Click事件过程。文件中已给出了所有控件和部分程序,不得修改已有程 序和其他控件的属性;编写的事件过程中不得使用变量,且只能写一条语句。最后,按原文件名并在原文件夹中保存修改后的文件。
  

三、综合应用题
  在窗体上 Form1 上建立 3 个名称分别为 mnuRead、mnuCalc 和 mnuSave 的菜单,它 们的标题分别为“读数”、“计算”和“保存”;绘制一个名称为 Txt1 的文本框,其 MultiLine 属性设置为 True,ScrollBars 属性设置为 2。
  程序运行后,如果执行“读数”命令,则读入 dr1.dat 文件的 100 个整数,放入一个 数组中,数组的下界为 1;如果执行“计算”命令,则把该数组中下标为奇数的元素在文 本框中显示出来,求出它们的和,并把所求得的和在窗体上显示出来,如图 54-6 所示; 如果执行“保存”命令,则把所求得的和存入考生文件夹下的 dw1.dat 文件中。
  

  在考生文件夹下有一个工程文件 vbsj5.vbp,考生可以装入该文件。窗体文件 vbsj5.frm 中的 ReadData 过程可以把 dr2.dat 文件中的 100 个整数读入 Arr 数组中;而 WriteData 过 程可以把指定的整数值写到考生文件夹指定的文件中(整数值通过计算求得,文件名为 dw1.dat)。
  注意:考生不得修改窗体文件中已经存在的程序。存盘时,工程文件名仍为 vbsj5.vbp, 窗体文件名仍为 vbsj5.frm。
试题答案及详解
  一、基本操作题
  第 1 小题
  【审题分析】双击列表框中的某个项目,将触发其 DblClick 事件,要实现双击列表框中的某一项,则将文本框中内容添加到列表框中的功能,只需在 DblClick 事件过程中编写用 AddItem 方法添加项目的语句即可。
  【操作步骤】
  步骤 1:新建一个"标准 EXE"工程,按表 54-1 在窗体中画出控件并设置其相关属性。
  步骤 2:打开代码编辑窗口,编写列表框的 DblClick 事件过程。
  参考代码:
  Private Sub Lst1_DblClick()
  Lst1.AddItem Txt1.Text
  End Sub
  步骤 3:按要求将文件保存至考生文件夹中。
  第 2 小题
  【审题分析】要实现单击"输出"按钮,则将文本框中内容显示在窗体上的功能,只需在按钮的 Click 事件过程中编写用 Print 方法输出文本框中内容。
  【操作步骤】
  步骤 1:新建一个"标准 EXE"工程,按表 54-2 在窗体中画出控件并设置其相关属性。
  步骤 2:打开代码编辑窗口,编写命令按钮的 Click 事件过程。
  参考代码:
  Private Sub Cmd1_Click()
  Print Txt1.Text
  End Sub
  步骤 3:按要求将文件保存至考生文件夹中。
二、简单应用题
  第 1 小题
  【知识点播】①在实际应用中,较为复 的应用程序通常由多个窗体组成,且可设置其中一个为启动窗体,只有启动窗体才能在运行程序时自动加载并显示出来。与多窗体操作有关的语句和方法主要有:
  Load 语句:该语句用于将一个窗体装入内存,其语法格式为:Load 窗体名称。
  Unload 语句:该语句用于卸载内存中指定的窗体,与 Load 语句的功能相反。其语法格式为:Unload 窗体名称。注意:一般用"me"代表当前窗体。
  Show 方法:该方法用于加载并显示一个窗体,其语法格式为:窗体名称.Show [模式]。
  其中模式可选项的取值为 0(默认值)或 1,当值为 1 时,窗体为模态,此时用户不能对其他窗体进行操作,直到该窗体关闭为止。
  Hide 方法:该方法用于将窗体隐藏起来,其语法格式为:窗体名称.Hide。
  ②在多个窗体组成的程序中,可以在一个窗体中读取另一个窗体中控件的属性值,其语法格式为:窗体名称.控件名称.属性名称。
  ③窗体的 ControlBox 属性用于设置在窗体标题栏左侧是否显示控制按钮,该属性在运行时为只读。如果要显示控制按钮除应将 ControlBox 属性值设置为 True,还必须将窗体的 BorderStyle 属性值设置为 1(固定单边框)、2(可变尺寸)或 3(固定对话框)。
  ④文本框的 PasswordChar 属性常用于设置用某字符(如)屏蔽用户在文本框中键入的内容,常用于口令输入,要使 PasswordChar 属性有效,Multiline 属性的值必须设置为 False。
  【审题分析】本题源程序设计思路:程序运行时,在 Form1 启动窗体中输入和选择相关内容后,单击"提交"按钮时,加载并显示 Form2(故单击事件过程中第 1 个?处应为 Show),并用 Print 方法将 Form1 中各控件的标题内容显示在 Form2 中(故第 2 个?处应为 Caption)。在"性别"选择上,源程序利用 For 循环逐一判断单选按钮组中的两个元素是否(If)被选中,选中的依据是当前单选按钮的 Value 属性值为 True,选中的单选按钮的标题将被显示(故第 3 个?处应为 k)。
  本题在"密码"框中显示"
"字符的设置不是在设计阶段完成的,而是在程序运行时通过代码来实现的,故在窗体 Form1 的 Load 事件过程中应将?处改为 PasswordChar。
  【操作步骤】
  步骤 1:打开考生文件夹中的本题工程文件 vbsj3.vbp。
  步骤 2:选中 Form1 窗口,将其 Caption 属性设置为"注册"。
  步骤 3:选中 Form2 窗口,将其 Caption 属性设置为"确认",ControllBox 属性设置为 False。
  步骤 4:打开代码编辑窗口,去掉程序中的注释符"’",将问号"?"改为正确的内容。
  参考代码:
  Form2.Show
  Form2.Print Form1.Frame1.Caption; ":";
  If Form1.Opt1(k).Value Then
  Txt2.PasswordChar = "*"
  步骤 5:按要求将文件保存至考生文件夹中。
  【考试误区】正确把握程序设计思路是解决本题的关键。
  第 2 小题
  【审题分析】本题通过计时器的 Timer 事件来控制直线控件的位置,从而实现钟表上的指针走时的功能。为使计时器的 Timer事件每秒激活一次和程序刚运行时钟表指针不动, 需将计时器的 Interval 属性值设置为 1000,Enabled 属性值设置为 False。在"开始"按钮的单击事件过程中,通过设置计时器的 Enabled 属性值为 True 来启动计时器。在"停止" 按钮的单击事件过程中,通过设置计时器的 Enabled 属性值为 False 来停止计时器。
  【操作步骤】
  步骤 1:打开考生文件中的本题工程文件 vbsj4.vbp,在属性设置窗口,设置计时器的Interval 属性值为 1000,Enabled 属性值为 False。
  步骤 2:在代码编辑窗口,编写"开始"和"停止"按钮的单击事件过程。
  步骤 3:按要求将文件保存至考生文件夹中。
三、综合应用题
  【审题分析】本题源程序已提供 ReadData 和 WriteData 两个自定义过程,只需编写"读数"、"计算"和"保存"命令的单击事件过程,并在事件过程中调用 ReadData 和 WriteData自定义过程。程序设计思路:在"读数"菜单项的 Click 事件过程中,通过调用 ReadData过程将数据从 dw1.dat 文件读入到数组 Arr(窗体变 )中;在"计算"菜单项的 Click 事件过程中,利用 For 循环语句(循环变 i 的初值为 1,终值为 100,步长为 2)依次将数组 Arr 中下标为奇数的元素的值显示在文本框中,并将其值累加到变Sum,循环结束将 结果显示在窗体上。在"保存"菜单项的 Click 事件过程中,通过调用 WriteData 过程将Sum 的值写入数据文件 dw1.dat。
  注意:调用 WriteData 过程时需传递参数 dw1.dat 和 Sum,变 Sum 应声明为窗体变 。
  【操作步骤】
  步骤 1:打开考生文件下的本题工程文件 vbsj5.vbp,利用菜单设计器,按表 54-3 中的设置建立菜单项。
  表 54-3
  步骤 2:在窗体 Form1 中画一个文本框,其相关属性及其值见表 54-5。
  表 54-5
  步骤 3:在代码编辑窗口,分别编写"读数"、"计算"和"保存"按钮的 Click 事件过程。
  参考代码:
  Private Sub mnuCal_Click()
  For i = 1 To 100 Step 2
  Txt1.Text = Txt1.Text & Arr(i) & Space(5)
  sum = sum + Arr(i)
  Next
  Print sum
  End Sub
  Private Sub mnuRead_Click()
  ReadData
  End Sub
  Private Sub mnuSave_Click()
  WriteData "dw291.dat", sum
  End Sub
步骤 4:按要求将文件保存至考生文件夹中。
2014年全国计算机二级考试VB上机题库(六)
一、基本操作题
  (1)在名为Form1的窗体上绘制一个名为Hsb1的水平滚动条,其最小值为0,最大值 为100;再绘制3个名称分别为Cmd1、Cmd2和Cmd3的命令按钮,它们的标题分别为“左 端”、“居中”和“右端”。编写适当的事件过程,使程序运行后,若单击“左端”命令按 钮,则滚动框位于滚动条最左端处;如果单击“居中”命令按钮,则滚动框位于滚动条中 间;如果单击“右端”命令按钮,则滚动框位于滚动条最右端处。运行效果如图55-1所示。
  

  注意:程序中不得使用任何变量;文件必须存放在考生文件夹中,窗体文件名为vbsj1.frm,工程文件名为vbsj1.vbp。
  (2)在名为 Form1 的窗体上建立两个名为 Cmd1 和 Cmd2 的命令按钮,标题分别为“体育”和“美术”。编写适当的事件过程,使程序运行后,若单击“体育”命令按钮,窗体上显示“我喜欢体育”;若单击“美术”命令按钮,窗体上显示“我喜欢美术”,如图55-2 所示。
  

  注意:程序中不要使用任何变量,直接显示字符串;文件必须存放在考生文件夹中,窗体文件名为 vbsj2.frm,工程文件名为 vbsj2.vbp。
二、简单应用题
  (1)考生文件夹中有一个工程文件vbsj3.vbp及窗体文件vbsj3.frm。在名为Form1的窗 体上有两个框架,其中一个框架有两个单选按钮,另一个框架中有两个复选框,窗体上还 有一个标题为“确定”的命令按钮和一个初始内容为空的文本框。程序的功能是:在运行 时,如果选中一个单选按钮和一个或两个复选框,则对文本框中的文字做相应的设置,如 图55-3所示。窗体上的控件已经绘制出,但没有给出主要程序内容,请编写适当的事件过程,完成上述功能。
  

  注意:不能修改已经给出的程序部分和已有控件;在结束程序运行之前,必须选中一 个单选按钮和至少一个复选框,并单击“确定”按钮;必须通过单击窗体右上角的“关闭” 按钮结束程序,否则无成绩。最后,按原文件名并在原文件夹中保存修改后的文件。
  (2)在考生文件夹中有一个工程文件vbsj4.vbp及窗体文件vbsj4.frm。在名为Form1的窗体中的两个水平滚动条分别表示红灯亮和绿灯亮的时间(秒),移动滚动框可以调节时间,调节范围为1~10秒。程序启动后,红灯亮。单击“开始”按钮执行:红灯到时后,自动变为黄灯,1秒后变为绿灯;绿灯到时后,自动变为黄灯,1秒后变为红灯,如此循环切换,如图55-4所示。
  

  所提供的窗体文件已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释 符“’”,把程序中的问号“?”改为正确的内容。
  提示:在3个名称分别为picR、picG和PicY的图片框中分别放置了红灯亮、绿灯亮和黄灯亮的图标,并重叠在一起,当要使某个灯亮时,就使相应的图片框可见,而其他图片框不可见,并保持规定的时间,时间到就切换为另一个图片框可见,其他图片框不可见。 注意:不得修改工程中已经存在的内容和控件属性。最后,按原文件名并在原文件夹中保存修改后的文件。
三、综合应用题
  在名为 Form1 的窗体上建立一个名为 Txt1 的文本框,其 MultiLine 属性值为 True , ScrollBars属性值为2。再建立3个名称分别为Cmd1、Cmd2和Cmd3的命令按钮,它们的标 题分别为“读数”、“排序”和“保存”。
  程序运行后,如果单击“读数”按钮,则读入dr1.dat文件中的50个整数,放入一个数组中(数组下界为1);如果单击“排序”按钮,则对50个整数按从大到小进行排序;如果单击“保存”按钮,把排序后的全部数据在文本框Text1中显示出来,如图55-5所示,然后存入考生文件夹的dw2.dat文件中(在考生的目录下有标准模块model.bas过程,可以把指定个数的数组元素存入dw2.dat文件,考生可以把该模块文件添加到自己的工程中)。
  注意:文件必须存放在考生文件夹中,窗体文件名为 vbsj5.frm ,工程文件名为vbsj5.vbp,排序结果存入dw2.dat,否则没有成绩。
  

试题答案及详解
  一、基本操作题
  第 1 小题
  【审题分析】要实现本题所要求的功能应在"左端"、"居中"和"右端"3 个命令按钮的单击事件过程中,设置水平滚动条的 Value 属性值分别与其 Min 属性值、Max 属性值及 Max/2 值一致。
  【操作步骤】
  步骤 1:新建一个"标准 EXE"工程,按表 55-1 在窗体中画出控件并设置其相关属性。
  表 55-1
  步骤 2:在代码编辑窗口,编写 3 个按钮的单击事件过程。
  步骤 3:按要求将文件保存至考生文件夹中。
  【特别提示】如果水平滚动条的 Min 属性值不为 0 时,居中时应设置 Value 属性值为(Max+Min)/2。
  第 2 小题
  【审题分析】要实现本题中的功能,应在"体育"按钮的 Click 事件过程中,用 Print语句在窗体上输出"我喜欢体育",在"美术"按钮的 Click 事件过程中,用 Print 语句在窗体上输出"我喜欢美术"。
  【操作步骤】
  步骤 1:新建一个"标准 EXE"工程,在窗体 Form1 中加入两个命令按钮,分别设置它们的相关属性,其属性及其值见表 55-2。
  表 55-2
  步骤 2:单击窗体 Form1 中的"体育"按钮,在打开的代码编辑窗口中,输入代码:Print "我喜欢体育"。
  步骤 3:单击代码编辑窗口中的对象下拉列表框,从中选择 Cmd2,在其 Click 事件过程中输入代码:Print "我喜欢美术"。
  步骤 4:按要求将文件保存至考生文件夹中。
  二、简单应用题
  第 1 小题
  【审题分析】本题其实就是编写"确定"按钮的单击事件过程。设计思路:由于单选按钮数组选择的惟一性,可用一个 If?Then?Else 语句对可能出现的两种情况(Opt1 或Opt2 被选中)分别进行处理,为 Txt1 的 FontName 属性设置不同值;对于两个复选框可用两个 If?Then?Else 语句依次对其选中情况进行处理,若选中则将对应的 FontUnderline属性值或 FontItalic 属性值设置为 True,否则设置为 False。
  【操作步骤】
  步骤 1:打开考生文件下的本题工程文件 vbs3.vbp,在第一个框架中画两个单选按钮和第二个框架中画两个复选框,其属性及其值见表 55-3。
  表 55-3
  步骤 2:打开代码编辑窗口,编写"确定"按钮的 Click 事件过程,代码如下。
  参考代码:
  Private Sub Cmd1_Click()
  If Opt1.Value = True Then
  Txt1.FontName = "宋体"
  Else
  Txt1.FontName = "隶书"
  118
  End If
  If Chk1.Value = 1 Then
  Txt1.FontUnderline = True
  Else
  Txt1.FontUnderline = False
  End If
  If Chk2.Value = 1 Then
  Txt1.FontItalic = True
  Else
  Txt1.FontItalic = False
  End If
  End Sub
  步骤 3:按要求将文件保存至考生文件夹中。
  第 2 小题
  【审题分析】本题利用计时器来控制红、黄、绿灯间的循环切换。在"开始"按钮的单击事件过程中,将根据两个水平滚动条的 Value 属性值,来分别设定红灯和绿灯亮的时间数(用变 red 和 green 记录)。在每次触发的计时器 Timer 事件时,首先判断当前红灯是否亮(即 PicR 是否显示),若红灯亮则将设定的红灯时间 red 减 1,并再次判断 red 的值是否为 0,若为 0 则红灯灭黄灯亮(即 PicR 不显示,PicY 显示);如果当前是黄灯亮(即PicY 显示),则黄灯灭(即 PicY 不显示),此时若 red 为 0,则绿灯亮(即 PicG 显示)且重新设定 red,否则红灯亮(即 PicR 显示)且重新设定 green;如果当前是绿灯亮(即 PicG显示),则将设定的绿灯时间 green 减 1,并再次判断 green 的值是否为 0,若为 0 则绿灯灭黄灯亮(即 PicG 不显示,PicY 显示)。
  【操作步骤】
  步骤 1:打开考生文件中的本题工程文件 vbsj4.vbp,在代码编辑窗口,去掉程序中的注释符"’",将问号"?"改为正确的内容。
  参考代码:
  red = Hsb1.Value
  Tmr1.Enabled = True
  PicR.Visible = False
  green = green-1
  步骤 2:按要求将文件保存至考生文件夹中。
三、综合应用题
  【审题分析】在"读数"按钮的单击事件过程中,用 Open 语句以 Input 方式打开数据文件 dr1.dat,通过 For 循环语句(初值为 1,终值为 50)将数据文件中的数据用 Input语句依次读出并赋值给数组元素 arr(i),同时显示在文本框中。在"排序"按钮的单击事件过程中,利用"冒泡法"对数组中的元素按从大到小进行排序。在"保存"按钮的单击事件过程中,使用 For 循环语句将数组中各元素按顺序将其值显示在文本框中,并通过调用标准模块中的 Writedata 过程(以数组名和数组上界为参数),将文本框中的内容写入数据文件 dw2.dat。为使数据间保持一定间隔,每个数据后用 Space(5)加入 5 个空格。
  【操作步骤】
  步骤 1:新建一个"标准 EXE"工程,在窗体 Form1 上加入 1 个文本框和 3 个命令按钮,在属性设置窗口分别设置它们的属性,属性及其值见表 55-4。
  表 55-4
  步骤 2:选择【工程】?【添加模块】命令,打开添加模块对话框,将考生文件夹下的 mode1.bas 添加到当前工程中。
  步骤 3:打开代码编辑窗口,编写以下代码:
  参考代码:
  Dim arr(1 To 50) As Integer
  Private Sub Cmd1_Click()
  Txt1.Text = ""
  Open App.Path & "\dr1.dat" For Input As #1
  For i = 1 To 50
  Input #1, arr(i)
  Txt1.Text = Txt1.Text & arr(i) & Space(5)
  Next
  Close #1
  End Sub
  Private Sub Cmd2_Click()
  For i = 1 To 50
  For j = i + 1 To 50
  If arr(i) < arr(j) Then
  t = arr(i)
  arr(i) = arr(j)
  arr(j) = t
  End If
  Next
  Next
  End Sub
  Private Sub Cmd3_Click()
  Txt1.Text = ""
  For i = 1 To 50
  Txt1.Text = Txt1.Text & arr(i) & Space(5)
  Next
  Writedata arr, 50
  End Sub
  步骤 4:按要求将文件保存至考生文件夹中。
2014年全国计算机二级考试VB上机题库(六)
一、基本操作题
  (1)在名为 Form1 的窗体上建立一个名为 Pic1 的图片框,两个名称分别为 Cmd1 和 Cmd2 的命令按钮,标题分别为“显示”和“清除”,如图 56-1 所示。编写适当的事件过 程,要求程序运行后,每单击一次“显示”按钮,不使用任何变量,直接在图片框中显示 “计算机 VB 考试”;如果单击“清除”按钮,则清除图片框中的内容。
  

  注意:文件必须存放在考生文件夹中,窗体文件名为 vbsj1.frm ,工程文件名为vbsj1.vbp。
  (2)在窗体上绘制一个列表框,名为 Lst1,通过属性窗口向列表框中添加 4 个项目, 分别为“项目 1”、“项目 2”、“项目 3”和“项目 4”。编写适当的事件过程,使程序运行 后,若双击列表框中的某一项,则该项就从列表中消失。程序的运行情况如图 56-2 所示。
  

  注意:文件必须存放在考生文件夹中,工程文件名为 vbsj2.vbp ,窗体文件名为vbsj2.frm。
二、简单应用题
  (1)在考生文件夹中有工程文件vbsj3.vbp及窗体文件vbsj3.frm。在名为Form1的窗体 上有一个名为Lab1的标签数组,该数组有4个控件元素,它们的标题分别是Wait、Edit、 Aix和Move,如图56-3所示。
  

  在程序运行后,将鼠标指针移动到各控件元素上,则鼠标指针的形状将变成各控件元 素的标题所代表的鼠标指针形状;离开控件元素,则鼠标指针又变成正常情况下的箭头形 状。本程序不完整,请补充完整,并能正确运行。
  要求:去掉程序中的注释符“’”,把程序中的问号“?”改为正确的内容,使其实现上述功能,但不得修改程序的其他部分。最后,按原文件名并在原文件夹中保存修改后的文件。
  (2)在考生文件夹中有一个工程文件 vbsj4.vbp 及其窗体文件 vbsj4.frm。请在名为 Form1 的窗体上绘制两个名称分别为 Txt1 和 Txt2 的文本框,文本框的内容分别设置为“计 算机考试”、“Visual Basic”;然后绘制一个名称为 Labl 的标签,其高度为 300,宽度为 2500; 再绘制两个名称分别为 Opt1 和 Opt2 的单选按钮,它们的标题分别为“交换”和“连接”; 最后再绘制一个名称为 Cmd1 的命令按钮,其标题为“确定”。
  编写适当的事件程序。使得程序运行后,如果选中“交换”单选按钮并单击“确定”按钮,则 Txt1 文本框中内容与 Txt2 文本框中内容进行交换,并在标签处显示“交换完成”;如果选中“连接”单选按钮并单击“确定”按钮后,则把交换后的 Txt1 和 Txt2 的内容连接起来,并在标签处显示连接的内容,如图 56-4 所示。保存时,工程文件名为 vbsj4.vbp,窗体文件名为 vbsj4.frm。
  

  注意:不得修改已经给出的程序。在结束程序运行之前,必须选中一个单选按钮,并单击“确定”按钮。退出程序时必须通过单击窗体右上角的关闭按钮,否则可能无成绩。
  三、综合应用题
  在名为 Form1 的窗体上建立一个名为 Txt1 的文本框(其 MultiLine 属性为 True, ScrollBars 属性为 2)和两个名称分别为 Cmd1 和 Cmd2 的命令按钮(其标题分别为“读取” 和“保存”),如图 56-5 所示。
  

  要求程序运行后,如果单击“读取”按钮,则读入 dr1.dat 文件中的 100 个整数,放 入一个数组中(数组下界为 1),同时在文本框 Txt1 中显示出来;如果单击“保存”按钮,则计算其中前 50 个数之和,并把求和结果在文本框 Txt1 中显示出来,同时把结果存入考 生文件夹中的文件 dw2.dat 中。
  在考生的文件夹下有标准模块 model.bas,其中的 writedata 过程可以把结果存入指定的文件,考生可以把该模块文件添加到自己的工程中,直接调用此过程。
  注意:文件必须存放在考生文件夹中,窗体文件名为 vbsj5.frm ,工程文件名为vbsj5.vbp,计算结果存入 dw2.dat 文件,否则没有成绩。
一、基本操作题
  第 1 小题
  【知识点播】①图片框(PictureBox)主要用于显示图片(支持的图形文件有位图(bmp)、图标(ico)、Windows 元文件(wmf))或在其上画图,也可用作其他控件的容器,还可在其上直接输出文本。
  ②用 Print 方法可以在窗体或图片框上输出文本,语法为:object.Print {Spc(n) | Tab(n)}[expression ][charpos]。其中各参数的含义见表 56-1。
  ③使用 Cls 方法可以清除图片框上的所有图形及用 Print 方法输出的文本。
  【审题分析】要实现题中要求的功能,应在显示按钮的 Click 事件过程中,用图片框的 Print 方法输出字符串计算机 VB 考试,在清除按钮的 Click 事件过程中,用图片框的 Cls 方法清除图片框上的所有内容。
  【操作步骤】
  步骤 1:新建一个标准 EXE工程,在窗体 Form1 中加入一个图片框和两个命令按钮,分别设置它他们的相关属性,其属性及其值见表 56-2。
  步骤 2:双击窗体 Form1 中的显示按钮,在打开的代码编辑窗口中,输入代码。
  步骤 3:单击代码编辑窗口中的对象下拉列表框,从中选择 Cmd2,在其 Click 事件过程中输入代码:Pic1.Cls。
  步骤 4:按要求将文件保存至考生文件夹中。
  【考试误区】在图片框中显示文本,应使用 Print 方法,图片框没有 Caption 和 Text属性。
  第 2 小题
  【知识点播】①列表框控件(ListBox)用于显示可供单一或多个选择的列表项,给列表框添加列表项既可以在设计阶段通过其 List 属性设置加入,也可在程序运行时使用AddItem 方法加入。在程序运行时删除列表框中的项目可以使用 RemoveItem 方法,其语法为:列表框.RemoveItem 索引值,其中,索引值可以指定插入项在列表框中的位置,从 0 开始计数。
  【审题分析】双击列表框中的某个项目,将触发其 DblClick 事件,要实现双击列表框中的某一项,该项就从列表中消失的功能,只需在 DblClick 事件过程中编写删除项目的语句即可。列表框的 ListIndex 属性可返回当前选择的项目的索引号,因此删除选中项目的语句为:Lst1.RemoveItem Lst1.ListIndex。
  【操作步骤】
  步骤 1:新建一个标准 EXE工程,在窗体 Form1 中加入一个列表框,在属性设置窗口中将其 Name 属性设置为 Lst1,在其 List 属性中添加四个项目,依次为项目 1、项目 2、项目 3和项目 4,注意:每输入完一项后按键换行再输入下一项。
  步骤 2:打开代码编辑窗口,从窗口上方的对象下拉列表中选择 Lst1,从过程下拉列表中选择 DblClick,在该事件过程中输入代码。
  步骤 3:按要求将文件保存至考生文件夹中。
  【考试误区】本题应编写列表框控件的 DblClick 事件过程,而非 Click 事件;同时注意,删除某一列表项使用 RemoveItem,而不是 Cls 方法。
二、简单应用题
  第 1 小题
  MousePointer 属性的可选设置值及含义见表 56-3。
  【审题分析】根据题目要求,要使鼠标指针移动到标签数组各元素上时,鼠标指针的形状变成各控件元素的标题所代表的鼠标指针形状,就需在标签数组的 MouseMove 事件过程中,根据鼠标当前所在标签数组元素的不同,将窗体的 MousePointer 属性设置为对应值。题目源程序使用 Select Case 语句来对标签数组不同索引号(即 Index 属性值)进行分别处理。要在鼠标指针离开控件元素时,鼠标指针又变成正常情况下的箭头形状,需在窗体的MouseMove 事件过程中,设置窗体的 MousePointer 属性值为 0。
  【操作步骤】
  步骤 1:打开考生文件中的本题工程文件 vbsj3.vbp,在代码编辑窗口,去掉程序中的注释符’,将问号?改为正确的内容。
  参考代码:
  Form1.MousePointer = 0
  Select Case Index
  步骤 2:按要求将文件保存至考生文件夹中。
  第 2 小题
  【知识点播】+可用于字符串的运算,用于连接两个字符串。
  【审题分析】根据题目要求,本题程序设计思路:在确定按钮的 Click 事件过程中分别以 Opt1 和 Opt2 是否选中作为 If 语句的条件,当 Opt1 被选中时,将两个文本框中的内容通过一个中间变 进行交换;当 Opt2 被选中将两个文本框中的内容连接进来。
  【操作步骤】
  步骤 1:打开考生文件夹下的本题工程文件 vbs4.vbp。
  步骤 2:在窗体 Form1 中加入两个文本框、一个标签、两个单选按钮和一个命令按钮,分别设置它们的相关属性,属性及其值见表 56-4。
  步骤 3:打开代码编辑窗口输入如下代码:
  参考代码:
  Private Sub Cmd1_Click()
  Dim str As String
  If Opt1.Value = True Then
  str = Txt1.Text
  Txt1.Text = Txt2.Text
  Txt2.Text = str
  Lab1.Caption = 交换成功
  End If
  If Opt2.Value = True Then
  Lab1.Caption = Txt1.Text + Txt2.Text
  End If
  End Sub
  步骤 4:按要求将文件保存至考生文件夹中。
  【考试误区】在一个容器中的多个单选按钮只能有一个被选中,由此分出不同分支,理清思路是关键。
三、综合应用题
  【审题分析】在读取按钮的单击事件过程中,用 Open 语句以 Input 方式打开数据文件 dr1.dat,通过 For 循环语句(循环变i的初值为 1,终值为 100)将数据文件中的数据用 Input 语句依次读出并赋值给数组元素 a(i),同时显示在文本框中,每个数据项后接 5 个空格(Space(5))以保持一定间隔。在保存按钮的单击事件过程中,使用 For 循环语句(循环变i 的初值为 1,终值为 50)将数组中前 50 个元素的值累加到变 Sum 中,循环结束后通过调用标准模块中的 writedata 过程(以 Sum 为参数),将结果写入数据文件 dw2.dat。
  【操作步骤】
  步骤 1:新建一个标准 EXE工程。
  步骤 2:在窗体 Form1 中加入一个文本框和两个命令按钮,并分别设置他们的相关属性,属性及其值见表 56-5。
  步骤 3:选择【工程】?【添加模块】命令,打开添加模块对话框,将考生文件夹下的model.bas 添加到当前工程中。
  步骤 4:打开代码编辑窗口输入如下代码:
  Dim a(1 To 100) As Integer
  Private Sub Cmd1_Click()
  Open App.Path & \dr1.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 #1
  End Sub
  Private Sub Cmd2_Click()
  Txt1.Text =
  s = 0
  For i = 1 To 50
  s
  Next
  = s + a(i)
  Txt1.Text = s
  writedata dw2.dat, s
  End Sub
  步骤 5:按要求将文件保存至考生文件夹中。
  【考试误区】本题主要事件过程代码要求考生自己设计,因此理清程序运行流程是关键。
2014年全国计算机二级考试VB上机题库(八)
一、基本操作题
  (1)在名为Form1的窗体上绘制一个名为Lab1的标签,其标题为空白,BorderStyle 属性为1,Visible属性为False;一个名为Txt1的文本框,其Text属性为空白;一个名为Cmd1 的命令按钮,其标题为“显示”。编写命令按钮Click事件过程,使得程序运行后,在文本 框中输入“计算机VB等级考试”,然后单击命令按钮,则文本框消失,并在标签内显示文 本框中的内容。运行后的窗体如图57-1所示。
  

  图 57-1
  注意:程序中不得使用任何变量;文件必须存放在考生文件夹中,工程文件名为vbsj1.vbp,窗体文件名为vbsj1.frm。
  (2)在名为Form1的窗体上建立一个名为Opt1的单选按钮数组,含3个单选按钮,它们的标题依次为“A选项”、“B选项”和“C选项”,其下标分别为0、1、2。初始状态下,“C选项”为选中状态;再绘制一个文本框,名称为Txt1,内容为空白。编写适当的事件过程,使程序运行后,选中相应的单选按钮。则在文本框Txt1中显示该单选按钮的标题。
  运行后的窗体如图57-2所示。
  

  图 57-2
  注意:文件必须存放在考生文件夹中,工程文件名为 vbsj2.vbp ,窗体文件名为vbsj2.frm。
二、简单应用题
  (1)在考生文件夹中有一个工程文件 vbsj3.vbp 及其窗体文件 vbsj3.frm。在名为 Form1的窗体中有一个名为 Txt1 的文本框;请在窗体上绘制两个名称分别为 Fra1 和 Fra2 的框架, 其标题分别为“性别”和“身份”;在 Fra1 中绘制两个名称分别为 Opt1 和 Opt2 的单选按 钮,其标题分别为“男”和“女”;在 Fra2 中绘制两个名称分别为 Opt3 和 Opt4 的单选按 钮,其标题分别为“学生”和“老师”;再绘制一个名为 Cmd1 的命令按钮,其标题为“确 定”。程序界面如图 57-3 所示。
  

  图 57-3
  请编写适当的事件过程,使得在运行时,在 Fra1、Fra2 中选一个单选按钮,然后单 击“确定”按钮,就可以按照下表把结果显示在文本框中。
  

  注意:不得修改窗体文件中已经存在的程序和 Txt1 的属性,在结束程序运行之前, 必须进行能够产生上表中一个结果的操作;必须用窗体右上角的关闭按钮结束程序,否则 无成绩。最后保存修改后的文件。
  (2)在名为Form1的窗体上建立一个名为Txt1的文本框;建立一个名为Cmd1的命令按钮,其标题为“计算”。要求程序运行后,如果单击“计算”按钮,则求出1~30之间所有可以被7整除的数的乘积并在文本框中显示出来,如图57-4所示,结果存入考生文件夹中的dw2.dat文件中。
  

  图 57-4
  在考生的文件夹中有一个 model.bas 标 准 模 块 ,该模 块 中 提供 了保存文件的过程writedata,考生可以直接调用。
  注意:文件必须存放在考生文件夹中,窗体文件名为 vbsj4.frm ,工程文件名为vbsj4.vbp。
三、综合应用题
  在窗体 Form1 上建立 3 个名称分别为 mnuRead、mnuCalc 和 mnuSave 的主菜单,它 们的标题分别为“读数”、“计算”和“保存”,然后绘制一个名称为 Txt1 的文本框,其 MultiLine 属性设置为 True,ScrollBars 属性设置为 2。
  程序运行后,如果执行“读数”命令,则读入 dr1.dat 文件中的 100 个整数,放入一 个数组中,数组的下界为 1;如果执行“计算”命令,则把该数组中小于 50 的元素在文 本框中显示出来,求出它们的和,并把所求得的和在窗体上显示出来,如图 57-5 所示; 如果执行“保存”命令,则把所求得的和存入考生文件夹下的 dw2.dat 文件中。
  在考生文件夹下有一个工程文件 vbsj5.vbp,考生可以装入该文件。窗体文件 vbsj5 中 的 ReadData 过程可以把 dr1.dat 文件中的 100 个整数读入 Arr 数组中;而 WriteData 过程 可以把指定的整数值写到考生文件夹指定的文件中(整数值通过计算求得,文件名为 dw2.dat)。
  

  图 57-5
  注意:考生不得修改窗体文件中已经存在的程序。保存时,工程文件名仍为 vbsj5.vbp, 窗体文件名仍为 vbsj5.frm。
试题答案及详解
  一、基本操作题
  第 1 小题
  【审题分析】要在程序运行时实现题目所要求的功能,只需在命令按钮 Click 事件过程中用代码设置文本框的 Visible 属性值为 False,将文本中的内容赋值给标签的Caption属性,设置标签的 Visible 属性值为 True。
  【操作步骤】
  步骤 1:新建一个"标准 EXE"工程,按表 57-1 在窗体中画出控件并设置其相关属性。
  步骤 2:打开代码编辑窗口,编写命令按钮的 Click 事件过程。
  参考代码:
  Private Sub Cmd1_Click()
  Txt1.Visible = False
  Lab1.Caption = Txt1.Text
  Lab1.Visible = True
  End Sub
  步骤 3:按要求将文件保存至考生文件夹中。
  第 2 小题
  【审题分析】要在程序运行时实现题目所要求的功能,需在单选按钮数组的 Click 事件过程中,将当前选中单选按钮(索引号为参数 Index)的标题显示在文本框中。
  【操作步骤】
  步骤 1:新建一个"标准 EXE"工程,在窗体中画出一个文本框,并用"复制"和"粘贴"方法画出一个包含 3 个元素的单选按钮数组,按表 57-2 设置其相关属性。
  步骤 2:打开代码编辑窗口,编写命令按钮的 Click 事件过程。
  参考代码:
  Private Sub Opt1_Click(Index As Integer)
  Txt1.Text = Opt1(Index).Caption
  End Sub
  步骤 3:按要求将文件保存至考生文件夹中。

二、简单应用题
  第 1 小题
  【知识点播】①某容器(如窗体和框架)中的单选按钮(OptionButton)组常用于提供多个选项间的唯一选择,其 Value 属性用于设置或返回每个单选按钮的选中状态:值为False 时表示未被选中,值为 True 时表示被选中,其 Caption 属性来设置或返回单选按钮的标题内容。
  ②分支控制结构是结构化程序设计的基本结构之一,它所要解决的是根据条件判断的结果决定程序执行的流向。选择控制结构就是其中一种,它是由 2 分支构成的,就是说,条件要么是真,要么是假,没有其他的选择。在执行结构时按照所指定的条件进行判断并选择其中一组语句来执行。If 语句就是一种选择控制结构,其一般语法为:
  If 条件 Then语句块A Else
  语句块B End If
  功能:判断条件,如果条件为"真",则执行语句块 A 部分,反之则执行语句块 B 部分。
  【审题分析】根据题目要求,在本题的程序设计上,以 Fra1 中的 Opt1 是否选中作为If?Then?Else 语句的条件,由此分出两种情况,Opt1 被选中或 Opt2 被选中。在条件为真(即 Opt1 被选中)时,再使用一个嵌套的 If?Then?Else 语句对 Fra2 中 Opt3 和 Opt4的选中情况进行分类,当 Opt3 被选中时,文本框中显示"我是男学生",否则显示"我是女学生";同理在条件为假(即 Opt2 被选中)时,也用类似方法处理。这样一共就有四种可能:Opt1 和 Opt3 被选中、Opt1 和 Opt4 被选中、Opt2 和 Opt3 被选中或 Opt2 和 Opt4被选中,对于可能出现的不同选择对照题目中表的规定,修改 Txt1 的 Text 属性值,以显示不同内容。以上判断和显示操作均在 Cmd1 的 Click 事件中完成。
  【操作步骤】
  步骤 1:打开考生文件夹下的本题工程文件 vbsj3.vbp。
  步骤 2:在窗体 Form1 中加入两个框架和一个命令按钮,然后在每个框架中各加入两个单选按钮,分别设置它们的相关属性,属性及其值见表 57-3。
  步骤 3:打开代码编辑窗口输入如下代码:
  参考代码:
  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 If
  End Sub
  步骤 4:按要求将文件保存至考生文件夹中。
  【考试误区】在一个容器中的多个单选按钮只能有一个被选中,由此分出不同分支,理清思路是关键。
  第 2 小题
  【审题分析】本题程序设计思路:在"计算"按钮的单击事件过程中,将 For 循环语 句的循环变(如变I 的值为 1~30 间的所有整数)的取值逐一除以 7,并将能被 7 整除 的整数累积入一个变(如 temp),判断整数 A 能被整数 B 整除的条件表达式为 A Mod B=0。然后将循环结束时变temp 的值显示在文本框中,并调用本题源程序所提供标准模块 model.bas 中的 writedata 过程,将变temp 的值存入文件 dw2.dat。
  【操作步骤】
  步骤 1:新建一个"标准 EXE"工程,按表 57-4 在窗体 Form1 中画出控件并设置其属性。
  步骤 2:选择【工程】?【添加模块】命令,打开添加模块对话框,将考生文件夹下的model.bas 添加到当前工程中。
  步骤 3:打开代码编辑窗口,编写"计算"按钮的单击事件过程。
  步骤 4:按要求将文件保存至考生文件夹中。
  【考试误区】在调用过程保存数据时,一定要根据过程的定义正确传递参数。
三、综合应用题
  【审题分析】本题源程序已提供 ReadData 和 WriteData 两个自定义过程,只需编写"读数"、"计算"和"保存"命令的单击事件过程,并在事件过程中调用 ReadData 和 WriteData自定义过程。程序设计思路:在"读数"菜单项的 Click 事件过程中,通过调用 ReadData过程将数据从 dr1.dat 文件读入到数组 Arr(窗体变)中;在"计算"菜单项的 Click 事 件过程中,利用 For 循环语句(循环变i 的初值为 1,终值为 100)依次将数组 Arr 中小于 50 的元素的值显示在文本框中(条件表达式为 Arr(i)<50),并将其值累加到变 Sum,循环结束后将结果显示在窗体上。在"保存"菜单项的 Click 事件过程中,通过调用WriteData 过程将 Sum 的值写入数据文件 dw3.dat。
  注意:调用 WriteData 过程时需传递参数 dw3.dat 和 Sum,变Sum 应声明为窗体变
  【操作步骤】
  步骤 1:打开考生文件下的本题工程文件 vbsj5.vbp,利用菜单设计器,按表 57-5 中的设置建立菜单项。
  步骤 2:在窗体 Form1 中画一个文本框,其相关属性及其值见表 57-6。
  步骤 3:在代码编辑窗口,分别编写"读数"、"计算"和"保存"按钮的 Click 事件过程。
  参考代码:
  Dim sum As Integer
  Private Sub mnuCalc_Click()
  For i = 1 To 100
  If Arr(i) < 50 Then
  Txt1.Text = Txt1.Text & Arr(i) & Space(5)
  sum = sum + Arr(i)
  End If
  Next
  Print sum
  End Sub
  Private Sub mnuRead_Click()
  ReadData
  End Sub
  Private Sub mnuSave_Click()
  WriteData "dw3.dat", sum
  End Sub
  步骤 4:按要求将文件保存至考生文件夹中。