1、国家二级 VB机试(上机操作)模拟试卷 135及答案与解析 一、基本操作题 1 在名称为 Form1、标题为 “标签 ”的窗体上添加一个名称为 Label1的标签,并设置适当属性以满足以下要求: 标签的标题为 “计算机等级考试 ”; 标签可根据标题内容自动调整其大小; 标签带有边框,且标签标题显示为三号字。程序运行后的窗体如图所示。 注意:存盘时必须存放在考生文件夹下,工程文件名保存为 sjt1 vbp,窗体文件名保存为 sjt1 frm。 2 在名称为 Form1的窗体上添加一个名称为 Hscroll1的水平滚动条,其刻度 范围为1 100;再添加一个名称为 Text1的文本框,初始文本内容
2、为 1。程序开始运行时,焦点在滚动条上。请编写适当的事件过程,使得程序运行时,文本框中实时显示滚动框的当前位置。运行情况如图所示。注意:要求程序中不得使用变量,每个事件过程中只能写一条语句。存盘时必须存放在考生文件夹下,工程文件名保存为sjt2 vbp,窗体文件名保存为 sjt2 frm。 二、简单应用题 3 在考生文件夹下有一个工程文件 sjt3 vbp。窗体上有名称为 Timer1的定时器,以及两条水平直线,名称分别为 Line1和 Line2。请用名称为 Shape1的形状控件,在两条直线之间画一个宽和高都相等的形状,设置其形状为圆,并设置适当属性使其满足以下要求: 圆的顶端距窗体 Fo
3、rm1顶端的距离为 360; 圆的颜色为红色(红色对应的值为: &H000000FF&或 &H=FF&),如图所示。程序运行时, Shape1将在 Line1和 Line2之间运行。当Shape1的底部到达 Line2时,会自动改变方向向上运动;当 Shape1的顶端到达Line1时,会自动改变方向向下运动。文件中给出的程序不完整,请去掉程序中的注释符,把程序中的 ?改为正确内容, 使其实现上述功能。注意:不能修改程序的其他部分和已给出控件的属性。最后将修改后的文件按原文件名存盘。 4 在考生文件夹下有一个工程文件 sjt4 vbp,包含了所有控件和部分程序,如图所示。其功能如下: 单击 “读
4、数据 ”按钮,可将考生文件夹下 in4 dat文件中的 100个整数读到数组 a中。 单击 “计算 ”按钮,则根据从组合框 Combo1中选中的项目,对数组 a中的数据计算平均值,并将计算结果四舍五入取整后显示在文本框Text1中。 “读数据 ”按钮的 Click事件过程已经给出,请为 “计算 ”按钮编写适当的事件过程实现上 述功能。注意:不得修改已经存在的控件和程序,在结束程序运行之前,必须进行一次计算,且必须用窗体右上角的关闭按钮结柬程序否则无成绩。最后,程序按原文件名存盘。 三、综合应用题 5 在考生文件夹下有一个工程文件 sjt5 vbp,相应的窗体文件为 sjt5 frm,此外还有一
5、个名为 datain txt的文本文件,其内容如下: 32 43 76 58 28 12 98 57 31 42 53 64 75 86 97 13 24 35 46 57 68 79 80 59 37程序运行后单击窗体,将把文件datain txt中的数据输入二维数组 Mat中,按 5行 5列的矩阵形式显示在窗体上,然后交换矩阵第二列和第四列的数据,将交换后的矩阵显示在窗体上,如图所示。在窗体的代码窗口中,已给出了部分程序,这个程序不完整,请把它补充完整,并能正确运行。要求:去掉程序中的注释符,把程序中的 ?改为正确的内容 (可以是多行 ),使其实现上述功能,但不能修改程序中的其他部分。最后
6、将修改后的文件按原文件名存盘。 国家二级 VB机试(上机操作)模拟试卷 135答案与解析 一、基本操作题 1 【正确答案】 操作步骤 步骤 1:建立界面,添加相 应的控件并设置控件的属性。程序中用到的控件及属性见表 3 49。步骤 2:调试并运行程序,关闭程序后按题目要求存盘。 2 【正确答案】 操作步骤 步骤 1:新建一个窗体,按照题目要求建立控件并设置其属性,如表 3 50所示。 步骤2:打开代码编辑窗口,在指定位置编写如下代码。参考代码 Private Sub HScroll1_Change()Text1 Text=HSCroll1 ValueEnd Sub步骤 3:调试并运行程序,关闭
7、程序后按题目要求存盘。 二、简单应用题 3 【正确答案】 操作步骤 步骤 1:打开本题工程文件,新建一个形状控件,并按表 3 51所示设置属性。 步骤2:打开代码编辑窗口,去掉程序中的注释符 “”,将问号改为正确的内容。参考代码 (画下划线部分是需填入的内容 )Dim s As Integer, h As LongPrivate Sub Form_Load()Timer1 Enabled=Trues=-40End SubPrivate Sub Timer1_Timer()Shapel Move Shape1 Left, Shape1 Top+sIf Shape1 Top=Line1 Y1The
8、ns=-sEnd IfIf Shape1 Top+Shape1 Height =Line2 Y1 Then圆的底端坐标加上圆的自身高度与 Line2比较 s=-sEnd IfEnd Sub步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 4 【正确答案】 操作步骤 步骤 1:打开本题工程文件。 步骤 2:打开代码编辑窗口,在代码编辑窗口指定位置编写以下代码。 参考代码 Dim k As Long Dim m As Long Dim q As Long Dim P As Long Dim r As Long Dim n As Long For k=1 To 100 If a(k)Mod 2=
9、0Then判断是否为偶数 m=m+a(k)偶数之和 q=q+1偶数个数加 1 Else n=n+a(k)奇数之和 P=P+1奇数个数加 1 End If Next k r=Int(m+n) (p+q)+0 5)平均值 m=Int(m q+0 5)偶数平均值 n=Int(n P+0 5)奇数平均值 Select Case Combol Text Case“所有偶数 “ Text1=m Case“所有奇数 “ Text1=n Case“所有数 “ Text1=r End Select 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 三、综合应用题 5 【正确答案】 操作步骤 步骤 1:打开本
10、题工程文件。 步骤 2:打开代码编辑窗口,去掉程序中的注释符 “”,将问号改为正确的内容。 参考代码 (画下划线部分是需填入的内容 ) Option Base 1 Private Sub Form_Click() Const N=5 Const M=5 DimMat(n, m)As Integer定义二维数组 Dim i, j, t Open App Path&“ “&“datain txt“For InputAs#1 对文件进行读操作 For i=1 To N For j=1 To M Input#1, Mat(i, j)将数据读入数组 Mat中 Next j Next i Close#1
11、Print Print“初始矩阵为: “ Print For i=1 To N For J=1 To M Print Tab(5*j); Mat(i, J); Next j Print Next i For i=1 To N完成第二列和第四列的交换 t=Mat(i, 2) Mat(i, 2)=Mat(i, 4) Mat(i, 4)=t将 t的内容赋给 Mat(i, 4),完成交换 Next i Print Print“交换第二列和第四列后的矩阵为: “ Print For i=1 To N For j=1 To M Print Tab(5*J); Mat(i, J); 将转换后的结果打印在窗体上 Next j Print Next i End Sub 步骤 3:调试并运行程序 ,关闭程序后按题目要求存盘。