1、二级 VISUAL+BASIC-32-2 及答案解析(总分:65.00,做题时间:90 分钟)一、B1 基本操作题/B(总题数:1,分数:15.00)1.在名称为 Form1 的窗体上添加一个名称为 Image1 的图像框,其高、宽分别为 1900、1700,通过属性窗口把考生文件夹下的图像文件 pic1. bmp 载入图像框;再画两个命令按钮控件,名称分别为 C1、C2,标题分别为“放大”、“缩小”,如图所示。 要求: 请编写适当的事件过程,程序运行后,如果单击“放大”按钮,则将图像框的高度、宽度均增加 100;单击“缩小”按钮,则将图像框的高度、宽度均减少 100,要求程序中不得使用任何变
2、量。 (分数:15.00)_二、B2 简单应用题/B(总题数:1,分数:20.00)2.在考生文件夹中有一个工程文件 sj3.vbp 和一个窗体文件 sj3.frm;窗体上有一个名为 Text1 的文件框,一个标题为“计算”,名称为 Command1 的命令按钮和一个组合框。请在名为 Combo1 的组合框中输入 3 个列表项:“5”、“9”、“13”(列表项的顺序不限,但必须是这 3 个数字),程序运行情况如下图所示。 请编写适当的事件过程,使得程序运行时,在组合框中选定一个数字后,单击“计算”按钮,则计算4000 以内能够被该数整除的所有数之和,并放人 Text1 中。最后按原文件名存盘(
3、提示:由于计算结果较大,应使用长整型变量)。 注意:不得修改窗体文件中已经存在的程序,在结束程序运行之前,必须至少进行一次计算。必须用窗体右上角的关闭按钮结束程序,否则无成绩。 (分数:20.00)_三、B3 综合应用题/B(总题数:1,分数:30.00)3.在名称为 Form1 的窗体上建立一个文本框,名称为 Text1,可以多行显示文本,具备垂直滚动条,再建立两个命令按钮,名称分别为 Cmd1 和 Cmd2,标题分别为“读入数据”和“计算保存”。要求程序运行后,如果单击“读入数据”按钮,则读入 in010。txt 文件中的 100 个整数,放入一个数组中,数组下界为1。同时在文本框中显示出
4、来。如果单击“计算保存”按钮,则计算小于或等于 100 的所有数之和,并把求和结果在文本框 Text1 中显示出来,同时把该结果存入考生文件夹中的文件 out010.txt 中。在考生文件夹下有标准模块文件 mode010.bas 添加到自己的工程中,直接调用此过程。 注意: 文件必须存放在考生文件夹下,窗体文件名为 djks010.frm,工程文件名为 djks010.vbp,计算结果存入 out010.txt 文件,否则没有成绩。程序运行时的窗体界面如下图所示。 (分数:30.00)_二级 VISUAL+BASIC-32-2 答案解析(总分:65.00,做题时间:90 分钟)一、B1 基本
5、操作题/B(总题数:1,分数:15.00)1.在名称为 Form1 的窗体上添加一个名称为 Image1 的图像框,其高、宽分别为 1900、1700,通过属性窗口把考生文件夹下的图像文件 pic1. bmp 载入图像框;再画两个命令按钮控件,名称分别为 C1、C2,标题分别为“放大”、“缩小”,如图所示。 要求: 请编写适当的事件过程,程序运行后,如果单击“放大”按钮,则将图像框的高度、宽度均增加 100;单击“缩小”按钮,则将图像框的高度、宽度均减少 100,要求程序中不得使用任何变量。 (分数:15.00)_正确答案:(考点分析本题考点有:图像框的 Name、Width、Height、P
6、icture 和 Stretch 属性,命令按钮的 Name、Caption 属性。解题思路图像框(Image)控件的 Picture 属性用于在设计阶段时装载在图像框中显示的图片,它的 Stretch(自动伸缩)属性用来设定载入其中的图片是否需要自动调整,以适应图像框的大小。图像框的宽和高分别由其Width 属性和 Height 属性设置。本题要在单击按钮时实现“放大”或“缩小”的功能,应在程序中动态设置图像框大小(宽和高),即在其原来基础上增加或减小图像框的宽和高。操作步骤步骤 1:新建一个窗体,按照题目要求建立控件并设置图像框相应属性,如图所示。* 步骤 2:按照步骤 1 设置其他控件相
7、关属性,程序中涉及的控件及属性见表。 控件 图像框 命令按钮 1 命令按钮 2属性 Name WidthHeightPictureStretchNameCaptionNameCaption设置值 Imagel1700 1900 piclbmpTrue C1 放大 C2 缩小步骤 3:打开代码编辑窗口,在指定位置编写如下代码。参考答案Private Sub C1_ Click()当单击“放大“按钮时,依次将 Image1 的高与宽分别加 100Image1.Height=Image1.Height+100Image1.Width=Image1.Width+100End SubPrivate Su
8、b C2_Click()当单击“缩小“按钮,则依次将 Image1 的高与宽分别减 100Image1.Height=Image1.Height-100Image1.Width=Image1.Width-100End Sub步骤 4:调试并运行程序,关闭程序后按题目要求存盘。)解析:二、B2 简单应用题/B(总题数:1,分数:20.00)2.在考生文件夹中有一个工程文件 sj3.vbp 和一个窗体文件 sj3.frm;窗体上有一个名为 Text1 的文件框,一个标题为“计算”,名称为 Command1 的命令按钮和一个组合框。请在名为 Combo1 的组合框中输入 3 个列表项:“5”、“9”
9、、“13”(列表项的顺序不限,但必须是这 3 个数字),程序运行情况如下图所示。 请编写适当的事件过程,使得程序运行时,在组合框中选定一个数字后,单击“计算”按钮,则计算4000 以内能够被该数整除的所有数之和,并放人 Text1 中。最后按原文件名存盘(提示:由于计算结果较大,应使用长整型变量)。 注意:不得修改窗体文件中已经存在的程序,在结束程序运行之前,必须至少进行一次计算。必须用窗体右上角的关闭按钮结束程序,否则无成绩。 (分数:20.00)_正确答案:(组合框(ComboB0x)将文本框与列表框的特性组合在一起,既可在组合框的文本框部分输入信息,也可在列表框部分选择项目;组合框的列表
10、项可以在设计阶段通过其 List 属性加入,加入时注意每输入完一项后,按Ctrl+Enter组合键换行再输入下一项,也可以通过代码设置,AddItem 方法用来向组合框中添加一个表项,其格式为:组合框Additem 列表项索引。 题目给出的源程序中已设计好窗体,只需在 Combo1 的 List 属性中添加“5”、“9”、“13”三个列表项,添加完成后,双击 Command1进入代码窗口,补充后的代码如下: Private Sub Command1_Click() If Combo1.Text=5 Then divide(5) Else If Combo1.Text=9 Then divide
11、(9) Else divide(U13/U) End If End Sub Private Sub divide(X As Integer) Dim i As Integer Dim temp As ULong/U For i=1 To 4000 If i Mod Ux/U=0 Then temp=temp+i End If Next i Text1.Text=temp End Sub 单击*按钮运行程序,并按要求保存。)解析:三、B3 综合应用题/B(总题数:1,分数:30.00)3.在名称为 Form1 的窗体上建立一个文本框,名称为 Text1,可以多行显示文本,具备垂直滚动条,再建立两
12、个命令按钮,名称分别为 Cmd1 和 Cmd2,标题分别为“读入数据”和“计算保存”。要求程序运行后,如果单击“读入数据”按钮,则读入 in010。txt 文件中的 100 个整数,放入一个数组中,数组下界为1。同时在文本框中显示出来。如果单击“计算保存”按钮,则计算小于或等于 100 的所有数之和,并把求和结果在文本框 Text1 中显示出来,同时把该结果存入考生文件夹中的文件 out010.txt 中。在考生文件夹下有标准模块文件 mode010.bas 添加到自己的工程中,直接调用此过程。 注意: 文件必须存放在考生文件夹下,窗体文件名为 djks010.frm,工程文件名为 djks0
13、10.vbp,计算结果存入 out010.txt 文件,否则没有成绩。程序运行时的窗体界面如下图所示。 (分数:30.00)_正确答案:(第一步:单击考试界面的“功能”选项,从弹出的荣单中选择“启动应用程序”选项。Visual Basic 启动后,新建一个工程文件。打开考生文件夹下的 Mode010.bas 文件。 第二步:单击工具箱的命令按钮,在窗体上拖拉出两个命令按钮,Name 属性分别为 Cmd1 和 Cmd2,Caption 属性分别为“读入数据”和“计算保存”。再单击工具箱中的文本框控件,Name 属性为 Text1,Text 属性为空,ScrollBars 属性为 2,MultiL
14、ine 属性为 True。 第三步:双击窗体的任何部分,进入程序编写窗口,补充程序如下: 在窗体模块中编写如下代码: 1 Option Explicit 2 Option Base 1 3 Dim t a(100) 4 Dim i As Integer 5 Dim n As Integer 6 Dim f As Integer 7 Dim s As Long 8 Private Sub Cmd1 Click( ) 9 Open App Path &“/in010.txt“For Input As #1 10 For i=1 To 100 11 Input #1, n 12 a(i)=n 13
15、Text1.Text=Text1. Text &a(i) &“ 14 Next i 15 Close #1 16 End Sub 17 Private Sub Cmd2 Click( ) 18 For i=1 To 100 19 If a(i)=100 Then s=s+a(i) 20 Next i 21 Call WriteData(“out010.txt“,s) 22 Text1.Text=s 23 End Sub 第四步:填写完毕,调试程序,确定无误后,将工程与窗体按照 djks010 的文件名保存在考生文件夹下,并执行一次操作,将程序运行得到的结果存到考生文件夹的 out010.txt
16、 文件中。)解析:解析 Visual Basic 中文件的打开方式主要有 Output、Append、Input、Random 等几种方式。Output、Append、Input 方式打开的文件进行的读写操作都是以顺序方式进行的。其中 Output、Append打开的文件主要用来输出数据,与 Print #、Write #等方法配合使用;以 Input 方式打开的文件主要用来输入数据它与 Input#与 Line Input#语句配合使用。本题的 Cmd1 的事件过程中,使用 Input 语句读入数据,由于 Input 读入数据时按照数据项来读入,这一点与 Line Input 不同,故可以使用 For 循环来逐一接收读入的数据项,并将这些数据项逐一赋给一个数组。本题赋给了数组 a。在 Cmd2 的事件过程中,再次使用 For 循环逐一判断 a 数组中的元素,使得该元素小于等于 100 的时候就累加到 s 中,最后调用窗体模块中 WriteData 过程,保存结果。 可见,数据项的读入与 For 循环联系紧密。特别是当读入一组数据并将这组数据赋给一个数组时,使用 For 循环相当方便。