1、VB 机试-试卷 96 及答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_2.(1)在名称为 Forml 的窗体上,绘制一个文本框和两个命令按钮。文本框的名称为 Textl,内容初始时为空。两个命令按钮的名称分别为 Commandl、Command2、标题分别为“显示”和“隐藏”。编写适当的事件过程,当程序运行时,单击 Com mandl 命令按钮,显示文本框,文本框中显示“模拟考试”;单击Command2 命令按钮时,文本框消失。程序中不得使用任何变量。程序运行时的窗体界面如图 291 所示。注意:保存时必须
2、存放在考生文件夹下,窗体文件名为 sjlfrm,工程文件名为 sjlvbp。 (2)在名称为 Forml 的窗体上绘制一个命令按钮,其名称为 Commandl,标题为“向左移动”。编写适当的事件过程,使程序运行时,如果单击命令按钮,则按钮向左移动 500 单位。程序中不得使用任何变量。程序运行时的窗体界面如图 292 所示。 (分数:2.00)_二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_4.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。 (1) 在考生文件夹下有工程文件sjt3.vbp 及窗体文件 sjt3.frm,该程序是不完
3、整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。如图 16-3 所示。 在名称为Form1 的窗体上有 1 个 Labe1 控件,四个 Text 控件及七个命令按钮,功能为:开始启动工程时,界面上除“开始录入”及“退出”按钮之外,其他按钮均不可用(灰色显示);单击“开始录入”按钮之后,利用InputBox 让用户连续且必须录入 10 个数。若录入为非数字符号,则给出警告“输入数据无效,请重新输入数值数据,请输入第 n 个数”;录入完毕后,“开始录入”变灰,其他变为可用状态;按相应的按钮可分别求出所录入数据的升序、降序排列及最
4、大数和最小数,并在右侧对应的文本框中显示(注意用 A(10)存放最大数,A(1)存放最小数);单击“清除”按钮将所有文本框清空。 (2) 在考生文件夹下有工程文件sit4.vbp 及窗体文件 sjt4.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。如图 16-4 所示。 在名称为Form1,标题为“求和程序”的窗体上有 3 个 Labe1 控件,2 个 Text 控件和 3 个命令按钮。该程序的主要功能是求从 1 到 Text1 中用户输入的任意自然数 n 的累加和。刚启动工程时,“显示结果”和“清除”
5、按钮均为灰色;可以在输入框内输入任意自然数(n 值太大时,运算时间将很长,建议不超过 9 位)。在输入数的同时“显示结果”变为可用。当输入为非数值时,累加结果为 0;单击“显示结果”可以在 Text2 中显示累加和,且该框内的文字不可修改,同时“显示结果”变灰,“清除”变为可用;单击“清除”,输入框和显示框均显示“0”单击“关闭”按钮结束程序的运行。 (分数:2.00)_三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_6.在考生文件夹下有一个工程文件 Sj5vbp,窗体上有一个文本框,名称为 Textl,可以多行显示。还有3 个命令按钮,名称分别为 Comma
6、ndl、Command2 和 Command3,标题分别为“读取数据”、“降序排列”和“保存”。“读取数据”按钮的功能是从考生文件夹下的 in5dat 文件中读取 40 个整数到数组中,并在 Textl 中显示出来;“降序排列”按钮的功能是对这 40 个数降序排序,并显示在 Textl 中;“保存”按钮的功能是把排好序的 40 个数存到考生文件夹下的 out5dat 文件中。程序运行界面如图 385 所示。(分数:2.00)_VB 机试-试卷 96 答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_解析:2.(1
7、)在名称为 Forml 的窗体上,绘制一个文本框和两个命令按钮。文本框的名称为 Textl,内容初始时为空。两个命令按钮的名称分别为 Commandl、Command2、标题分别为“显示”和“隐藏”。编写适当的事件过程,当程序运行时,单击 Com mandl 命令按钮,显示文本框,文本框中显示“模拟考试”;单击Command2 命令按钮时,文本框消失。程序中不得使用任何变量。程序运行时的窗体界面如图 291 所示。注意:保存时必须存放在考生文件夹下,窗体文件名为 sjlfrm,工程文件名为 sjlvbp。 (2)在名称为 Forml 的窗体上绘制一个命令按钮,其名称为 Commandl,标题为
8、“向左移动”。编写适当的事件过程,使程序运行时,如果单击命令按钮,则按钮向左移动 500 单位。程序中不得使用任何变量。程序运行时的窗体界面如图 292 所示。 (分数:2.00)_正确答案:(正确答案:(1)根据题意,新建“标准 EXE”工程,将一个文本框控件和两个命令按钮添加到窗体中,文本框的名称为 Textl,Text 属性为“模拟考试”,命令按钮的名称为 Commandl 和Command2,Caption 属性分别为“显示”和“隐藏”。双击 Command,进入代码窗口,编写如下代码: Private Sub Commandl Click() TextlVisible=True Te
9、xtl 可见 End Sub Private Sub Command2 Click() TextlVisible=FalseTextl 不可见 End Sub 单击 按钮运行程序,并按要求保存。 (2)根据题意,新建“标准 EXE”工程,将一个 Command 添加到窗体中,其名称为 Commandl、Caption 属性为“向左移动”。双击 Commandl 进入代码窗口,编写如下代码: Private Sub Commandl Click() CommandlLeft=CommandlLeft-500 End Sub 单击 )解析:二、简单应用题(总题数:2,分数:4.00)3.简单应用题
10、()(分数:2.00)_解析:4.注意:下面出现的“考生文件夹”均为 c:/wexam/25160001。 (1) 在考生文件夹下有工程文件sjt3.vbp 及窗体文件 sjt3.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。如图 16-3 所示。 在名称为Form1 的窗体上有 1 个 Labe1 控件,四个 Text 控件及七个命令按钮,功能为:开始启动工程时,界面上除“开始录入”及“退出”按钮之外,其他按钮均不可用(灰色显示);单击“开始录入”按钮之后,利用InputBox 让用户连续且必须录入
11、10 个数。若录入为非数字符号,则给出警告“输入数据无效,请重新输入数值数据,请输入第 n 个数”;录入完毕后,“开始录入”变灰,其他变为可用状态;按相应的按钮可分别求出所录入数据的升序、降序排列及最大数和最小数,并在右侧对应的文本框中显示(注意用 A(10)存放最大数,A(1)存放最小数);单击“清除”按钮将所有文本框清空。 (2) 在考生文件夹下有工程文件sit4.vbp 及窗体文件 sjt4.frm,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即号),但不能修改其他部分。存盘时不得改变文件名和文件夹。如图 16-4 所示。 在名称为Form1,标题为“求和程序
12、”的窗体上有 3 个 Labe1 控件,2 个 Text 控件和 3 个命令按钮。该程序的主要功能是求从 1 到 Text1 中用户输入的任意自然数 n 的累加和。刚启动工程时,“显示结果”和“清除”按钮均为灰色;可以在输入框内输入任意自然数(n 值太大时,运算时间将很长,建议不超过 9 位)。在输入数的同时“显示结果”变为可用。当输入为非数值时,累加结果为 0;单击“显示结果”可以在 Text2 中显示累加和,且该框内的文字不可修改,同时“显示结果”变灰,“清除”变为可用;单击“清除”,输入框和显示框均显示“0”单击“关闭”按钮结束程序的运行。 (分数:2.00)_正确答案:(正确答案:在窗
13、体上建立好控件后,先设置控件属性,再编写事件过程。 用数组 a(10)来接收 InputBox 输入的 10 数,InputBox 的格式为:InputBox(提示,标题,默认,X 坐标位置,Y 坐标位置);控件是否可用可利用其 Enabled 属性设置,当该值为 True 时可用,为 False 时不可用(灰色);判断是否是数字可用 IsNumeric(),如果是数字返回 True,否则返回 False;本程序中用到的排序方法是将某一个元素做为标杆,其后的每一个元素与其比较,若小于标杆则两者交换,依此类推,题中要求排完序后 a(1)至 a(10)依次存放大数,在文本框中显示升序和降序的时候只
14、要两者反序显示即可,即升序可依次显示 a(1)到 a(10),降序可依次显示 a(10)到 a(1)。解题步骤: 第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表 16-3。 第二步:编写程序代码。 程序提供的代码: Option Explicit Dim a(10) As Variant Dim i As Integer, j As Integer Dim m As Single Private Sub Command1_Click() Text2.Text= Command1.Enabled=False Command7.Enabled=True End Sub Private
15、 Sub Command2_Click() Text3.Text=? Command2.Enabled=False Command7.Enabled=True End Sub Private Sub Command3_Click() For i=1 To 10 Text1.Text=Text1.Text &?& “,“ Next i Command3.Enabled=False Command7.Enabled=True End Sub Private Sub Command4_Click() For i=10 To 1 Step -1 Text4.Text=Text4.Text &?& “,
16、“ Next i Command4.Enabled=False Command7.Enabled=True End Sub Private Sub Command5_Click() End End Sub Private Sub Command6 Click() Label1.Enabled=False For i=1 To 10 a(i)=InputBox(“请输入第“ & i & “个数,请务必输入数值数据! “,“输入“) Do While IsNumeric(a(i) )=False a(i)=InputBox(“输入数据无效,请重新输入数值数据! ! !“ & “请输入第“ & _
17、i & “个数“,“输入“) Loop Next i For i=1 To 9 For j=i+1 To 10 If Val(a(j) ) ?Val(a(i) ) Then m=a(j) a(j)=a(i) a(i)=m End If Next j Next i Command6.Enabled=False Commandl.Enabled=True Command2.Enabled=True Command3.Enabled=True Command4.Enabled=True Command5.Enabled=True Command7.Enabled=False End Sub Priv
18、ate Sub Command7_Click() Text1.Text=? Text2.Text=? Text3.Text=? Text4.Text=? Label1.Enabled=True Command6.Enabled=True Command4.Enabled=False Command3.Enabled=False Command2.Enabled=False Commandl.Enabled=False Command7.Enabled=False End Sub Private Sub Form_Load() Command1.Enabled=False Command2.En
19、abled=False Command3.Enabled=False Command4.Enabled=False Command7.Enabled=False End Sub 参考代码: Option Explicit Dim a(10) As Variant Dim i As Integer, j As Integer Dim m As Single Private Sub Command1_Click() Text2.Text=a(10) Command1.Enabled=False Command7.Enabled=True End Sub Private Sub Command2_C
20、lick() Text3.Text=a(1) Command2.Enabled=False Command7.Enabled=True End Sub Private Sub Command3_Click() For i=1 To 10 Text1.Text=Text1.Text & a(i) &“,“ Next i Command3.Enabled=False Command7.Enabled=True End Sub Private Sub Command4_Click() For i=10 To 1 Step -1 Text4.Text=Text4.Text & a(i) &“,“ Ne
21、xt i Command4.Enabled=False Command7.Enabled=True End Sub Private Sub Command5_Click() End End Sub Private Sub Command6_Click() Label1.Enabled=False For i=1 To 10 a(i)=InputBox(“请输入第“ & i & “个数,请务必输入数值数据!“,“输入“) Do While IsNumeric(a(i) )=False a(i)=InputBox(“输入数据无效,请重新输入数值数据! ! !“ & “请输入第“ & i & _ “
22、个数“,“输入“) Loop Next i For i=1 To 9 For j=i+1 To 10 If Val(a(j) ) Val(a(i) ) Then m=a(j) a(j)=a(i) a(i)=m End If Next j Next i Command6.Enabled=False Command1.Enabled=True Command2.Enabled=True Command3.Enabled=True Command4.Enabled=True Command5.Enabled=True Command7.Enabled=False End Sub Private Su
23、b Command7_Click() Text1.Text=“ Text2.Text=“ Text3.Text=“ Text4.Text=“ Label1.Enabled=True Command6.Enabled=True Command4.Enabled=False Command3.Enabled=False Command2.Enabled=False Command1.Enabled=False Command7.Enabled=False End Sub Private Sub Form_Load() Command1.Enabled=False Command2.Enabled=
24、False Command3.Enabled=False Command4.Enabled=False Command7.Enabled=False End Sub 第三步:调试并运行程序。 第四步:按题目要求存盘。 (2)控件是否可用可利用其 Enabled 属性设置,当该值为 True 时可用,为 False 时不可用(灰色);计算从 1 到 n 的数字的和可从 1 开始向后计算,每一步计算的结果都保留然后再用上一步计算的值和后面的数字计算;清除可使文本框的内容置空来实现(文本框.Text=“);显示结果框内的文字不可修改,是通过 Locked 属性变为 True 时锁定的。解题步骤: 第
25、一步:建立界面并设置控件属性。程序中用到的控件及其属性见表 16-4。 )解析:三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_解析:6.在考生文件夹下有一个工程文件 Sj5vbp,窗体上有一个文本框,名称为 Textl,可以多行显示。还有3 个命令按钮,名称分别为 Commandl、Command2 和 Command3,标题分别为“读取数据”、“降序排列”和“保存”。“读取数据”按钮的功能是从考生文件夹下的 in5dat 文件中读取 40 个整数到数组中,并在 Textl 中显示出来;“降序排列”按钮的功能是对这 40 个数降序排序,并显示在 Textl
26、中;“保存”按钮的功能是把排好序的 40 个数存到考生文件夹下的 out5dat 文件中。程序运行界面如图 385 所示。(分数:2.00)_正确答案:(正确答案:本题在排序中,使用双重循环,外循环每循环一次,确定内循环的次数,内循环就是把本次循环中最小的数,放在数组的最后面,这样就可以实现对 40 个数的降序排序。原代码补充后如下: Dim a(40)As Long Dim str(40)As String Dim tex As String Dim i As Integer Private Sub Commandl Click() 读取数据 tex=“ Open“AppPath&in5da
27、t“For Input As#1 For i=1 To 40 Input#1, a(i) 逐个读取 40 个数据 str(i)=a(i) tex:tex+str(i)+“ 将数组放到一个字符串中 Next i Close#1 TextlText= tex 在 Textl 中显示字符串 End Sub Private Sub Command3 Click() 保存数据 Open“AppPath&out5dat“For Output As#1 Print#1,TextlText Close#1 End Sub 并在 Command2 的 Click 事件中编写以下代码: Private Sub Command2 Click() For i=1 To 40 降序排列 temp=a(i) For j=1 To i If a(j) 按钮运行程序,并按要求保存。)解析: