1、二级 VISUAL+BASIC-66 (1)及答案解析(总分:100.00,做题时间:90 分钟)一、B基本操作题/B(总题数:2,分数:30.00)1.在名称为 Form1,标题为“框架”的窗体上添加一个名称为 Frame1,且标题为空的框架。框架内含有两个单选按钮,名称分别为 Opt1 和 Opt2,其标题分别为“字体”、“大小”。(分数:15.00)_2.考生文件夹下的工程文件 sjt2.vbp 中有一个由直线 Line1、Line2 和 Line3 组成的三角形,直线Line1、Line2 和 Line3 的坐标值如下所示:名称 X1 Y1 X2 Y2Line1 600 1200 16
2、00 300Line2 600 1200 2600 1200Line3 1600 300 2600 1200要求添加一条直线 Line4 以构成三角形的高,且该直线的初始状态为不可见。再添加两个命令按钮,名称分别为 Cmd1、Cmd2,标题分别为“显示高”、“隐藏高”,如图所示。(分数:15.00)_二、B简单应用题/B(总题数:2,分数:40.00)3.在考生文件夹下有一个工程文件 sjt3.vbp,在 Form1 的窗体中有一个文本框、一个计时器和两个命令按钮。程序的功能是在运行时,单击“开始计数”按钮,就开始计数(如图所示),每隔 1 秒,文本框中的数加 1;单击“停止计数”按钮,则停止
3、计数。要求:修改适当的控件的属性,并去掉程序中的注释符,把程序中的?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后将修改后的文件以原来的文件名存盘。(分数:20.00)_4.已知出租车行驶不超过 4 公里时一律收费 10 元。超过 4 公里时分段处理,具体处理方式为:15 公里以内每公里加收 1.2 元,15 公里以上每公里收 1.8 元。在考生文件夹下有一个工程文件 sjt4.vbp。程序的功能是:单击“输入”按钮,将弹出一个输入对话框,接收出租车行驶的里程数;单击“计算”按钮,则可根据输入的里程数计算应付的出租车费,并将计算结果在名称为 Text1 的文本框内显示。在窗
4、体文件中已经给出了全部控件(如图所示),但程序不完整,要求去掉程序中的注释符,把程序中的?改为正确的内容。(分数:20.00)_三、B综合应用题/B(总题数:1,分数:30.00)5.在考生文件夹下有一个工程文件 sjt5.vbp,窗体上有两个命令按钮,标题分别是“读数据”和“统计”,请添加两个标签,名称分别为 Label1 和 Label2,标题分别为“出现次数最多的字母是”和“它出现的次数为”;再添加两个名称分别为 Text1 和 Text2,初始内容为空的文本框,如图所示。(分数:30.00)_二级 VISUAL+BASIC-66 (1)答案解析(总分:100.00,做题时间:90 分钟
5、)一、B基本操作题/B(总题数:2,分数:30.00)1.在名称为 Form1,标题为“框架”的窗体上添加一个名称为 Frame1,且标题为空的框架。框架内含有两个单选按钮,名称分别为 Opt1 和 Opt2,其标题分别为“字体”、“大小”。(分数:15.00)_正确答案:(操作步骤 步骤 1:建立界面,添加相应的控件并设置控件的属性。程序中涉及的控件及属性见表。 控件 框架 单选按钮 1 单选按钮 2 窗体属性 Name CaptionNameCaptionNameCaptionCaption设置值 Frame1 Opt1字体 Opt2大小 框架步骤 2:调试并运行程序,关闭程序后按题目要求
6、存盘。)解析:考点 本题考点有:窗体的 Caption 属性、框架的 Name 和 Caption 属性以及单选按钮的 Name 和Caption 属性。 解析 通过窗体的 Caption 属性设置窗体的标题,通过框架的 Name 和 Caption 属性设置框架的名称和标题,通过单选按钮的 Name 和 Caption 属性设置单选按钮的名称和标题。2.考生文件夹下的工程文件 sjt2.vbp 中有一个由直线 Line1、Line2 和 Line3 组成的三角形,直线Line1、Line2 和 Line3 的坐标值如下所示:名称 X1 Y1 X2 Y2Line1 600 1200 1600
7、300Line2 600 1200 2600 1200Line3 1600 300 2600 1200要求添加一条直线 Line4 以构成三角形的高,且该直线的初始状态为不可见。再添加两个命令按钮,名称分别为 Cmd1、Cmd2,标题分别为“显示高”、“隐藏高”,如图所示。(分数:15.00)_正确答案:(操作步骤 步骤 1:打开 sjt2 工程,按照题目要求建立 Line 控件并设置其属性,如图所示。 *步骤 2:按照步骤 1 建立其他控件并设置相关属性,程序中涉及的控件及属性见表。 控件 线条 命令按钮 1 命令按钮 2属性 Name X1 X2 Y1 Y2 VisibleNameCapt
8、ionNameCaption设置值 Line4160016003001200False Cmd1显示高 Cmd2隐藏高步骤 3:打开代码编辑窗口,在指定位置编写如下代码。 Private Sub Cmd1_Click() Line4.Visible=True 将 Line4 显示 End Sub Private Sub Cmd2_Click() Line4.Visible=False 将 Line4 隐藏 End Sub 步骤 4:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:线条的 Name、X1、X2、Y1、Y2 和 Visible 属性以及命令按钮的 Name 和C
9、aption 属性。 解析 通过对直线 Line1、Line2 和 Line3 的坐标值的计算,确定线条的 X1、X2、Y1 和Y2 属性的值,画出线段 Line4,并将其 Visible 属性设置为 False,使得在初始状态下为不可见。再通过命令按钮的 Name 和 Caption 属性设置命令按钮的名称和标题。在 Cmd1_Click 事件过程中将 Line4 的Visible 属性设置 True,则可以显示高,在 Cmd2_Click 事件过程中把 Line4 的 Visible 属性设置False,则可以隐藏高。二、B简单应用题/B(总题数:2,分数:40.00)3.在考生文件夹下有
10、一个工程文件 sjt3.vbp,在 Form1 的窗体中有一个文本框、一个计时器和两个命令按钮。程序的功能是在运行时,单击“开始计数”按钮,就开始计数(如图所示),每隔 1 秒,文本框中的数加 1;单击“停止计数”按钮,则停止计数。要求:修改适当的控件的属性,并去掉程序中的注释符,把程序中的?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后将修改后的文件以原来的文件名存盘。(分数:20.00)_正确答案:(操作步骤 步骤 1:打开本题工程文件,设置计时器 Interval 属性为 1000,Enabled 属性设置为 False。 步骤 2:打开代码编辑窗口,去掉程序中的注释
11、符“”,将问号改为正确的内容。 Private Sub C1_Click(Index As Integer) Select Case Index 通过控件下标确定单击哪一个按钮 Case 1 Timer1.Enabled=False Case 0 控制下标从 0 开始,此处应为 0 Timer1.Enabled=True End Select End Sub Private Sub Timer1_Timer() Text1.Text=Text1.Text Text1 中的内容加 1 显示 End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:计时器的:I
12、nterval 和 Enabled 属性、命令按钮数组的 Index 属性、Select Case 语句以及文本框的 Text 属性。 解析 首先打开本题工程文件,设置计时器 Interval 属性为:1000,Enabled 属性设置为 False,实现开始计数的时间间隔为 1 秒,计时器不可用。运用 Select Case语句,通过命令按钮数组的 Index 属性值确定是“开始计数”或是“停止计数”按钮,通过设置 Timer1的 Enabled 属性,实现对开始计数和停止计数的操作。Timer1_Timer 事件过程用于使文本框中的数值加1。4.已知出租车行驶不超过 4 公里时一律收费 1
13、0 元。超过 4 公里时分段处理,具体处理方式为:15 公里以内每公里加收 1.2 元,15 公里以上每公里收 1.8 元。在考生文件夹下有一个工程文件 sjt4.vbp。程序的功能是:单击“输入”按钮,将弹出一个输入对话框,接收出租车行驶的里程数;单击“计算”按钮,则可根据输入的里程数计算应付的出租车费,并将计算结果在名称为 Text1 的文本框内显示。在窗体文件中已经给出了全部控件(如图所示),但程序不完整,要求去掉程序中的注释符,把程序中的?改为正确的内容。(分数:20.00)_正确答案:(操作步骤 步骤 1:打开本题工程文件。 步骤 2:打开代码编辑窗口,去掉程序中的注释符“”,将问号
14、改为正确的内容。 Dim s As Integer Private Sub Command1_Click () s=Val (InputBox (“输入里程数(单位:公里)“)s 用于存储里程数 End Sub Private Sub Command2_Click () If s 0 Then Select Case s 对 s 进行判断 Case Is =4 f=10 根据题意 s=4 时 f=10 Case Is =15 f=10+(s-4)*1.2 同理 Case Is 15 f=10+1*12+(s-15)*1.8 同理 End Select Text1.Text=f 在Text1 中
15、显示结果 Else MsgBox “请单击“输入“按钮输入里程数!“ End If End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:InputBox()函数、SelectCase 语句、Val()函数、MsgBox()函数以及文本框的 Text 属性。 解析 通过 InputBox()函数,输入出租车行驶的里程数,运用 Val()函数,实现将字符转换为数值,并把数值赋值给变量 s。如果 s 大于 0,则进入 Select Case 语句,对于 s 值进行判断,当行驶不超过 4 公里时一律收费 10 元。超过 4 公里时分段处理,具体处理方式为 15
16、 公里以内每公里加收 1.2元,15 公里以上每公里收 1.8 元,然后把得出的结果显示到文本框中。如果 s 的值小于等于 0 或者其他字符,通过 MsgBox()函数弹出对话框“请单击输入按钮输入里程数!”。三、B综合应用题/B(总题数:1,分数:30.00)5.在考生文件夹下有一个工程文件 sjt5.vbp,窗体上有两个命令按钮,标题分别是“读数据”和“统计”,请添加两个标签,名称分别为 Label1 和 Label2,标题分别为“出现次数最多的字母是”和“它出现的次数为”;再添加两个名称分别为 Text1 和 Text2,初始内容为空的文本框,如图所示。(分数:30.00)_正确答案:(
17、操作步骤 步骤 1:打开本题工程文件,添加两个标签控件,名称分别为 Label1 和Label2,标题分别为“出现次数最多的字母是”和“它出现的次数为”;再添加两个名称分别为 Text1和 Text2,初始值为空的文本框。 步骤 2:打开代码编辑窗口,在指定位置编写如下代码。 Dim a (1 To 26) As Integer 定义数组 a 用于存放字母出现个数 Dim max As Integer n=Len (s) Len 的功能是求字符串的长度 For i=1 To n k=Asc(Mid $ (s, i, 1) 依次获取字符 If (k=65 And k=90) Then a(k-6
18、4)=a(k-64)+1 当为大写字母时,满足条件则计数 End If If (k=97 And k=122) Then a(k-96)=a(k-96)+1 当为小写字母时,满足条件则计数 End If Next i max=0 For m=1 To 26 循环查找出现次数最多的值 If max a(m) Then max=a(m) End If Next m Text2=max 显示出现次数 For m=1 To 26 找到出现次数最多的值的下标 If a(m)=max Then l=m 将下标记下 End If Next m Text1=Chr(1+64) 通过下标找到对应的字母 步骤 3
19、:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:标签的 Name 和 Caption 属性、文本框的 Name 和 Text 属性、Mid()函数、Option Base 数组下标、Asc()函数、For 循环语句以及 If 判断语句。 解析 通过 Mid()函数获取字符,并通过 Asc()函数获得字符的 ASCII 码,并赋值给变量 k。定义一个数组 a(26)用于存储 26 个字母的出现次数,根据语句 Option Base 1,判断数组的下标为 126,通过判断 ASCII 码来计算字母出现的次数,例如 k=65(A)或 k=97(a),那么 a(k-64)和 a(k-96)也就是通过 a(1)加 1 来进行计数。再通过对于数组 a最大值的查找求 m 最多的次数,进而求出出现最多的字母并显示出来。