1、二级 VISUAL+BASIC-61 (1)及答案解析(总分:100.00,做题时间:90 分钟)一、B基本操作题/B(总题数:2,分数:30.00)1.在名称为 Form1 的窗体上添加两个名称分别为 Frame1、Frame2 的框架,标题分别为“字号”、“修饰”;在 Frame1 中添加两个单选按钮,名称分别为 Option1、Option2,标题分别为“10 号字”、“20 号字”,且标题显示在单选按钮的左边;在 Frame2 中添加一个名称为 Check1 的复选框,标题为“下划线”。程序运行后的窗体如图所示。(分数:15.00)_2.在名称为 Form1 的窗体上从上到下添加两个文
2、本框,名称分别为 Text1、Text2;再添加一个命令按钮,名称为 Command1,标题为“选中字符数是”。程序运行时,在 Text1 中输入若干字符,选中部分内容后,单击“选中字符数是”按钮,则选中的字符个数显示在 Text2 中(如图所示)。请编写按钮的 Click 事件过程。(分数:15.00)_二、B简单应用题/B(总题数:2,分数:40.00)3.在考生文件夹下有一个工程文件 sjt3.vbp。程序运行后,单击“读入数据”按钮,可将考生文件夹下in3.txt 文件中的所有英文单词读入,并在 Text1 文本框中显示;单击“插入列表框”按钮,则按顺序将每个单词作为一项添加到 Lis
3、t1 列表框中(如图所示)。(分数:20.00)_4.在考生文件夹下有一个工程文件 sjt4.vbp,窗体上已经添加所有控件,如图所示。在程序运行时,如果单击“开始”按钮,则每隔 0.1 秒窗体上的汽车图标向右移动一次(初始状态下不移动);如果单击“停止”按钮,则停止移动。(分数:20.00)_三、B综合应用题/B(总题数:1,分数:30.00)5.在考生文件夹下有一个工程文件 sjt5.vbp。在窗体文件中已经给出了全部控件及部分程序。程序运行时,在文本框 Text1 中输入一个大于 2 的偶数,并单击“分解为”命令按钮,则可以将该偶数分解为两个素数之和,且要求其中一个素数是所能够分解出的最
4、小的素数(一个偶数有时可以分解为多种素数的组合,例如 24 可以分解为 5 和 19,也可以分解为 11 和 13,要求取含有最小素数的组合,如图所示)。要求编写“分解为”命令按钮事件过程中“考生编写程序开始”和“考生编写程序结束”之间的代码,以实现上述功能。过程 IsPrime 用来判断一个数是否为素数,如果是,返回值为 True,否则返回值为 False。(分数:30.00)_二级 VISUAL+BASIC-61 (1)答案解析(总分:100.00,做题时间:90 分钟)一、B基本操作题/B(总题数:2,分数:30.00)1.在名称为 Form1 的窗体上添加两个名称分别为 Frame1、
5、Frame2 的框架,标题分别为“字号”、“修饰”;在 Frame1 中添加两个单选按钮,名称分别为 Option1、Option2,标题分别为“10 号字”、“20 号字”,且标题显示在单选按钮的左边;在 Frame2 中添加一个名称为 Check1 的复选框,标题为“下划线”。程序运行后的窗体如图所示。(分数:15.00)_正确答案:(操作步骤 步骤 1:建立界面,添加相应的控件并设置控件的属性。程序中的控件及属性见下表。 框架 1 框架 2 单选按钮 1 单选按钮 2 复选框Name Caption Name Caption Name Caption Name Caption Name
6、CaptionFrame1 字号 Frame2 修饰 Option1 10 号字 Option2 20 号字 Check1 下划线步骤 2:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:框架的 Name 和 Caption 属性,单选按钮的 Name 和 Caption 属性以及复选框的 Name 和 Caption 属性。 解析 通过框架的 Name 和 Caption 属性设置框架的名称和标题,通过单选按钮的 Name 和 Caption 属性设置单选按钮的名称和标题,通过复选框的 Name 和 Caption 属性设置复选框的名称和标题。2.在名称为 Form1 的
7、窗体上从上到下添加两个文本框,名称分别为 Text1、Text2;再添加一个命令按钮,名称为 Command1,标题为“选中字符数是”。程序运行时,在 Text1 中输入若干字符,选中部分内容后,单击“选中字符数是”按钮,则选中的字符个数显示在 Text2 中(如图所示)。请编写按钮的 Click 事件过程。(分数:15.00)_正确答案:(操作步骤 步骤 1:建立界面,添加相应的控件并设置控件的属性。程序中涉及的控件及属性见表。 控件 文本框 1 文本框 2 命令按钮属性 Name Caption Name Caption Name Caption设置值Text1 Text2 Command
8、1 选中字符数是步骤 2:打开代码编辑窗口,在指定位置编写如下代码。 Private Sub Command1_Click() Text2=Text1.SelLength End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:文本框的 SelLength、Name 和 Caption 属性以及命令按钮的 Name 和 Caption属性。 解析 SelLength 属性用于返回/设置选定的字符数,通过文本框的 Name 和 Caption 属性设置文本框的名称和标题,通过命令按钮的 Name 和 Caption 属性设置命令按钮的名称和标题。 SelLe
9、ngth 属性与 SelStart 和 SelText 属性容易混淆,SelStart 属性是返回/设置选定文本的起始点,SelText 属性是返回/设置当前选定文本的字符串。二、B简单应用题/B(总题数:2,分数:40.00)3.在考生文件夹下有一个工程文件 sjt3.vbp。程序运行后,单击“读入数据”按钮,可将考生文件夹下in3.txt 文件中的所有英文单词读入,并在 Text1 文本框中显示;单击“插入列表框”按钮,则按顺序将每个单词作为一项添加到 List1 列表框中(如图所示)。(分数:20.00)_正确答案:(操作步骤 步骤 1:打开本题工程文件。 步骤 2:打开代码编辑窗口,去
10、掉程序中的注释符“”,将问号改为正确的内容。 Private Sub Command1_Click() Dim st $, ch $ Open App.Path&“/in3.txt“For Input As # 1打开文件 Do While Not EOF(1) 文件指针是否到达文件末尾 Input #1, ch 达到文件末尾返回 true,否则返回 false st=st&ch 将读出的数据加到原有数据末尾 Loop Close #1 关闭文件 Text1=st 将内容显示在文本框中 End Sub Private Sub Command2_Click() Dim st $, word $,
11、 c $ st=Text1 n=Len(st) For k=1 To n c=Mid(st,k,1) 从 st 中依次取出 1 个字符进行比较 If c“ “Then word=word & c Else List1.AddItem word word=“ “ 将 word 清空,为下一次作准备 End If Next List1.AddItem word End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。)解析:考点 本题考点有:列表框 AddItem 方法、Mid()函数、文件编辑、“&”连接符、Do While 语句、Len()函数、For 循环语句以及 If 判断语句
12、。 解析 本题首先要从文件中读入数据,再逐一检查文本框中每一个字符,如果发现空格则将其之前或两个空格之间的字符串作为一个单词用 AddItem 方法添加到列表框中。循环语句的上限为 Len(st),赋值给变量 n,判断语句的判断条件应为 Mid(st,k,1)“ “,其中 st=Text1.Text。每添加一个单词后清空变量 word,将所取字符的起始位置加 1,再次执行循环得到下一个单词。4.在考生文件夹下有一个工程文件 sjt4.vbp,窗体上已经添加所有控件,如图所示。在程序运行时,如果单击“开始”按钮,则每隔 0.1 秒窗体上的汽车图标向右移动一次(初始状态下不移动);如果单击“停止”
13、按钮,则停止移动。(分数:20.00)_正确答案:(操作步骤 步骤 1:打开本题工程文件,设置计时器 Interval 的属性为 100,将 Enabled 属性设置为 False。 步骤 2:打开代码编辑窗口,在指定位置编写如下代码。 Private Sub Timer1_Timer() P1.Left=P1.Left+20 End Sub 需要考生编写的内容 Private Sub C1_Click() Timer1.Enabled=True End Sub Private Sub C2_Click() Timer1.Enabled=False End Sub 步骤 3:调试并运行程序,关
14、闭程序后按题目要求存盘。)解析:考点 本题考点有:计时器的 Interval 和 Enabled 属性以及图片框的 Left 属性。 解析 首先通过计时器的 Interval 和 Enabled 属性设置计时器每次改变的时间间隔和计时器是否可用,根据题意,在初始状态下 Enabled 属性设置为 False,在计时器的 Timer 事件过程中,通过图片框的 Left 属性值的改变来实现自左向右移动的功能。在“开始”按钮的单击事件过程中应启用计时器,在“停止”按钮的单击事件过程中必须停止计时器。 计时器的:Interval 属性是以毫秒为单位的,因此在设置时要注意1s=1000ms。三、B综合应
15、用题/B(总题数:1,分数:30.00)5.在考生文件夹下有一个工程文件 sjt5.vbp。在窗体文件中已经给出了全部控件及部分程序。程序运行时,在文本框 Text1 中输入一个大于 2 的偶数,并单击“分解为”命令按钮,则可以将该偶数分解为两个素数之和,且要求其中一个素数是所能够分解出的最小的素数(一个偶数有时可以分解为多种素数的组合,例如 24 可以分解为 5 和 19,也可以分解为 11 和 13,要求取含有最小素数的组合,如图所示)。要求编写“分解为”命令按钮事件过程中“考生编写程序开始”和“考生编写程序结束”之间的代码,以实现上述功能。过程 IsPrime 用来判断一个数是否为素数,
16、如果是,返回值为 True,否则返回值为 False。(分数:30.00)_正确答案:(操作步骤 步骤 1:打开本题工程文件。 步骤 2:打开代码编辑窗口,在代码编辑窗口指定位置编写以下代码。 For i=1 To Val(Text1.Text) i 从 1 开始,第一个找到的肯定就是满足条件的最小素数 If IsPrime(i) And IsPrime(Val(Text1.Text)-i)Then 判定两个数是否都满足素数条件 Label1=i Label2=Val(Text1.Text) - i Exit For End If Next i 步骤 3:调试并运行程序,关闭程序后按题目要求存
17、盘。)解析:考点 本题考点有:Sqr()函数、文件操作、App.Path 相对路径、Val()函数、For 循环语句、If判断选择语句以及 Mod 运算符。 解析 Function IsPrime()函数用来判断一个数是否为素数,在处理循环变量的上限时,为了节约循环的次数,设置为 Sqr(x)为 x 的平方根,如果 x 能被循环变量的值整除,IsPrime()函数的返回值为:False,x 就不是素数。在 Command1_Click 事件过程中,通过调用函数判断是否为素数,只要出现一组数据满足条件,就停止 For 循环,这样可以保证是最小的素数。 在进行数字运算前,一定要将参加运算的数字字符串转换为数值,因为计算机认为字符串是不能进行数学运算的。