1、VB 机试-试卷 22 及答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_2.(1)在名称为 Forml 的窗体中建立一个标题为“显示结果”、名称为 Commandl 的命令按钮,要求程序运行后,如果单击“显示结果”按钮,则执行语句 FormlPrint“显示结果”;如果单击窗体,则执行语句 Form1Cls,如图 321 所示。 注意:保存时必须存放在考生文件夹下,窗体文件名为 s11frm,工程文件名为 sj1vbp。 (2)在名称为Forml 的窗体上建立一个垂直滚动条,名称为 VSl,其最大值为50,最
2、小值为 0。要求程序运行后,每次移动滚动块时,都执行语句 Form1Print VSlValue,如图322 所示(程序中不能使用任何变量)。 (分数:2.00)_二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_4.(1)在考生文件夹下有工程文件 sj3vbp 及窗体文件 sj3frm,该程序是不完整的。在名称为 Forml的窗体上有 3 个 Text 控件及 5 个命令按钮,功能为:开始启动工程时,界面上除“读取数据”及“关闭”按钮有效之外,其他按钮均不可用(灰色显示);单击“读取数据”按钮之后,利用 InputBox 让用户连续且必须输入 8 个数。若录人
3、为非数字符号,则给出提示“输人数据无效,请重新输入:”;输入完毕后,“读取数据”变灰,其他变为可用状态;按相应的按钮可分别求出所输入数据的升序排列及平均值,并在右侧对应的文本框中显示(注意用 A(8)存放最大数,A(1)存放最小数);单击“清空”按钮将所有文本框清空。如图 10 一 3 所示。 注意:请在有“?”的地方填入正确内容,然后删除“?”及代码前的所有注释符(即“”号),但不能修改其他部分。存盘时不得改变文件名和文件夹。 (2)在考生文件夹下有工程文件 sj4vbp 及窗体文件 sj4frm,该程序是不完整的。在名称为 Forml,窗体上有 3 个 Label 控件、2个 Text 控
4、件和 2 个命令按钮。该程序的主要功能是求从 1 到 Textl 中用户输入的任意自然数 n 的累加和。刚启动工程时,可以在输入框内输入任意自然数(n 值太大时,运算时间将很长,建议不超过 4 位)。当输入为非数值时,累加结果为 0;单击“开始”可以在,I?ext2 中显示累加和,同时“开始”变为“完成”并变灰;单击“关闭”按钮结束程序的运行。如图 104 所示 (分数:2.00)_三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_6.在考生文件夹下有一个工程文件 sj5vbp,其窗体上有一个文本框,名称为 Textl,可以多行显示;还有 3 个命令按钮,名称分
5、别为 Command1、Command2 和 Command3,标题分别为“打开文件”、“大写”和“保存”。程序运行时的窗体界面如图 245 所示。 (分数:2.00)_VB 机试-试卷 22 答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_解析:2.(1)在名称为 Forml 的窗体中建立一个标题为“显示结果”、名称为 Commandl 的命令按钮,要求程序运行后,如果单击“显示结果”按钮,则执行语句 FormlPrint“显示结果”;如果单击窗体,则执行语句 Form1Cls,如图 321 所示。 注意:保
6、存时必须存放在考生文件夹下,窗体文件名为 s11frm,工程文件名为 sj1vbp。 (2)在名称为Forml 的窗体上建立一个垂直滚动条,名称为 VSl,其最大值为50,最小值为 0。要求程序运行后,每次移动滚动块时,都执行语句 Form1Print VSlValue,如图322 所示(程序中不能使用任何变量)。 (分数:2.00)_正确答案:(正确答案:(1)清除窗体上原来的显示的值可以用 Cls 方法来实现。根据题意,新建“标准EXE”工程,在 Forml 窗体上放人一个命令按钮,并将其名称设为 Commandl、Caption 属性为“显示结果”。然后双击 Forml 中的命令按钮进入
7、代码窗口,编写如下代码: Private Sub Commandl_Click() FormlPrint“显示结果“ End Sub Private Sub Form_Click() FormlCls End Sub 单击 按钮运行程序,并按要求保存。 (2)滚动条表示的最大值由 Max 属性设置,最小值由 Min 属性设置,滚动条的当前值由 Value 属性设置;当滚动框的位置改变时,触发 Change 事件。 根据题意,新建“标准 EXE”工程,在窗体上放人一个垂直滚动条控件,将其名称设为 VSl,并将其 Max 属性为 50、Min 属性为 0。双击 VSl控件,进入代码窗口,编写如下代
8、码: Private Sub VSl Change() FormlPrint VSlValue End Sub 单击 )解析:二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_解析:4.(1)在考生文件夹下有工程文件 sj3vbp 及窗体文件 sj3frm,该程序是不完整的。在名称为 Forml的窗体上有 3 个 Text 控件及 5 个命令按钮,功能为:开始启动工程时,界面上除“读取数据”及“关闭”按钮有效之外,其他按钮均不可用(灰色显示);单击“读取数据”按钮之后,利用 InputBox 让用户连续且必须输入 8 个数。若录人为非数字符号,则给出提示“输人数
9、据无效,请重新输入:”;输入完毕后,“读取数据”变灰,其他变为可用状态;按相应的按钮可分别求出所输入数据的升序排列及平均值,并在右侧对应的文本框中显示(注意用 A(8)存放最大数,A(1)存放最小数);单击“清空”按钮将所有文本框清空。如图 10 一 3 所示。 注意:请在有“?”的地方填入正确内容,然后删除“?”及代码前的所有注释符(即“”号),但不能修改其他部分。存盘时不得改变文件名和文件夹。 (2)在考生文件夹下有工程文件 sj4vbp 及窗体文件 sj4frm,该程序是不完整的。在名称为 Forml,窗体上有 3 个 Label 控件、2个 Text 控件和 2 个命令按钮。该程序的主
10、要功能是求从 1 到 Textl 中用户输入的任意自然数 n 的累加和。刚启动工程时,可以在输入框内输入任意自然数(n 值太大时,运算时间将很长,建议不超过 4 位)。当输入为非数值时,累加结果为 0;单击“开始”可以在,I?ext2 中显示累加和,同时“开始”变为“完成”并变灰;单击“关闭”按钮结束程序的运行。如图 104 所示 (分数:2.00)_正确答案:(正确答案: (1)用数组 str(8)来接收 InputBox 输入的 8 个数,InPutB。x 的格式为:InputBOX(提示,标题,默认,x 坐标位置,Y 坐标位置);Enabled 属性可设置控件是否可用,当该值为 True
11、 时可用,为 False 时不可用(灰色);Val()函数将字符转换成数值。 根据题意,将 5 个命令按钮和 3 个文本框控件添加到窗体中,命令按钮的名称分别为Commandl、command2.Command3、Command4 和 Command5,Caption 属性分别为“读取数据”、“升序显示”、“平均值”、“清空”和“关闭”,文本框的名称分别为 Textl、Text2 和 Text3,Text 属性都为空。双击 Cornmandl 进入代码窗口,补充后的代码如下: Dim a(8)As Long Dim str(8)As String Private Sub Commandl_Cl
12、ick() Dim strl AS String Dim str2 As String Dim str3 As String Dim i AS Integer str3=“ For i=i To 8 str2=i strl=“输入第“ strl=strl+str2 strl=str1+“个数“ str(i)= InputBox (strl) lf str(i)=“Then如果按“取消则重新初始化”对话框 Form_Load End If Whiie Asc(str(i)Asc(“9“) Or Asc(str(i) Exit For End If Next j Next i For i=1 To
13、 8 tmp=a(i) str=str+tmp+“ Next i Text2Text=str End Sub Private Sub Command3_Click() 求平均数 Dim i As Integer Dim total As Long total=0 For i=l To 8 total=total+a(i) Next i total=total8 Text3Text=total CommandlEnabled=False Command2Enabled=True Command 3Ena bled=False Command4Enabled=True End Sub Privat
14、e Sub Command4_Click()清空所有文本框 TextlText=“ Text2Text=“ Text3Text=“ CommandlEnabled=True Command2Enabled=False Command3Enabled=False Command4Enabled=False End Sub Private Sub Command5_Click()关闭对话框 Unload Me End Sub Private Sub Form_Load() 初始化对话框 CommandlEnabled=True Command2Enabled=False Command3Enabl
15、ed=False Command4Enabled=False Command5Enabled=True End Sub 单击* 按钮运行程序,并按要求保存。 (2)要计算累加和通常利用for 循环来完成。文本框巾的内容(包括数字)默认都是当做字符串来处理的,如果要参与数据运算则需先用 Val()函数将其转化为数字。 根据题意,将 3 个标签、2 个命令按钮和 2 个文本框控件添加到窗体中标签的 Caption 属性分别为“要求:程序能得到结果 total,total=1+2+3+n”、“输入 n(0Text) 获得 n total=0 For i=1 To n total=total+i累加
16、Next i Text2Text=total CommandlEnabled=False完成后 Commandl 不可用 CommandlCaption=“完成“ 名称改为完成 End Sub Private Sub Command2_Click() 关闭命令按键 Unload Me End Sub 单击* 按钮运行程序,并按要求保存。)解析:三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_解析:6.在考生文件夹下有一个工程文件 sj5vbp,其窗体上有一个文本框,名称为 Textl,可以多行显示;还有 3 个命令按钮,名称分别为 Command1、Comma
17、nd2 和 Command3,标题分别为“打开文件”、“大写”和“保存”。程序运行时的窗体界面如图 245 所示。 (分数:2.00)_正确答案:(正确答案: 本题主要考查通用对话框使用、顺序文件的打开和 Ucase()函数的使用。 通用对话框(CommonDialog)提供打开文件、保存文件、设置打印选项、选择颜色和字体、显示帮助等操作的一组标准对话框,该控件运行时不可见。其 Action 属性用于设置被打开对话的类型,Filter(过滤器)属性用于指定在对话框的文件列表中显示文件的类型。例如,过滤器为*txt 表示显示所有的文本文件。语法为“对象名Filter=“描述|文件扩展名”。 首先
18、要根据 ASCII 码来判断是否为小写字母,然后再用 Ucase 函数将小写字母转换为大写字母,补充后的具体代码如下: Dim str AS String Private Sub Commandl_Click() Dim tmp As String str=“ CommonlFilter=“文本文件(*txt)|*txt“ Commonl ShowOpen If CommonlFileName“Then Open Commonl FileName For Input As#1 如果文件存在则进行读取 While EOF(1)=False判断是否读取完成 Input #1 ,trap str=str+tmp将读取的字符串放入 str Wend End If Close#1 TextlText=str在 Textl 中显示读取的字符串 End Sub Private Sub Command2_Click() TextlText=UCase(TextlText) End Sub Private Sub Command3_Click() Open“AppPath&out5txt“For Output As#1 Print#1,TextlText将修改后的字符串写入文件中 Close#1 End Sub 单击 )解析: