1、二级 VISUAL+BASIC 机试-97 及答案解析(总分:100.00,做题时间:90 分钟)一、1 基本操作题(总题数:2,分数:30.00)1.在名为 Form1 的窗体上绘制两个标签(名称分别为 Label1 和 Label2,标题分别为“长”和“宽”)、两个文本框(名称分别为 Text1 和 Text2,Text 属性均为空白)和一个命令按钮(名称为 Command1,标题为“输入”)。编写命令按钮的 Click 事件过程,使程序运行后,若单击命令按钮,则先后显示两个输入对话框,在两个输入对话框中分别输入长和宽,并分别在两个文本框中显示出来,运行后的窗体如下图所示。注意:程序中不得
2、使用任何变量,文件必须存放在考生文件夹中,工程文件名为 sj1.vbp,窗体文件名为sj1.frm。(分数:15.00)_2.在名为 Form1 的窗体上绘制一个标签(名称为 Label1,标题为输入)、一个文本框(名称为 Text1,Text属性为空白)和一个命令按钮(名称为 Command1,标题为显示)。请编写命令按钮的 Click 事件过程,使程序运行后,在文本框中输入内容,然后单击命令按钮,则标签和文本框消失,并在窗体上显示文本框中的内容。运行后的窗体如下图左图和右图所示。注意:要求程序中不得使用任何变量,文件必须存放在考生文件夹中,工程文件名为 sj2.vbp,窗体文件名为 sj2
3、.frm。(分数:15.00)_二、2 简单应用题(总题数:2,分数:40.00)3.在考生文件夹中有一个工程文件 sj3.vbp,相应的窗体文件为 sj3.frm。在名为 Form1 的窗体上有一个命令按钮,其名称为 Command1,标题为“添加”;有一个文本框,名为 Text1,初始内容为空白;此外还有一个列表框,其名称为 List1。程序运行后,如果在文本框中输入一个英文句子(由多个单词组成,各单词之间用一个空格分开),然后单击命令按钮,程序将把该英文句子作为一个项目添加到列表框中,如下图所示。该程序不完整,请补充完整。要求:去掉程序中的注释符“”,把程序中的问号“?”改为正确的内容,
4、使其能正确运行,但不得修改程序的其他部分,最后按原文件名并在原文件夹中保存修改后的文件。(分数:20.00)_4.在考生文件夹中有工程文件 sj4.vbp 及窗体文件 sj4.frm。在名为 Form1 的窗体上有两个框架、7 个标签和 7 个文本框,所有控件已经画好。该程序的功能是:根据给定的图形的三边的边长来判断图形的类型。若为三角形,则同时计算出为何种三角形,及三角形的周长和面积。要求完成“判断并计算”按钮的如下功能:判断输入的条件是否为三角形,若是三角形,则在 Text1 中显示“是三角形”;在 Text2 中显示是何种三角形。单击“重新输入”按钮可以清空所有显示框且按钮本身变为无效状
5、态。当单击“判断并计算”按钮之后重新恢复为可用状态。附加信息:三角形存在的条件为任一边不为 0,且任两边之和大于第三边。若一边具有 a2+b2=c2,则为直角三形;若所有边具有 a2+b2c 2,则为锐角三角形;若一边具有a2+b2c 2,则为钝角三角形。本程序不完整,请补充完整,并能正确运行。程序运行情况如下图所示。要求:去掉程序中的注释符“”,把程序中的问号“?”改为正确的内容,使其实现上述功能,但不得修改其他部分。最后按原文件名并在原文件夹中保存修改后的文件。(分数:20.00)_三、3 综合应用题(总题数:1,分数:30.00)5.在考生文件夹下有工程文件 sj5.vbp 及窗体文件
6、sj5.frm。在窗体Form 上有一个名为 Listl 的列表框,列表框中有若干列表项,通过属性窗口设置列表框的 MultiSelect 属性为 1。还有两个命令按钮,名称分别是 Command1 和 Command2,标题分别是全选和保存(如下图所示)。要求在程序运行时,单击全选按钮则将 List1 中的全部列表项选中,然后单击“保存”按钮,将 List1 中的全部列表项写入文本框文件out5.txt 中,并将 out5.txt 保存在考生文件夹下。注意:该程序不完整,请在有问号“?”的地方填入正确内容,然后删除问号“?”及所有注释符“”,但不能修改其他部分。存盘时不得改变文件名和文件夹,
7、相应的数据文件也保存到考生文件夹下,否则没有成绩。(分数:30.00)_二级 VISUAL+BASIC 机试-97 答案解析(总分:100.00,做题时间:90 分钟)一、1 基本操作题(总题数:2,分数:30.00)1.在名为 Form1 的窗体上绘制两个标签(名称分别为 Label1 和 Label2,标题分别为“长”和“宽”)、两个文本框(名称分别为 Text1 和 Text2,Text 属性均为空白)和一个命令按钮(名称为 Command1,标题为“输入”)。编写命令按钮的 Click 事件过程,使程序运行后,若单击命令按钮,则先后显示两个输入对话框,在两个输入对话框中分别输入长和宽,
8、并分别在两个文本框中显示出来,运行后的窗体如下图所示。注意:程序中不得使用任何变量,文件必须存放在考生文件夹中,工程文件名为 sj1.vbp,窗体文件名为sj1.frm。(分数:15.00)_正确答案:(根据题意,新建“标准 EXE”工程,在窗体上添加两个标签,名称分别为“Label1”和“Label2”、Caption 属性分别为“长”和“宽”,两个文本框,名称分别为“Text1”和“Text2”,Text 属性为空,一个命令按钮,名称为 Command1,Caption 属性为“输入”。设计完成后,双击Command1 进入代码窗口,编写如下代码:Option ExplicitPrivat
9、e Sub Command1_Click()Text1.Text=InputBox(“请输入长“)Text2.Text=InputBox(“请输入宽“)End Sub单击 )解析:2.在名为 Form1 的窗体上绘制一个标签(名称为 Label1,标题为输入)、一个文本框(名称为 Text1,Text属性为空白)和一个命令按钮(名称为 Command1,标题为显示)。请编写命令按钮的 Click 事件过程,使程序运行后,在文本框中输入内容,然后单击命令按钮,则标签和文本框消失,并在窗体上显示文本框中的内容。运行后的窗体如下图左图和右图所示。注意:要求程序中不得使用任何变量,文件必须存放在考生文
10、件夹中,工程文件名为 sj2.vbp,窗体文件名为 sj2.frm。(分数:15.00)_正确答案:(根据题意,新建“标准 EXE”工程,在窗体上添加一个标签,其名称为“Label1”,标题为“输入”,一个文本框,其名称为 Text1,Text 属性为空,一个命令按钮,其名称为 Command1,标题为“显示”。窗体设计完成后,双击 Command1 命令按钮,编写如下代码:Private Sub Command1_Click()Label1.Visible=False 隐藏 Label1Text1.Visible=False 隐藏 Text1Print Text1 将 Text1 上的内容显
11、示在窗体上End Sub单击 )解析:二、2 简单应用题(总题数:2,分数:40.00)3.在考生文件夹中有一个工程文件 sj3.vbp,相应的窗体文件为 sj3.frm。在名为 Form1 的窗体上有一个命令按钮,其名称为 Command1,标题为“添加”;有一个文本框,名为 Text1,初始内容为空白;此外还有一个列表框,其名称为 List1。程序运行后,如果在文本框中输入一个英文句子(由多个单词组成,各单词之间用一个空格分开),然后单击命令按钮,程序将把该英文句子作为一个项目添加到列表框中,如下图所示。该程序不完整,请补充完整。要求:去掉程序中的注释符“”,把程序中的问号“?”改为正确的
12、内容,使其能正确运行,但不得修改程序的其他部分,最后按原文件名并在原文件夹中保存修改后的文件。(分数:20.00)_正确答案:(Len()函数用于返回指定字符串的长度。使用 Mid 函数取出字符串中的字符。Mid 函数的格式为:Mid(字符串,P,n)。Mid 函数从第 P 个字符开始,向后截取 n 个字符,P 和 n 都是算术表达式。Mid 函数的第三个变量可以省略,这样将第 P 个字符开始先后截取到字符串的结尾。根据题意,双击 Command1 命令按钮进入代码窗口,补充后的代码如下:Private Sub Command1_Click()Dim s1 As String,s2 As St
13、ringDim I1 As Integers1=Text1I1=1DoDo While Mid(s1,I1,1) “ “ And I1=Len(s1)s2=s2 & Mid(s1,I1,1)I1=I1+1LoopList1.AddItem s2s2=“ “I1=I1+1Loop While I1=Len(s1)End Sub单击 )解析:4.在考生文件夹中有工程文件 sj4.vbp 及窗体文件 sj4.frm。在名为 Form1 的窗体上有两个框架、7 个标签和 7 个文本框,所有控件已经画好。该程序的功能是:根据给定的图形的三边的边长来判断图形的类型。若为三角形,则同时计算出为何种三角形,及
14、三角形的周长和面积。要求完成“判断并计算”按钮的如下功能:判断输入的条件是否为三角形,若是三角形,则在 Text1 中显示“是三角形”;在 Text2 中显示是何种三角形。单击“重新输入”按钮可以清空所有显示框且按钮本身变为无效状态。当单击“判断并计算”按钮之后重新恢复为可用状态。附加信息:三角形存在的条件为任一边不为 0,且任两边之和大于第三边。若一边具有 a2+b2=c2,则为直角三形;若所有边具有 a2+b2c 2,则为锐角三角形;若一边具有a2+b2c 2,则为钝角三角形。本程序不完整,请补充完整,并能正确运行。程序运行情况如下图所示。要求:去掉程序中的注释符“”,把程序中的问号“?”
15、改为正确的内容,使其实现上述功能,但不得修改其他部分。最后按原文件名并在原文件夹中保存修改后的文件。(分数:20.00)_正确答案:(该题用到两个函数和一个公式,Val()是将其内容转变为数字类型的函数,Sqr()是求数值的平方根函数,而求解三角形的面积的时候用到海伦公式即 S=Sqr(L*(L-a)*(L-b)*(L-c),其中 a、b、c是三角形的三个边,L=(a+b+c)/2。根据题意,双击 Command1 命令按钮进入代码窗口,补充后的代码如下:Option ExplicitDim a As SingleDim b As SingleDim c As SingleDim S As D
16、oubleDim L As SinglePrivate Sub Command1_Click()a=Val(Text5.Text)b=Val(Text6.Text)c=Val(Text7.Text)If a 0 And b 0 And c 0 And a+bc And a+cb And b+ca ThenText1.Text=“是三角形“If a2+b2=c2 Or a2+c2=b2 Or b2+c2=a2 ThenText2.Text=“是直角三角形“ElseIf a2+b2C2 And a2+c2b2 And b2+C2a2 ThenText2.Text=“是锐角三角形“Else:Text
17、2.Text=“是钝角三角形“End IfEnd IfText3.Text=a+b+C 计算三角形的周长L=(a+b+c)/2Text4.Text=Sqr(L*(L-a)*(L-b)*(L-c) 计算三角形的面积Else:Text1.Text=“非三角形“Text2.Text=“ “Text3.Text=“ “Text4.Text=“ “End IfCommand2.Enabled=TrueEnd SubPrivate Sub Command2_Click() 此处需要设置,以实现清空所有文本框及使“重新输入”按钮无效的功能Text1.Text=“ “Text2.Text=“ “Text3.T
18、ext=“ “Text4.Text=“ “Text5.Text=“ “Text6.Text=“ “Text7.Text=“ “Command2.Enabled=FalseEnd SubPrivate Sub Command3_Click()EndEnd SubPrivate Sub Form_Load()Text1.Enabled=FalseText2.Enabled=FalseText3.Enabled=FalseText4.Enabled=FalseCommand2.Enabled=FalseEnd Sub单击 )解析:三、3 综合应用题(总题数:1,分数:30.00)5.在考生文件夹下有
19、工程文件 sj5.vbp 及窗体文件 sj5.frm。在窗体Form 上有一个名为 Listl 的列表框,列表框中有若干列表项,通过属性窗口设置列表框的 MultiSelect 属性为 1。还有两个命令按钮,名称分别是 Command1 和 Command2,标题分别是全选和保存(如下图所示)。要求在程序运行时,单击全选按钮则将 List1 中的全部列表项选中,然后单击“保存”按钮,将 List1 中的全部列表项写入文本框文件out5.txt 中,并将 out5.txt 保存在考生文件夹下。注意:该程序不完整,请在有问号“?”的地方填入正确内容,然后删除问号“?”及所有注释符“”,但不能修改其
20、他部分。存盘时不得改变文件名和文件夹,相应的数据文件也保存到考生文件夹下,否则没有成绩。(分数:30.00)_正确答案:(向列表框中添加项目可以用 AddItem 方法,也可以在属性窗口中进行,本题是在属性窗口实现的。列表框的 Text 属性为最后一次选中的表项的文本,Listlndex 属性是已被选中的表项的位置。如果没有选中任何项,ListIndex 的值将设置为-1。双击 Command1 命令按钮进入代码窗口,编写如下代码:Private Sub Command1_Click()Dim i As IntegerFor i=0 To List1.ListCount-1List1.Selected(i)=TrueNextEnd SubPrivate Sub Command2_Click()Dim i As IntegerOpen“out5.txt“For Output As 1For i=0 To List1.ListCount-1List1.Listlndex=iPrint # 1,List1.Text,List1.Selected(i)=FalseNextClose#1End Sub单击 )解析: