1、二级 VISUAL+BASIC-461 及答案解析(总分:34.00,做题时间:90 分钟)一、1 基本操作题(总题数:1,分数:15.00)1.在名称为 Form1 的窗体中画一个图像框,名称为 Image1,其高、宽分别为 1800、4500,通过属性窗口把考生文件夹下的图像文件 smile.bmp 装入图像框;再画一个命令按钮,名称为 Cmd1,标题为“放大”。请编写适当事件过程,程序运行后,单击“放大”按钮,则把图像框的高度、宽度均增加 100,同时图像也随之自动放大。 注意:程序中不得使用任何变量。程序运行时的界面如下图所示。 (分数:15.00)_二、2 简单应用题(总题数:1,分
2、数:20.00)2.在考生目录下有一个工程文件 sjt3.vbp,窗体上有一个组合框 Combo1,其中已经预设了内容;还有一个文本框 Text1 和三个命令按钮,名称分别为 Command1、Command2、Command3,标题分别为“修改”、“确定”、“添加”。程序运行时,“确定”按钮不可用,如下图所示。 程序的功能是:在运行时,如果选中组合框中的一个列表项,单击“修改”按钮,则把该项复制到 Text1中(可在 Text1 中修改),并使“确定”按钮可用;若单击“确定”按钮,则把修改后的 Text1 中的内容替换组合框中该列表项的原有内容,同时使“确定”按钮不可用;若单击“添加”按钮,
3、则把在 Text1 中的内容添加到组合框中。 所提供的窗体文件已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的“?”改为正确的内容。但不能修改程序中的其他部分,也不能修改控件的属性。最后把修改后的文件按原文件名存盘。 (分数:20.00)_三、3 综合应用题(总题数:1,分数:-1.00)3.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。 在考生文件夹下有一个工程文件 sjt5.vbp,其窗体上有一个文本框,名称为 Text1;两个命令按钮,名称分别为 C1 和 C2,标题分别为“计算”、“存盘”,设计界面如图 20-5 所示。并有一个函数过程
4、isprime,其功能是判断参数 a 是否为素数,如果是素数,则返回 True,否则返回 False。 请将程序中问号的地方用相应的代码补充完整,使得在运行时,单击“计算”按钮,则找出小于 18000 的最大的素数,并显示在 Text1 中;单击“存盘”按钮,则把 Text1 中的计算结果存入考生文件夹下的out5.txt 文件中。 注意:考生不得修改 isprime 函数过程和控件的属性,必须把计算结果通过“存盘”按钮存入 out5.txt文件中,否则无成绩。 (分数:-1.00)_二级 VISUAL+BASIC-461 答案解析(总分:34.00,做题时间:90 分钟)一、1 基本操作题(
5、总题数:1,分数:15.00)1.在名称为 Form1 的窗体中画一个图像框,名称为 Image1,其高、宽分别为 1800、4500,通过属性窗口把考生文件夹下的图像文件 smile.bmp 装入图像框;再画一个命令按钮,名称为 Cmd1,标题为“放大”。请编写适当事件过程,程序运行后,单击“放大”按钮,则把图像框的高度、宽度均增加 100,同时图像也随之自动放大。 注意:程序中不得使用任何变量。程序运行时的界面如下图所示。 (分数:15.00)_正确答案:()解析:第一步:启动 Visual Basic,新建工程文件。 第二步:设计窗体。根据题意,该用户界面包括三个对象,即窗体、一个文本框
6、和一个命令按钮。因此在窗体上添加一个文本框和一个命令按钮并放置在窗体的适当位置。 第三步:设置属性。根据题意,窗体的名称(Name)和标题(Caption)属性都为默认的 Form1,因此无须再为其重新设置属性。将文本框的名称(Name)和标题(Caption)属性分别设置为“Text1”和空值。将命令按钮的名称(Name)和标题(Caption)属性分别设置为“C1”和“移动”。设置完属性之后就可以通过双击命令按钮进入代码编辑窗口编写代码如下: 1 Private Sub C1_Click( ) 2 Text1.Left=0 3 End Sub 第四步:保存。程序设计完成经调试无误后进行存盘
7、。以 sjt2.vbp,和 sjy2.frm 进行保存。 解析 本题主要考查对象的 Left 属性的概念。Left 属性是用来设置对象的左边的坐标值,坐标值的默认单位为twip。当用程序代码设计时其格式为:对象.Left=x。这里的对象可以是窗体和绝大多数控件。当“对象”为窗体时,Left 指的是窗体的左边界与屏幕左边界的相对距离;而当“对象”为控件时,Left 指控件的左边界与窗体的左边的相对距离。和 Lert 属性相同的还有 top 属性,它是用来设置对象的顶边的坐标值,其对象的概念和 Left 属性中相同。本题要求单击按钮后文本框水平移动到窗体的最左端。对象为文本框,它的 Left 值是
8、相对于窗体的左边界来说的,因此当它移动到窗体最左端时其 Left 值为 0。二、2 简单应用题(总题数:1,分数:20.00)2.在考生目录下有一个工程文件 sjt3.vbp,窗体上有一个组合框 Combo1,其中已经预设了内容;还有一个文本框 Text1 和三个命令按钮,名称分别为 Command1、Command2、Command3,标题分别为“修改”、“确定”、“添加”。程序运行时,“确定”按钮不可用,如下图所示。 程序的功能是:在运行时,如果选中组合框中的一个列表项,单击“修改”按钮,则把该项复制到 Text1中(可在 Text1 中修改),并使“确定”按钮可用;若单击“确定”按钮,则
9、把修改后的 Text1 中的内容替换组合框中该列表项的原有内容,同时使“确定”按钮不可用;若单击“添加”按钮,则把在 Text1 中的内容添加到组合框中。 所提供的窗体文件已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的“?”改为正确的内容。但不能修改程序中的其他部分,也不能修改控件的属性。最后把修改后的文件按原文件名存盘。 (分数:20.00)_正确答案:()解析:第一步:启动 Visual Basic,打开考生文件夹下的工程文件。 第二步:双击窗体的任何部分,进入程序编写代码窗口,修改程序如下: 1 Private Sub Command1_Click( ) 2 T
10、ext1=Combo1.Text 3 Command2.Enabled=True 4 Command2.Enabled=True 5 End Sub 6 7 Private Sub Command2_Click( ) 8 Combo1.List(Combo1.List Index)=Text1 9 Combo1.List( Form1.Combo1.ListIndex)=Text1 10 Text1=“ 11 Command2.Enabled=False 12 End Sub 13 14 Private Sub Command3_Click( ) 15 Combo1.AddItera Text
11、1 16 Form1.Combol.AddItem Text1 17 End Sub 第三步:修改完毕,调试正确后将工程与窗体以原文件名保存到考生文件夹下。 解析 Enabled 属性允许在运行时使窗体和控件成为有效或无效,ListIndex 设置控件中当前选择项目的索引,AddItem 用于将项目添加到 ListBox 控件。三、3 综合应用题(总题数:1,分数:-1.00)3.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。 在考生文件夹下有一个工程文件 sjt5.vbp,其窗体上有一个文本框,名称为 Text1;两个命令按钮,名称分别为 C1 和 C2,标题分别为
12、“计算”、“存盘”,设计界面如图 20-5 所示。并有一个函数过程isprime,其功能是判断参数 a 是否为素数,如果是素数,则返回 True,否则返回 False。 请将程序中问号的地方用相应的代码补充完整,使得在运行时,单击“计算”按钮,则找出小于 18000 的最大的素数,并显示在 Text1 中;单击“存盘”按钮,则把 Text1 中的计算结果存入考生文件夹下的out5.txt 文件中。 注意:考生不得修改 isprime 函数过程和控件的属性,必须把计算结果通过“存盘”按钮存入 out5.txt文件中,否则无成绩。 (分数:-1.00)_正确答案:()解析:解析 在窗体上建立好控件
13、后,先设置控件的属性,再编写事件过程。 素数的判断准则就是看是否该数除了 1 和其本身外别无其他约数(即从 2 到 n-1 之间没有可以将其整除的数)即可,变量 flag 是用于保留判断数是否是素数的结果的,值有 True 和 False 两个(从程序中可以看出)所以应将其定义为布尔型(Boolean),并且在函数中判断完之后,将 flag 的值赋给函数过程 isprime的名字。 文本框用 Text 属性来显示计算机结果,其形式为: 文本框名.Text=要显示的内容 将数据写入文件可用命令 Write#或 Print#,本程序中用的是后者,其形式为: Pint#文件号,输出列表。 解题步骤:
14、 第一步:建立界面并设置控件属性。 程序中用到的控件及其属性值见表 20-5。 表 20-5 对 象 属 性 设 置 值 文本框 Name Text1 命令按钮 Name Cption C1 计算 命令按钮 Name Cption C2 存盘 第二步:编写程序代码。 程序中提供的代码: Private Function isprime(a As Integer) As Boolean “ Dim flag As? flag=True b%=2 Do While b%=Int(a/2) And flag If Int(a/b%)=a/b% Then flag=False Else b%=b%+1
15、 End If “ ? isprime=flag End Function Private Sub C1_Click() Dim i As Integer i=18000 Do i=i-1 Loop Until isprime(i) “ Text1.?=i End Sub Private Sub C2_Click() Open “out5.txt“ For Output As #1 Print #1, Text1.Text Close #1 End Sub 参考代码: Private Function isprime(a As Integer) As Boolean Dim flag As B
16、oolean flag=True b%=2 Do While b%=Int(a/2) And flag If Int(a/b%)=a/b% Then flag=False Else b%=b%+1 End If Loop isprime=flag End Function Private Sub C1_Click() Dim i As Integer i=18000 Do i=i-1 Loop Until isprime(i) Text1.Text=i End Sub Private Sub C2_Click() Open “out5.txt“ For Output As #1 Print #1, Text1.Text Close #1 End Sub 第三步:调试并运行程序。 第四步:按题目要求存盘。