1、二级 VISUAL+BASIC 机试-50 及答案解析(总分:100.00,做题时间:90 分钟)一、1 基本操作题(总题数:1,分数:30.00)1.请根据以下各小题的要求设计 Visual Basic 应用程序(包括界面和代码)。1在 Form1 的窗体上画一个名称为 P1 的图片框,然后建立一个主菜单,标题为“操作”,名称为 Op,该菜单有两个子菜单,其标题分别为“显示”和“清除”,名称分别为 Dis 和 Clea。编写适当的事件过程,程序运行后,如果单击“操作”菜单中的“显示”命令,则在图片框中显示“计算机考试”;如果单击“清除”命令,则清除图片框中的信息。程序的运行情况如图 11 和
2、图 12 所示。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1.vbp,窗体文件名为 sjt1.frm。程序中不得使用任何变量。2在 Form1 的窗体上画一个列表框,名称为 L1,通过属性窗口向列表框中添加 4 个项目,分别为“早上好”、“上午好”、“中午好”和“下午好”。编写适当的事件过程,过程中只能使用一条命令。程序运行后,如果双击列表框中的某一项,则把该项再添加到列表框中。程序的运行情况如图 13 所示。(分数:30.00)_二、2 简单应用题(总题数:1,分数:40.00)2.在名称窗体为 Form1,KeyPreview 属性为 True 的窗体上有一个列表框(名称为
3、List1)和一个文本框(名称为 Text1),如图 21 所示。编写窗体的 KeyDown 事件过程。程序运行后,如果按“A”键,则从键盘上输入要添加到列表框中的项目(内容任意,不少于三个);如果按“D”键,则从键盘上输入要删除的项目,将其从列表框中删除。程序的运行情况如图 22 所示。在考生文件夹下有一个工程文件 sjt3.vbp(相应的窗体文件名为 sjt3.frm),可以实现上述功能。但这个程序不完整,请把它补充完整。(分数:40.00)_三、3 综合应用题(总题数:1,分数:30.00)3.在考生文件夹中有工程文件 sjt5.vbp 及其窗体文件 sjt5.frm,该程序是不完整的,
4、请在有?号的地方填入正确内容,然后删除?及所有注释符(即号)但不能修改其他部分。存盘时不得改变文件名和文件夹。本题描述如下:在名称为 Form1 的窗体上有一个文本框,名称为 Text1,MultiLine 属性为 True,Scroll Bars 属性为2;两个命令按钮名称分别为 Cmd1 和 Cmd2,标题分别为“读入数据”和“计算保存”,如图 31 所示。要求程序运行后,如果单击“读入数据”按钮,则读入“in.txt”文件中的 100 个整数,放入一个数组中(数组下界为 1),同时在文本框中显示出来;如果单击“计算保存”按钮,则计算其中前 50 个数之和,并把求和结果在文本框 Text1
5、 中显示出来,同时把结果存入考生文件夹中的文件“out.txt”中。(在考生的文件夹下有标准模块 mode.bas,其中的 putdata 过程可以把结果存入指定的文件)。(分数:30.00)_二级 VISUAL+BASIC 机试-50 答案解析(总分:100.00,做题时间:90 分钟)一、1 基本操作题(总题数:1,分数:30.00)1.请根据以下各小题的要求设计 Visual Basic 应用程序(包括界面和代码)。1在 Form1 的窗体上画一个名称为 P1 的图片框,然后建立一个主菜单,标题为“操作”,名称为 Op,该菜单有两个子菜单,其标题分别为“显示”和“清除”,名称分别为 Di
6、s 和 Clea。编写适当的事件过程,程序运行后,如果单击“操作”菜单中的“显示”命令,则在图片框中显示“计算机考试”;如果单击“清除”命令,则清除图片框中的信息。程序的运行情况如图 11 和图 12 所示。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1.vbp,窗体文件名为 sjt1.frm。程序中不得使用任何变量。2在 Form1 的窗体上画一个列表框,名称为 L1,通过属性窗口向列表框中添加 4 个项目,分别为“早上好”、“上午好”、“中午好”和“下午好”。编写适当的事件过程,过程中只能使用一条命令。程序运行后,如果双击列表框中的某一项,则把该项再添加到列表框中。程序的运行情
7、况如图 13 所示。(分数:30.00)_正确答案:( 分析:在窗体上建立好控件后,先设置控件属性,再编写事件过程。 主菜单由单击右键选择“菜单编辑器”来创建,通过 Print 方法在窗体或图片框中打印信息,通过Cls 方法清除图片框中的信息。Cls 方法清除运行时 Form 或 PictureBox 所生成的图形和文本。语法:object.Clsobject 代表一个对象表达式。如果省略 object,则默认为当前的 Form 窗体。 解题步骤:第一步:建立界面并设置控件属性。程序中用到的控件和属性设置见表 1。表 1控 件 属 性 设置值菜单 名称标题 Op操作菜单 名称标题 Dis显示菜
8、单 名称标题 Clea清除图片框 Name P1第二步:编写程序代码。参考代码:Private Sub Clea_Click()P1.ClsEnd SubPrivate Sub Dis_Click()P1.Print “计算机考试“End Sub第三步:调试并运行程序。第四步:按题目要求存盘。2 在窗体上建立好控件后,先设置控件属性,再编写事件过程。 列表框的内容由属性 List 来设置,在程序中添加项要通过 AddItem 方法来实现,鼠标双击触发控件的 DblClick 事件。AddItem 方法用于将项目添加到 ListBox 或 ComboBox 控件,其语法格式为:object.Ad
9、dItem item,indexobject 必需的。一个对象表达式。item 必需的。字符串表达式,它用来指定添加到该对象的项目。index 可选的。是整数,它用来指定新项目或行在该对象中的位置。对于 ListBox 或 ComboBox 控件的首项 index 为 0。 解题步骤;第一步:建立界面并设置控件属性。程序中只用到的控件和属性设置见表 2。表 2控 件 属 性 设置值列表框 Name L1第二步:编写程序代码。参考代码Private Sub L1_Dblclick()L1.AddItem L1.TextEnd Sub第三步:调试并运行程序。第四步:按题目要求存盘。)解析:二、2
10、简单应用题(总题数:1,分数:40.00)2.在名称窗体为 Form1,KeyPreview 属性为 True 的窗体上有一个列表框(名称为 List1)和一个文本框(名称为 Text1),如图 21 所示。编写窗体的 KeyDown 事件过程。程序运行后,如果按“A”键,则从键盘上输入要添加到列表框中的项目(内容任意,不少于三个);如果按“D”键,则从键盘上输入要删除的项目,将其从列表框中删除。程序的运行情况如图 22 所示。在考生文件夹下有一个工程文件 sjt3.vbp(相应的窗体文件名为 sjt3.frm),可以实现上述功能。但这个程序不完整,请把它补充完整。(分数:40.00)_正确答
11、案:( 解析:判断按键可以在窗体的 KeyDown 事件下用 Chr 函数将按键代码转换成字符与给定字符进行比较。 使用 AddItem 方法向列表框中添加列表项目,使用 RemoveItem 方法从列表框中删除列表项目。程序中用到了 InputBox(),其格式为:InputBox(prompt, title, default, xpos, ypos, helpfile, context)prompt:是一个字符串,其长度不得超过 1024 个字符,它是在对话框内显示的信息,用来提示用户输入。title:字符串,它是对话框的标题,显示在对话框顶部的标题区。default:字符串,用来显示输入
12、缓冲区的默认信息。xpos,ypos:是两个整数值,分别用来确定对话框与屏幕左边的距离(xpos)和上边的距离(ypos),它们的单位为 twip。helpfile,context:helpfile 是一个字符串变量或字符串表达式,用来表示帮助文件的名字;context是一个数值变量或表达式,用来表示相关帮助主题的帮助目录号。 解题步骤:第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表 3。表 3控 件 属 性 设置值Form1 KeyPreview TrueListbox Name List1文本框 Name Text1第二步:编写程序代码。程序提供的代码:Private Sub
13、 Form_ KeyDown (KeyCode As Integer, Shift As Integer)If Chr(KeyCode)=“A“ThenText1.Text=InputBox(“请输入要添加的项目“) List1.AddItem ?End IfIf Chr(KeyCode)=“D“ThenText1.Text=InputBox(“请输入要删除的项目“) For i=0 To ? If List1. List (i)=? Then List1. RemoveItem?End IfNext iEnd IfEnd Sub参考代码:Private Sub Form_KeyDown (K
14、eyCode As Integer, Shift As Integer)If Chr(KeyCode)=“A“ ThenText1. Text=InputBox(“请输入要添加的项目“)List1. AddItem Text1End IfIf Chr(KeyCode)=“D“ThenText1. Text=InputBox (“请输入要删除的项目“)For i=0 To List1.ListCount1If List1. List (i) = Form1.Text1 ThenList1. RemoveItem (i)End IfNext iEnd IfEnd Sub第三步:调试并运行程序。第四
15、步:按题目要求存盘。2 程序中用到的 Mod 是取模的运算符,如:N Mod 70 则说明余数为 0,N 能被 7 整除,否则 N 不能被 7 整除;程序中的变量 num 统计的不能被 7 整除的个数,当 I Mod 7*0 时,num 则加 1,表示当前有一个不可以被 7 整除的数;题目要求文本框里显示不能被 7 整除的数的个数,而 num 保留的是要求的结果,所以赋给文本框的值是 num(Text1.Textnum)。 解题步骤:第一步:编写程序代码。程序提供的代码:Sub SaveData( )Open App. Path & “/“ & “outtxt.txt“ For Output
16、As #1Print #1,Text1.TextClose #1End SubFunction Fun()End FunctionPrivate Sub Command1_Click()d=Fun()SaveDataEnd Sub参考代码:Sub SaveData()Open App. Path & “/“ & “outtxt. txt“ For Output As #1Print #1, Text1.TextClose #1End SubFunction Fun()Dim i As Integer, hum As IntegerFor i=0 To 1000If i Mod 7*0 Then
17、num=num+1End IfNext iText1. TextnumEnd FunctionPrivate Sub Command1_Click()dFun()SaveDataEnd Sub第二步:调试并运行程序。第三步:按题目要求存盘。)解析:三、3 综合应用题(总题数:1,分数:30.00)3.在考生文件夹中有工程文件 sjt5.vbp 及其窗体文件 sjt5.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号)但不能修改其他部分。存盘时不得改变文件名和文件夹。本题描述如下:在名称为 Form1 的窗体上有一个文本框,名称为 Text1,MultiLin
18、e 属性为 True,Scroll Bars 属性为2;两个命令按钮名称分别为 Cmd1 和 Cmd2,标题分别为“读入数据”和“计算保存”,如图 31 所示。要求程序运行后,如果单击“读入数据”按钮,则读入“in.txt”文件中的 100 个整数,放入一个数组中(数组下界为 1),同时在文本框中显示出来;如果单击“计算保存”按钮,则计算其中前 50 个数之和,并把求和结果在文本框 Text1 中显示出来,同时把结果存入考生文件夹中的文件“out.txt”中。(在考生的文件夹下有标准模块 mode.bas,其中的 putdata 过程可以把结果存入指定的文件)。(分数:30.00)_正确答案:
19、( 在窗体上建立好控件后,先设置控件属性,再编写事件过程。 文本框显示的内容由 Text 属性设置,Muhiline 属性决定文本框是否可多行显示;按钮的标题由Caption 属性设置,单击命令按钮触发 Click 事件。题中涉及到文件的操作,读入顺序文件以顺序的方式打开,用 input #语句读取数据。另外需要注意的是对文件操作完后,一定要关闭文件。 解题步骤;第一步:建立界面并设置控件属性。程序中用到的控件及其属性值见表 4。表 4控 件属 性设 置 值文本框NameScrollbarsMultilineText12True命令按钮NameCaptionCmd1读入数据命令按钮NameCa
20、ptionCmd2计算保存第二步:编写程序代码。程序提供的代码:mode.bas 代码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 Sub窗体代码:Option ExplicitDim ? (1 To 100) As IntegerPrivate Sub cmd1_ClickODim j As In
21、tegerOpen App.Path & “/in.txt“ For Input As #1For j=1 To 100Input #1, i(j)Text1. Text=Text1. Text & i(j) & Space(5)NextClose #1End SubPrivate sub Cmd2_Click()Dim ? As IntegerDim temp As LongFor j=1 To 50temp=temp+i(j)NextText1.?=tempputdata “out.txt“,tempEnd Sub参考代码:Option ExplicitDim i (1 To 100) A
22、s IntegerPrivate Sub Cmd1_Click()Dim j As IntegerOpen App. Path & “/in.txt“ For Input As #1For j=1 To 100Input #1, i(j)Text1.Text=Text1.Text & i(j) & Space(5)NextClose #1End SubPrivate Sub cmd2_Click()Dim j As IntegerDim temp As LongFor j1 To 50temp=temp+i(j)NextText1.Texttempputdata “out.txt“,tempEnd Sub第三步:调试并运行程序。第四步:按题目要求存盘。)解析: