1、国家二级 VB机试(上机操作)模拟试卷 354及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.(1)在名称为 Form1的窗体上画一个名称为 Combol的组合框,其宽度为 1200,其类型如图 3188 所示(即简单组合框)。要求如下: 请按图中所示,通过属性窗口输入“北京”、“上海”、“广州”、“深圳”。 设置适当的属性,使得运行时,窗体的最大化按钮和最小化按钮消失。 注意:存盘时必须存放在考生文件夹下,工程文件名为 sjtlvbp,窗体文件名为 sjtlfrm。 (2)在名称为 Form1的窗体上画两个文本框,名称分别为 Text1、Te
2、xt2,再画两个命令按钮,名称分别为 Command1、Command2,标题分别为“左”、“右”,如图 3189。 (分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.(1)在考生文件夹下有一个工程文件 vbsj3vbp,相应的窗体文件为 vbsj3frm,在窗体上有一个标题为“计算”的命令按钮和一个文本框。程序运行后,单击命令按钮,即可计算出数组 arr中每个元素与其下标相除所得的和,并在文本框中显示出来,程序的运行情况如图 3144 所示。在窗体的代码窗口中,已给出了部分程序,其中计算数组 arr中每个元素与其下标相除所得的和的操作在通用过程 Fun中实现,请编写该过程的
3、代码。 要求:请勿改动程序中的其他部分,只在 Function Fun()和 End Function之间填入你编写的若干语句并运行程序。在结束程序运行之前,必须至少正确运行一次程序,将结果显示在文本框中 9否则无成绩。最后把修改后的文件按原文件名存盘。 说明:数组 arr中共有 40个元素,“数组arr中每个元素与其下标相除所得的和”,是指:arr(1)1+arr(2)2+arr(3)3+arr(40)40 程序源码:End SubFunction Fun(a() As Single) AsSingle 由考生编写=End Funct ionPrivate Sub cmdCal Click(
4、)Dim arr,arr2(40)As Singlearr=Array(125,654,56,73,4 62 3,_5825,8349,96,273,3678,_2926 ,894,347,454,569,_674,78,98,875,768,346,_558,647,437,99,4,847,_662,2 39,555,441,332,_435,412,2 83,786,983,_61,736,493,483)For i=1 To UBound(arr)arr2(i)=arr(i)Next i r=Fun(arr2()txtResultText=Str(r)SaveData End Sub
5、Sub SaveData()Open“out3txt“For Output As #1 rint #1,txtReSUitText Close 1 End Sub (2)在考生文件夹下有一个工程文件 vbsj4vbp。程序运行后,如果单击“开始”按钮,则图片 vb自 p左向右移动,同时滚动条的滑块随之移动,每05 秒移动一次。当图片完全移出窗体的右边界时,立即再从窗体的左边界开始重新移动,若单击“停止”按钮,则图片停止移动,如图 3145 所示。在窗体文件中已经给出了全部控件,但程序不完整。(分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.在考生文件夹中有一个工程文件 sjt
6、5vbp。窗体外观如图 3169 所示。运行程序,单击“读数据”按钮,文件中的数据被读入字符串变量中并显示在 Label2标签中。单击“排序”按钮时,对读入的数据从小到大排序,并将排序结果显示在窗体的 Label4控件中。要求:工程文件中已给出部分程序,“读数据”命令按钮的事件过程不完整,请去掉程序中的注释符,把程序中的?改为正确的内容。请编写“排序”命令按钮的事件过程中的部分程序代码。 (分数:2.00)_国家二级 VB机试(上机操作)模拟试卷 354答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.(1)在名称为 Form1的窗体上画一个名称为
7、 Combol的组合框,其宽度为 1200,其类型如图 3188 所示(即简单组合框)。要求如下: 请按图中所示,通过属性窗口输入“北京”、“上海”、“广州”、“深圳”。 设置适当的属性,使得运行时,窗体的最大化按钮和最小化按钮消失。 注意:存盘时必须存放在考生文件夹下,工程文件名为 sjtlvbp,窗体文件名为 sjtlfrm。 (2)在名称为 Form1的窗体上画两个文本框,名称分别为 Text1、Text2,再画两个命令按钮,名称分别为 Command1、Command2,标题分别为“左”、“右”,如图 3189。 (分数:2.00)_正确答案:(正确答案:(1)步骤 1:新建一个“标准
8、 EXE”工程,按要求画出控件并设置属性。 步骤 2:按要求将文件保存至考生文件夹中。 (2)步骤 1:新建一个“标准。EXE”工程,按要求画出控件并设置属性。 步骤 2:双击“左”命令按钮,打开代码编辑窗口,在按钮的 Click事件过程中输入代码。 步骤3:从代码编辑窗口的“对象”下拉列表中选择 Command2,从“事件”下拉列表选择 Click,编写以下事件过程。参考代码: PriVate Sub Command1_Click() Text1SetFocus End Sub PriVate Sub Command2_Click() Text2SetFocus End Sub 步骤 4:按
9、要求将文件保存至考生文件夹中。)解析:解析:(1)本题只需要在窗体上画出相应控件并设置其属性即可。 (2)本题其实就是在两个命令按钮的单击事件过程中,通过使用 SetFocus方法使对应文本框获得焦点。二、简单应用题(总题数:1,分数:2.00)2.(1)在考生文件夹下有一个工程文件 vbsj3vbp,相应的窗体文件为 vbsj3frm,在窗体上有一个标题为“计算”的命令按钮和一个文本框。程序运行后,单击命令按钮,即可计算出数组 arr中每个元素与其下标相除所得的和,并在文本框中显示出来,程序的运行情况如图 3144 所示。在窗体的代码窗口中,已给出了部分程序,其中计算数组 arr中每个元素与
10、其下标相除所得的和的操作在通用过程 Fun中实现,请编写该过程的代码。 要求:请勿改动程序中的其他部分,只在 Function Fun()和 End Function之间填入你编写的若干语句并运行程序。在结束程序运行之前,必须至少正确运行一次程序,将结果显示在文本框中 9否则无成绩。最后把修改后的文件按原文件名存盘。 说明:数组 arr中共有 40个元素,“数组arr中每个元素与其下标相除所得的和”,是指:arr(1)1+arr(2)2+arr(3)3+arr(40)40 程序源码:End SubFunction Fun(a() As Single) AsSingle 由考生编写=End Fu
11、nct ionPrivate Sub cmdCal Click()Dim arr,arr2(40)As Singlearr=Array(125,654,56,73,4 62 3,_5825,8349,96,273,3678,_2926 ,894,347,454,569,_674,78,98,875,768,346,_558,647,437,99,4,847,_662,2 39,555,441,332,_435,412,2 83,786,983,_61,736,493,483)For i=1 To UBound(arr)arr2(i)=arr(i)Next i r=Fun(arr2()txtRe
12、sultText=Str(r)SaveData End Sub Sub SaveData()Open“out3txt“For Output As #1 rint #1,txtReSUitText Close 1 End Sub (2)在考生文件夹下有一个工程文件 vbsj4vbp。程序运行后,如果单击“开始”按钮,则图片 vb自 p左向右移动,同时滚动条的滑块随之移动,每05 秒移动一次。当图片完全移出窗体的右边界时,立即再从窗体的左边界开始重新移动,若单击“停止”按钮,则图片停止移动,如图 3145 所示。在窗体文件中已经给出了全部控件,但程序不完整。(分数:2.00)_正确答案:(正确答案
13、:(1)步骤 1:打开考生文件夹下的工程文件 vbsj3vbp。 步骤 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) sum=sum+a(i)i Next Fun=sum End Function 步骤 3:按要求将文件保存至考生文件夹中。 (2)步骤1:打开考生文件夹下的工程文件 vbslj4vbp。 步骤 2:进入代码编辑窗
14、口,去掉程序中的注释符“”,将问号“?”改为正确的内容。参考代码: TmrlEnabled=FalSe TmrlInterval=500 If PiclLeft MeWidth Then PiclLeft=0 步骤 3:按要求将文件保存至考生文件夹中。)解析:解析:(1)由本题所提供源程序可知,要求编写一个求数组中各元素与其下标相除所得的和,并在文本框中显示出来的函数。设计思路:利用 For循环语句,将数组中各元素除以其下标(表达式为:a(i)i)的值累加入一个变量(如 sum)。循环变量的初值和终值可分别通过函数 Lbound(a)和 Ubound(a)获得。(2)本题源程序利用计时器的 T
15、imer事件来控制图片的移动,因此单击“开始”按钮启动计时器,而单击“停止”按钮就是要停止计时器。在计时器的 Timer事件过程中,通过每次使图片框的 Left属性值增量200实现移动,并让水平滚动条滑块的位置随图片框的 Left属性值变化。当图片完全移出窗体的右边界(即 PiclLeftMeWidth)时,则重新从窗体左边界开始移动,即 PiclLeft=0。由于题目要求不能在设计阶段修改控件属性,要想在单击“开始”按钮时能启动计时器,就需在窗体加载事件过程中设置计时器的 Interval属性,即 Tmr1Interval=500。三、综合应用题(总题数:1,分数:2.00)3.在考生文件夹
16、中有一个工程文件 sjt5vbp。窗体外观如图 3169 所示。运行程序,单击“读数据”按钮,文件中的数据被读入字符串变量中并显示在 Label2标签中。单击“排序”按钮时,对读入的数据从小到大排序,并将排序结果显示在窗体的 Label4控件中。要求:工程文件中已给出部分程序,“读数据”命令按钮的事件过程不完整,请去掉程序中的注释符,把程序中的?改为正确的内容。请编写“排序”命令按钮的事件过程中的部分程序代码。 (分数:2.00)_正确答案:(正确答案:步骤 1:打开考生文件夹中的本题工程文件 sjt5vbla,在代码编辑窗口,去掉程序中的注释符“”,将问号“?”改为正确的内容。参考代码: D
17、o While Not EOF(1) s=s & Str(a(i)步骤 2:在代码编辑窗口指定位置编写以下代码。 参考代码: num=UBound(a) For i=1 To num -1 For j=i To num If a(i)a(j)Then t=a(i) a(i)=a(j) a(j)=t End If Next Next 步骤 3:按F5键运行程序,先单击“读数据”按钮,再单击“排序”按钮,最后单击窗体右上角的关闭按钮结束程序。 步骤4:按要求将文件保存至考生文件夹中。)解析:解析:设计思路:在“读数据”按钮的单击事件中,首先使用 Do While当型循环结构从文件中读取全部数据,并以 Not EOF(文件号)(非文件结尾)作为循环条件,通过 Input #语句将打开文件中的数据逐一读出后赋值给 a(i),然后将数组连接起来显示在标签中。 在“排序”按钮的单击事件过程中,源程序利用“冒泡法”对记录数组中的元素从小到大进行排序。