1、二级 VISUAL+BASIC 机试-26 及答案解析(总分:100.00,做题时间:90 分钟)一、1 基本操作题(总题数: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)_二、2 简单应用题(总题数:1,分数:40.00)2. (分数:40.00)_三、3 综合应用题(总题数:1,分数:30.00)3.注意
3、:考生不得修改 isprime 函数过程和控件的属性,必须把计算结果通过“存盘”按钮存入out5.txt 文件中,否则无成绩。(分数:30.00)_二级 VISUAL+BASIC 机试-26 答案解析(总分:100.00,做题时间:90 分钟)一、1 基本操作题(总题数:1,分数:30.00)1.注意:下面出现的“”均为 c:/wexam/25160001。请根据以下各小题的要求设计 Visual Basic 应用程序(包括界面和代码)。(1) 在名称为 Form1 的窗体上添加一个计时器控件,名称为 Timer1。请利用“属性”窗口设置适当属性,使得在运行时可以每隔 1 秒,调用计时器的 T
4、imer 事件过程一次。另外,请把窗体的标题设置为“题目2”。设计阶段的窗体如图 18-1 所示。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1.vbp,窗体文件名为 sjt1.frm。(2) 在名称为 Form1 的窗体上画一个文本框,名称为 Text1,无初始内容;再画一个图片框,名称为 P1。请编写 Text1 的 Chang 事件过程,不能使用任何变量,使得运行时,在文本框中每输入一个字符,就在图片框中输出一行文本框中的完整内容。程序运行界面如图 18-2 所示。注意:保存时必须存放在考生文件夹下,工程文件名为 sjt2.vbp,窗体文件名为 sjt2.frm。(分数:30
5、.00)_正确答案:(解析 时钟控件的 Interval 属性,表示两个计时器事件之间的时间间隔,其值以ms(0.001s)为单位,题目要求每 1 秒产生一个计时器事件,那么 Interval 属性应该设置为 1000;窗体的标题由窗体的 Caption 属性设置。解题步骤:第一步:建立界面并设置控件属性。程序用到的控件及其属性见表 18-1。表 18-1标 题 属 性 设 置 值窗体 Caption 题目 2时钟控件 Name Interval Timer1 1000第二步:调试并运行程序。第三步:按题目要求存盘。(2) 解析 当用户向文本框中输入新信息,或当程序把 Text 属性设置为新值
6、从而改变文本框的Text 属性时,将触发 Change 事件。程序运行后,在文本框中每键入一个字符,就会引发一次 Change 事件。在图片框中显示打印信息应使用 Print 方法,其形式为:对象. Print 要显示的内容。解题步骤:第一步:建立界面并设置控件属性。程序用到的控件及其属性见表 18-2。表 18-2控 件 属 性 设 置 值图片框 Name P1文本框 Name Text1第二步:编写程序代码。参考代码:Option ExplicitPrivate Sub Text1 Change()P1.Print Text1.TextEnd Sub第三步:调试并运行程序。第四步:按题目要
7、求存盘。答案考生文件夹)解析:二、2 简单应用题(总题数:1,分数:40.00)2. (分数:40.00)_正确答案:(解析 单选按钮的标题由 Caption 属性设置,检测单选按钮的状态通过 Value 属性来实现。如果单选按钮被选中,则 Value 值为 1;没选中,Value 值为 0。当建立控件数组时,系统给每个元素赋一个惟一的索引号(Index),通过属性窗口的 Index 属性,可以知道该控件的下标是多少;在窗体上显示信息通过 Print 方法实现,其形式为:对象. print 要显示的内容。解题步骤:第一步:建立界面并设置控件属性。程序用到的控件及其属性见表 18-3。表 18-
8、3对 象 属 性 设 置 值单选按钮NameCaptionValue 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) .V
9、alue=True ThenPrint “我的出生地是“+Op1(i) .CaptionEnd IfNextEnd Sub第三步:调试并运行程序。第四步:按题目要求存盘。(2) 解析 在窗体上建立好控件后,先设置控件的属性,再编写事件过程。标签的标题由 Caption 属性设置,控件的高和宽分别由 Height 和 Width 属性来设置。控件的名称由Name 属性设置,向组合框添加项目有两种方法,可以在“属性”窗口的 List 属性里直接添加,也可以在代码中添加。题目要求在设计时添加。字体和字号分别由控件 FontSize 属性和 FontName 属性来设置。解题步骤:第一步:建立界面并设
10、置控件属性。程序用到的控件及其属性见表 18-4。表 18-4控 件 属 性 设 置 值组合框 Name ListCb1101520组合框 Name ListCb2宋体隶书黑体标签 Name Caption B1 字号标签 Name Caption B1 字体标签 Name Caption L1 计算机等级考试第二步:编写程序代码。参考代码:Private Sub Cb1_Click()L1.Font.Size=Cb1.TextEnd SubPrivate Sub Cb2_Click()L1.Font.Name=Cb2.TextEnd SubPrivate Sub Form_Unload(Ca
11、ncel As Integer)Dim i As Long,j 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第三步:调试并运行程序。第四步:按题目要求存盘。)解析:三、3 综合应用题(总题数:1,分数:30.00)3.注意:考生不
12、得修改 isprime 函数过程和控件的属性,必须把计算结果通过“存盘”按钮存入out5.txt 文件中,否则无成绩。(分数:30.00)_正确答案:(解析 素数的判断准则就是看是否该数除了 1 和其本身外别无其他约数(即从 2 到 n-1 之间没有可以将其整除的数)即可,变量 flag 是用于保留判断数是否是素数的结果的,值有 True 和 False 两个(从程序中可以看出)所以应将其定义为布尔型(Boolean),并且在过程中判断完之后,将 flag 的值赋给函数过程 isprime 的名字。文本框通过 Text 属性显示计算结果,其形式为:文本框名.Text=要显示的内容将数据写入文件
13、可用命令 Write#语句或 Print#语句,本程序中用的是后者,其形式为:Pint#文件号,输出列表。解题步骤:第一步:建立了界面并设置控件属性。程序用到的控件及其属性值见表 18-5。表 18-5控 件 属 性 设 置 值文本框 Name 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
14、Int(a/b%)=a/b% Thenflag=FalseElseb%=b%+1End IfLoop isprime= ?End FunctionPrivate Sub C1_Click()Dim i As Integeri=15O00Do While 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)
15、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第三步:调试并运行程序。第四步:按题目要求存盘。)解析: