1、二级 VISUAL+BASIC 机试-22 及答案解析(总分:100.00,做题时间:90 分钟)一、1 基本操作题(总题数:1,分数:30.00)1.注意:下面出现的“”均为 c:/wexam/25160001。请根据以下各小题的要求设计 Visual Basic 应用程序(包括界面和代码)。(1) 在名称为 Form1 的窗体上画两个标签,名称分别为 Label1 和 Label2,标题分别为“身高”和“体重”,两个文本框,名称分别为 Text1 和 Text2,Text 属性均为空白,一个命令按钮,名称为 Command1,标题为“输入”。然后编写命令按钮的 Click 事件过程,程序运
2、行后,如果单击命令按钮,则先后显示两个输入对话框,在两个输入对话框中分别输入身高和体重,并分别在两个文本框中显示出来。程序运行界面如图 21-1 所示。要求程序中不得使用任何变量。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1.vbp,窗体文件名为 sjt.frm。(2) 在名称为 Form1 的窗体上画一个图片框,名称为 Picture1,一个垂直滚动条,名称为 VScroll1,一个命令按钮,名称为 Command1,标题为“设置属性”。通过“属性”窗口在图片框中装入一个图形(文件名为 pic1.jpg,位于考生文件夹下),图片框的宽度与图形的宽度相同,图片框的高度任意,如图
3、21-2所示。编写适当的事件过程。程序运行后,如果单击命令按钮,则设置垂直滚动条的如下属性:Min 100Max 2400LargeChang 200SmallChange 20之后就可以通过移动滚动条上的滚动块来放大或缩小图片框的高度。运行后的窗体如图 21-3 所示。要求程序中不得使用任何变量。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt2.vbp,窗体文件名为 sjt2.frm。(分数:30.00)_二、2 简单应用题(总题数:1,分数:40.00)2. (分数:40.00)_三、3 综合应用题(总题数:1,分数:30.00)3. (分数:30.00)_二级 VISUAL+B
4、ASIC 机试-22 答案解析(总分:100.00,做题时间:90 分钟)一、1 基本操作题(总题数:1,分数:30.00)1.注意:下面出现的“”均为 c:/wexam/25160001。请根据以下各小题的要求设计 Visual Basic 应用程序(包括界面和代码)。(1) 在名称为 Form1 的窗体上画两个标签,名称分别为 Label1 和 Label2,标题分别为“身高”和“体重”,两个文本框,名称分别为 Text1 和 Text2,Text 属性均为空白,一个命令按钮,名称为 Command1,标题为“输入”。然后编写命令按钮的 Click 事件过程,程序运行后,如果单击命令按钮,
5、则先后显示两个输入对话框,在两个输入对话框中分别输入身高和体重,并分别在两个文本框中显示出来。程序运行界面如图 21-1 所示。要求程序中不得使用任何变量。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1.vbp,窗体文件名为 sjt.frm。(2) 在名称为 Form1 的窗体上画一个图片框,名称为 Picture1,一个垂直滚动条,名称为 VScroll1,一个命令按钮,名称为 Command1,标题为“设置属性”。通过“属性”窗口在图片框中装入一个图形(文件名为 pic1.jpg,位于考生文件夹下),图片框的宽度与图形的宽度相同,图片框的高度任意,如图 21-2所示。编写适当的
6、事件过程。程序运行后,如果单击命令按钮,则设置垂直滚动条的如下属性:Min 100Max 2400LargeChang 200SmallChange 20之后就可以通过移动滚动条上的滚动块来放大或缩小图片框的高度。运行后的窗体如图 21-3 所示。要求程序中不得使用任何变量。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt2.vbp,窗体文件名为 sjt2.frm。(分数:30.00)_正确答案:(解析 在窗体上建立好控件后,先设置控件的属性,再编写程序代码。文本框的内容由 Text 属性设置,命令按钮标题由 Caption 属性设置,单击命令按钮触发 Click 事件。程序中用到了
7、InputBox(),其格式为:InputBox(prompt,title,default,xpos,ypos,helpfile,context)prompt:是一个字符串,其长度不得超过 1024 个字符,它是在对话框内显示的信息,用来提示用户输入。title:字符串,它是对话框的标题,显示在对话框顶部的标题区。default:字符串,用来显示输入缓冲区的默认信息。xpos,ypos:是两个整数值,分别用来确定对话框与屏幕左边的距离(xpos)和上边的距离(ypos),它们的单位为 twip。helpfile,context:helpfile 是一个字符串变量或字符串表达式,用来表示帮助文件
8、的名字;context是一个数值变量或表达式,用来表示相关帮助主题的帮助目录号。解题步骤:第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表 21-1。表 21-1控 件 属 性 设 置 值标签 Name Cption Label 身高标签 Name Cption Label 体重文本框 Name Text1文本框 Name Text2命令按钮 Name Cption Command1 输入第二步:编写程序代码。参考代码:Option ExplicitPrivate Sub Command1_Click()Text1.Text=InputBox(“请输入身高“)Text2.Text=
9、InputBox(“请输入体重“)End Sub第三步:调试并运行程序。第四步:按题目要求存盘。(2) 解析 在窗体上建立好控件后,先设置控件属性,再编写程序代码。控制图片的大小,就是调节图片框 Width 属性和 Height 属性的值,Width 属性和 Height 分别决定控件的宽和高。要使滚动条的 Value 值改变影响图片框的大小,需要将滚动条的 Value 值和图片框的高联系起来,滚动条的 Value 属性值改变时触发 Change 事件。解题步骤:第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表 21-2。表 21-2控 件 属 性 设 置 值命令 Name Cpt
10、ion Command1 设置属性图片框 Name Picture Picture1 pic1.jpgHscrollbar Name VScroll1第二步:编写程序代码。参考代码:Option ExplicitPrivate Sub Commandl_Click()VScroll1.Max=2400VScroll1.Min=100VScroll1.LargeChange=200VScroll1.SmallChange=20End SubPrivate Sub VScroll1_Change()Picture1.Height=VScroll1.ValueEnd Sub第三步:调试并运行程序。第
11、四步:按题目要求存盘。答案考生文件夹)解析:二、2 简单应用题(总题数:1,分数:40.00)2. (分数:40.00)_正确答案:(解析 使用 AddItem 方法向列表框中添加列表项目,其格式为:列表.AddItem 项目字符串,索引值AddItem 方法把“列表字符串”的文本内容放入“列表框”中。如果省略“索引值”则文本本放在列表框的尾部。“索引值”可以指定插入项在列表框中的位置,表中的项目从 0 开始计数,“索引值”不能大于表中的项数减 1。该方法只能单个的项列表框中添加项目。使用 RemoveItem 方法从列表框中删除列表项目其格式为:列表.RemoveItem 索引值Remove
12、Item 方法从列表框中删除以“索引值”为地址的项目,该方法每次只能删除一个项目。解题步骤:第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表 21-3。表 21-3控 件 属 性 设 置 值istbox Name List1命令按钮 Name Picture Command1 添加项目命令按钮 Name Picture Command2 删除项目文本框 Name Text1第二步:编写程序代码。程序提供的代码:Private Sub Command1_Click()Text1.Text=InputBox(“请输入要添加的项目“)List1.AddItem ?End SubPriva
13、te Sub Command2_Click()Text1.Text=InputBox(“请输入要删除的项目“)For i=0 To ?If List1.List(i)= ? ThenList1.RemoveItem ?End IfNext iEnd Sub参考代码:Private Sub Command1_Click()Text1.Text=InputBox(“请输入要添加的项目“)List1.AddItem Text1.TextEnd SubPrivate Sub Command2_Click()Text1.Text=InputBox(“请输入要删除的项目“)For i=0 To List1
14、.ListCount-1If List1.List(i)=Text1.Text ThenList1.RemoveItem iEnd IfNext iEnd Sub第三步:调试并运行程序。第四步:按题目要求存盘。(2) 解析 文本框里的内容(包括数字)默认都是当作字符串来处理的,如果要参与数据运算则需先用 Val()函数将其转化为数字(如:Va1(Text1.Text)。这里需要指出的是利用 Array 对数组各元素赋值,声明数组的类型只能是 Variant。数组的上下界可用 LBound 函数和 UBound 函数分别获得:程序中变量 Max 保存最大数,最初把数组的第一个元素赋给Max,然后
15、将其后的元素依次与之比较,如果大于 Max 的值则与之交换,后面又将 Max 作为标杆,依次类推,最终 MAX 中的元素就是最大值。在窗体上打印信息可以通过 Print 方法来实现,其形式为:对象. Print 要显示的内容解题步骤:第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表 21-4。表 21-4控 件 属 性 设 置 值命令按钮 Name Picture Command1 求最大值文本框 Name Text1文本框 Name Text2文本框 Name Text3文本框 Name Text4第二步:编写程序代码。程序中提供的代码:Option Base 1Private
16、Function FindMax(a() As Integer)Dim Start As IntegerDim Finish As Integer, i As IntegerStart=?(a)Finish=?(a)Max=?(start)For i=Start To FinishIf a(i) ? Max Then Max= ?Next iFindMax=MaxEnd FunctionPrivate Sub Command1_Click()Dim arr1Dim arr2(4) As Integerarr1=Array(Val(Text1.Text) , Val(Text2.Text) ,
17、Val(Text3.Text) , Val(Text4.Text) )For i=1 To 4arr2(i)=CInt(?)Next iM=FindMax(?)Print “最大值是:“; MEnd Sub参考代码:Option Base 1Private Function FindMax(a() As Integer)Dim Start As IntegerDim Finish As Integer, i As IntegerStart=LBound(a)Finish=UBound(a)Max=a(Start)For i=Start To FinishIf a(i)Max Then Max=
18、a(i)Next iFindMax=MaxEnd FunctionPrivate Sub Command1_Click()Dim arr1Dim art2(4) As Integerarr1=Array(Val(Text1.Text) , Val(Text2.Text) , Val(Text3.Text) , Val(Text4.Text) )For i=1 To 4arr2(i)=CInt(arr1(i) )Next iM=FindMax (arr2)Print “最大值是:“; MEnd Sub第三步:调试并运行程序。第四步:按题目要求存盘。)解析:三、3 综合应用题(总题数:1,分数:3
19、0.00)3. (分数:30.00)_正确答案:(解析 使用 Open 方法和 Close 方法打开和关闭文件,使用循环语句把整数赋给数组。在计算输出时,先定义一个变量,用来保存奇数的和;计算时找出数组中下标为奇数的数进行累加,将结果在文本框中显示出来。在窗体上打印内容可以用 Print 方法来实现。解题步骤:第一步:建立菜单项、建立界面并设置控件属性。程序中用到的菜单项及其控件属性见表 21-5。表 21-5标 题 名 称 内 缩 符 号读入数据 Read 0计算并输出 Calc 0存盘 Save 0Text Name Text1第二步:编写程序代码。程序提供的代码:Option Base
20、1Dim Arr(100) As IntegerDim temp As IntegerSub ReadData()Open App.Path & “/“ & “datain1.txt“ For Input As #1For i=1 To 100Input #1, Arr(i)Next i? #1End SubSub WriteData(Filename As String, Num As Integer)Open App.Path & “/“ & Filename For Output As #1Print #1, NumClose #1End SubPrivate Sub Calc_Clic
21、k()Text1.?=“For i=1 To 100 Step 2Text1.Text=Text1.Text & Arr(i) & Space(5)temp=temp+Arr(i)Next iPrint ?End SubPrivate Sub Read_Click()ReadDataEnd SubPrivate Sub Save_Click()WriteData “dataout.txt“, tempEnd Sub参考代码:Option Base 1Dim Arr(100) As IntegerDim temp As IntegerSub ReadData()Open App.Path & “
22、/“ & “datain1.txt“ For Input As #1For i=1 To 100Input #1, Arr(i)Next iClose #1End SubSub WriteData(Filename As String, Num As Integer)Open App.Path & “/“ & Filename For Output As #1Print #1, NumClose #1End SubPrivate Sub Calc_Click()Text1.Text=“For i=1 To 100 Step 2Text1.Text=Text1.Text & Arr(i) & Space(5)temp=temp+Arr(i)Next iPrint tempEnd SubPrivate Sub Read_Click()ReadDataEnd SubPrivate Sub Save_Click()WriteData “dataout.txt“, tempEnd Sub第三步:调试并运行程序。第四步:按题目要求存盘。)解析: