1、国家二级 VB机试(上机操作)模拟试卷 439及答案与解析 一、基本操作题 1 (1)在名称为 Form1的窗体上添加一个名称为 Command1的命令按钮,标题为 “打开文件 ”,再添加一个名称为 CD1的通用对话框。程序运行后,如果单击命令按钮,则弹出打开文件对话框,请按下列要求设置属性和编写代码: 设置适当属性,使对话框的标题为 “打开文件 ”; 设置适当属性,使对话框的 “文件类型 ”下拉式组合框中有两项可供选择: “文本文件 ”、 “所有文件 ”(如图所示 ),默认的类型是 “所有文件 ”; 编写命令按钮的事件过程,使得单 击按钮可以弹出 “打开文件 ”对话框。 要求:程序中不得使用
2、变量,事件过程中只能写入一条语句。 注意:存盘时必须存放在考生文件夹下,工程文件名保存为 sjt1 vbp,窗体文件名保存为sjt1 frm。 (2)在名称为 Form1的窗体上添加一个名称为 Command1的命令按钮,其标题为 “移动本按钮 ”,如图所示。 要求编写适当的事件过程使得程序运行时,每单击按钮一次,按钮向左移动 100。 要求:程序中不得使用变量,事件过程中只能写入一条语句。注意:存盘时必须存放在考生文件夹下,工程文件名保存为 sjt2 vbp, 窗体文件名保存为 sjt2 frm。 二、简单应用题 2 (1)在考生文件夹下有一个工程文件 sjt3 vbp。窗体上有一个名称为
3、List1的列表框,且已有若干个项目,如图 (a)所示。 “部分反序 ”命令按钮的名称为 Command1。程序运行时,单击 “部分反序 ”按钮,列表框中除最前面的一个项目不动外,其他项目的顺序反向显示,如图 (b)所示。文件中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的 ?改为正确的内容。 注意:不能修改程序中的其他部分和各控件的属性。最后把修改后的文件按原文件名 存盘。(2)在考生文件夹下有一个工程文件 sjt4 vbp。其功能是: 1)单击 “产生数据 ”按钮,产生 10个随机整数,并显示在 Picturel图片框的第 1行; 2)在 Text1文本框中输入要
4、清 0的第 1个数的位置,在 Text2文本框中输入要清 0的个数,然后单击 “清 0”按钮,则把清 0后的数据显示在图片框的下一行。如图所示。 其他约束: a)若输入的第 1个数位置大于 10,则认为从第 10个数开始; b)若不输入第 1个数位置,则认为从第 1个数开始; c)若不输入清 0个数,则认为一直清 0到最后一个数; d)若输入的清 0个数超出了最后 1个数,则清 0到最后一个数为止。 在窗体文件中已经给出了全部控件,但程序不完整,要求去掉程序中的注释符,把程序中的 ?改为正确的内容。注意:不能修改程序中的其他部分和控件的属性。最后把修改后的文件按原文件名存盘。三、综合应用题 3
5、 在考生文件夹下有一个工程文件 sjt5 vbp,在其窗体中有一个实心圆。程序运行时,当用鼠标左键单击窗体任何空白位置时,实心圆则向单击位置直线移动;若用鼠标右键单击窗体,则实心圆停止移动。窗体文件中已经给出了全部控件。但程序不完整。 要求:请去掉程序 中的注释符,把程序中的 ?改为正确的内容,使其能正确运行,不能修改程序的其他部分和控件属性。最后将修改后的文件按原文件名存盘。 国家二级 VB机试(上机操作)模拟试卷 439答案与解析 一、基本操作题 1 【正确答案】 (1)步骤 1:新建一个窗体,按照要求建立控件并设置其属性,如图3 21所示。程序中用到的控件及属性见表 3 13。步骤 2:
6、打开代码编辑窗口,在指定位置编写如下代码。 参考答案 PriVate sub Command1_Click() CDI ShowOpen显示打开文件对话框 End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 (2)步骤 1:新建一个窗体,按照要求建立控件并设置相应属性如表 3 14所示。 步骤 2:打开代码编辑窗口,在指定位置编写如下代码。 参考答案 PriVate sub Command1_Click() Command1 Left=Command1 Left一 100 End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 【试题解析】 (1)通用对话框是一
7、种 ActiveX控件,在一般情况下,启动 Visual Basic后,在工具箱中没有 通用对话框控件。为了把通用对话框控件加到工具箱中,其操作步骤如下:执行 “工程 ”菜单中的 “部件 ”命令,打开 “部件 ”对话框,在对话框中,选择 “控件 ”选项卡,然后在控件列表框中,选择 “MicrosoftCommon Dialog Control 6 0”,再单击 “确定 ”按钮,通用对话框立即被加到工具箱中。通用对话框的属性可以在属性窗口中直接设置。 当通用对话框显示为 “打开 ”或 “另存为 ”类型时,其 FileName属性用于返回或设置所选的文件的路径和文件名。 Filter(过滤器 )属
8、性用于指定在对话框的文件列表中显示文件的类型。语法为 “对象名 Filter=描述 |文件扩展名 ”。 打开顺序文件的基本格式为 “Open FileNameFor Mode As #FileNumber”。FileName表示要打开的文件的路径; Mode为打开模式, OutPut用于输出、Append用于追加写入、 Input用于读取; FileNumber为打开文件时指定的句柄。 (2)在 Visual Basic中,通过代码使命令按钮向左移动 100,需要用到按钮的 Left属性,使其值在每单击一次按钮时减去 100。 二、简单 应用题 2 【正确答案】 (1)步骤 l:打开本题项目工
9、程。 步骤 2:打开代码编辑窗口,去掉程序中的注释符 “”,将问号改为正确的内容。 参考答案 Private Sub Command1_Click() Dim k, s$ For k=1 To f List1 ListCount1) 2 s$=List1 List(k) List1 List(k)=List1 List(List1 List Count-k) List1 Listf List1 ListCountk)=s Next End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 (2)步骤 1:打开本题项目工程。 步骤 2:打开代码编辑窗口,去掉程序中的注释符 “”,将问
10、号改为正确的内容。 参考答案 Option Base 1 Dim a(10)As Integer Private Sub Command1_Click() Randomize For k=1 To 10 a(k)=Int(Rnd*99)+1 Picture1 Print a(k); Next k Picturel Print End Sub Private Sub Command2_Click() Dim start As Integer, n As Integer start=Val(Text1 Text) If start=0 Then start=1 End If If start10
11、Then start=10 End If If Text2 Text=“Then n=10一 start+1 Else n=Val(Text2 Text) End If If start+n11 Then n=10一 start+1 End If For k=start To start +n-1 a(k)=0 Next k For k=1 To 10 Picturel Print a(k); Next k End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 【试题解析】 (1)本题主要考察列表框控件属性的使用方法,根据题意可知,程序从列表框的第二项开始,将首尾项进行互换,所
12、以循环变量 k的初始值应该设置为 1,循环体中的三条语句是将列表框的首尾对应项进行互换。 (2)单击 Command1命令按钮时,随机产生 10个整数放人数组 a中,使用图片框控件的 Print方法输出数组中的原始数据,单击 Command2命令按钮时,使用If语句判断输入起始位 置的值和清 0的个数,变量 start用来来保存起始位置,变量 n用来保存清 0的个数,再使用 For循环根据起始位置清 0n个数组元素值,并将结果输出。 三、综合应用题 3 【正确答案】 步骤 1:打开本题工程文件。 步骤 2:打开代码编辑窗口,去掉程序中的注释符,将问号改为正确的内容。 参考答案 Dim step
13、y As Integer 纵向移动增量 Dim Stepx As Integer 横向移动增量 Const LEFT BUTTON=1 Private Sub FormMouseDown(Button As Integer, Shift As Integer, x As Single,y As Single) Dim x0 As Integer r y0 As Integer, a As Single, radius As Integer radius=Shape1 Width 2 圆的半径 If Button=LEFT BUTTON Then 单击鼠标左键移动 x0=Shape1 Left+
14、radius圆心的 x坐标 y0=Shape1 Top+radius圆心的 y坐标 If x=x0 Then垂直移动 Stepy=Sgn(yy0)*50 Stepx=0 Else倾斜移动 a=(yy 0) (xx0) 斜率 stepx=Sgn(xx0)*50 stepy=a*stepx 通过 stepx确定 stepy的值 If Abs(Stepy) Abs (Stepx)Then stepy=Sgn(yy0)*50 Stepx=stepy a EndIf EndIf Timer1 Enabled=True单击鼠标左键则触发 Timer事件 Else Timer1 Enabled=False单
15、击鼠标右键则停止 Timer事件 End If End Sub Private Sub Timerl_Timer() Shape1 Move Shape1 Left+stepx, Shape1 Top+stepy移动 shape1 End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 【试题解析】 通过鼠标左键单击位置的坐标及圆心的坐标确定一条直线,并沿着这条直线移动,通过计算这条直线的斜率,得知水平位移和竖直位移,再通过形状控件的 Move方法、 Left和 Top属性实现形状控件位置的移动。 sgn(x)函数返回 x的正负号,如果 x为正数,返回 1;如果为负数,返回一 1;如果为 0,则返回 0。