1、VB 机试-试卷 53 及答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_2.(1)在名称为 Forml 的窗体上绘制一个名为 HS1 的水平滚动条,并在属性窗口中将 Max 属性设置为100,Min 属性设置为 0,Value 属性设置为 100。程序运行后,滚动框位于滚动条最右端,如果单击滚动条之外的窗体部分,则滚动框跳到最左端,如图 3-l 所示。 注意:只能直接为相应的属性赋值,不得使用任何变量。保存时必须存放在考生文件夹下,窗体文件名为 sj1frm,工程文件名为 si1vbp。(2)在 Form1
2、的窗体上绘制一个命令按钮,名为 Cmd1,标题为 Display,按钮隐藏。编写适当的事件过程,使程序运行后,若单击窗体,则命令按钮出现;此时如果单击命令按钮,则在窗体上显示Visual Basic。程序运行情况如图 32,33 所示。 (分数:2.00)_二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_4.(1)在考生文件夹中有工程文件 sj3vbp 及其窗体文件 sj3frm,该程序是不完整的。在窗体上有一个名称为 Commandl、标题为“求和”的命令按钮,三个名称分别为 Textl、Text2 和 Text3 的文本框,运行界面如图 654 所示。要求
3、程序运行后,在 Textl 和 Text2 中分别输人两个整数,单击“求和”按钮后,可把两个整数之间的所有奇数(不含输入的两个整数)累加起来并在 Text3 中显示。 注意:请在有“?”的地方填入正确内容,然后删除“?”及代码前的所有注释符(即“”号),但不能修改其他部分。存盘时不得改变文件名和文件夹。 (2)在考生文件夹中有工程文件 sj4vbp 及其窗体文件 sj4frm,该程序是不完整的。在窗体上建立一个名称为 Textl 的文本框,建立一个名称为 Commandl、标题为“计算”的命令按钮,如图 655 所示。要求程序运行后,如果单击“计算”按钮,则求出 50200 之间所有可以被 5
4、 整除的数的总和,在文本框中显示出来,并把结果存入考生文件夹下的 outtxt 文件中。(在考生的文件夹下有一个 modebas 标准模块,该模块中提供了保存文件的过程 writedata,考生可以直接调用。)(分数:2.00)_三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_6.打开考生文件夹下的 sj5vbp,在名称为 Forml 的窗体上建立两个命令按钮,名称分别为 Commandl 和Command2,命令按钮上分别显示“输入”和“结果”(如图 157 所示)。程序运行时单击“输入”按钮,输入 6 个数放人数组 a 中,单击“结果”则把数组 a 中的数
5、值按照降序排列。 (分数:2.00)_VB 机试-试卷 53 答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_解析:2.(1)在名称为 Forml 的窗体上绘制一个名为 HS1 的水平滚动条,并在属性窗口中将 Max 属性设置为100,Min 属性设置为 0,Value 属性设置为 100。程序运行后,滚动框位于滚动条最右端,如果单击滚动条之外的窗体部分,则滚动框跳到最左端,如图 3-l 所示。 注意:只能直接为相应的属性赋值,不得使用任何变量。保存时必须存放在考生文件夹下,窗体文件名为 sj1frm,工程文件
6、名为 si1vbp。(2)在 Form1 的窗体上绘制一个命令按钮,名为 Cmd1,标题为 Display,按钮隐藏。编写适当的事件过程,使程序运行后,若单击窗体,则命令按钮出现;此时如果单击命令按钮,则在窗体上显示Visual Basic。程序运行情况如图 32,33 所示。 (分数:2.00)_正确答案:(正确答案:(1)本题主要考查窗体上控件的基本操作。 先在窗体上建立控件,再设置控件属性。程序中用到的控件及其属性见下表: )解析:二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_解析:4.(1)在考生文件夹中有工程文件 sj3vbp 及其窗体文件 sj3
7、frm,该程序是不完整的。在窗体上有一个名称为 Commandl、标题为“求和”的命令按钮,三个名称分别为 Textl、Text2 和 Text3 的文本框,运行界面如图 654 所示。要求程序运行后,在 Textl 和 Text2 中分别输人两个整数,单击“求和”按钮后,可把两个整数之间的所有奇数(不含输入的两个整数)累加起来并在 Text3 中显示。 注意:请在有“?”的地方填入正确内容,然后删除“?”及代码前的所有注释符(即“”号),但不能修改其他部分。存盘时不得改变文件名和文件夹。 (2)在考生文件夹中有工程文件 sj4vbp 及其窗体文件 sj4frm,该程序是不完整的。在窗体上建立
8、一个名称为 Textl 的文本框,建立一个名称为 Commandl、标题为“计算”的命令按钮,如图 655 所示。要求程序运行后,如果单击“计算”按钮,则求出 50200 之间所有可以被 5 整除的数的总和,在文本框中显示出来,并把结果存入考生文件夹下的 outtxt 文件中。(在考生的文件夹下有一个 modebas 标准模块,该模块中提供了保存文件的过程 writedata,考生可以直接调用。)(分数:2.00)_正确答案:(正确答案:(1)看一个数是否为奇数,只要判断此数是否能被 2 整除,若不能整除,则是奇数,否则不是奇数。如:N Mod 2=0,则说明余数为 0,N 能被 2 整除,否
9、则 N 不能被 2 整除。 根据题意将一个命令按钮和三个文本框控件添加到窗体中,命令按钮的名称属性为 Commandl、Caption 属性为“求和”,三个文本框的名称分别为 Textl、Text2 和 Text3,然后双击 Commandl 进入代码窗口,补充后的具体代码如下: Private Sub Commandl_Click() Dim total As Long Dim min As Integer Dim max As Integer Dim a As Integer min=Textl Text Textl 输入的整数 max=Text2 Text Text2 输入的整数 tot
10、al=0 For a= min+1 To max-1 循环操作 If a Mod 2=1 Then判断是否为奇数 total=total+a 进行相加操作 End If Next a Text3 Text =total 将得到的数输出到文本框 3 End Sub 单击 按钮运行程序,并按要求保存。 (2)根据题意,将一个命令按钮和一个文本框控件添加到窗体中,命令按钮的名称 Commandl、Caption 属性为“计算”,文本框的名称为 Textl,本题是为了求 50200 之间的能被 5整除的数的和,显示到文本框中并保存到 OUttxt 中。在“工程”窗口中单击右键,在弹出的快捷菜单中选择“
11、添加”“添加模块”,然后在弹出对话框的“现存”选项卡中选择“modebas”,单击“确定”按钮即添加成功。模块 modebas 中的代码如下: Function writeData(total As Long) 将数据保存到 outtxt 中 Open AppPath&“outtxt“For Output As#1打开文件 Write#1,total进行写入 Close#1 End Function 双击 Commandl 进入代码窗口,补充后的代码如下: Private Sub Commandl_Click() Dim total As Long Dim n As Integer total
12、=0 For n=50 To 200循环操作 If n Mod 5=0 Then判断是否能被 5 整除 total=total+n 进行相加操作 End If Next n Textl Text =total在 Textl 中显示出来 writeData(total) 写入 OUttxt 文件中 End Sub 单击 )解析:三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_解析:6.打开考生文件夹下的 sj5vbp,在名称为 Forml 的窗体上建立两个命令按钮,名称分别为 Commandl 和Command2,命令按钮上分别显示“输入”和“结果”(如图 15
13、7 所示)。程序运行时单击“输入”按钮,输入 6 个数放人数组 a 中,单击“结果”则把数组 a 中的数值按照降序排列。 (分数:2.00)_正确答案:(正确答案:本题重点考查“冒泡法”数据排序方法。“冒泡法”是一种重要的数据排序算法,其思想是按顺序让一个数列中的每一个数都与其之后的所有的数逐一进行比较,如果该数小于其后面的数,则把这两个位置的数进行交换。依此类推,即可实现所有数的降序排列。 根据题意,将两个命令按钮添加到窗体中,名称分别为 Commandl 和 Command2、Caption 属性分别为“输入”和“结果”。双击Commandl 进入代码窗口,编写如下代码: Dim a(6)
14、As Integer Dim str As String Dim tmp As String Dim i As Integer Private Sub Commandl Click() str=“排序前:“ For i=1 To 6 a(i)=Val(InputBox(“请输入:“) 输入 6 个数到数组中 tmp=a(i) str=str+tInp+“ 将数组中的数放到字符串中 Next i Print str 在窗口中显示数组 End Sub Private Sub Command2 Click() str=“排序后:“ For i=1 To 6 降序排列 temp=a(i) For j=1 To i If a(j) = temp Then读取的数据比原位置的数据小则偏移 For k=i To j+1 Step-1 a(k)=a(k-1) 数据向后偏移一个 Next k a(j)=temp Exit For End If Next j Next i For i=1 To 6 trap=a(i) 将排序后的数组放入字符串中 str=str+tmp+“ Next i Print str 在窗口中显示排序后的结果 End Sub 单击 )解析: