1、二级 VISUAL+BASIC 机试-90 及答案解析(总分:100.00,做题时间:90 分钟)一、1 基本操作题(总题数:1,分数:30.00)请根据以下各小题的要求设计 Visual Basic 应用程序(包括界面和代码)。(分数:30.00)(1).在 Form1 的窗体上画一个名称为 Pic1 的图片框,然后建立一个主菜单,标题为“颜色”,名称为vbColor,该菜单有两个子菜单,其标题分别为“红色”和“绿色”,名称分别为 vbRed 和 vbGreen。编写适当的事件过程,使程序运行后,如果单击“颜色”菜单中的“红色”命令,则图片框为红色;如果单击“绿色”命令,则图片框为绿色。程序
2、的运行情况如下图所示。注意:存盘时必须存放在考生文件夹下,工程文件名为 sj1.vbp,窗体文件名为 sj1.frm。程序中不得使用任何变量。*(分数:15.00)_(2).在 Form1 的窗体上画一个列表框,名称为 List1,通过属性窗口向列表框中添加 3 个项目,分别为“Item1”、“Item2“和“Item3”。编写适当的事件过程,过程中只能使用一条命令。程序运行后,如果双击列表框中的某一项,则把该项添加到列表框的最后一行。程序的运行界面如下图所示。注意:存盘时必须存放在考生文件夹下,工程文件名为 sj2.vbp,窗体文件名为 sj2.frm。*(分数:15.00)_二、2 简单应
3、用题(总题数:2,分数:40.00)1.在考生文件夹下有工程文件 sj3.vbp 及窗体文件 sj3.frm,该程序是不完整的,请在有“?”的地方填入正确内容,然后删除“?”及代码前的所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。本题描述如下:在名称为 Form1 的窗体上有两个 Label 控件和两个命令按钮,Label 控件均为提示信息。命令按钮Command1 和 Command2,程序运行后,单击“开始”按钮,程序自动利用循环计算1+1/2+1/4+1/8+1/16+1/32 的结果,并把结果写入到考生文件夹下的 out3.txt 文件中。执行完毕“开始”按钮变
4、成“完成”按钮,且无效(变灰)。程序运行界面如下图所示。(分数:20.00)_2.在考生文件夹下有工程文件 sj4.vbp 及窗体文件 sj4.frm,该程序是不完整的,请在有“?”的地方填入正确内容,然后删除“?”及代码前的所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。本题描述如下:程序启动时文本框的默认文字为“模拟试题”,默认字体为“宋体”,字号为五号,无特殊字体。程序运行过程中可以修改文本框的内容,在单击“还原”按钮时,恢复启动时的状态;在单击“清空”按钮后,文本框的内容为空,并恢复默认的字体。选择相应的字体和字形可以设置文本框内文字的字体和属性。程序运行界面如下
5、图所示。(分数:20.00)_三、3 综合应用题(总题数:1,分数:30.00)3.在考生文件夹下有工程文件 sj5.vbp 及窗体文件 sj5.frm,该程序是不完整的,请在有“?”的地方填入正确内容,然后删除“?”及代码前的所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹,相应的 dat 文件也保存到考生文件夹下。本题描述如下:在名称为:Form1 的窗体上有一个 Labe1 控件和两个命令按钮,数据文件 sjin.dat 存放一些字符。按“开始”按钮后,能从考生文件夹下的 sjin.dat 中读出数据并分别统计出其中数字、字母和其他类型字符的个数,将结果写入考生文件央
6、下的 sjout.dat 文件中(以标准格式在一行中输出);执行完毕,“开始”按钮变成“完成”按钮,且无效(变灰)。程序运行界面如下图所示。(分数:30.00)_二级 VISUAL+BASIC 机试-90 答案解析(总分:100.00,做题时间:90 分钟)一、1 基本操作题(总题数:1,分数:30.00)请根据以下各小题的要求设计 Visual Basic 应用程序(包括界面和代码)。(分数:30.00)(1).在 Form1 的窗体上画一个名称为 Pic1 的图片框,然后建立一个主菜单,标题为“颜色”,名称为vbColor,该菜单有两个子菜单,其标题分别为“红色”和“绿色”,名称分别为 v
7、bRed 和 vbGreen。编写适当的事件过程,使程序运行后,如果单击“颜色”菜单中的“红色”命令,则图片框为红色;如果单击“绿色”命令,则图片框为绿色。程序的运行情况如下图所示。注意:存盘时必须存放在考生文件夹下,工程文件名为 sj1.vbp,窗体文件名为 sj1.frm。程序中不得使用任何变量。*(分数:15.00)_正确答案:(根据题意,新建“标准 EXE”工程,按Ctrl+E组合键打开菜单编辑器,在其中添加如下菜单项:标 签 名 称 内 缩颜色 vbColor无红色 vbRed 一位绿色 vbGreen一位设置完成后,双击输出命令进入代码窗口,编写如下代码:Private Sub v
8、bGreen_Click() 单击绿色命令Pic1.BackColor=RGB(0,255,0) Picl 的背景色为绿色End SubPrivate Sub vbRed_Click() 单击红色命令Pic1.BackColor=RGB(255,0,0) Pic1 的背景色为红色End Sub单击 )解析:(2).在 Form1 的窗体上画一个列表框,名称为 List1,通过属性窗口向列表框中添加 3 个项目,分别为“Item1”、“Item2“和“Item3”。编写适当的事件过程,过程中只能使用一条命令。程序运行后,如果双击列表框中的某一项,则把该项添加到列表框的最后一行。程序的运行界面如下
9、图所示。注意:存盘时必须存放在考生文件夹下,工程文件名为 sj2.vbp,窗体文件名为 sj2.frm。*(分数:15.00)_正确答案:(列表框的内容由属性 List 来设置,双击鼠标将触发控件的 DblClick 事件。根据题意,新建“标准 EXE”工程,将一个列表框添加到窗体中,其名称为 List1,在 List 属性中添加“Item1”、“Item2”和“Item3”,每输入完一项按Ctrl+Enter组合键输入下一项,当输入完成后,按回车键,双击 List1 进入代码窗口,编写如下代码:Private Sub List1_dblclick()List1.AddItem List1.L
10、ist(List1.ListIndex)End Sub单击 )解析:二、2 简单应用题(总题数:2,分数:40.00)1.在考生文件夹下有工程文件 sj3.vbp 及窗体文件 sj3.frm,该程序是不完整的,请在有“?”的地方填入正确内容,然后删除“?”及代码前的所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。本题描述如下:在名称为 Form1 的窗体上有两个 Label 控件和两个命令按钮,Label 控件均为提示信息。命令按钮Command1 和 Command2,程序运行后,单击“开始”按钮,程序自动利用循环计算1+1/2+1/4+1/8+1/16+1/32 的结
11、果,并把结果写入到考生文件夹下的 out3.txt 文件中。执行完毕“开始”按钮变成“完成”按钮,且无效(变灰)。程序运行界面如下图所示。(分数:20.00)_正确答案:(根据题意,新建“标准 EXE”工程,将两个标签和两个命令按钮添加到窗体中,标签的Caption 属性分别为“利用循环计算 1+1/2+1/4+1/8+1/16+1/32 的结果,并把结果写入目标文件中。”和“目标文件:考生文件夹/out3.txt”,命令按钮的名称分别为 Command1 和 Command2,Caption 属性分别为开始和关闭,由于是小数,则参数定义为 Double 类型,双击 Command1 进入代码
12、窗口,编写如下代码:Private Sub Command1_Click()Dim res As Double 结果Dim i As Integer 计数Dim temp As Double 每个需要相加的数res=1temp=1For i=1 To 5 循环 5 次,表示除了 1 之外的 5 个分数temp=temp/2 每个数都是前一个的一半res=res+temp 进行相加Next iOpen “out3.txt“ For Output As # 1 打开文件Write # 1,res 将结果写入文件Close # 1Command1.Caption=“完成“Command1.Enabl
13、ed=FalseEnd SubPrivate Sub Command2_Click()Unload Me 关闭对话框End Sub单击 )解析:2.在考生文件夹下有工程文件 sj4.vbp 及窗体文件 sj4.frm,该程序是不完整的,请在有“?”的地方填入正确内容,然后删除“?”及代码前的所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。本题描述如下:程序启动时文本框的默认文字为“模拟试题”,默认字体为“宋体”,字号为五号,无特殊字体。程序运行过程中可以修改文本框的内容,在单击“还原”按钮时,恢复启动时的状态;在单击“清空”按钮后,文本框的内容为空,并恢复默认的字体。选择
14、相应的字体和字形可以设置文本框内文字的字体和属性。程序运行界面如下图所示。(分数:20.00)_正确答案:(单选按钮都是成组出现,用户在一组单选按钮中只能且最多选择一项,某项被选定后,其左边的圆圈中出现一个黑点;字体由 FontName 属性决定,字体的大小由 FontSize 属性决定;清除文本框的内容可以用将文本框的内容置空来实现(文本框.Text=“ “)。框架是一个容器控件,用于将窗岸上的控件分组,不同的对象可放在同一个框架内,它提供了视觉上的区分和总体的激活或屏蔽功能。要使用框架对控件进行分组,必须先画出框架,然后在框架内画出需要成为一组的控件,这样才能将框架内的控件组成一个整体。根
15、据题意,本题补充后的具体代码如下:Private Sub Command1_Click()Text1.Font.Bold=FalseText1.Font.Italic=FalseText1.Font.Underline=TrueOption1.Value=TrueOption4.Value=TrueText1.Font.Name=“宋体“Text1.Text=“模拟试题“End SubPrivate Sub Command2_Click()Text1.Text=“ “End SubPrivate Sub Form_Load()Text1.Text=“模拟试题“Text1.Font.Bold=F
16、alseText1.Font.Italic=FalseText1.Font.Underline=TrueText1.Font.Name=“宋体“ 字体为宋体End SubPrivate Sub Option1_Click()Text1.Font.Name=“宋体“ 字体为宋体End SubPrivate Sub Option2_Click()Text1.Font.Name=“楷体_GB2312“ 字体为楷书End SubPrivate Sub Option3_Click()Text1.Font.Name=“隶书“ 字体为隶书End SubPrivate Sub Option4_Click()T
17、ext1.Font.Bold=False 不是黑体Text1.Font.Italic=False 不是斜体Text1.Font.Underline=True 加下画线End SubPrivate Sub Option5_Click()Text1.Font.Bold=TrueText1.Font.Italic=FalseText1.Font.Underline=FalseEnd SubPrivate Sub Option6_Click()Text1.Font.Bold=FalseText1.Font.Italic=TrueText1.Font.Underline=FalseEnd Sub单击 )
18、解析:三、3 综合应用题(总题数:1,分数:30.00)3.在考生文件夹下有工程文件 sj5.vbp 及窗体文件 sj5.frm,该程序是不完整的,请在有“?”的地方填入正确内容,然后删除“?”及代码前的所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹,相应的 dat 文件也保存到考生文件夹下。本题描述如下:在名称为:Form1 的窗体上有一个 Labe1 控件和两个命令按钮,数据文件 sjin.dat 存放一些字符。按“开始”按钮后,能从考生文件夹下的 sjin.dat 中读出数据并分别统计出其中数字、字母和其他类型字符的个数,将结果写入考生文件央下的 sjout.dat
19、 文件中(以标准格式在一行中输出);执行完毕,“开始”按钮变成“完成”按钮,且无效(变灰)。程序运行界面如下图所示。(分数:30.00)_正确答案:(程序运行时控件是否可用由其 Enabled 属性决定,当其值为 True 时可用,当为 False 时不可用(灰色)。对文件进行操作必须先打开文件,同时通知操作系统对文件进行读操作还是写操作,打开文件的命令是 Open,其常用形式为:Open “文件名“ For 模式 As#文件号Len=记录长度。模式有 Output(打开文件,对其进行写操作)、Input(打开文件,对其进行读操作)、Append(打开文件,在文件末尾追加记录)。统计大小写字符
20、和数字只需根据字符的 Ascii 码判断,大写字母的 Ascii 值是 6590,小写字母的 Ascii值是 97122,数字的为 4857。利用 EOF 来判断是否读完数据。根据题意双击 Command1 进入代码编写窗口,补充后的具体代码如下:Private Sub Command1_Click()Dim b As StringDim temp As StringDim nn As LongDim cn As LongDim otn AS LongDim i AS Integernn=0i=0cn=0otn=0Open “./sjin.dat“ For Input As # 1While
21、EOF(1)=FalseInput # 1,temp 将字符串读入到 temp 中For i=1 To Len(temp)b=Mid(temp,i,1) 利用 Mid 函数提取字符 Mid(String,Index,Elength)If Asc(b)=Asc(“0“) And Asc(b)=ASC(“9“) Thennn=nn+1ElseIf Asc(b)=Asc(“A“) And Asc(b)=rAsc(“z“) Thencn=cn+1Elseotn=otn+1End IfEnd IfNext iWendClose # 1Command1.Caption=“完成“Command1.Enabled=FalseOpen“./sjout.dat“For Append As # 2 打开文件准备写入Print # 2,“数字个数:“Print # 2,nnPrint # 2,“字母个数“Print # 2,cnPrint # 2,“其他字符个数“Print # 2,otnClose # 2End SubPrivate Sub Command2 Click()Unload MeEnd Sub单击 )解析: