1、二级 VISUAL+BASIC 机试-3 及答案解析(总分:100.00,做题时间:90 分钟)一、1 基本操作题(总题数:1,分数:30.00)1.注意:下面出现的“”均为 c:/wexam/25160001。请根据以下各小题的要求设计 Visual Basic 应用程序(包括界面和代码)。(1)在名称为 Form1 的窗体上建立一个名称为 P1 的图片框和两个命令按钮,名称分别为 Cmd1 和 Cmd2,标题分别为“输出”和“清除”,如图 3-1 所示。要求程序运行后,每单击一次“输出”按钮,不使用任何变量而直接在图片框中显示小写字母“load me”:如果单击“清除”按钮,则清除图片框中
2、的内容。注意:保存时必须存放在考生文件夹下,窗体文件名为 sjt1.frm,工程文件名为 sjt1.vbp。(2)在名称为 Form1 的窗体上建立一个名称为 List1 的列表框。要求:在程序运行后,通过 Form_Load()事件过程加载窗体时,执行语句 List1.AddItem“AAA“,每当单击某个列表项时,都执行语句List1.AddItem List1.Text 一次,如图 3-2 所示。注意:保存时必须存放在考生文件夹下,窗体文件名为 sjt2.frm,工程文件名为 sjt2.vbp。(分数:30.00)_二、2 简单应用题(总题数:1,分数:40.00)2.注意:保存时必须存
3、放在考生文件夹下,窗体文件名为 sjt4.frm,工程文件名为 sjt4.vbp,结果存入out.txt 文件。(分数:40.00)_三、3 综合应用题(总题数:1,分数:30.00)3.在考生文件夹中有工程文件 sjt5.vbp 及其窗体文件 sjt5.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号)但不能修改其他部分。存盘时不得改变文件名和文件夹。本题描述如下:在名称为 Form1 的窗体上有一个文本框,名称为 Text1,MultiLine 属性为 True,ScrollBars 属性为 2,两个命令按钮,名称分别为 Cmd1 和 Cmd2,标题分别
4、为“读入数据”和“保存数据”),如图 3-5 所示。程序运行后,如果单击“读入数据”按钮,则读入“in.txt”文件中的 100 个整数,放入一个数组中(数组下界为 1),并在文本框 Text1 中显示出来;如果单击“保存数据”按钮,则把数组中的前 50 个数据在文本框 Text1 中显示出来,并存入考生文件夹中的文件“result.txt”中。 (考生文件夹中有标准模块prog.bas,其中的 putdata 过程可以把指定个数的数组元素存入 result.txt 文件。)注意:上面出现的“考生文件夹”均为 c:/wexam/25160001,文件必须存放在考生文件夹下,窗体文件名为 sjt
5、5.frm,工程文件名为 sjt5.vbp,结果存入 result.txt 文件,否则没有成绩。(分数:30.00)_二级 VISUAL+BASIC 机试-3 答案解析(总分:100.00,做题时间:90 分钟)一、1 基本操作题(总题数:1,分数:30.00)1.注意:下面出现的“”均为 c:/wexam/25160001。请根据以下各小题的要求设计 Visual Basic 应用程序(包括界面和代码)。(1)在名称为 Form1 的窗体上建立一个名称为 P1 的图片框和两个命令按钮,名称分别为 Cmd1 和 Cmd2,标题分别为“输出”和“清除”,如图 3-1 所示。要求程序运行后,每单击
6、一次“输出”按钮,不使用任何变量而直接在图片框中显示小写字母“load me”:如果单击“清除”按钮,则清除图片框中的内容。注意:保存时必须存放在考生文件夹下,窗体文件名为 sjt1.frm,工程文件名为 sjt1.vbp。(2)在名称为 Form1 的窗体上建立一个名称为 List1 的列表框。要求:在程序运行后,通过 Form_Load()事件过程加载窗体时,执行语句 List1.AddItem“AAA“,每当单击某个列表项时,都执行语句List1.AddItem List1.Text 一次,如图 3-2 所示。注意:保存时必须存放在考生文件夹下,窗体文件名为 sjt2.frm,工程文件名
7、为 sjt2.vbp。(分数:30.00)_正确答案:(解析在窗体上建立好控件后,先设置控件属性,再编写事件过程。命令按钮的标题由 Caption 属性设置,单击命令按钮触发 Click 事件。打印信息用 Print 方法,清除用Cls 方法。题目要求在图片框中打印信息,所以在编写代码是应指定 Print 方法和 Cls 方法的使用对象。解题步骤:第一步:建立界面并设置控件属性。程序用到的控件及其属性见表 3-1。*第二步:编写代码。参考代码:Private Sub Cmd1_Click()P1.Print“load me“End SubPrivate Sub Cmd2 Click()P1.C
8、lsEnd Sub第三步:调试并运行程序。第四步:按题目要求存盘。(2)解析在窗体上建立好列表框后,先设置属性,再编写事件过程。列表框用于在很多项目中做出选择的操作。向列表框中添加项目既可以在属性窗口进行,也可以在程序代码中进行单击列表框中的项目触发 Click 事件,题目要求使用 AddItem 方法给列表框添加项目,所以应该将 List1.AddItem List1.Text 语句写入列表框的 Click 事件中。解题步骤:第一步:建立界面并设置控件属性。程序中只用到 1 个列表框控件。在窗体上画出列表框,其“Name”属性默认为“List1”。在窗体的 Load事件中添加 List1.A
9、ddItem“AAA”语句使程序开始运行的时在列表框中添加“AAA”。第二步:编写程序代码。参考代码:Private Sub Form_Load()List1.AddItem “AAA“End SubPrivate Sub List1_Click()List1.AddItem List1.TextEnd Sub第三步:调试并运行程序。第四步:按题目要求存盘。答案考生文件夹)解析:二、2 简单应用题(总题数:1,分数:40.00)2.注意:保存时必须存放在考生文件夹下,窗体文件名为 sjt4.frm,工程文件名为 sjt4.vbp,结果存入out.txt 文件。(分数:40.00)_正确答案:(
10、解析在 Visual Basic 中,菜单项通过菜单编辑器来建立;选择菜单则是触发其 Click 事件。MsgBox 函数在对话框中显示消息,等待用户单击按钮,并返回 1 个 Integer 告诉用户单击哪一个按钮。语法:MsgBox(prompt,buttons,title,helpfile,context)MsgBox 函数的语法具有以下几个命名参数:Prompt 必需的。字符串表达式,作为显示在对话框中的消息。Buttons 可选的。数值表达式是值的总和,指定显示按钮的数目及形式。Title 可选的。在对话框标题栏中显示的字符串表达式。如果省略 title,则将应用程序名放在标题栏中。H
11、elpfile 可选的。字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件。Context 可选的。数值表达式,由帮助文件的作者指定给适当的帮助主题的帮助上下文编号。解题步骤:第一步:建立菜单项。程序中用到的菜单项及其属性见表 3-2。*第二步:编写程序代码。参考代码:Private Sub vbNew_Click()MsgBox“新建”,vbOKOnlyEnd SubPrivate Sub vbOpen_Click()MsgBox“打开”,vbOKOnlyEnd SubPrivate Sub vbSave_Click()MsgBox“存盘”,vbOKOnlyEnd Sub第三步:调试
12、并运行程序。第四步:按题目要求存盘。(2)解析在窗体上建立好控件后,先设置控件的属性值,再编写事件过程。文本框中显示的内容由 Text 属性设置,命令按钮的标题由 Caption 属性设置,单击命令按钮触发 Click事件。解题步骤:第一步:建立菜单项。程序中用到的控件及其属性见表 3-3。*第二步:编写程序代码。参考代码:Private Sub Cmd1_Click()Dim i As IntegerDim temp As Longtemp = 0For i = 100 To 200If isprime(i) Thentemp = temp + iEnd IfNextText1.Text =
13、 tempputdata “out.txt“,tempEnd Sub标准模块代码:Option ExplicitSub putdata(t_FileName As String,T_Str As Variant)Dim sFile As StringsFile = “/“ & t_FileNameOpen App.Path & sFile For Output As # 1Print #1,T_StrClose #1End SubFunction isprime(t_I As Integer) As BooleanDim J As Integerisprime = FalseFor J=2 T
14、o t_I / 2If t_I Mod J = 0 Then Exit ForNext JIf Jt_I/2 Then isprime = TrueEnd Function第三步:调试并运行程序。第四步:按题目要求存盘。)解析:三、3 综合应用题(总题数:1,分数:30.00)3.在考生文件夹中有工程文件 sjt5.vbp 及其窗体文件 sjt5.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号)但不能修改其他部分。存盘时不得改变文件名和文件夹。本题描述如下:在名称为 Form1 的窗体上有一个文本框,名称为 Text1,MultiLine 属性为 True
15、,ScrollBars 属性为 2,两个命令按钮,名称分别为 Cmd1 和 Cmd2,标题分别为“读入数据”和“保存数据”),如图 3-5 所示。程序运行后,如果单击“读入数据”按钮,则读入“in.txt”文件中的 100 个整数,放入一个数组中(数组下界为 1),并在文本框 Text1 中显示出来;如果单击“保存数据”按钮,则把数组中的前 50 个数据在文本框 Text1 中显示出来,并存入考生文件夹中的文件“result.txt”中。 (考生文件夹中有标准模块prog.bas,其中的 putdata 过程可以把指定个数的数组元素存入 result.txt 文件。)注意:上面出现的“考生文件
16、夹”均为 c:/wexam/25160001,文件必须存放在考生文件夹下,窗体文件名为 sjt5.frm,工程文件名为 sjt5.vbp,结果存入 result.txt 文件,否则没有成绩。(分数:30.00)_正确答案:(解析文本框显示的内容由 Text 属性设置,Multiline 属性决定文本框是否可多行显示;按钮的标题由 Caption 属性设置,单击命令按钮触发 Click 事件。题中涉及到文件的操作,读入顺序文件以顺序的方式打开,用 Input#语句读取数据,另外需要注意的是对文件操作完成后,一定要关闭文件。解题步骤:第一步:建立界面并设置控件属性。程序中用到的控件及属性设置见表
17、3-4。*第二步:编写程序代码。程序提供的代码。prog.bas 的代码:Sub putdata(a() As Integer,n As Integer)Dim sFile As StringsFile =“/result.txt“Open App.Path & sFile For Output As #1For i = 1 To nPrint #1,a(i);NextClose #1End Sub窗体代码:Dim i(1 To 100) As IntegerPrivate Sub Cmd1_Click()Dim j As Integerj = 0Open App.Path & “/in.tx
18、t “ For Input As #1For j = 1 To 100 Input #1, i(?)Next ? #1For j = 1 To 100Text1.Text = Text1.Text & i(j) & Space(5)NextEnd SubPrivate Sub Cmd2_Click()Dim temp As LongDim j As IntegerText1.Text =?For j = 1 To 50Text1.Text = Text1.Text & i(j) & Space(5)Nextputdata i, 50End Sub参考代码:Dim i(1 To 100) As
19、IntegerPrivate Sub Cmd1_Click()Dim j As Integerj = 0Open App. Path& “/in.txt“ For Input As #1For j = 1 To 100Input #1, i(j)NextClose #1For j = 1 To 100Text1.Text = Text1.Text & i(j) & Space(5)NextEnd SubPrivate Sub Cmd2_Click()Dim temp As LongDim j As IntegerText1.Text = “For j = 1 To 50Text1.Text = Text1.Text & i(j) & Space(5)Nextputdata i, 50End Sub第三步:调度并运行程序:第四步:按题目要求存盘:)解析: