1、(A)二级 VISUAL+BASIC 笔试-7 及答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:40.00)1.在名称为 Form1 的窗体上画两个标签(名称分别为 Label1 和 Label2,标题分别为“姓名”和“年龄”)、两个文本框(名称分别为 Text1 和 Text2,初始内容均为空)和一个命令按钮(名称为 Command1,标题为“显示”)。然后编写命令按钮的 Click 事件过程。程序运行后,在两个文本框中分别输入姓名和年龄,然后单击“显示”按钮,则在窗体上显示两个文本框中的内容,如图所示。要求程序中不得使用任何变量。注意:存盘时必须存放
2、在考生文件夹下,工程文件名保存为 sjt1.vbp,窗体文件名保存为 sjt1.frm。(分数:20.00)_2.在名称为 Form1 的窗体上画一个图片框,其名称为 Picture1,一个水平滚动条,名称为 HScroll1,一个命令按钮,名称为 Command1,标题为“设置属性”,通过属性窗口在图片框中装入一个图形(文件名为pic1.jpg,位于考生目录下),图片框的高度与图形的高度相同,图片框的宽度任意(如图 1 所示)。编写适当的事件过程,程序运行后,如果单击命令按钮,则设置水平滚动条的属性如下:Min 100Max 1500LargeChange 100SmallChange 10
3、之后就可以通过移动滚动条上的滚动块来放大或缩小图片框。程序运行后的窗体如图 2 所示。要求程序中不得使用任何变量。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt2.vbp,窗体文件名为 sjt2.frm。(分数:20.00)_二、简单应用题(总题数:2,分数:40.00)3.在考生文件夹下有一个工程文件 sjt3.vbp(相应的窗体文件名为 sjt3.frm),在窗体上添加一个名称为List1 的列表框和一个名称为 Text1 的文本框,如图 1 所示。编写窗体的 MouseDown 事件过程。程序运行后,如果用鼠标单击窗体,则从键盘上输入要添加到列表框中的项目(内容任意,不少于三个
4、);如果用鼠标右键单击窗体,则从键盘上输入要删除的项目,将其从列表框中删除。程序的运行情况如图 2 所示。这个程序不完整,请把它补充完整,并能正确运行。要求:去掉程序中的注释符,把程序中的?改为适当的内容,使其正确运行,但不能修改程序中的其他部分。最后将修改后的文件按原文件名存盘。(分数:20.00)_4.存考生文件夹下有一个工程文件 sjt4.vbp(相应的窗体文件名为 sjt4.frm),其功能是通过调用过程FindMin 求数组的最小值。程序运行后,在 4 个文本框中各输入一个整数,然后单击命令按钮,即可求出数组的最小值,并在窗体上显示出来(如图所示)。要求:去掉程序中的注释符,把程序中
5、的?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后把修改后的文件按原文件名存盘。(分数:20.00)_三、综合应用题(总题数:1,分数:20.00)5.在窗体上建立三个菜单(名称分别为 Read、Calc 和 Saye,标题分别为“读入数据”、“计算并输出”和“存盘”),然后再添加一个文本框,名称为 Text1,MultiLine 属性设置为 True,ScrollBars 属性设置为 2(如图所示)。程序运行后,如果执行“读入数据”命令,则读入考生文件夹下 datain1.txt 文件中的 100 个整数,放入一个数组中,数组的下界为 1;如果单击“计算并输出”按钮,则把
6、该数组中下标为偶数的元素在文本框中显示出来,求出它们的和,并把所求得的和在窗体上显示出来;如果单击“存盘”按钮,则把所求得的和存入考生文件夹下的 dataout.txt 文件中。(分数:20.00)_(A)二级 VISUAL+BASIC 笔试-7 答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:40.00)1.在名称为 Form1 的窗体上画两个标签(名称分别为 Label1 和 Label2,标题分别为“姓名”和“年龄”)、两个文本框(名称分别为 Text1 和 Text2,初始内容均为空)和一个命令按钮(名称为 Command1,标题为“显示”)。然后
7、编写命令按钮的 Click 事件过程。程序运行后,在两个文本框中分别输入姓名和年龄,然后单击“显示”按钮,则在窗体上显示两个文本框中的内容,如图所示。要求程序中不得使用任何变量。注意:存盘时必须存放在考生文件夹下,工程文件名保存为 sjt1.vbp,窗体文件名保存为 sjt1.frm。(分数:20.00)_正确答案:(操作步骤步骤 1:新建一个窗体,按照题目要求建立控件并设置相应属性,程序中用到的控件及属性如表所示。控件 标签 1 标签 2 文本框 文本框 命令按钮属性 Name CaptionName CaptionName TextName TextCaption设置值 Label1姓名
8、Label2年龄 Text1 Text2 显示步骤 2:打开代码编辑窗口,在指定位置编写如下代码。参考答案Private Sub Command1_Click()Form1.Print Text1. Text“,现年“Text2.Text“岁“End Sub步骤 3:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:标签的 Name 和 Caption 属性、文本框 Name 和 Text 属性、命令按钮的 Name和 Caption 属性、“”和“+”运算符以及 Print 方法。通过标签的 Name 和 Caption 属性设置标签的名称和标题,通过文本框 Name 和
9、Text 属性设置文本框的名称和文本,通过命令按钮的 Name 和 Caption 属性设置命令按钮的名称和标题,“”和“+”运算符均可将两个表达式作为字符串连接。在窗体上输出文本内容可使用 Print 方法。2.在名称为 Form1 的窗体上画一个图片框,其名称为 Picture1,一个水平滚动条,名称为 HScroll1,一个命令按钮,名称为 Command1,标题为“设置属性”,通过属性窗口在图片框中装入一个图形(文件名为pic1.jpg,位于考生目录下),图片框的高度与图形的高度相同,图片框的宽度任意(如图 1 所示)。编写适当的事件过程,程序运行后,如果单击命令按钮,则设置水平滚动条
10、的属性如下:Min 100Max 1500LargeChange 100SmallChange 10之后就可以通过移动滚动条上的滚动块来放大或缩小图片框。程序运行后的窗体如图 2 所示。要求程序中不得使用任何变量。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt2.vbp,窗体文件名为 sjt2.frm。(分数:20.00)_正确答案:(操作步骤步骤 1:新建一个窗体,添加控件并设置相应的属性。程序中用到的控件及其属性见表。控件 图片框 水平滚动条 命令按钮属性 Name AutoSizePicture Name Name Caption设置值 Picture1True pic1.jp
11、gHScroll1 Command设置属性步骤 2:打开代码编辑窗口,在指定位置编写如下代码。参考答案Private Sub Command1_Click()HScroll1.Max=1500 设置滚动条的最大值、最小值、最大改变值、最小改变值HScroll1.Min=100HScroll1.LargeChange=100HScroll1.SmallChange=10End SubPrivate Sub HScroll1._Change()Picture1.Width=HScroll1.Value 将图片的 width 与滚动条的 Value 保持一致End Sub步骤 3:调试并运行程序,关
12、闭程序后按题目要求存盘。)解析:考点 本题考点有:水平滚动条的 Name、Max、Min、LargeChange、SmallChange 和 Value 属性,图片框的 Width、Name 和 Picture 属性以及命令按钮的 Name 和 Caption 属性。在设计阶段通过 Picture 属性为图片框指定显示的图片,通过 Width 属性来设定或修改图片框的宽度。通过调整滚动条滑块的位置即可改变其 Value 属性的值,滚动条的 Max 和 Min 属性限定了滚动条所能表示的最大值和最小值,LargeChange 属性用于设置当单击滑块与两侧箭头问区域时 Value 属性值的改变量,
13、SinallChange 属性用于设置当单击滚动条两侧箭头时 Value 属性值的改变量。当改变滚动条滑块位置后将触发其 Change 事件。二、简单应用题(总题数:2,分数:40.00)3.在考生文件夹下有一个工程文件 sjt3.vbp(相应的窗体文件名为 sjt3.frm),在窗体上添加一个名称为List1 的列表框和一个名称为 Text1 的文本框,如图 1 所示。编写窗体的 MouseDown 事件过程。程序运行后,如果用鼠标单击窗体,则从键盘上输入要添加到列表框中的项目(内容任意,不少于三个);如果用鼠标右键单击窗体,则从键盘上输入要删除的项目,将其从列表框中删除。程序的运行情况如图
14、 2 所示。这个程序不完整,请把它补充完整,并能正确运行。要求:去掉程序中的注释符,把程序中的?改为适当的内容,使其正确运行,但不能修改程序中的其他部分。最后将修改后的文件按原文件名存盘。(分数:20.00)_正确答案:(操作步骤步骤 1:打开本题工程文件,按表所列在窗体画出控件并设置其属性。控件 列表框 文本框属性 Name Name设置值 List1 Text1步骤 2:打开代码编辑窗口,去掉程序中的注释符“”,将问号改为正确的内容。参考答案(阴影部分是需考生填入的内容)Private Sub Form_MouseDown(Button As Integer,Shift As Intege
15、r,X As Single,Y As Single)If Button=1 ThenText1.Text=InputBox(“请输入要添加的项目“)List1.AddItem Text1.Text将 Text1 中的内容加入列表End IfIf Button=2 ThenText1.Text=InputBox(“请输入要删除的项目“)列表总数用 ListCount 求得For i=0 To List1.ListCount-1判断列表项是否为要删除的项If List1.List(i)=Text1.Text Then删除 i 所对应的项List1.RemoveItem iEnd IfNext iE
16、nd IfEnd Sub程序结束步骤 3:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:列表框的 Name、List 和 ListCount 属性,文本框的 Name 和 Text 属性,RemoveItem 方法,InputBox 函数,For 循环语句以及 If 判断语句。当在窗体上按下鼠标键时将触发其 MouseDown 事件,该事件过程的参数 Button 值为 1 时表示当前按下的是鼠标左键;当 Button 值为 2 时表示当前按下的是鼠标右键。向列表框添加项目使用 AddItem 方法,删除列表项使用 RemoveItem 方法。当执行删除操作时,本题在 F
17、or 循环语句中逐一判断列表中各项是否与输入内容一致,若一致则删除列表框中该项。程序中用到了 InputBox()函数,其格式为:InputBox(prompt,title,default,xpos,ypos,helpfile,context)其中常用参数为 prompt 和 title。prompt 是一个字符串,其长度不得超过 1024 个字符,它是在对话框内显示的信息,用来提示用户输入。title:是一个字符串,它是对话框的标题,显示在对话框顶部的标题区。列表数组 List(i)下标从 0 开始,列表项的循环上限应为 ListCount-1,要注意 InputBox 语句的格式。4.存考
18、生文件夹下有一个工程文件 sjt4.vbp(相应的窗体文件名为 sjt4.frm),其功能是通过调用过程FindMin 求数组的最小值。程序运行后,在 4 个文本框中各输入一个整数,然后单击命令按钮,即可求出数组的最小值,并在窗体上显示出来(如图所示)。要求:去掉程序中的注释符,把程序中的?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后把修改后的文件按原文件名存盘。(分数:20.00)_正确答案:(操作步骤步骤 1:打开本题工程文件。步骤 2:打开代码编辑窗口,去掉程序中的注释符“”,将问号改为正确的内容。参考答案(阴影部分是需考生填入的内容)Option Base 1Pr
19、ivate Function FindMin(a()As Integer)Dim Start As IntegerDim Finish As Integer,i As IntegerStart=LBound(a)求数组下界值Finish=UBoUnd(a)求数组上界值Min=a(Start)将第一个数赋给最小值进行比较For i=Start To Finish循环判断找最小值If a(i)Min Then Min=a(i)Next iFindMin=MinEnd FunctionPrivate Sub Command1_Click()Dim arr1Dim arr2(4)As Integera
20、rr1=Array(Val(Text1.Text),Val(Text2.Text),Val(Text3.Text),Val(Text4.Text)申请 arr1 数组并初始化For i=1 To 4arr2(i)=CInt(arr1(i)CInt 函数将 arr1 中的数值转换为整型Next iM=FindMin(arr2)Print“最小值是:“;MEnd Sub步骤 3:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:Array()函数,UBound()函数,LBound()函数,Val()函数,Print 方法,CInt()函数,For 循环语句以及 If 判断语句。
21、文本框里的内容(包括数字)默认都是当做字符串来处理的,如果需要参与数据运算,则需先用 Val()函数将其转化为数字(例如 Val(Text1.Text)。CInt 函数将数值转换为整型。这里需要指出的是,利用 Array 对数组各元素赋值,声明数组的类型只能是 Variant。在本题的 FindMin 过程中,用变量 Min 记录最小值,最初把数组的第一个元素的值赋给 Min,然后通过For 循环语句将其后的元素依次与之比较,如果小于 Min 的值则与之交换,依次类推,最终 Min 的值就是数组各元素中的最小值。在窗体上打印信息可以通过 Print 方法来实现,其形式为:对象.Print 要显
22、示的内容option base 在模块级别中使用,用来声明数组下标的默认下界,option base 后面只能是 0 或者 1,默认值为 0。三、综合应用题(总题数:1,分数:20.00)5.在窗体上建立三个菜单(名称分别为 Read、Calc 和 Saye,标题分别为“读入数据”、“计算并输出”和“存盘”),然后再添加一个文本框,名称为 Text1,MultiLine 属性设置为 True,ScrollBars 属性设置为 2(如图所示)。程序运行后,如果执行“读入数据”命令,则读入考生文件夹下 datain1.txt 文件中的 100 个整数,放入一个数组中,数组的下界为 1;如果单击“计
23、算并输出”按钮,则把该数组中下标为偶数的元素在文本框中显示出来,求出它们的和,并把所求得的和在窗体上显示出来;如果单击“存盘”按钮,则把所求得的和存入考生文件夹下的 dataout.txt 文件中。(分数:20.00)_正确答案:(操作步骤步骤 1:打开本题工程文件,利用菜单设计器,按表中的设置建立菜单项,在窗体 Form1 中绘制一个文本框,其相关属性及其值见表 19 和表 20。表 19标题读入数据计算并输出存盘名称ReadCalcSave内缩符号0 0 0表 20 控 文件 本框属性NamMultiLineScrollBarsText设置值Text1True2步骤 2:打开代码编辑窗口,
24、在代码编辑窗口指定位置编写以下代码。参考答案需要考生编写的内容Dim sum As integer考生编写程序结束需要考生编写的内容Private Sub Calc_Click()Text1.Text=“For i=2 To 100 Step 2从 2 开始循环,以 2 为步长的下标都是偶数Text1.Text=Text1.TextArr(i)Space(5)sum=sum+Arr(i)对下标为偶数的值求和Next iPrint sumEnd SubPrivate Sub Read_Click()ReadData调用 ReadData 子过程End SubPrivate Sub Save_Cl
25、ick()调用 Save_Click 函数WriteData“dataout.txt“,sumEnd Sub考生编写程序结束步骤 3:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:文本框的 Name、MultiLine、ScrollBars 和 Text 属性,文件操作,菜单编辑器的使用(名称、标题、内缩符号),Arr()函数以及 Space()函数。根据题意在“读入数据”命令的 Click 事件过程中,通过调用 ReadData 过程将数据从 datain1.txt 文件读入到数组 Arr(窗体变量)中;在“计算并输出”命令的 Click 事件过程中,在 For 循环语句(循环变量i 的初值为 2,终值为 100,步长为 2)中依次将数组 Arr 中下标为偶数的元素显示在文本框中,并将其值累加到变量 sum;在“存盘”命令的 Click 事件过程中,通过调用 WriteData 过程将 sum 的值写入数据文件 dataout.txt 中。调用 WriteData 过程时需传递参数 dataout.txt 和 sum,变量 sum 应为窗体变量。