1、二级 VISUAL+BASIC-65 (1)及答案解析(总分:100.00,做题时间:90 分钟)一、B基本操作题/B(总题数:2,分数:30.00)1.在名称为 Form1,标题为“练习”的窗体上添加一个名称为 Frame1、标题为“效果”的框架。框架内含有三个复选框,其名称分别为 Chk1、Chk2 和 Chk3,标题分别为“倾斜”、“加粗”和“下划线”。程序运行后的窗体如图所示。(分数:15.00)_2.在名称为 Form1 的窗体上添加一个名称为 Label1 的标签,使其初始内容为空,且能根据其标题内容自动调整标签的大小;再添加两个命令按钮,标题分别为“日期”和“时间”,名称分别为C
2、ommand1、Command2。请编写两个命令按钮的 Click 事件过程,使得单击“日期”按钮时,标签内显示系统当前日期;单击“时间”按钮时,标签内显示系统当前时间。如图所示。(分数:15.00)_二、B简单应用题/B(总题数:2,分数:40.00)3.在考生文件夹下有一个工程文件 sjt3.vbp,其功能是:单击“读数据”按钮,则将考生文件夹下 in3.dat 文件中的 100 个正整数读入数组 a 中。单击“计算”按钮,则找出这 100 个正整数中的所有完全平方数(一个整数若是另一个整数的平方,那么它就是完全平方数。如:36=6 2,所以 36 就是一个完全平方数),并计算这些完全平方
3、数的平均值,最后将计算所得平均值截尾取整后在文本框 Text1 中显示。在给出的窗体文件中已经有了全部控件(如图所示),但程序不完整。要求完善程序使其实现上述功能。(分数:20.00)_4.在考生文件夹下有一个工程文件 sjt4.vbp,其窗体上有一个计时器和两个命令按钮。计时器 Timer1 的初始状态为不可用;2 个命令按钮的初始标题分别是“演示”和“退出”。请添加一个名称为 Label1,且能根据标题内容自动调整大小的标签,其标题为“Visual Basic 程序设计”,标题字体为黑体小四号字,如图所示,程序功能如下:(分数:20.00)_三、B综合应用题/B(总题数:1,分数:30.0
4、0)5.在考生文件夹下有一个工程文件 sjt5.vbp,窗体上有三个文本框,其名称分别为 Text1、Text2 和Text3,其中 Text1、Text2 可多行显示。请添加三个命令按钮,名称分别为 Cmd1、Cmd2 和 Cmd3,标题分别为“产生数组”、“统计”和“退出”,如图所示。程序功能如下:(分数:30.00)_二级 VISUAL+BASIC-65 (1)答案解析(总分:100.00,做题时间:90 分钟)一、B基本操作题/B(总题数:2,分数:30.00)1.在名称为 Form1,标题为“练习”的窗体上添加一个名称为 Frame1、标题为“效果”的框架。框架内含有三个复选框,其名
5、称分别为 Chk1、Chk2 和 Chk3,标题分别为“倾斜”、“加粗”和“下划线”。程序运行后的窗体如图所示。(分数:15.00)_正确答案:(操作步骤 步骤 1:新建一个窗体,按照题目要求建立控件,程序中用到的控件及属性见表。 控件 窗体 框架 复选框 1 复选框 2 复选框 3属性 CaptionName CaptionNameCaptionNameCaptionNameCaption设置值 练习 Frame1效果 Chk1倾斜 Chk2加粗 Chk3下划线步骤 2:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:窗体的 Caption 属性、框架的 Name 和 C
6、aption 属性以及复选框的 Name 和Caption 属性。 解析 窗体的 Caption 属性用来设置窗体的标题,框架的 Name 和 Caption 属性用来设置框架的名称和标题,复选框的 Name 和 Caption 属性用来设置复选框的名称和标题。2.在名称为 Form1 的窗体上添加一个名称为 Label1 的标签,使其初始内容为空,且能根据其标题内容自动调整标签的大小;再添加两个命令按钮,标题分别为“日期”和“时间”,名称分别为Command1、Command2。请编写两个命令按钮的 Click 事件过程,使得单击“日期”按钮时,标签内显示系统当前日期;单击“时间”按钮时,标
7、签内显示系统当前时间。如图所示。(分数:15.00)_正确答案:(操作步骤 步骤 1:建立界面,添加相应控件并设置控件的属性。程序中用到的控件及属性见表。 控件 标签 命令按钮 1 命令按钮 2属性 Name CaptionAutoSizeName CaptionName Caption设置值Label1 True Command1日期 Command2时间步骤 2:打开代码编辑窗口,在指定位置编写如下代码。 Private Sub Command1_Click() Label1=Date 用于返回系统当前日期 End Sub Private Sub Command2_Click() Labe
8、l1=Time 用于返回系统当前时间 End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:标签的 Name、Caption 和 AutoSize 属性,命令按钮的 Name 和 Caption 属性,Date()函数以及 Time()函数。 解析 通过标签的 Name 和 Caption 属性设置标签的名称和标题,AutoSize 属性实现标题内容的自动调整,通过命令按钮的 Name 和 Caption 属性设置命令按钮名称和标题,Date()函数用于返回系统日期,Time()函数用于返回系统时间。二、B简单应用题/B(总题数:2,分数:40.00)3
9、.在考生文件夹下有一个工程文件 sjt3.vbp,其功能是:单击“读数据”按钮,则将考生文件夹下 in3.dat 文件中的 100 个正整数读入数组 a 中。单击“计算”按钮,则找出这 100 个正整数中的所有完全平方数(一个整数若是另一个整数的平方,那么它就是完全平方数。如:36=6 2,所以 36 就是一个完全平方数),并计算这些完全平方数的平均值,最后将计算所得平均值截尾取整后在文本框 Text1 中显示。在给出的窗体文件中已经有了全部控件(如图所示),但程序不完整。要求完善程序使其实现上述功能。(分数:20.00)_正确答案:(操作步骤 步骤 1:打开本题工程文件。 步骤 2:打开代码
10、编辑窗口,在代码编辑窗口指定位置编写以下代码。 Dim sum As Long Dim k As Integer Dim m As Integer For k=1 To 100 对 100个数循环判断 For m=1 To Sqr(a(k) 判断 a(k)是否为完全平方数 If a(k)=m2 Then sum=sum+a(k) 求完全平方数之和 n=n+1 完全平方数总数 End If Next m Next k Text1=Fix (sum / n) Fix 函数的功能是取整 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:Fix()函数、App.Path 相
11、对路径、文件编辑、Sqr()函数、“运算符、For循环语句以及 If 条件判断语句。解析 通过文件操作读入数据,并将数值赋值给数组 a(k),根据题意,程序要实现寻找完全平方数,并求出完全平方数的平均值,现在读入和保存程序已经编写完整,需要编写的是求出完全平方数的平均值的代码。首先我们要了解什么是完全平方数,一个整数如果是另一个整数的平方,那么它就是完全平方数。例如:36=6 2,所以 36 就是一个完全平方数。通过循环语句和判断语句确定完全平方数,并进行完全平方数和的累加,求出平均数。由于完全平方数的和可能会很大,变量 sum 要设置为长整型,防止数值溢出。4.在考生文件夹下有一个工程文件
12、sjt4.vbp,其窗体上有一个计时器和两个命令按钮。计时器 Timer1 的初始状态为不可用;2 个命令按钮的初始标题分别是“演示”和“退出”。请添加一个名称为 Label1,且能根据标题内容自动调整大小的标签,其标题为“Visual Basic 程序设计”,标题字体为黑体小四号字,如图所示,程序功能如下:(分数:20.00)_正确答案:(操作步骤 步骤 1:打开本题工程文件,添加一个标签,按表设置标签的属性。 控件 标签属性 Name Caption AutoSizeFontNameFontSize设置值 Label1Visual Basic 程序设计 True 黑体 小四号步骤 2:打开
13、代码编辑窗口,去掉程序中的注释符“”,将问号改为正确的内容。 Private Sub Command1_Click() If Command1.Caption=“演示“ Then Timer1.Enabled=True 当单击“演示“按钮时 Timer1 事件触发 Command1.Caption=“暂停“ Else Timer1.Enabled=False 当单击“暂停“按钮时,Timer1 事件停止 Command1.Caption=“演示“ End If End Sub Private Sub Command2_Click () End 推出程序 End Sub Private Sub
14、Timer1_Timer() If Label1.Left+Label1.Width Form1.Width Then 判断标是否已滚动出窗体 Label1.Left=-Label1.Width 将标位置重复,使它从窗体左边滑出 Else Label1.Left=Lable1.Left+100 标移出 End If End Sub B程序结束/B 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:标签的 Name、Caption、AutoSize、FontName、FontSize、Width 和 Left 属性,命令按钮的 Caption 属性,计时器的 Enab
15、led 属性,窗体的 Width 属性以及 If 判断语句。解析 题目要求单击标题为“演示”的命令按钮时,则该按钮的标题自动变换为“暂停”,且标签在窗体上从左向右循环滚动,当完全滚动出窗体右侧时,从窗体左侧重新进入,单击标题为“暂停”的命令按钮时,则该按钮的标题自动变换为“演示”,并暂停标签的滚动。标签的滚动方式由 Timer1_Timer 事件过程进行判定,并通过标签的 Width 和 Left 属性值的改变实现标签的移动。单击“退出”按钮,End 语句则表示结束程序运行。三、B综合应用题/B(总题数:1,分数:30.00)5.在考生文件夹下有一个工程文件 sjt5.vbp,窗体上有三个文本
16、框,其名称分别为 Text1、Text2 和Text3,其中 Text1、Text2 可多行显示。请添加三个命令按钮,名称分别为 Cmd1、Cmd2 和 Cmd3,标题分别为“产生数组”、“统计”和“退出”,如图所示。程序功能如下:(分数:30.00)_正确答案:(操作步骤 步骤 1:打开本题工程文件,设置控件的属性。程序中用到的控件及属性见表。 控件命令按钮 1命令按钮 2命令按钮 3属性NameCaptionNameCaptionNameCaption设置值Cmd1产生数组Cmd2统计Cmd3退出步骤 2:打开代码编辑窗口,去掉程序中的注释符“”,将问题改为正确的内容。 Option Ba
17、se 1 Dim a(20) As Integer, b(20) As Integer Private Sub Cmd1 Click() Text1.Text=“ “: Text2.Text=“ “: Text3.Text=“ “ For i=1 To 20 a(i)=Fix(Rnd * 9 + i) 生成 010 的数值并存入数组 a 中 b(i)=i Text1.Text=Text1.Text+Str(a(i)+Space(2) 将生成的数显示在 Text1 中 Next i End Sub Private Sub Cmd2_Click ( ) fmax=0 For i=1 To 20 F
18、or j=1 To i-1 数组共有 20 个数字 If a(i)=a(j) Then b(i)=b(i)+1 依次存入对应数出现的频率 End If Next j If b(i) fmax Then fmax=b(i) 该次得到的数出现频率与目前出现频率最多的数比较,若大于目前的数,则将最大的数改为该次得到的数 Next i For i=1 To 20 If b(i)=fmax Then 从数组中找到与 fmax 相同的值 Text2.Text=Text2.Text+Str(a(i)+Space(2) End If Next i Text3.Text=fmax End Sub Private
19、 Sub Cmd3_Click() End 当单击“结束“按钮时,则退出程序 End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:Rnd()函数、Space()函数、Str()函数、Val()函数、Space()函数以及 Fix()函数。 解析 单击“产生数组”按钮时,通过 Rnd 函数随机生成 20 个 010(不含 0 和 10)的数值,并将其保存到一维数组 a 中,同时运用 Space()函数和 Str()函数将这 20 个数值显示在 Text1 文本框内。单击“统计”按钮时,统计出数组 a 中出现频率最高的数值及其出现的次数,并把出现的次数赋值给数组b,通过对数组 b 中数值的排序,找出最高次数,并通过判断最高次数的值,找出出现频率最高的数值,并将其数值显示在 Text2 文本框内,将出现次数显示在 Text3 文本框内。单击“退出”按钮,运用 End 语句结束程序运行。Str 函数将数值转化为字符串,Val()函数是将字符转换为数值。Space(n)函数用于输入空格,n 为空格的个数。Fix()函数用于截尾取整,生成整数。 生成 20 个 010(不含 0 和 10)的数要注意上、下限,Fix()函数是截尾取值,因此 Fix(Rnd * ? + 1)的问号处应该填入的数值为 9,如果是10,就会包含有 10 这个数值。