1、二级 VISUAL+BASIC 机试 39 及答案解析(总分:100.00,做题时间:90 分钟)一、B1 基本操作题/B(总题数:1,分数:30.00)1.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。 请根据以下各小题的要求设计 Visual Basic 应用程序(包括界面和代码)。 (1) 在名称为 Form1 的窗体上添加一个计时器控件,名称为Timer1。请利用“属性”窗口设置适当属性,使得在运行时可以每隔 1 秒,调用计时器的 Timer 事件过程一次。另外,请把窗体的标题设置为“题目 2”。设计阶段的窗体如图 18-1 所示。 注意:存盘时必须存放在考生
2、文件夹下,工程文件名为 sjt1.vbp,窗体文件名为 sjt1.frm。 (2) 在名称为 Form1 的窗体上画一个文本框,名称为 Text1,无初始内容;再画一个图片框,名称为 P1。请编写 Text1 的 Chang 事件过程,不能使用任何变量,使得运行时,在文本框中每输入一个字符,就在图片框中输出一行文本框中的完整内容。程序运行界面如图 18-2 所示。 注意:保存时必须存放在考生文件夹下,工程文件名为sjt2.vbp,窗体文件名为 sjt2.frm。 (分数:30.00)_二、B2 简单应用题/B(总题数:1,分数:40.00)2.注意:下面出现的“考生文件夹”均为 c:/wexa
3、m/25160001。 (1) 在考生文件夹下有一个工程文件sjt3.vbp,窗体上有一个单选按钮数组,含三个单选按钮,均没有标题,请利用“属性”窗口为单选按钮依次添加标题为“北京”、“上海”、“广州”;再添加一个标题为“显示”的命令按钮,如图 18-3 所示。程序的功能是在运行时,如果选中一个单选按钮后,单击“显示”按钮,则根据单选按钮的选中情况,在窗体上显示“我的出生地是北京”、“我的出生地是上海”或“我的出生地是广州”。 要求: 依次添加单选按钮标题为“北京”、“上海”、“广州”;设初始选中的是“广州”,添加命令按钮标题为“显示”;去掉程序中的注释符,把程序中的?改为正确的内容,使其实现
4、上述功能,但不能修改程序中的其他部分,也不能修改控件的其他属性。最后把修改后的文件按原文件名存盘。 (2) 在考生文件夹下有一个工程文件 sjt4.vbp,请在 Form1 窗体中画三个标签,名称分别为 B1、B2 和 L1,标题分别为“字号”、“字体”、“计算机等级考试”,其中 L1 的高为 500,宽为 3000;再在 B1 和 B2 标签的下面画两个组合框,名称分别为 Cb1 和 Cb2,并为 Cb1 添加项目:“10”、“15”和“20”,为 Cb2 添加项目:“黑体”、“隶书”和“宋体”,以上请在设计时实现。请编写适当的事件过程,使得程序在运行时,当在 Cb1 中选一个字号,在 Cb
5、2 中选一个字体,标签 11 中的文字立即变为选定的字号和字体。程序运行界面如图 18-4所示。 注意:考生不得修改窗体文件中已经存在的程序,在结束程序运行之前,必须选择一个字号和字体。必须用窗体右上角的关闭按钮结束程序,否则无成绩。最后,按原文件名存盘,程序中不能使用任何变量。 (分数:40.00)_三、B3 综合应用题/B(总题数:1,分数:30.00)3.下面出现的“考生文件夹”均为 c:/wexam/25160001。 去掉程序中的注释符,把程序中的?改为正确的内容,使其实现下述功能,但不能修改程序中的其他部分,也不能修改控件的其他属性。最后把修改后的文件按原文件名存盘。 在考生文件夹
6、下有一个工程文件 sjt5.vbp,其窗体上有一个文本框,名称为Text1;有两个命令按钮,名称分别为 C1 和 C2,标题分别为“计算”、“存盘”,如图,18-5 所示。在给定程序中有一个函数过程 isprime,其功能是判断参数 a 是否为素数,如果是素数,则返回 True,否则返回 False。 (分数:30.00)_二级 VISUAL+BASIC 机试 39 答案解析(总分:100.00,做题时间:90 分钟)一、B1 基本操作题/B(总题数:1,分数:30.00)1.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。 请根据以下各小题的要求设计 Visual B
7、asic 应用程序(包括界面和代码)。 (1) 在名称为 Form1 的窗体上添加一个计时器控件,名称为Timer1。请利用“属性”窗口设置适当属性,使得在运行时可以每隔 1 秒,调用计时器的 Timer 事件过程一次。另外,请把窗体的标题设置为“题目 2”。设计阶段的窗体如图 18-1 所示。 注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1.vbp,窗体文件名为 sjt1.frm。 (2) 在名称为 Form1 的窗体上画一个文本框,名称为 Text1,无初始内容;再画一个图片框,名称为 P1。请编写 Text1 的 Chang 事件过程,不能使用任何变量,使得运行时,在文本框中
8、每输入一个字符,就在图片框中输出一行文本框中的完整内容。程序运行界面如图 18-2 所示。 注意:保存时必须存放在考生文件夹下,工程文件名为sjt2.vbp,窗体文件名为 sjt2.frm。 (分数:30.00)_正确答案:()解析:解析 时钟控件的 Interval 属性,表示两个计时器事件之间的时间间隔,其值以 ms(0.001s)为单位,题目要求每 1 秒产生一个计时器事件,那么 Interval 属性应该设置为 1000;窗体的标题由窗体的Caption 属性设置。解题步骤:第一步:建立界面并设置控件属性。程序用到的控件及其属性见表 18-1。表 18-1 标 题 属 性 设 置 值窗
9、体 Caption 题目 2时钟控件 Name Interval Timer1 1000第二步:调试并运行程序。第三步:按题目要求存盘。(2) 解析 当用户向文本框中输入新信息,或当程序把 Text 属性设置为新值从而改变文本框的Text 属性时,将触发 Change 事件。程序运行后,在文本框中每键入一个字符,就会引发一次 Change 事件。在图片框中显示打印信息应使用 Print 方法,其形式为:对象. Print 要显示的内容。解题步骤:第一步:建立界面并设置控件属性。程序用到的控件及其属性见表 18-2。表 18-2 控 件 属 性 设 置 值图片框 Name P1文本框 Name
10、Text1第二步:编写程序代码。参考代码:Option ExplicitPrivate Sub Text1 Change()P1.Print Text1.TextEnd Sub第三步:调试并运行程序。第四步:按题目要求存盘。二、B2 简单应用题/B(总题数:1,分数:40.00)2.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。 (1) 在考生文件夹下有一个工程文件sjt3.vbp,窗体上有一个单选按钮数组,含三个单选按钮,均没有标题,请利用“属性”窗口为单选按钮依次添加标题为“北京”、“上海”、“广州”;再添加一个标题为“显示”的命令按钮,如图 18-3 所示。程序
11、的功能是在运行时,如果选中一个单选按钮后,单击“显示”按钮,则根据单选按钮的选中情况,在窗体上显示“我的出生地是北京”、“我的出生地是上海”或“我的出生地是广州”。 要求: 依次添加单选按钮标题为“北京”、“上海”、“广州”;设初始选中的是“广州”,添加命令按钮标题为“显示”;去掉程序中的注释符,把程序中的?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分,也不能修改控件的其他属性。最后把修改后的文件按原文件名存盘。 (2) 在考生文件夹下有一个工程文件 sjt4.vbp,请在 Form1 窗体中画三个标签,名称分别为 B1、B2 和 L1,标题分别为“字号”、“字体”、“计算机等
12、级考试”,其中 L1 的高为 500,宽为 3000;再在 B1 和 B2 标签的下面画两个组合框,名称分别为 Cb1 和 Cb2,并为 Cb1 添加项目:“10”、“15”和“20”,为 Cb2 添加项目:“黑体”、“隶书”和“宋体”,以上请在设计时实现。请编写适当的事件过程,使得程序在运行时,当在 Cb1 中选一个字号,在 Cb2 中选一个字体,标签 11 中的文字立即变为选定的字号和字体。程序运行界面如图 18-4所示。 注意:考生不得修改窗体文件中已经存在的程序,在结束程序运行之前,必须选择一个字号和字体。必须用窗体右上角的关闭按钮结束程序,否则无成绩。最后,按原文件名存盘,程序中不能
13、使用任何变量。 (分数:40.00)_正确答案:()解析:解析 单选按钮的标题由 Caption 属性设置,检测单选按钮的状态通过 Value 属性来实现。如果单选按钮被选中,则 Value 值为 1;没选中,Value 值为 0。当建立控件数组时,系统给每个元素赋一个惟一的索引号(Index),通过属性窗口的 Index 属性,可以知道该控件的下标是多少;在窗体上显示信息通过 Print 方法实现,其形式为:对象. print 要显示的内容。解题步骤:第一步:建立界面并设置控件属性。程序用到的控件及其属性见表 18-3。表 18-3 对 象 属 性 设 置 值单选按钮NameCaptionV
14、alue Op1北京flase单选按钮NameCaptionValue Op上海flase单选按钮NameCaptionValue Op广州flase标签框 Name Lable1第二步:编写程序代码。程序提供的代码:Private Sub C1_Click() For i= ? To ? If Op1(i) ?=True Then Print “我的出生地是“+Op1(i) .?End IfNextEnd Sub参考代码:Private Sub C1_Click()For i=0 To Op1.Count-1If Op1(i) .Value=True ThenPrint “我的出生地是“+O
15、p1(i) .CaptionEnd IfNextEnd Sub第三步:调试并运行程序。第四步:按题目要求存盘。(2) 解析 在窗体上建立好控件后,先设置控件的属性,再编写事件过程。标签的标题由 Caption 属性设置,控件的高和宽分别由 Height 和 Width 属性来设置。控件的名称由Name 属性设置,向组合框添加项目有两种方法,可以在“属性”窗口的 List 属性里直接添加,也可以在代码中添加。题目要求在设计时添加。字体和字号分别由控件 FontSize 属性和 FontName 属性来设置。解题步骤:第一步:建立界面并设置控件属性。程序用到的控件及其属性见表 18-4。表 18-
16、4 控 件 属 性 设 置 值组合框 Name ListCb1101520组合框 Name ListCb2宋体隶书黑体标签 Name Caption B1 字号标签 Name Caption B1 字体标签 Name CaptionL1计算机等级考试第二步:编写程序代码。参考代码:Private Sub Cb1_Click()L1.Font.Size=Cb1.TextEnd SubPrivate Sub Cb2_Click()L1.Font.Name=Cb2.TextEnd SubPrivate Sub Form_Unload(Cancel As Integer)Dim i As Long,j
17、 As LongOpen “out4.txt“ For Output As #1For i=0 To Cb1.LiStCount-1Cb1.ListIndex=iFor j=0 To Cb2.ListCount-1Cb2.ListIndex=jPrint #1,Cb1.Text & Cb2.Text & CInt(L1.Font.Size) & L1.FontNext jNext iClose #1End Sub第三步:调试并运行程序。第四步:按题目要求存盘。三、B3 综合应用题/B(总题数:1,分数:30.00)3.下面出现的“考生文件夹”均为 c:/wexam/25160001。 去掉程序
18、中的注释符,把程序中的?改为正确的内容,使其实现下述功能,但不能修改程序中的其他部分,也不能修改控件的其他属性。最后把修改后的文件按原文件名存盘。 在考生文件夹下有一个工程文件 sjt5.vbp,其窗体上有一个文本框,名称为Text1;有两个命令按钮,名称分别为 C1 和 C2,标题分别为“计算”、“存盘”,如图,18-5 所示。在给定程序中有一个函数过程 isprime,其功能是判断参数 a 是否为素数,如果是素数,则返回 True,否则返回 False。 (分数:30.00)_正确答案:()解析:解析 素数的判断准则就是看是否该数除了 1 和其本身外别无其他约数(即从 2 到 n-1 之间
19、没有可以将其整除的数)即可,变量 flag 是用于保留判断数是否是素数的结果的,值有 True 和 False 两个(从程序中可以看出)所以应将其定义为布尔型(Boolean),并且在过程中判断完之后,将 flag 的值赋给函数过程 isprime 的名字。文本框通过 Text 属性显示计算结果,其形式为:文本框名.Text=要显示的内容将数据写入文件可用命令 Write#语句或 Print#语句,本程序中用的是后者,其形式为:Pint#文件号,输出列表。解题步骤:第一步:建立了界面并设置控件属性。程序用到的控件及其属性值见表 18-5。表 18-5 控 件 属 性 设 置 值文本框 Name
20、 Text1命令按钮 Name Caption C1 计算命令按钮 Name Caption C2 存盘第二步:编写程序代码。程序提供的代码:Private Function isprime(a As Integer) As Boolean Dim flag As?flag=Trueb%=2Do While b%=Int(a/2) And flagIf Int(a/b%)=a/b% Thenflag=FalseElseb%=b%+1End IfLoop isprime= ?End FunctionPrivate Sub C1_Click()Dim i As Integeri=15O00Do W
21、hile Not isprime(i)i=i+1LoopText1.Text=iEnd SubPrivate Sub C2_Click()Open “Out5.txt“ For Output As #1 Print #1, Text1.?Close #1End Sub参考代码:Private Function isprime(a As Integer) As BooleanDim flag As Booleanflag=Trueb%=2Do While b%=Int(a/2) And flagIf Int(a/b%)=a/b% Thenflag=FalseElseb%=b%+1End IfLoopisprime=flagEnd FunctionPrivate Sub C1_Click()Dim i As Integeri=15000Do While Not isprime(i)i=i+1LoopText1.Text=iEnd SubPrivate Sub C2_Click()Open “Out5.txt“ For Output As #1Print #1, Text1.TextClose #1End Sub第三步:调试并运行程序。第四步:按题目要求存盘。