1、国家二级 VB机试(上机操作)模拟试卷 310及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.请根据以下各小题的要求设计 Visual Basic应用程序(包括界面和代码)。(1)在名称为 Form1的窗体上画 1个命令按钮,其名称为 C1,标题为“等级考试”;再画 1个文本框,名称为 T1,如图 3184(a)所示。请编写适当的事件过程,使程序运行后,一旦文本框中的信息有任何变化或输入任何信息,则命令按钮消失,并使命令按钮的标题在文本框中显示出来,如图 3184(b)所示。注意:存盘时,将文件保存至考生文件夹下,窗体文件名为 sjt1frm,
2、工程文件名为 sjt1vbp。 (2)在名称为 Form1、标题为“菜单演示”的窗体上画一个名称为 Label1、标题为空的标签;再建立一个菜单,各菜单项的属性设置见下表。窗体外观如图 3185(a)所示。请编写适当的程序,使得选中“输出窗体标题”菜单项时,就在标签中显示窗体标题;选中“输出当前时间”菜单项时,在标签中显示当前系统时间(如图 3185(b)所示)。要求程序中不得使用变量,每个事件过程中只能写一条语句。 注意:存盘时,将文件保存至考生文件夹下,窗体文件名为 sjt2frm,工程文件名为 sjt2vbp。 (分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.(1)在
3、考生文件夹下有一个工程文件 sjt3vbp,其功能是:1)单击“读数据”按钮,则把考生文件夹下 in3dat 文件中的 100个按升序排列的整数读入到数组 a中,同时显示在 Text1文本框中;2)单击“查找”按钮,则提示用户输入查找的数,并利用二分法在数组 a中查找该数,若查找成功,则在 Text2文本框中显示该数在数组中的位置,否则显示查找失败。提示:二分法查找的思路是,将查找值与有序数组的中间项元素进行比较,若相同则查找结束;否则判断查找值落在数组的上半部分还是下半部分,并继续在那一半的数组中重复上述查找过程。要求:请将窗体的标题设置为“二分法查找”,并将“查找”命令按钮的 Click事
4、件过程中的注释符去掉,把“?”改为正确内容,以实现上述程序功能。如图 3186所示的是运行时输入数值 68的查找结果。注意:考生不得修改窗体文件中已经存在的控件和程序。最后,程序按原文件名存盘。(2)在考生文件夹下有一个工程文件 sjt4vbp。运行程序,按下鼠标左键,并在窗体上拖动鼠标时,沿鼠标移动可在窗体上画出一系列圆,如图 3187所示。给出的程序不完整,要求去掉程序中的注释符,把程序中的“?”改为正确的内容。注意:考生不得修改窗体文件中已经存在的控件和程序,最后将程序按原文件名存盘。 (分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.在考生文件夹下有一个工程文件 sj
5、t5vbp。程序功能为:在文本框 Text1中输入一个正整数 N后,单击“计算”按钮,则计算 1 1 +2 2 +3 3 +N N ,并将计算结果显示在 Text2中。程序中的函数 f可以计算。m m 的值。 在给出的窗体文件中已经有了全部控件,但程序不完整。要求:去掉程序中的注释符,把程序中的“?”改为正确的内容,并编写相应的程序,实现程序的功能,并且必须在运行时计算 N=8时的结果。 注意:不能修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存盘。程序调试通过后,必须计算 N=8时的结果,否则无成绩。(分数:2.00)_国家二级 VB机试(上机操作)模拟试卷 310答案解析(总分
6、:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.请根据以下各小题的要求设计 Visual Basic应用程序(包括界面和代码)。(1)在名称为 Form1的窗体上画 1个命令按钮,其名称为 C1,标题为“等级考试”;再画 1个文本框,名称为 T1,如图 3184(a)所示。请编写适当的事件过程,使程序运行后,一旦文本框中的信息有任何变化或输入任何信息,则命令按钮消失,并使命令按钮的标题在文本框中显示出来,如图 3184(b)所示。注意:存盘时,将文件保存至考生文件夹下,窗体文件名为 sjt1frm,工程文件名为 sjt1vbp。 (2)在名称为 Form1、标
7、题为“菜单演示”的窗体上画一个名称为 Label1、标题为空的标签;再建立一个菜单,各菜单项的属性设置见下表。窗体外观如图 3185(a)所示。请编写适当的程序,使得选中“输出窗体标题”菜单项时,就在标签中显示窗体标题;选中“输出当前时间”菜单项时,在标签中显示当前系统时间(如图 3185(b)所示)。要求程序中不得使用变量,每个事件过程中只能写一条语句。 注意:存盘时,将文件保存至考生文件夹下,窗体文件名为 sjt2frm,工程文件名为 sjt2vbp。 (分数:2.00)_正确答案:(正确答案:第 1小题 步骤 1:新建一个“标准 EXE”工程,按要求画出控件并设置相应属性。步骤 2:打开
8、代码编辑窗口,编写文本框的 Change事件过程。 参考代码: Private Sub T1_Change() C1Visible=False T1Text=C1Caption End Sub 步骤 3:按要求将文件保存至考生文件夹中。 第 2小题 步骤 1:新建一个“标准 EXE”工程,选择工具菜单编辑器命令,打开菜单设计器,按要求设置建立菜单项。 步骤 2:打开代码编辑窗口,编写两个底层菜单命令的单击事件过程。 参考代码: Private Sub Clock_Click() Label1Caption=Time End Sub Private Sub Title_Click() Label
9、1Caption=Form1Capt,ion End Sub 步骤 3:按要求将文件保存至考生文件夹中。)解析:解析:第 1小题:本题需在:史本框的 Change事件中,改变 C1的 Visible属件以及为文本框的Text属性赋值为命令按钮 C1的 Caption属性。 第 2小题:本题除了按照要求设置控件的属性以及菜单之外,还需要编写菜单项事件,把窗体标题和当前时间显示在标签中。二、简单应用题(总题数:1,分数:2.00)2.(1)在考生文件夹下有一个工程文件 sjt3vbp,其功能是:1)单击“读数据”按钮,则把考生文件夹下 in3dat 文件中的 100个按升序排列的整数读入到数组 a
10、中,同时显示在 Text1文本框中;2)单击“查找”按钮,则提示用户输入查找的数,并利用二分法在数组 a中查找该数,若查找成功,则在 Text2文本框中显示该数在数组中的位置,否则显示查找失败。提示:二分法查找的思路是,将查找值与有序数组的中间项元素进行比较,若相同则查找结束;否则判断查找值落在数组的上半部分还是下半部分,并继续在那一半的数组中重复上述查找过程。要求:请将窗体的标题设置为“二分法查找”,并将“查找”命令按钮的 Click事件过程中的注释符去掉,把“?”改为正确内容,以实现上述程序功能。如图 3186所示的是运行时输入数值 68的查找结果。注意:考生不得修改窗体文件中已经存在的控
11、件和程序。最后,程序按原文件名存盘。(2)在考生文件夹下有一个工程文件 sjt4vbp。运行程序,按下鼠标左键,并在窗体上拖动鼠标时,沿鼠标移动可在窗体上画出一系列圆,如图 3187所示。给出的程序不完整,要求去掉程序中的注释符,把程序中的“?”改为正确的内容。注意:考生不得修改窗体文件中已经存在的控件和程序,最后将程序按原文件名存盘。 (分数:2.00)_正确答案:(正确答案:第 1小题 步骤 1:打开本题工程文件 sjt3vbp,在代码编辑窗口中,去掉程序中的注释符“”,将问号“?”改为正确的内容。 参考代码: m=(low+high)2 high=m-1 low=m+1 Loop Unt
12、il lowhigh If flag=1Then 步骤 2:按要求将文件保存至考生文件夹中。 第 2小题 步骤 1:打开本题工程文件 sjt4vbp,在代码编辑窗口中,去掉程序中的注释符“”,将问号“?”改为正确的内容。 参考代码: Dim Flag As Boolean Private Sub Form MouseMove(Button As Integer,Shift As Integer,X As Single,Y As Single) Circle(X,Y),300 Flag=False 步骤 2:按要求将文件保存至考生文件夹中。)解析:解析:第 1小题:在本题中首先假设待查找数组的最
13、小下标值为 low,最大下标值为 high,则数组正中的元素下标 m为(10w+high)2。然后进行判断,如果 a(m)的值等于待查找的值,则视为找到,令变量 flag的值为 1并退出循环;否则若 a(m)大于 x,则应该在左半部分查找,此时 low不变,high 的值为m-1;a(m)小于 x,则应该在右半部分查找,此时 high不变,low 的值为 m+1。这样一直到 lowhigh 为止退出循环,循环结束后判断旗帜变量 flag的值,若其为 1则意味着找到了待查找数据,否则为没有找到。 第 2小题:本题源程序在 Form MouseDown事件过程中,先判断当前按下的是台为鼠标左键,若
14、为左键,则将全局变量 flag的值设置为 True,因此该变量类型应该为逻辑型;在 Form MouseUp事件过程中,判断若弹起的是鼠标左键,则令 flag为 False,这样的话如果鼠标左键保持按住不放时 flag的值就一直为 True,在 Form MouseMove事件中,如果 flag为 True(意味著按住鼠标左键),则调用 Circle方法画一个圆。三、综合应用题(总题数:1,分数:2.00)3.在考生文件夹下有一个工程文件 sjt5vbp。程序功能为:在文本框 Text1中输入一个正整数 N后,单击“计算”按钮,则计算 1 1 +2 2 +3 3 +N N ,并将计算结果显示在
15、 Text2中。程序中的函数 f可以计算。m m 的值。 在给出的窗体文件中已经有了全部控件,但程序不完整。要求:去掉程序中的注释符,把程序中的“?”改为正确的内容,并编写相应的程序,实现程序的功能,并且必须在运行时计算 N=8时的结果。 注意:不能修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存盘。程序调试通过后,必须计算 N=8时的结果,否则无成绩。(分数:2.00)_正确答案:(正确答案:步骤 1:打开考生文件夹下的工程文件 sjt5vbp,在码编辑窗口的指定位置输入以下代码。 参考代码: Private Sub Command1_Click() =考生编写程序开始= Dim
16、 i,j As Integer,k As Long i=Text1Text k=0 For j=1To i k=k+f(j) Next Text2Text=k =考生编写程序结束= Open AppPath&“out5dat“For Output As#1 Print#1,Text1,Text2 Close#1 End Sub 步骤 2:在代码编辑窗口中,去掉程序中的注释符“”,将问号“?”改为正确的内容。 参考代码:s=1 s=s*m f=s 步骤 3:按F5键运行程序,在文本框中输入 8,单击“计算”按钮。 步骤 4:按要求将文件保存至考生文件夹中。)解析:解析:函数 f利用一个 For循环来计算 m的 m次幂,需要先设置一个累乘积变量初值为 1,然后循环 m次,在循环中每次在累乘积上乘以 m。循环结束时将累乘积作为函数返回值。 在“计算”按钮的单击事件中,要求一个数列的累加和,需要先设置累加和变量初值为 0,然后使用 For循环循环 n次,在每次循环中为累加和变量累加 f(j),循环结束后累加和变量的值即为所求。