1、VB机试模拟试卷 66及答案与解析 一、基本操作题( 30分) 1 (1)在名称为 Forml的窗体上建立一个二级下拉菜单。一级菜单的标题为 “编辑 ”,名称为 vbEdit,有效。二级菜单有两项,一项标题为 “复制 ”,名称为 vbCopy,有效,命令执行的快捷方式为 Crtl+C;另一项标题为 “粘贴 ”,名称为 vbPaste,无效,命令执行的快捷方式为 Ctrl+P。程序运行时,窗体界面如图 69一 1所示。 注意:存盘时必须存放到考生文件夹下,工程文件名为 sjl vbp,窗体文件名为sjl frm。 (2)在名称为 Forml的窗体上画一个文本框,其名称为 Textl,然后通过属性
2、窗口设置窗体和文本框属性;文本框中显示的初始信息为 “模拟考试 ”,字体为四号、常规、黑体,并有删除线,文本框可以显示多行文本且只有垂直滚动条。不编写任何代码。程序运行时的窗体界面如图 692所示。注意:保存时必须存放在考生文件夹下,窗体文件名为 sj2 frm,工程文件名为 sj2.vbp。 二、简单应用题( 40分) 2 (1)在考生文件夹中有一个工程文件 sj3 vbp,相应的窗体文件为 sj3 frm。在名为 Form1的窗体上有一个命令按钮,其名称为 Commandl,标题为 “添加 ”;有一个文本框,名为 Textl,初始内容为空白;此外还有一个列表框,其名称为 Listl。程序运
3、行后,如果在文本框中输入一个英文句子 (由多个单词组成,各单词之间用一个空格分开 ),然后单击命令按钮,程序将把该英文句子作为一个项目添加到列表框中,如图 4l一 4所示。 该程序不完整,请补充完整。 注意:去掉程序中的注释符 “”,把程序中的问号 “?”改为正确的内容,使其能正确运行,但不得修改程序的其他部分最后,按原文件名并在原文件夹中保存修改后的文件。 (2)在考生文件夹中有工程文件 sj4 vbp及窗体文件 sj4 frm。在名为Forml的窗体上有 2个框架、 7个标签和 7个文本框,所有控件已经画好。判断输入的条件是否为三角形,若是三角形,则在 Textl中显示 “是三角形 ”;在
4、 Text2中显示是何种三角形。单击 “重新输入 ”按钮可以清空所有显示框,且按钮本身变为无效状态。当单击 “判断并计算 ”按钮之后重新恢复为可用状态。程序运行情况如图415所示。该程序的功能是:根据给定的图形的三边的边长来判断图形的类型。若为三角形则同时计算出为何种三角形及三角形的周长和面积。注意:本程序不完整,请补充完整, 并能正确运行。三角形存在的条件为任一边不为 O且任两边之和大于第三边。若一边具有 a2+b2=c2,则为直角三角形;若所有边具有 a2+b2c2,则为锐角三角形;若一边具有 a2+b22,则为钝角三角形。去掉程序中的注释符 “”,把程序中的问号 “?”改为正确的内容,使
5、其实现上述功能,但不得修改的其他部分。最后,按原文件名并在原文件夹中保存修改后的文件。 三、综合应用题( 30分) 3 在考生文件夹中有工程文件 sj5 vbp及其窗体文件 sj5 frm,该程序是不完整的。在名称为 Forml的窗体上有一个文本框,名称 为 Textl、 MultiLine属性为True、 ScrollBars属性为 2;两个命令按钮,名称分别为 Commandl和 Command2、标题分别为 “读取 ”和 “计算保存 ”,程序运行时的窗体界面如图 285所示。要求程序运行后,如果单击 “读取 ”按钮,则读入 in txt文件中的 50个整数放人一个数组中 (数组下界为 1
6、),同时在文本框中显示出来;如果单击 “计算保存 ”按钮,则计算大于或等于 500的所有数的平均数,并把求得的结果在文本框 Textl中显示出来,同时把该结果存人考生文件夹中的文件 out txt中。 (在考生文 件夹下的标准模块mode bas中的 writedata过程可以把结果存入指定的文件。 ) 注意:请在有 “?”的地方填入正确内容,然后删除 “?”及代码前的所有注释符 (即 “”号 ),但不能修改其他部分。存盘时不得改变文件名和文件夹。文件必须存放在考生文件夹下,窗体文件名为 sj5 frm,工程文件名为 sj5 vbp,计算结果存入out txt文件,否则没有成绩。 VB机试模拟
7、试卷 66答案与解析 一、基本操作题( 30分) 1 【正确答案】 (1)根据题意,新建 “标准 EXE”工程,在窗体空白处单击右键,在弹出的 快捷菜单中选择 “菜单编辑器 ”命令,或按 “Ctrl+E”组合键,打开菜单编辑器,添加以下菜单项: 添加完成后,单击 “确定 ”按钮。再单击 按钮运行程序,并按要求保存。 (2)根据题意,新建 “标准 EXE”工程,将一个文本框控件添加到窗体中,其名称为 Text1,Text属性为 “模拟考试 ”, Font属性为 “常规 ”、 “黑体 ”、 “四号 ”,并选中删除线复选按钮, MultiLIne属性为 True, Scrollbars属性为 2。单
8、击 按钮运行程序,并按要求保存。 二、简单应用题( 40分) 2 【正确答案】 (1)Len()函数用于返回指定字符串的长度。使用 Mid函数取出字符串中的字符。 Mid函数的格式为: Mid(字符串, P, n)。 Mid函数从第 P个字符开始,向后截取 n个字符, P和 n都是算术表达式。 Mid函数的第三个变量可以省略,这样将第 P个字符开始先后截取到字符串的结尾。根据题意,双击 Commandl命令按钮进入代码窗口,补充后的代码如下: Private Sub Commandl Click() Dim sl As String, s2 As String Dim 11 As Intege
9、r s1=Textl I1=1 Do Do While Mid(sl, 11,1)“And 11 按钮运行程序,并按要求保存。 (2)该题用到两个函数和一个公式,Val()是将其内容转变为数字类型的函数, Sqr()是求数值的平方根函数,而求解三 角形的面积的时候用到海伦公式即 S=Sqr(L*(L-a)*(L-b)*(L-c),其中 a、 b、 C是三角形的三条边, L=(a+b+c) 2。根据题意,双击 Commandl命令按钮进入 代码窗口,补充后的代码如下: Option Explicit Dim a AS Single Dim b As Single Dim C As Single
10、Dim S AS Double Dim L As Single Private Sub Commandl 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 Then Textl Text=“是三角形 “ 1f a2+b2=c2 Or a2+c2=b2 Orb2+c2=a2 Then Text2 Text=“是直角三角形 “ Else If a2+b2c2 And a2+c2b2 And b2+c2a2 Then Text2
11、 Text=“是锐角三角形 “ Else: Text2 Text=“是钝角三角形 “ End If End If Text3 Text=a+b+C 计算三角形的周长 L=(a+b+c) 2 Text4 Text=Sqr(L*(L-a)*(L-b)*(L-c) 计算三角形的面积 Else:Textl Text=“非三角形 “ Text2 Text=“ Text3 Text=“ Text4 Text=“ End If Command2 Enabled=True End Sub Private Sub Command2_Click() 此处需要设置,以实现清空所有文本框和使 “重新输入 ”按钮无效的
12、功能 Textl Text=“ Text2 Text=“ Text3 Text=“ Text4 Text=“ Text5 Text=“ Text6 Text=“ Text7 Text=“ Command2 Enabled=False End Sub Private Sub Command3_Click() End End Sub Private Sub Form Load() Textl Enabled=False Text2 Enabled=False Text3 Enabled=False Text4 Enabled=False Command2 Enabled=False End Sub
13、 单击 按钮运行程序,并按要求 保存。 三、综合应用题( 30分) 3 【正确答案】 文本框显示的内容由 Text属性设置, Multiline属性设置文本框是否可多行显示;按钮的标题由 Caption属性设置,单击命令按钮触发 Click事件。题中涉及对文件的操作,读人顺序文件以顺序的方式打开,用 Input#语句读取数据,另外需要注意的是对文件操作完后,一定要关闭文件。 根据题意要求将一个文本框控件和两个命令按钮,其中文本框的名称为 Namel、 MultiLine属性为True、滚动属性为 2命令按钮的名称分别为 Commandl和 Command2、 Caption的属性分别为 “读取
14、 ”和 “计算保存 ”。在 “工程 ”窗口中单击右键在弹出的快捷菜单中选择 “添加 ”“ 添加模块 ”,然后在弹出对话框的 “现存 ”选项卡中选择 “mode bas”,单击 “确定 ”按钮即添加成功。模块 mode bas中的代码如下: Function writeData(total As Long) Open App Path&“ out txt“For Output As#1 Write#1,total Close#1 End Function 窗体中补充后的代码如下: Dim a(50)As Long全局变量 Dim str(50)As String全局变量 Dim total As
15、 Long Dim n As Integer Private Sub Commandl Click() total=0 n=0 Textl Text=“ Open App Path&“ in txt“For Input As#1打开 “in txt“文件 Dim i As Integer Dim temp As Integer For i=0 To 49 Input#1,temp a(i)=temp按顺序读 人到数组中 Next i For i=0 To 49 If a(i)=500 Then total=total+a(i) 当符合条件时进行相加 n=n+1 当符合条件是则 n增 l End If str(i)=a(i) Textl Text=Textl Text+str(i)+vbCrLf将数组中的 50个数放人 Text中显示 Next i total=total n Close#1 End Sub Private Sub Command2 Click() Textl Text=total writeData(total)将结果保存到 out txt End Sub 单击 按钮运行程序,并按要求保存。