1、二级 VISUAL+BASIC 机试 32 及答案解析(总分:100.00,做题时间:90 分钟)一、B1 基本操作题/B(总题数:1,分数:30.00)1.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。 请根据以下各小题的要求设计 Visual Basic 应用程序(包括界面和代码)。 (1) 在 Form1 的窗体上画一个名称为 P1 的图片框,然后建立一个主菜单,标题为“操作”,名称为 Op,该菜单有两个子菜单,其标题分别为“显示”和“清除”,名称分别为 Dis 和 Clea。编写适当的事件过程,程序运行后,如果单击“操作”菜单中的“显示”命令,则在图片框中显示
2、“计算机考试”;如果单击“清除”命令,则清除图片框中的信息。程序的运行情况如图15-1 和图 15-2 所示。 注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1.vbp,窗体文件名为sjt1.frm。程序中不得使用任何变量。 (分数:30.00)_二、B2 简单应用题/B(总题数:1,分数:40.00)2.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。 (1) 在考生文件夹下有工程文件sjt3.vbp 及窗体文件 sjt3.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹
3、。 本题描述如下: 在名称为Form1 的窗体上有三个 Labe1 控件和两个命令按钮,Labe1 控件均为提示信息。命令按钮 CMDstart 和CMDexit,程序运行后,单击“开始”按钮,程序自动利用循环计算 11/21/3.1/10 的结果,并把结果写入到考生文件夹下 result.txt 文件中。执行完毕“开始”按钮变成“完成”,且无效(变灰)。程序运行界面如图 15-4 所示。 (2) 在考生文件夹下有工程文件 sit4.vbp 及窗体文件 sjt4.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文
4、件夹。 本题描述如下: 程序启动时文本框的默认文字为“请输入您要设置的文本”,默认的字体为“仿宋 GB2312”,字号为五号。程序运行过程中可以修改文本框的内容在单击“初始化”时恢复启动时的状态;在单击“清除”后,文本框的内容为空,并恢复默认的字体,字型号。选择相应的字体和字型号可以设置文本框内文字的字体和属性。程序运行界面如图 15-5 所示。 (分数:40.00)_三、B3 综合应用题/B(总题数:1,分数:30.00)3.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。 在考生文件夹下有工程文件 sjt5.vbp及窗体文件 sjt5.frm,该程序是不完整的,请在
5、有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分乙存盘时不得改变文件名和文件夹,相应的 dat 文件也保存到考生文件夹下,否则没有成绩。 本题描述如下: 在名称为 Form1 的窗体上有五个 Labe1 控件和两个命令按钮,数据文件prog8a.dat 存放一些字符。按“开始”按钮后,能从考生文件夹下的 prog8a.dat 中读出数据并分别统计出其中数字、大写字母、小写字母和其他类型字符的个数,将结果写入考生文件夹下的 prog8b.dat 文件中(以标准格式在一行中输出);执行完毕,“开始”按钮变成“完成”,且无效(变灰)。程序运行界面如图 15-6 所示。 (
6、分数:30.00)_二级 VISUAL+BASIC 机试 32 答案解析(总分:100.00,做题时间:90 分钟)一、B1 基本操作题/B(总题数:1,分数:30.00)1.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。 请根据以下各小题的要求设计 Visual Basic 应用程序(包括界面和代码)。 (1) 在 Form1 的窗体上画一个名称为 P1 的图片框,然后建立一个主菜单,标题为“操作”,名称为 Op,该菜单有两个子菜单,其标题分别为“显示”和“清除”,名称分别为 Dis 和 Clea。编写适当的事件过程,程序运行后,如果单击“操作”菜单中的“显示”命令
7、,则在图片框中显示“计算机考试”;如果单击“清除”命令,则清除图片框中的信息。程序的运行情况如图15-1 和图 15-2 所示。 注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1.vbp,窗体文件名为sjt1.frm。程序中不得使用任何变量。 (分数:30.00)_正确答案:()解析:解析 在窗体上建立好控件后,先设置控件属性,再编写事件过程。主菜单由单击右键选择“菜单编辑器”来创建,通过 Print 方法在窗体或图片框中打印信息,通过 Cls 方法清除图片框中的信息。Cls 方法清除运行时 Form 或 PictureBox 所生成的图形和文本。语法:Object.Clsobjec
8、t 代表一个对象表达式。如果省略。object,则默认为当前的 Form 窗体。解题步骤:第一步:建立界面并设置控件属性。程序中用到的控件和属性设置见表 15-1。 表 15-1 控 件 属 性 设 置 值菜单 名字 标题 Op 操作菜单 名字 标题 Dis 显示 菜单 名字 标题 Clea 清除 图片框 Name P1第二步:编写程序代码。参考代码:Private Sub Clea_Click()P1.ClsEnd SubPrivate Sub Dis_C1ick()P1.Print“计算机考试“End Sub第三步:调试并运行程序。第四步:按题目要求存盘。(2) 解析 在窗体上建立好控件后
9、,先设置控件属性,再编写事件过程。列表框的内容由属性 List 来设置,再程序中添加项要通过 AddItem 方法来实现,鼠标双击触发控件的 DblClick 事件。AddItem 方法用于将项目添加到 ListBox 或 ComboBox 控件,其语法格式为:obiect.AddItemitem,indexobject 必需的。一个对象表达式。item 必需的。字符串表达式,它用来指定添加到该对象的项目。index 可选的。是整数,它用来指定新项目或行在该对象中的位置。对于 ListBox 或 ComboBox 控件的首项 index 为 0。解题步骤:第一步:建立界面并设置控件属性。程序中
10、只用到的控件和属性设置见表 15-2。表 15-2 控 件 属 性 设 置 值列表框 Name L1第二步:编写程序代码:参考代码Private Sub L1_DblClick()L1.Addltem L1.TextEnd Sub第三步:调试并运行程序。第四步:按题目要求存盘。二、B2 简单应用题/B(总题数:1,分数:40.00)2.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。 (1) 在考生文件夹下有工程文件sjt3.vbp 及窗体文件 sjt3.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不
11、得改变文件名和文件夹。 本题描述如下: 在名称为Form1 的窗体上有三个 Labe1 控件和两个命令按钮,Labe1 控件均为提示信息。命令按钮 CMDstart 和CMDexit,程序运行后,单击“开始”按钮,程序自动利用循环计算 11/21/3.1/10 的结果,并把结果写入到考生文件夹下 result.txt 文件中。执行完毕“开始”按钮变成“完成”,且无效(变灰)。程序运行界面如图 15-4 所示。 (2) 在考生文件夹下有工程文件 sit4.vbp 及窗体文件 sjt4.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘
12、时不得改变文件名和文件夹。 本题描述如下: 程序启动时文本框的默认文字为“请输入您要设置的文本”,默认的字体为“仿宋 GB2312”,字号为五号。程序运行过程中可以修改文本框的内容在单击“初始化”时恢复启动时的状态;在单击“清除”后,文本框的内容为空,并恢复默认的字体,字型号。选择相应的字体和字型号可以设置文本框内文字的字体和属性。程序运行界面如图 15-5 所示。 (分数:40.00)_正确答案:()解析:解析 在窗体上建立好控件后,先设置控件属性,再编写事件过程。按钮的标题由其 Caption 属性设置,单击触发其 Click 事件。文件的操作一般按照如下步骤进行:打开或建立文件、进行读或
13、写操作、关闭文件。解题步骤:第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表 15-3。表 15-3 控 件 名 称 属 性 设 置 值Label2 Caption 考生文件夹/RESULT.TXTLabel4 Caption 目标文件:Label5 Caption 利用循环进行计算 1+1/2+1/3+1/10 的结果,并且把结果写入目标文件中按钮控件 名称 CMDSTARTCaption 开始按钮控件 名称 CMDEXITCaption 退出第二步:编写程序代码。程序提供的代码:Private Sub CmdEXIT_Click()EndEnd SubPrivate Sub C
14、mdstart_click()Dim E As Single, J As IntegerDim T As SingleOpen App.Path& ? For ? As ?E=?T=1For J=2 To 10 Step 1T=i/JE=E+TNext JWrite #1,Close #1CMDSTART.Caption=?CMDSTART.Enabled=?End Sub参考代码:Private Sub CMDEXIT_Click()EndEnd SubPrivate Sub CMDstart_click()Dim E As Single, J As IntegerDim T As Sing
15、leOpen App.Path & “/“ & “result.txt“ For Output As #1E=1T=1For J=2 To 10 Step 1T=1/JE=E+TDebug.Print T, ENext JWrite #1, EPrint EClose #1CMDSTART.Caption= “完成“CMDSTART.Enabled=FalseEnd Sub第三步:调试并运行程序。第四步:按题目要求存盘。(2) 解析 单选按钮都是成组出现,用户在一组单选按钮中只能且最多选择一项,某项被选定后,其左边的圆圈中出现一个黑点;字体由 FontName 属性决定,字体的大小由 Fonf
16、Size 属性决定:清除文本框的内容可以用将文本框的内容置空来实现(文本框Text=“)。需要指出的是框架是一个容器控件,用于将窗体上的控件分组,不同的对象剋放在同一个框架内,它提供了视觉上的区分和总体的激活或屏蔽功能。要使用框架对控件进行分组,必须先画出框架,然后在框架内画出需要成为一组的控件,这样才能将框架内的控件组成一个整体。解题步骤:第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表 15-4。表 15-4 控 件 名 称 属 性 设 置 值Option1 Caption 仿宋Option2 Caption 楷体Option3 Caption 隶书Option4 Captio
17、n 黑体Option5 Caption 七号Option6 Caption 五号Option7 Caption 三号Option8 Caption 初号Command1 Caption 初始化Command2 Caption 清除Command3 Caption 退出第二步:编写程序代码。程序提供的代码:Option ExplicitPrivate Sub Command1_Click()Option1.Value=TrueOption6.Value=TrueText1.Text=“请输入您要设置的文本“End SubPrivate Sub Command2_Click()Option1.Va
18、lue=TrueOption6.Value=TrueText1.Text=?End SubPrivate Sub Command3_Click()EndEnd SubPrivate Sub Form_Load()Option1.Value=TrueOption6.Value=TrueText1.Text=“请输入您要设置的文本“End SubPrivate Sub Option1_Click()Text1.FontName =“仿宋 GB2312“End SubPrivate Sub Option2_Click()Text1.FontName=?End SubPrivate Sub Optio
19、n3_Click()Textl.FontName=“隶书“End SubPrivate Sub Option4_Click()Text1.FontName=“黑体“End SubPrivate Sub Option5_Click()Text1.FontSize=“5.5“End SubPrivate Sub Option6_Click()Text1.FontSize=?End SubPrivate Sub Option7_Click()Text1.FontSize=“16“End SubPrivate Sub Option8_Click()Text1.FontSize=“42“End Sub参
20、考代码:Option ExplicitPrivate Sub Command1_Click()Option1.Value=TrueOption6.Value=TrueText1.Text=“请输入您将要设置的文本“End SubPrivate Sub Command2_Click()Option1.Value=TrueOption6.Value=TrueText1.Text=“End SubPrivate Sub Command3_Click()EndEnd SubPrivate Sub Form_Load()Option1.Value=TrueOption6.Value=TrueText1.
21、Text=“请输入您要设置的文本“End SubPrivate Sub Option1_Click()Text1.FontName=“仿宋 GB2312“End SubPrivate Sub Option2_Click()Text1.FontName=“楷体 GB2312“End SubPrivate Sub Option3_Click()Text1.FontName=“隶书“End SubPrivate Sub Option4_Click()Text1.FontName=“黑体“End SubPrivate Sub Option5_Click()Text1.FontSize=“5.5“End
22、 SubPrivate Sub Option6_Click()Text1.FontSize=“10.5“End SubPrivate Sub Option7_Click()Text1.FontSize=“16“End SubPrivate Sub Option8_Click()Text1.FontSize=“42“End Sub第三步:调试并运行程序。第四步:按题目要求存盘。三、B3 综合应用题/B(总题数:1,分数:30.00)3.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。 在考生文件夹下有工程文件 sjt5.vbp及窗体文件 sjt5.frm,该程序是不完整的
23、,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分乙存盘时不得改变文件名和文件夹,相应的 dat 文件也保存到考生文件夹下,否则没有成绩。 本题描述如下: 在名称为 Form1 的窗体上有五个 Labe1 控件和两个命令按钮,数据文件prog8a.dat 存放一些字符。按“开始”按钮后,能从考生文件夹下的 prog8a.dat 中读出数据并分别统计出其中数字、大写字母、小写字母和其他类型字符的个数,将结果写入考生文件夹下的 prog8b.dat 文件中(以标准格式在一行中输出);执行完毕,“开始”按钮变成“完成”,且无效(变灰)。程序运行界面如图 15-6 所示
24、。 (分数:30.00)_正确答案:()解析:解析 在程序运行时控件是否可用由其 Enable 属性决定,当其值为 True 时可用,当为 False 不可用(灰色)。对文件进行操作必须先打开文件,同时通知操作系统对文件进行读操作还是写操作,打开文件的命令是 Open,其常用形式为: Open“文件名”For 模式 As#文件号Len=记录长度 模式有Output(打开文件,对其进行写操作)、Input(打开文件,对其进行读操作)、Append(打开文件,在文件末尾追加记录)。 统计大小写字符和数字只需根据字符的 ASCII 码判断,大写字母的 ASCII 值是 6590,小写字母的 ASCI
25、I 值是 97122,数字的为 4857。解题步骤: 第一步:编写程序代码。 程序提供的代码: Private Sub COMEXIT_Click() End End Sub Private Sub COMSTART_Click() Dim Ch As String, Number As Integer, Cp As Integer, Lp As Integer, Others As Integer myfile1=App.Path & “/“ & “prog8a.txt“ myfile2=App.Path & “/“ & “prog8b.txt“ Open myfile1 For ? As
26、#1 Open myfile2 For ? As #2 While Not EOF(1) Input ?, Ch$ If Asc(Ch$)=48 And Asc(Ch$)=57 Then Number=Number+1 ElseIf Asc(Ch$)=65 And Asc(Ch$)=90 Then Cp=Cp+1 ElseIf Asc(Ch$)=97 And Asc(Ch$)=122 Then Lp=Lp+1 Else Others=? End If Wend Print ?, Number, Cp, Lp, Others Close COMSTART.Caption=? COMSTART.E
27、nabled=? End Sub 参考代码: Private Sub COMEXIT_Click() End End Sub Private Sub COMSTART_Click() Dim Ch As String, Number As Integer, Cp As Integer, Lp As Integer, Others As Integer myfile1=App.Path & “/“ & “prog8a.txt“ myfile2=App.Path & “/“ & “prog8b.txt“ Open myfile1 For Input As #1 Open myfile2 For O
28、utput As #2 While Not EOF(1) Input #1, Ch$ If Asc(Ch$)=48 And Asc(Ch$)=57 Then Number=Number+1 ElseIf Asc(Ch$)=65 And Asc(Ch$)=90 Then Cp=Cp+1 ElseIf Asc(Ch$)=97 And Asc(Ch$)=122 Then Lp=Lp+1 Else Others=Others+1 End If Wend Print #2, Number, Cp, Lp, Others Close COMSTART.Caption=“完成“ COMSTART.Enabled=False End Sub 第二步:调试并运行程序。 第三步:按题目要求存盘。