1、国家二级 VB机试(上机操作)模拟试卷 280及答案与解析 一、基本操作题 1 请根据以下各小题的要求设计 Visual Basic应用程序 (包括界面和代码 )。 (1)在名称为 Form1,标题为 “组合框 ”的窗体上画 1个名称为 Combo1的组合框,利用属性窗口设置适当属性使其在程序刚开始运行时的界面如图 337所示。注意:存盘时必须存放在考生文件夹下,工程文件名为 sjt1 vbp,窗体文件名为 sjt1 frm。 (2)在名称为 Form1的窗体上画一个名称为 Image1的图像框,并通过属性窗口为其装入考生文件夹中的图 标文件 CARS ico再画一个名称为 Timer1的计时
2、器,一个名称为 Command1、标题为 “开始 ”的命令按钮,如图 337图 338所示。要求:通过属性窗口设置适当的属性,再编写适当的事件过程,使得程序运行时,单击 “开始 ”按钮,图片可以每 0 2秒向右移动 50。注意:程序中不得使用变量,每个事件过程中只能写一条语句。存盘时必须存放在考生文件夹下,工程文件名为sjt2 vbp,窗体文件名为 sjt2 frm。二、简单应用题 2 (1)考生文件夹中有工程文件 sjt3 vbp。程序运行时,单击窗体,则开始每 隔 5秒钟在文本框中显示一次当前时间,文本框中文字的颜色每隔 8秒在红色 (颜色值为 &HFF)与黑色 (颜色值为 0)之间切换。
3、在给出的窗体文件中已经有了全部控件,但程序不完整。要求:去掉程序中的注释符,把程序中的 “?”改为正确的内容。注意:考生不得修改窗体文件中已经存在的程序。最后,程序按原文件名存盘。 (2)在考生目录下有一个工程文件 sjt4 vbp。程序的功能是,单击 “产生随机数 ”按钮可以产生 10个随机数放到数组中并显示在图片框中,在文本框中输入一个小于 10的正整数 m,单击 “移动数据 ”按钮,可以把数组中的前 m个数 据移动到后面去,并显示在图片框中。如图 339所示。在给出的窗体文件中已经有了全部控件,但程序不完整。要求:去掉程序中的注释符,把程序中的 “?”改为正确的内容。最后把修改后的文件按
4、原文件名存盘。 三、综合应用题 3 考生文件夹下有工程文件 sit5 vbp和数据文件 in5 txt。 in5 txt中有多条记录,每条记录占一行,含 4个数据项,数据项的含义依次是:姓名、数学成绩、语文成绩、英语成绩。 窗体上按钮 “读取数据 ”的功能是把 in5 txt中的所有记录读到数组 a中 (每个数组元素中有一条记录 );按钮 “排 序 ”的功能是按总分从大到小排序,结果仍放在数组 a中;按钮 “保存 ”的功能是存盘,其代码已经给出,不能修改。 请将事件过程中的注释符去掉,把 “?”改为正确的内容,并编写 “排序 ”按钮的事件过程。 注意:考生不得修改窗体文件中已经存在的控件和程序
5、,必须运行程序,并依次按下 “读入数据 ”、 “排序 ”、 “保存 ”按钮,否则无成绩,最后将程序按原文件名存盘。 国家二级 VB机试(上机操作)模拟试卷 280答案与解析 一、基本操作题 1 【正确答案】 第 1小题步骤 1:新建一个 “标准 EXE”工程,在窗体 Form1中加入一个组合框 。按表 425设置其相关属性。步骤 2:按要求将文件保存至考生文件夹中。第 2小题步骤 1:新建一个 “标准 EXE”工程,在窗体 Form1中加入一个图像框、一个定时器和一个命令按钮。按表 426设置其相关属性。步骤 2:在打开的代码编辑窗口中,编写命令按钮的 Click事件代码和定时器的 Timer
6、事件代码。参考代码:Private Sub Command1_Click()Timer1 Enabled=TrueEnd SubPrivate Sub Timer1_Timet()Image1 Left=50+Image1 LeftEnd Sub步骤 3:按要求将文件保存至考生文件夹中。 【试题解析】 第 1小题:根据题目要求,在窗体上放置一个组合框。组合框可通过修改组合框的 Style属性值来改变其显示类型,值为 0-Dropdown Combo时,表示下拉式组合框,包括一个下拉式列表和一个文本框,可以从列表选择或在文本框中输入;值为 1-Simple Combo时,表示简单组合框,包括一个
7、文本框和一个不带下拉列表的列表,可以从列表中选择或在文本框中输入,增加其高度可显示列表的更多部分;值为 2-Dropdown List时,表 示下拉式列表,这种样式仅允许从下拉式列表中选择。根据题目要求,显然需要把组合框的 Style属性设置为 1-Simple Combo。 第 2小题:题目要是使用定时器实现图像框的移动,可以在定时器的 Timer事件处理过程中设置图像框的 Left属性增加 50,或者使用图像框的 Move方法。存命令按钮的 Click事件处理过程中,将定时器的 Enabled属性设置为 True,定时器开始运行,定时时间到达就执行 Timer事件过程。 二、简单应用题 2
8、 【正确答案】 第 1小题 步骤 1:打开考生文件夹中的本题工程文件 sjt3 vbp,在代码编辑窗口中,去掉程序中的注释符 “”,将问号 “?”改为正确的内容。 参考代码: Timer1 Enabled=True Timer1 Interval=1000 n=n+1 If Text1 ForeColor=0Then 步骤 2:按要求将文件保存至考生文件夹中。 第 2小题 步骤 1:打开考生文件夹中的本题工程文件 sjt4 vbp,在代码编辑窗口中,去掉程序中的注释符 “”,将问号 “?”改为正确的内容。 参考代码: MoveArray a(), m For k=1To m a(j)=a(j+
9、1) a(n)=x 步骤 2:按要求将文件保存至考生文件夹中。 【试题解析】 第 1小题:题目要求 5秒显示一次当前时间, 8秒改变一次颜色,但是程序中之使用了一个定时器,因此必须在这个定时器里面做两个事情:刷新时间和改变颜色。分析代码,根据 “If n Mod5=0Then”和 “If n Mod8=0Then”可知,定时器的周期为 1秒;题目要求在单击窗体时开始更新时间和改变颜色,因此在窗体的 Click事件代码里面需要使能定时器,即把定时器的 Enabled属性设置为 True;在定时器的 Timet事件代码里面,根据 n的值去显示时问和改变颜色。因此 n记录了程序运行了多少秒,即每次
10、Timer事件处理 n的值应该加 1;第四个 “?”处是判断文本框当前的颜色,如果是 0则改变成 &HFF,否则改成 0,实现颜色的切换。 第 2小题:题目要求对一列数据进行移动,分析程序可知,在 “产生随机数 ”命令按钮的事件代码里面,生成的随机数保存在数组 a当中。在 “移动数据 ”命令按钮的事件代码里面,调用过程 MoveArray对数组数据进行移动。 MoveArray过程通过一个嵌套的循环来移动数组数据,移动的方法是 每次取出第一个数据,然后把后面的数据往前移动,再把取出来的第一个数据放到最后,如此完成一个数据的移动。第一个 “?”处是补充函数调用的参数, MoveArray过程有两
11、个参数,第一个参数是数组,第二个参数是 Integer类型参数,表示把前面多少个数据移动到后面,即第二个参数为 m:第二个 “?”处是补充循环的结束条件,内层循环是从把数据往前面移动,因此外层循环是控制前面移出多少个数据,即循环的次数由入参m决定;第三个 “?”处的循环把数据从后往前移,即把后面的一个数据赋值给前面一个,完成一格移动;最后一个 “?”处是把 取出来的 a(1)放到最后一个元素位置。 三、综合应用题 3 【正确答案】 步骤 1:打开考生文件夹中的工程文件 sjt5 vbp,在代码编辑窗口中,去掉程序中的注释符 “”,将问号 “?”改为正确的内容。 参考代码: Do While N
12、ot EOF(1) num=k-1 Private Sub Command2_Click() =考试编写 = Dim k As Integer, j As Integer Dim temp As rec For i=1To num-1 k=i For j=i+1To num If sum(k) sum(j)Then k=j End If Next j temp=a(i): a(i)=a(k) a(k)=temp Next i For k=1To num print a(k) name; a(k) Math; a(k) Chinese; a(k) English Next k = 步骤 2:按
13、F5键运行程序,单击各个按钮测试验证。 步骤 3:按要求将文件保存至考生文件夹中。 【试题解析 】 题目要求从 in5 txt读出数据,然后排序并保存到输出文件。程序已经完成保存命令按钮的事件代码,需要补充排序代码和修改读取数据代码。 第一个 “?”处判断循环的结束条件,如果文件没有结束则继续读取, EOF函数检查文件是否到文件尾,参数是文件号:第二个 “?”处是计算记录的数量,由于循环变量 k的初值为 1,每次循环记录数增加 1,因此循环结束之后 k比记录数多 1。 数据排序可以使用多种排序方法,比如选择法排序,其方法是: (1)从 n个数的数序列中选出最大的数,与第 1个数交换位置;除第 1个数外,其余 n-1个数再按 (1)的方法选出次大的数,与第 2个数交换位置; (3)重复 (1)步 n-1遍,最后构成递减序列。