1、国家二级 VB机试(上机操作)模拟试卷 354及答案与解析 一、基本操作题 1 (1)在名称为 Form1的窗体上画一个名称为 Combol的组合框,其宽度为 1200,其类型如图 3 188所示 (即简单组合框 )。要求如下: 请按图中所示,通过属性窗口输入 “北京 ”、 “上海 ”、 “广州 ”、 “深圳 ”。 设置适当的属性,使得运行时,窗体的最大化按钮和最小化按钮消失。 注意:存盘时必须存放在考生文件夹下,工程文件名为 sjtl vbp,窗体文件名为 sjtl frm。 (2)在名称为 Form1的窗体上画两个文本框,名称分别为 Text1、 Text2,再画两个命令按钮,名称分别为
2、Command1、Command2,标题分别为 “左 ”、 “右 ”,如图 3 189。要求:编写适当的事件过程,使得程序运行时,单击 “左 ”按钮,则焦点位于 Text1上;单击 “右 ”按钮,则焦点位于Text2上。 注意:程序中不得使用变量,事件过程中只能写一条语句。存盘时必须存放在考生文件夹下,工程文件名为 sjt2 vbp,窗体文件名为 sjt2 frm。 二、简单应用题 2 (1)在考生文件夹下有一个工程文件 vbsj3 vbp,相应的窗体文件为 vbsj3 frm,在窗体上有一个标题为 “计算 ”的命令按钮和一个文本框。程序运行后,单击命令按钮,即可计算出数组 arr中每个元素与
3、其下标相除所得的和,并在文本框中显示出来,程序的运行情况如图 3 144所示。在窗体的代码窗口中,已给出了部分程序,其中计算数组 arr中每个元素与其下标相除所得的和的操作在通用过程 Fun中实现,请编写该过程的代码。 要求:请勿改动程序中的其他部分,只在 Function Fun()和 End Function之间填入你编写的若干语句并运行程序。在结束程序运行之前,必须至少正确运行一次程序,将结果显示在 文本框中 9否则无成绩。最后把修改后的文件按原文件名存盘。 说明:数组 arr中共有 40个元素, “数组 arr中每个元素与其下标相除所得的和 ”,是指: arr(1) 1+arr(2)
4、2+arr(3) 3+arr(40) 40 程序源码: End SubFunction Fun(a() As Single) AsSingle 由考生编写=End Funct ionPrivate Sub cmdCal Click()Dim arr, arr2(40)As Singlearr=Array(12 5, 65 4, 56, 73, 4 6 2 3, _58 25, 83 49, 96,27 3, 36 78, _29 26 , 89 4, 34 7, 45 4, 56 9, _67 4, 78, 98,87 5, 76 8, 34 6, _55 8, 64 7, 43 7, 99,
5、 4, 84 7, _66 2, 2 3 9, 55 5, 44 1, 33 2, _43 5, 41 2, 2 8 3, 78 6, 98 3, _6 1,73 6, 49 3, 48 3)For i=1 To UBound(arr)arr2(i)=arr(i)Next i r=Fun(arr2()txtResult Text=Str(r)SaveData End Sub Sub SaveData()Open“out3 txt“For Output As #1 rint #1, txtReSUit Text Close 1 End Sub (2)在考生文件夹下有一个工程文件 vbsj4 vb
6、p。程序运行后,如果单击 “开始 ”按钮,则图片 vb自 p左向右移动,同时滚动条的滑块随之移动,每 0 5秒移动一次。当图片完全移出窗体的右边界时,立即再从窗体的左边界开始重新移动,若单击 “停止 ”按钮,则图片停止移动 ,如图 3 145所示。在窗体文件中已经给出了全部控件,但程序不完整。 要求:请去掉程序中的注释符,把程序中的 “?”改为正确的内容,使其实现上述功能,但不能修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存盘。 程序源码:Private Sub cmd Start_Click()Tmr1 Enabled=TrueEnd SubPriVate Sub cmdSto
7、p_Click()Tmr1 Enabled=?End SubPriVate Sub Form Load()Hsbl Min=0Hsbl Max=Me WidthTmr1 Interval=?End SubPriVate Sub Tmrl Timer()Picl Left=Picl Left+200 If Picl Left?Then Picl Left=?End IfHScroll1 Value=Picl Left 三、综合应用题 3 在考生文件夹中有一个工程文件 sjt5 vbp。窗体外观如图 3 169所示。运行程序,单击 “读数据 ”按钮,文件中的数据被读入字符串变量中并显示在 Labe
8、l2标签中。单击 “排序 ”按钮时,对读入的数据从 小到大排序,并将排序结果显示在窗体的Label4控件中。要求:工程文件中已给出部分程序, “读数据 ”命令按钮的事件过程不完整,请去掉程序中的注释符,把程序中的 ?改为正确的内容。请编写 “排序 ”命令按钮的事件过程中的部分程序代码。注意:不能修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存盘。程序调试通过后,两个命令按钮的事件过程必须至少各执行一次。 国家二级 VB机试(上机操作)模拟试卷 354答案与解析 一、基本操作题 1 【正确答案】 (1)步骤 1:新建一个 “标准 EXE”工程,按要求画出控件并设置属性。 步骤 2:按
9、要求将文件保存至考生文件夹中。 (2)步骤 1:新建一个 “标准。 EXE”工程,按要求画出控件并设置属性。 步骤 2:双击 “左 ”命令按钮,打开代码编辑窗口,在按钮的 Click事件过程中输入代码。 步骤 3:从代码编辑窗口的 “对象 ”下拉列表中选择 Command2,从 “事件 ”下拉列表选择 Click,编写以下事件过程。参考代码: PriVate Sub Command1_Click() Text1 SetFocus End Sub PriVate Sub Command2_Click() Text2 SetFocus End Sub 步骤 4:按要求将文件保存至考生文件夹中。 【
10、试题解析】 (1)本题只需要在窗体上画出相应控件并设置其属性即可。 (2)本题其实就是在两个命令按钮的单击事件过程中,通过使用 SetFocus方法使对应文本框获得焦点。 二、简单应用题 2 【正确答案】 (1)步骤 1:打开考生文件夹下的工程文件 vbsj3 vbp。 步骤 2:进入代码编辑窗 口,在 Function Fun()和 End Function之间输入以下代码。参考代码: Function Fun(a() As Single) As Single Dim sum As Single Dim i As Integer For i=LBound(a) To UBound(a) su
11、m=sum+a(i) i Next Fun=sum End Function 步骤 3:按要求将文件保存至考生文件夹中。 (2)步骤 1:打开考生文件夹下的工程文件 vbslj4 vbp。 步骤 2:进入代码编辑窗口,去掉程序中的注释符 “”,将问号 “?”改为正确的内容。参考代码: Tmrl Enabled=FalSe Tmrl Interval=500 If Picl Left Me Width Then Picl Left=0 步骤 3:按要求将文件保存至考生文件夹中。 【试题解析】 (1)由本题所提供源程序可知,要求编写一个求数组中各元素与其下标相除所得的和,并在文本框中显示出来的函数
12、。设计思路:利用 For循环语句,将数组中各元素除以其下标 (表达式为: a(i) i)的值累加入一个 变量 (如sum)。循环变量的初值和终值可分别通过函数 Lbound(a)和 Ubound(a)获得。 (2)本题源程序利用计时器的 Timer事件来控制图片的移动,因此单击 “开始 ”按钮启动计时器,而单击 “停止 ”按钮就是要停止计时器。在计时器的 Timer事件过程中,通过每次使图片框的 Left属性值增量 200实现移动,并让水平滚动条滑块的位置随图片框的 Left属性值变化。当图片完全移出窗体的右边界 (即Picl LeftMe Width)时,则重新从窗体左边界开始移动,即 Pi
13、cl Left=0。由于题目要求不 能在设计阶段修改控件属性,要想在单击 “开始 ”按钮时能启动计时器,就需在窗体加载事件过程中设置计时器的 Interval属性,即Tmr1 Interval=500。 三、综合应用题 3 【正确答案】 步骤 1:打开考生文件夹中的本题工程文件 sjt5 vbla,在代码编辑窗口,去掉程序中的注释符 “”,将问号 “?”改为正确的内容。参考代码: Do While Not EOF(1) s=s & Str(a(i) 步骤 2:在代码编辑窗口指定位置编写以下代码。 参考代码: num=UBound(a) For i=1 To num -1 For j=i To
14、num If a(i)a(j)Then t=a(i) a(i)=a(j) a(j)=t End If Next Next 步骤 3:按 键运行程序,先单击 “读数据 ”按钮,再单击 “排序 ”按钮,最后单击窗体右上角的关闭按钮结束程序。 步骤 4:按要求将文件保存至考生文件夹中。 【试题解析】 设计思路:在 “读数据 ”按钮的单击事件中,首先使用 Do While当型循环结构从文件中读取全部数据,并以 Not EOF(文件号 )(非文件结尾 )作为循环条件,通过 Input #语句将打开文件中的数据逐一读出后赋值给 a(i),然后将数组连接起来显示在标签中。 在 “排序 ”按钮的单击事件过程中,源程序利用 “冒泡法 ”对记录数组中的元素从小到大进行排序。