1、国家二级 VB机试(上机操作)模拟试卷 308及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.请根据以下各小题的要求设计 Visual Basic应用程序(包括界面和代码)。(1)在名称为 Form1的窗体上画两个名称分别为 Frame1、Frame2 的框架,标题分别为“字号”、“修饰”;在 Frame1中画两个单选按钮,名称分别为 Option1、Option2,标题分别为“10 号字”、“20 号字”,且标题显示在单选按钮的左边;在 Frame2中画一个名称为 Check1的复选框,标题为“下划线”。运行后的窗体如图 3174所示。注意:
2、存盘时必须存放在考生文件夹下,工程文件名为 sjt1vbp,窗体文件名为 sjt1frm。(2)在名称为 Form1的窗体上从上到下画两个文本框,名称分别为 Text1、Text2;再画一个命令按钮,名称为Command1,标题为“选中字符数是”。程序运行时,在 Text1中输入若干字符,选中部分内容后,单击“选中字符数是”按钮,则在 Text2中显示选中的字符个数(如图 3175所示)。请编写按钮的 Click事件过程。 (分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.(1)在考生文件夹下有一个工程文件 sjt3vbp。程序运行后,单击“读入数据”按钮,可把考生文件夹下
3、in3txt 文件中的所有英文单词读入,并显示在 Text1文本框中;单击“插入列表框”按钮,则按顺序把每个单词作为一项添加到 List1列表框中(如图 3176所示)。在 in3txt 文件中每个单词之间用一个空格字符隔开,最后一个单词的后面没有空格。已经给出了所有控件和程序,但程序不完整。要求:请去掉程序中的注释符,把程序中的“?”改为正确的内容,使其能正确运行,但不能修改程序中的其他部分和控件属性。最后用原来的文件名保存工程文件和窗体文件。(2)在考生文件夹下有一个工程文件sjt4vbp,窗体上已经画出所有控件,如图 3177所示。在运行时,如果单击“开始”按钮,则窗体上的汽车图标每 0
4、1 秒向右移动一次(初始状态下不移动):如果单击“停止”按钮,则停止移动。(分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.在考生文件夹下有一个工程文件 sjt5vbp。在窗体文件中已经给出了全部控件及部分程序。程序运行时,在文本框 Text1中输入一个大于 2的偶数,并单击“分解为”按钮,则可以将该偶数分解为两个素数之和,且要求其中一个素数是所能够分解出的最小的素数(一个偶数有时可以分解为多种素数的组合,例如 24可以分解为 5和 19,也可以分解为 11和 13,要求取含有最小素数的组合,如图 3178所示)。要求编写“分解为”按钮事件过程中“考生编写程序开始”和“考生编
5、写程序结束”之间的代码,以实现上述功能。过程 IsPrime用来判断一个数是否为素数,如果是,返回值为 True,否则返回值为 False。注意:不得修改原有程序和控件的属性。至少正确运行一次程序,且运行时在文本框中输入 23456,单击“分解为”按钮,将结果显示在标签中,否则无成绩。最后把修改后的文件按原文件名存盘。(分数:2.00)_国家二级 VB机试(上机操作)模拟试卷 308答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.请根据以下各小题的要求设计 Visual Basic应用程序(包括界面和代码)。(1)在名称为 Form1的窗体上画两
6、个名称分别为 Frame1、Frame2 的框架,标题分别为“字号”、“修饰”;在 Frame1中画两个单选按钮,名称分别为 Option1、Option2,标题分别为“10 号字”、“20 号字”,且标题显示在单选按钮的左边;在 Frame2中画一个名称为 Check1的复选框,标题为“下划线”。运行后的窗体如图 3174所示。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1vbp,窗体文件名为 sjt1frm。(2)在名称为 Form1的窗体上从上到下画两个文本框,名称分别为 Text1、Text2;再画一个命令按钮,名称为Command1,标题为“选中字符数是”。程序运行时,在
7、 Text1中输入若干字符,选中部分内容后,单击“选中字符数是”按钮,则在 Text2中显示选中的字符个数(如图 3175所示)。请编写按钮的 Click事件过程。 (分数:2.00)_正确答案:(正确答案:第 1小题 步骤 1:新建一个“标准 EXE”工程,按要求画出控件并设置属性。 步骤 2:按要求将文件保存至考生文件夹中。 第 2小题 步骤 1:新建一个“标准 EXE”工程,按要求画出控件并设置属性。 步骤 2:打开代码编辑窗口,编写以下事件过程。 参考代码: Private Sub Command1_Click() Text2Text=Form1Text1SelLength End S
8、ub 步骤 3:按要求将文件保存至考生文件夹中。)解析:解析:第 1小题:本题只需按题目在窗体中画出控件,并设置相关属性即可。 第 2小题:要在Text2中显示 Text1中选中的字符个数,需编写语句将 Text1的 SelLength属性返回值赋值给 Text2。二、简单应用题(总题数:1,分数:2.00)2.(1)在考生文件夹下有一个工程文件 sjt3vbp。程序运行后,单击“读入数据”按钮,可把考生文件夹下 in3txt 文件中的所有英文单词读入,并显示在 Text1文本框中;单击“插入列表框”按钮,则按顺序把每个单词作为一项添加到 List1列表框中(如图 3176所示)。在 in3t
9、xt 文件中每个单词之间用一个空格字符隔开,最后一个单词的后面没有空格。已经给出了所有控件和程序,但程序不完整。要求:请去掉程序中的注释符,把程序中的“?”改为正确的内容,使其能正确运行,但不能修改程序中的其他部分和控件属性。最后用原来的文件名保存工程文件和窗体文件。(2)在考生文件夹下有一个工程文件sjt4vbp,窗体上已经画出所有控件,如图 3177所示。在运行时,如果单击“开始”按钮,则窗体上的汽车图标每 01 秒向右移动一次(初始状态下不移动):如果单击“停止”按钮,则停止移动。(分数:2.00)_正确答案:(正确答案:第 1小题 步骤 1:打开考生文件夹下的工程文件 sjt3vbp,
10、打开代码编辑窗门,去掉程序中的注释符“”,将问号“?”改为正确的内容。 参考代码: st=st&ch c=Mid(st,k,1) word=“ “ 步骤 2:按要求将文件保存至考生文件夹中。 第 2小题 步骤 1:打开考生文件夹中的本题工程文件 sjt4vbp,将计时器 Timer1的 Enabled属性设置为 False,Interval 属性设置为 100。 步骤 2:打开代码编辑窗口,去掉程序中的注释符“”,将问号“?”改为正确的内容并编写两个命令按钮的单击事件过程。 参考代码: Private Sub C1_Click() Timer1Enabled=True End Sub Priv
11、ate Sub C2_Click() Timer1Enabled=False End Sub Private Sub Timer1_Timer() P1Move P1Left+20 End Sub 步骤 3:按要求将文件保存至考生文件夹中。)解析:解析:第 1小题:本题在“读入数据”按钮的单击事件中。首先将 in3txt 文件以 Input方式打开,然后利用 Do循环依次读入文件中的每一个数据,在每一次循环中读入文件中的一个数据并连接至变量 st中,循环结束后 st的值就是文件中所有单词连接而成的字符串。 在“插入列表框”按钮的单击事件中,以空格为单词分隔依据找出每个单词,然后将单词插入列表框
12、中,清空变量 word准备继续寻找下一个单词。 第 2小题:计时器只在设计时可见,计时器是否启用由其 Enabled属性设置,值可取 True或 False。启用后由 Interval属性设置间隔多长时间触发一次其 Timer事件,Interval 属性的单位为毫秒,缺省值为 0,此时计时器不启用。 Timer1 用于控制汽车行驶,每触发一次 Timer1的 Timer事件,汽车向右移动 20,即 P1MoveP1Left+20。三、综合应用题(总题数:1,分数:2.00)3.在考生文件夹下有一个工程文件 sjt5vbp。在窗体文件中已经给出了全部控件及部分程序。程序运行时,在文本框 Text
13、1中输入一个大于 2的偶数,并单击“分解为”按钮,则可以将该偶数分解为两个素数之和,且要求其中一个素数是所能够分解出的最小的素数(一个偶数有时可以分解为多种素数的组合,例如 24可以分解为 5和 19,也可以分解为 11和 13,要求取含有最小素数的组合,如图 3178所示)。要求编写“分解为”按钮事件过程中“考生编写程序开始”和“考生编写程序结束”之间的代码,以实现上述功能。过程 IsPrime用来判断一个数是否为素数,如果是,返回值为 True,否则返回值为 False。注意:不得修改原有程序和控件的属性。至少正确运行一次程序,且运行时在文本框中输入 23456,单击“分解为”按钮,将结果
14、显示在标签中,否则无成绩。最后把修改后的文件按原文件名存盘。(分数:2.00)_正确答案:(正确答案:步骤 1:打开考生文件夹中的本题工程文件 sjt5vbp,在代码编辑窗口的指定位置编写以下代码。 参考代码: Dim i As Integer Dim n As Inteqer n=Val(Text1Text) If n Mod20Then MsgBox“请输入偶数!“ Exit Sub End If For i=2To n2 If IsPrime(i)And IsPrime(n-i)Then Label1Caption=i Label2Caption=n-i Exit For End If Next 步骤 2:按F5键运行程序,在文本框中输入 23456,单击“分解为”按钮。 步骤 3:按要求将文件保存至考生文件夹中。)解析:解析:本题程序设计思路:两个整数之和为 n的组合有:1 和 n-1、2 和 n2i 和 n-i,在 For循环中按前一个加数由小到大的顺序,依次通过调用函数 IsPrime来判断每个组合中的两个加数是否均为素数,第一个找到的素数组合中即含有能够分解出的最小素数。由于 1不是素数,故循环变量的初值从 2开始;由于 i和 n-i的组合与 n-i和 i组合在本题中可被视为相同组合,故循环变量的终值设定为 n2 即可。