1、二级 VISUAL+BASIC-41及答案解析(总分:44.00,做题时间:90 分钟)一、B1 基本操作题/B(总题数:1,分数:15.00)1.在名称为 Form1的窗体中建立一个名称为 Cmd1,标题为“显示”的命令按钮,如图 11-13所示。要求程序运行后,如果单击“显示”按钮,则执行语句 Form1.Print“显示“;如果单击窗体,则执行语句Form1.Cls。 注意:保存时必须存放在考生文件夹下,窗体文件名为 sjt1.frm,工程文件名为sjt1.vbp。 (分数:15.00)_二、B2 简单应用题/B(总题数:1,分数:-1.00)2.注意:下面出现的“考生文件夹”均为 c:
2、/wexam/25160001。 (1) 在考生文件夹下有工程文件sjt3.vbp及窗体文件 sjt3.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。如图 16-3所示。 在名称为Form1的窗体上有 1个 Labe1控件,四个 Text控件及七个命令按钮,功能为:开始启动工程时,界面上除“开始录入”及“退出”按钮之外,其他按钮均不可用(灰色显示);单击“开始录入”按钮之后,利用InputBox让用户连续且必须录入 10个数。若录入为非数字符号,则给出警告“输入数据无效,请重新输入数值数据,请输入第 n
3、个数”;录入完毕后,“开始录入”变灰,其他变为可用状态;按相应的按钮可分别求出所录入数据的升序、降序排列及最大数和最小数,并在右侧对应的文本框中显示(注意用 A(10)存放最大数,A(1)存放最小数);单击“清除”按钮将所有文本框清空。 (2) 在考生文件夹下有工程文件sit4.vbp及窗体文件 sjt4.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。如图 16-4所示。 在名称为Form1,标题为“求和程序”的窗体上有 3个 Labe1控件,2 个 Text控件和 3个命令按钮。该程序的主要功能是求从
4、 1到 Text1中用户输入的任意自然数 n的累加和。刚启动工程时,“显示结果”和“清除”按钮均为灰色;可以在输入框内输入任意自然数(n 值太大时,运算时间将很长,建议不超过 9位)。在输入数的同时“显示结果”变为可用。当输入为非数值时,累加结果为 0;单击“显示结果”可以在 Text2中显示累加和,且该框内的文字不可修改,同时“显示结果”变灰,“清除”变为可用;单击“清除”,输入框和显示框均显示“0”单击“关闭”按钮结束程序的运行。 (分数:-1.00)_三、B3 综合应用题/B(总题数:1,分数:30.00)3.去掉程序中的注释符“”,把程序中的“?”改为正确的内容,使其实现下述功能,但不
5、能修改程序中的其他部分,也不能修改控件的其他属性。最后把修改后的文件按原文件名存盘。 在考生文件夹下有一个工程文件 sj5.vbp,其窗体上有一个文本框,名称为 Text1;有 3个命令按钮,名称分别为Command1、Command2 和 Command3,标题分别为“输入”、“计算显示”、“保存”,运行界面如下图所示。在给定程序中有一个函数过程 isPrimeNum,其功能是判断参数是否为素数,如果是素数,则返回True,否则返回 False。 请将程序中有问号的地方替换为相应的代码,使得在运行时,单击“输入”按钮,弹出输入对话框,单击“计算显示”按钮,则找出大于输入参数的最小素数,并显示
6、在 Text1中;单击“保存”按钮,则把 Text1中的计算结果存入考生文件夹下的 out5.txt文件中。 注意:考生不得修改isPrimeNum函数过程和控件的属性,必须把计算结果通过“保存”按钮存入 out5.txt文件中,否则无成绩。 (分数:30.00)_二级 VISUAL+BASIC-41答案解析(总分:44.00,做题时间:90 分钟)一、B1 基本操作题/B(总题数:1,分数:15.00)1.在名称为 Form1的窗体中建立一个名称为 Cmd1,标题为“显示”的命令按钮,如图 11-13所示。要求程序运行后,如果单击“显示”按钮,则执行语句 Form1.Print“显示“;如果
7、单击窗体,则执行语句Form1.Cls。 注意:保存时必须存放在考生文件夹下,窗体文件名为 sjt1.frm,工程文件名为sjt1.vbp。 (分数:15.00)_正确答案:(命令按钮的标题由 Caption属性设置,单击命令按钮触发 Click事件。在窗体上打印信息用Print方法,清除窗体上的打印信息使用 Cls方法,这两条语句在题目中已经给出,只要将其放入适当的事件过程中即可。解题步骤如下。 (1)建立界面并设置控件属性。 本题只用到了 1个命令按钮,将其Caption属性设置为“显示”,Name 属性设置为 Cmd1。 (2)编写代码。 参考代码: Private Sub(Cmd1_C
8、lick() Form1.Print“显示“ End Sub Private Sub Form_Click() Form1.C1s End Sub (3)调试并运行程序。 (4)按题目要求存盘。)解析:解析 在窗体上建立好控件后,先设置控件属性,再编写事件过程。二、B2 简单应用题/B(总题数:1,分数:-1.00)2.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。 (1) 在考生文件夹下有工程文件sjt3.vbp及窗体文件 sjt3.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件
9、夹。如图 16-3所示。 在名称为Form1的窗体上有 1个 Labe1控件,四个 Text控件及七个命令按钮,功能为:开始启动工程时,界面上除“开始录入”及“退出”按钮之外,其他按钮均不可用(灰色显示);单击“开始录入”按钮之后,利用InputBox让用户连续且必须录入 10个数。若录入为非数字符号,则给出警告“输入数据无效,请重新输入数值数据,请输入第 n个数”;录入完毕后,“开始录入”变灰,其他变为可用状态;按相应的按钮可分别求出所录入数据的升序、降序排列及最大数和最小数,并在右侧对应的文本框中显示(注意用 A(10)存放最大数,A(1)存放最小数);单击“清除”按钮将所有文本框清空。
10、(2) 在考生文件夹下有工程文件sit4.vbp及窗体文件 sjt4.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。如图 16-4所示。 在名称为Form1,标题为“求和程序”的窗体上有 3个 Labe1控件,2 个 Text控件和 3个命令按钮。该程序的主要功能是求从 1到 Text1中用户输入的任意自然数 n的累加和。刚启动工程时,“显示结果”和“清除”按钮均为灰色;可以在输入框内输入任意自然数(n 值太大时,运算时间将很长,建议不超过 9位)。在输入数的同时“显示结果”变为可用。当输入为非数值时,
11、累加结果为 0;单击“显示结果”可以在 Text2中显示累加和,且该框内的文字不可修改,同时“显示结果”变灰,“清除”变为可用;单击“清除”,输入框和显示框均显示“0”单击“关闭”按钮结束程序的运行。 (分数:-1.00)_正确答案:(解析 在窗体上建立好控件后,先设置控件属性,再编写事件过程。用数组 a(10)来接收 InputBox输入的 10数,InputBox 的格式为:InputBox(提示,标题,默认,X坐标位置,Y 坐标位置);控件是否可用可利用其 Enabled属性设置,当该值为 True时可用,为 False时不可用(灰色);判断是否是数字可用 IsNumeric(),如果是
12、数字返回 True,否则返回 False;本程序中用到的排序方法是将某一个元素做为标杆,其后的每一个元素与其比较,若小于标杆则两者交换,依此类推,题中要求排完序后 a(1)至 a(10)依次存放大数,在文本框中显示升序和降序的时候只要两者反序显示即可,即升序可依次显示 a(1)到 a(10),降序可依次显示 a(10)到 a(1)。解题步骤:第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表 16-3。表 16-3 控 件 属 性 设 置 值标签 Caption 点击“开始录入”按钮,录入 10个数文本NameScrollbarsMultilane Text12-verticaltr
13、ue 文本NameScrollbarsMultilaneText42-verticaltrue 文本 Name Text2文本 Name Text3按钮 Name Caption Command1 最大数 按钮 Name Caption Command2 最小数按钮 Name Caption Command3 升序排列按钮 Name Caption Command4 降序排列 按钮 Name Caption Command5 退出按钮 Name Caption Command6 开始录入按钮 Name Caption Command7 清除第二步:编写程序代码。程序提供的代码:Option E
14、xplicitDim a(10) As VariantDim i As Integer, j As IntegerDim m As SinglePrivate Sub Command1_Click()Text2.Text=Command1.Enabled=FalseCommand7.Enabled=TrueEnd SubPrivate Sub Command2_Click()Text3.Text=?Command2.Enabled=FalseCommand7.Enabled=TrueEnd SubPrivate Sub Command3_Click()For i=1 To 10Text1.Te
15、xt=Text1.Text &?& “,“Next iCommand3.Enabled=FalseCommand7.Enabled=TrueEnd SubPrivate Sub Command4_Click()For i=10 To 1 Step -1Text4.Text=Text4.Text &?& “,“Next iCommand4.Enabled=FalseCommand7.Enabled=TrueEnd SubPrivate Sub Command5_Click()EndEnd SubPrivate Sub Command6_Click()Label1.Enabled=FalseFor
16、 i=1 To 10a(i)=InputBox(“请输入第“ & i & “个数,请务必输入数值数据! “,“输入“)Do While IsNumeric(a(i) )=Falsea(i)=InputBox(“输入数据无效,请重新输入数值数据! ! !“ & “请输入第“ & _i & “个数“,“输入“)LoopNext iFor i=1 To 9For j=i+1 To 10If Val(a(j) ) ?Val(a(i) ) Thenm=a(j)a(j)=a(i)a(i)=mEnd IfNext jNext iCommand6.Enabled=FalseCommandl.Enabled=T
17、rueCommand2.Enabled=TrueCommand3.Enabled=TrueCommand4.Enabled=TrueCommand5.Enabled=TrueCommand7.Enabled=FalseEnd SubPrivate Sub Command7_Click()Text1.Text=?Text2.Text=?Text3.Text=?Text4.Text=?Label1.Enabled=TrueCommand6.Enabled=TrueCommand4.Enabled=FalseCommand3.Enabled=FalseCommand2.Enabled=FalseCo
18、mmandl.Enabled=FalseCommand7.Enabled=FalseEnd SubPrivate Sub Form_Load()Command1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseCommand4.Enabled=FalseCommand7.Enabled=FalseEnd Sub参考代码:Option ExplicitDim a(10) As VariantDim i As Integer, j As IntegerDim m As SinglePrivate Sub Command1_Click
19、()Text2.Text=a(10)Command1.Enabled=FalseCommand7.Enabled=TrueEnd SubPrivate Sub Command2_Click()Text3.Text=a(1)Command2.Enabled=FalseCommand7.Enabled=TrueEnd SubPrivate Sub Command3_Click()For i=1 To 10Text1.Text=Text1.Text & a(i) &“,“Next iCommand3.Enabled=FalseCommand7.Enabled=TrueEnd SubPrivate S
20、ub Command4_Click()For i=10 To 1 Step -1Text4.Text=Text4.Text & a(i) &“,“Next iCommand4.Enabled=FalseCommand7.Enabled=TrueEnd SubPrivate Sub Command5_Click()EndEnd SubPrivate Sub Command6_Click()Label1.Enabled=FalseFor i=1 To 10a(i)=InputBox(“请输入第“ & i & “个数,请务必输入数值数据!“,“输入“)Do While IsNumeric(a(i)
21、)=Falsea(i)=InputBox(“输入数据无效,请重新输入数值数据! ! !“ & “请输入第“ & i & _“个数“,“输入“)LoopNext iFor i=1 To 9For j=i+1 To 10If Val(a(j) ) Val(a(i) ) Thenm=a(j)a(j)=a(i)a(i)=mEnd IfNext jNext iCommand6.Enabled=FalseCommand1.Enabled=TrueCommand2.Enabled=TrueCommand3.Enabled=TrueCommand4.Enabled=TrueCommand5.Enabled=T
22、rueCommand7.Enabled=FalseEnd SubPrivate Sub Command7_Click()Text1.Text=“Text2.Text=“Text3.Text=“Text4.Text=“Label1.Enabled=TrueCommand6.Enabled=TrueCommand4.Enabled=FalseCommand3.Enabled=FalseCommand2.Enabled=FalseCommand1.Enabled=FalseCommand7.Enabled=FalseEnd SubPrivate Sub Form_Load()Command1.Ena
23、bled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseCommand4.Enabled=FalseCommand7.Enabled=FalseEnd Sub第三步:调试并运行程序。第四步:按题目要求存盘。(2) 解析 控件是否可用可利用其 Enabled属性设置,当该值为 True时可用,为 False时不可用(灰色);计算从 1到 n的数字的和可从 1开始向后计算,每一步计算的结果都保留然后再用上一步计算的值和后面的数字计算;清除可使文本框的内容置空来实现(文本框.Text=“);显示结果框内的文字不可修改,是通过 Locked属性变为
24、True时锁定的。解题步骤:第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表 16-4。表 16-4 标 题 属 性 设 置 值Label Name Caption Label1 该程序的功能是求SS=1+2+3+nLabel Name CaptionLabel2请输入:n(0n999999999)Label Name Caption Label3 结果显示框Text Name Text1Text Name Caption Text2 TrueCommandbuttonNameCaptionCommand1显示结果CommandbuttonNameCaptionCommand清除C
25、ommandbuttonNameCaptionCommand关闭第二步:编写程序代码:程序提供的代码:Option ExplicitPrivate Sub Command1_Click()Dim i As DoubleDim sum As DoubleDim n As Doublesum=0n=Val(Text1.Text)For i=1 To n sum=?Next 1Text2.Text=?Command1.Enabled=FalseCommand2.Enabled=TrueEnd SubPrivate Sub Command2_Click()Text1.Text=?Text2.Text=
26、?Command1.Enabled=TrueCommand2.Enabled=FalseEnd SubPrivate Sub Command3_Click()EndEnd SubPrivate Sub Form_Load()Command1.Enabled=FalseCommand2.Enabled=FalseEnd SubPrivate Sub Text1_Change()Command1.Enabled=TrueEnd SubOption ExplicitPrivate Sub Command1_Click()Dim i As DoubleDim sum As DoubleDim n As
27、 Doublesum=0n=Val(Text1.Text)For i=1 To nsum=sum+iNext iText2.Text=sumCommand1.Enabled=FalseCommand2.Enabled=TrueEnd SubPrivate Sub Command2_Click()Text1.Text=0Text2.Text=0Command1.Enabled=TrueCommand2.Enabled=FalseEnd SubPrivate Sub Command3_Click()EndEnd SubPrivate Sub Form_Load()Command1.Enabled=
28、FalseCommand2.Enabled=FalseEnd SubPrivate Sub Text1_Change()Command1.Enabled=TrueEnd Sub第三步:调试并运行程序。第四步:按题目要求存盘。)解析:三、B3 综合应用题/B(总题数:1,分数:30.00)3.去掉程序中的注释符“”,把程序中的“?”改为正确的内容,使其实现下述功能,但不能修改程序中的其他部分,也不能修改控件的其他属性。最后把修改后的文件按原文件名存盘。 在考生文件夹下有一个工程文件 sj5.vbp,其窗体上有一个文本框,名称为 Text1;有 3个命令按钮,名称分别为Command1、Comma
29、nd2 和 Command3,标题分别为“输入”、“计算显示”、“保存”,运行界面如下图所示。在给定程序中有一个函数过程 isPrimeNum,其功能是判断参数是否为素数,如果是素数,则返回True,否则返回 False。 请将程序中有问号的地方替换为相应的代码,使得在运行时,单击“输入”按钮,弹出输入对话框,单击“计算显示”按钮,则找出大于输入参数的最小素数,并显示在 Text1中;单击“保存”按钮,则把 Text1中的计算结果存入考生文件夹下的 out5.txt文件中。 注意:考生不得修改isPrimeNum函数过程和控件的属性,必须把计算结果通过“保存”按钮存入 out5.txt文件中,
30、否则无成绩。 (分数:30.00)_正确答案:(判断一个数是否为素数就是看该数是否除了 1及其本身外别无其他约数(即从 2到 n-1之间没有可以将其整除的数)即可,从 Function函数中可知,变量 is Prime Num是用于保留判断数是否是素数的结果的,值为 True表示是素数,值为 False表示不是素数。文本框通过 Text属性显示计算结果,其形式为:文本框名.Text=要显示的内容。将数据写入文件可用命令 Write#语句或 Print#语句,本程序中用的是前者,其形式为:Write#文件号,输出列表。 根据题意,将一个文本框控件和 3个命令按钮添加到窗体中,文本框的名称为 Te
31、xt1,Text 属性为空,命令按钮的名称分别为 Command1、Command2 和Command3,Caption 属性分别为“输入”、“计算显示”和“保存”。双击 Command1进入代码窗口,编写如下代码: Dim a As Integer Dim res As Integer Private Sub Command1_Click() a=Val(UInputBox(“输入参数:“/U) 弹出输入对话框 End Sub Private Sub Command2_Click() While Uis Prime Num(a)=False/U 如果输入参数不是素数则继续循环 a=a+1 W
32、end Text1.UText/U=a 将获得的素数在 Text1中显示出来 End Sub Function is Prime Num(num As Integer)As Boolean 判断输入是否为素数 is Prime Num=True Dim i As Integer For i=2 To num-1 If num Mod i=0 Then is Prime Num=False End If Next i End Function Private Sub Command3_Click() Open“out5.txt“For UOutput/U As#1 UWrite/U#1,a Close#1 End Sub 单击*按钮运行程序,并按要求保存。)解析: