1、国家二级( VB)机试模拟试卷 65及答案与解析 一、选择题 1 下面叙述中错误的是 ( A)由于窗体不能获得焦点,所以窗体没有键盘事件 ( B)框架控件没有键盘事件 ( C)标签控件没有键盘事件 ( D)文本框有键盘事件,但当 Enabled属性被设置为 False时,其键盘事件无法被激活 2 设窗体上有一个 Text1文本框和一个 HScroll1水平滚动条,并有下面的事件过程: Private Sub HScroll1_Change() Text1 = HScroll1 End Sub 在程序运行时,当把滚动框移动到最左边时,文本框中显示的是 100;当把滚动框移动到最右边时,文本框中显
2、示的是 1。根据这些信息,下面的判断中错误的是 ( A)滚动条的 Max和 Min属性的值分别是 1 和 100 ( B)滚动条的 Max和 Min属性的值分别是 100 和 1 ( C)文本框中显示的是滚动条 Value属性的值 ( D)如果把滚动框移动到中间位置,文本框中将显示 50 3 设窗体上有 1个名称为 List1的列表框,程序运行时,如果选中了第 3个列表项(最上面的列表项为第 0个列表项),则下面不成立 的是 ( A) List1.Selected(List1.ListIndex)的值为 True ( B) List1.Selected(3)的值为 True ( C) List
3、1.List(3)的值为 True ( D) List1.ListIndex 的值为 3 4 利用通用对话框控件打开字体对话框的操作是 ( A)把通用对话框控件的 Action属性设置为 4 ( B)把通用对话框控件的 Action属性设置为 5 ( C)调用通用对话框控件的 OpenFont方法 ( D)调用通用对话框控件的 ShowText方法 5 为 了显示弹出式菜单,要使用 ( A)窗体的 PopupMenu方法 ( B)窗体的 OpenMenu方法 ( C)菜单的 PopupMenu方法 ( D)菜单的 OpenMenu方法 6 为了实现对象的自动拖放,应该设置该对象的一个属性。下面
4、设置中正确的是 ( A) DragMode=1 ( B) DragMode=0 ( C) DragIcon=1 ( D) DragIcon=0 7 设工程中有 2个窗体: Form1和 Form2,每个窗体上都有一个名称为 Text1的文本框。若希望把 Form1上文本框中的内容复制到 Form2上的文本框中,应进行的操作是 ( A)执行 Form1中的语句: Form1.Text1 = Form2.Text1 ( B)执行 Form1中的语句: Text1 = Form1.Text ( C)执行 Form2中的语句: Form1.Text1 = Text1 ( D)执行 Form2中的语句:
5、 Text1 = Form1.Text1 8 设窗体上有一个 Picture1图片框,要求在图片框中的指定位置(坐标为( 500,300)输出 “OK“,下面可以实现这一功能的事件过程是 ( A) Private Sub Form_Click() Picture1.CurrentX = 500 Picture1.CurrentY = 300 Picture1.Print “OK“ End Sub ( B) Private Sub Form_Click() Picture1.Left = 500 Picture1.Top = 300 Picture1.Print “OK“ End Sub ( C
6、) Private Sub Form_Click() Picture1.CurrentX = 500 Picture1.CurrentY = 300 Print “OK“ End Sub ( D) Private Sub Form_Click() Picture1.Left = 500 Picture1.Top = 300 Print “OK“ End Sub 9 下面有 3个程序段可以正确判断,另一个不能正确判断的是 ( A) If a + b c And a + c b And b + c a Then Print “可以构成一个三角形 “ Else Print “不能构成三角形 “ En
7、d If ( B) If a + b c Or a + c b Or b + c a Then Print “可以构成一个三角形 “ Else Print “不能构成三角形 “ End If ( C) If a + b 10 Print i = i + 2 Loop End Sub 程序运行时输出字符 “*“的个数是 ( A) 50 ( B) 20 ( C) 16 ( D) 15 11 下面程序的功能是输出 100以内所有素数: Private Sub Command1_Click() For n = 2 To 100 isprime = True k = 2 Do While k m The
8、n n = m m = a(k) ElseIf a(k) n And a(k) ch Then strbuf = strbuf Next k End Sub 程序运行时的输出是 ( A) 27 24 41 64 98 58 ( B) 64 24 98 27 58 41 ( C) 24 27 41 58 64 98 ( D) 98 64 58 41 27 24 15 设有 VB函数: Private Function f(x As Single) As Single 可以返回 f(x)的值(函数体没有给出)。下面程序的功能是从键盘输入 2个实数 x1、 x2,判断在 x1、 x2之间是否存在零点
9、。 Private Sub Command1_Click() Dim x1 As Single, x2 As Single x1 = InputBox(“请输入一个实数 x1“) x2 = InputBox(“请再输入一个实数 x2“) If ( _ ) Then Print “在 “; x1; “与 “; x2; “之间存在零点 “ Else Print “不能确定在 “; x1; “与 “; x2; “之间是否存在零点 “ End If End Sub Private Function f(x As Single) As Single End Function 为使上面程序可以实现该功能,
10、程序代码中横线处应填写的代码是 ( A) f(x1) 0 Or f(x2) 0 16 设窗体上有 3个图像框: Image1、 Image2、 Image3,并有下面的程序代码: Private Sub Form_Load() Image1.Picture = LoadPicture(“LEAF.bmp“) Image2.Picture = LoadPicture(“OPEN.bmp“) Image3.Visible = False End Sub Private Sub Image1_Click() Image2.Picture = Image1.Picture End Sub Privat
11、e Sub Image2_Click() Image3.Picture = Image2.Picture Image2.Picture = Image1.Picture Image1.Picture = Image3.Picture End Sub 在程序运行期间单击 Image2,则在窗体上看到的结果是 ( A) 在 Image3中显示 Image2中的图片 ( B) Image1、 Image2 中原有图片被交换了 ( C) Image1、 Image2 中都是原来 Imege1中的图片 ( D) Image1、 Image2 中都是原来 Imege2中的图片 17 设窗体上有一个名称为
12、List1的列表框和一个名称为 Check1的复选框数组(下标从 0开始)。程序运行时,单击某个复选框,如果列表框中没有该复选框的标题,则把该复选框的标题添加到列表框中,否则从列表框中把该复选框标题删除。 Private Sub Check1_Click(Index As Integer) For k = 0 To List1.ListCount - 1 If Check1(Index).Caption = List1.List(k) Then Exit For End If Next k If k = r Then flag = 0 End If End If End Sub 运行程序后产生
13、的结果是 ( A)圆逐渐缩小,再逐渐增大,然后再逐渐缩小,依此往复 ( B)圆一直在缩小 ( C)圆每隔 0.5秒向右移动一次 ( D)圆每隔 1秒向下移动一次 19 下列叙述中正确的是 ( A)程序执行的效率与数据的存储结构密切相关 ( B)程序执行的效率只取决于程序的控制结构 ( C)程序执行的效率只取决于所处理的数据量 ( D)以上说法均错误 20 下列与队列结构有关联的是 ( A)函数的递归调用 ( B)数组元素的引用 ( C)多重循环的执行 ( D)先到先服务的作业调度 21 一个栈的初始状态为空。现将元素 1,2,3,A,B,C依次入栈,然后再依次出栈,则元素出栈的顺序是 ( A)
14、 1,2,3,A,B,C ( B) C,B,A,1,2,3 ( C) C,B,A,3,2,1 ( D) 1,2,3,C,B,A 22 下面属于白盒测试方法的是 ( A)等价类划分法 ( B)逻辑覆盖 ( C)边界值分析法 ( D)错误推测法 23 下面对对象概念描述正确的是 ( A)对象间的通信靠消息传递 ( B)对象是名字和方法的封装体 ( C)任何对象必须有继承性 ( D)对象的多态性是指一个对象 有多个操作 24 软件设计中模块划分应遵循的准则是 ( A)低内聚低耦合 ( B)高耦合高内聚 ( C)高内聚低耦合 ( D)以上说法均错误 25 下面描述中不属于数据库系统特点的是 ( A)数
15、据共享 ( B)数据完整性 ( C)数据冗余度高 ( D)数据独立性高 26 数据库设计过程不包括 ( A)概念设计 ( B)逻辑设计 ( C)物理设计 ( D)算法设计 27 下面为单精度实型(即单精度浮点型)变量的是 ( A) x$ ( B) x& ( C) x! ( D) x# 28 语句: Print Int(Rnd * 5 + 20) 的输出不可能是 ( A) 20 ( B) 22 ( C) 24 ( D) 25 29 设变量 x的值是 845,则下面语句的输出是 Print x 100 + (x Mod 100) 10 + x Mod 10 ( A) 17 ( B) 548 ( C
16、) 845 ( D) 485 30 有下面的程序段: x = InputBox(“字符串 “, “输入 “, “请输入 “) Print x 如果执行上面程序段时没有从键盘输入任何内容就直接按了回车键, 则输出内容是 ( A)字符串 ( B)输入 ( C)请输入 ( D)空白(即未输出任何内容) 31 在下面语句或函数中,不能描述选择结构的是 ( A) If语句 ( B) IIf函数 ( C) Select Case语句 ( D) While语句 32 如果要在语句: a = Array(1, 2, 3, 4, 5) 的前面声明变量 a,则正确的声明是 ( A) Dim a(4) As Int
17、eger ( B) Dim a(5) As Variant ( C) Dim a(1 To 5) As Integer ( D) Dim a As Variant 33 在 VB中,函数过程与子程序过程的区别之一是 ( A)函数过程必须有参数,而子程序过程可以没有 ( B)函数过程的参数传递只采用值传递,而子程序过程只采用地址传递 ( C)在程序中,子程序过程调用的代码可以写在表达式中,而函数过程不能 ( D)函数过程有返回值,而子程序过程没有 34 设有以下定义语句: Private Type point x As Integer y As Integer End Type Dim a As
18、 point 下面语句中正确的是 ( A) a = 12 ( B) a.x = 12 ( C) point = 12 ( D) point.x = 12 35 VB应用程序不能把一个二维表格中的数据存入文件 ( A) VB数据文件不包括 VB的窗体文件 ( B) VB应用程序可以用随机方式读写数据文件 ( C) VB应用程序在读写数据文件之前,必须用 Open语句打开该文件 ( D) VB应用程序不能把一个二维表格中的数据存入文件 36 为使文本框具有初始值 “VB“,在设计阶段正确的操作是 ( A)选中该文本框,在属性窗口中把 Text属性的值改为 “VB“ ( B)选中该文本框,在属性窗口
19、中把 Caption属性的值改为 “VB“ ( C)双击该文本框,在弹出的窗口中输入 “VB“ ( D)单击该文本框,在该文本框中直接输入 “VB“ 37 下列控件中,不响应 Click事件的是 ( A)框架 ( B)标签 ( C)图像框 ( D)形状 38 下面关于命令按钮的叙述中错误的是 ( A)命令按钮上可以显示图片 ( B)命令按钮上的文字就是其 Caption属性的值 ( C)在程序运行过程中,不能改变命令按 钮的标题 ( D)运行程序时,当命令按钮获得焦点后,按下回车键也能激活它的 Click事件 39 设窗体上有一个名称为 Check1的复选框,并有下面程序代码: Private
20、 Sub Check1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Check1.Value = 1 End Sub 根据上面的事件过 程,可以得出结论 ( A)鼠标单击该复选框,复选框的标题被改为 “1“ ( B)鼠标右键单击该复选框,可以选中该复选框 ( C)鼠标左键单击该复选框,它被选中,右键单击它,取消选中 ( D)鼠标右键单击该复选框,它被选中,左键单击它,取消选中 40 设窗体上有 1个名称为 HScroll1的水平滚动条,其 Max、 Min属性分别设置为100、 1;有 2个名
21、称分别为 Option1、 Option2的单选按钮,其标题分别为 “30“、“50“;还有下面程序代码: Private Sub Option1_Click() HScroll1 = Val(Option1.Caption) End Sub Private Sub Option2_Click() HScroll1 = Val(Option2.Caption) End Sub 程序运行时,单击 Option2单选按钮,则滚动条上滚动框的位置是 ( A)在最左边 ( B)在最右边 ( C)在中间 ( D)在中间偏左的位置 二、基本操作题 41 (1)在名称为 Forml的窗体上添加一个名称为 L
22、abel1标题为 “列表框的使用 ”的标签。再添加一个名称为 List1的列表框,列表中含有 5个表项,其内容分别为 “北京 ”、 “山西 ”、 “辽宁 ”、 “浙江 ”和 “广东 ”,并且可以在列表中同时选择多个表项。程序运行后的窗体如图所示。 要求:存盘时必须存放在考生文件夹下,工程文件名保存为 sjt1 vbp,窗体文件名保存为 sjt1 frm。 (2)在名称为 Form1的窗体上添加一个名称为 Image1的图像框,其高、宽分别为 2000、3000,且不随图片大小而变化;再添加 两个命令按钮,标题分别是 “显示图片 ”和“隐藏图片 ”,名称分别为 Cmd1、 Cmd2,如图所示。需
23、编写两个命令按钮的 Click事件过程,使得当单击 “显示图片 ”按钮时,当前文件夹下的图片文件 “图片 jpg”显示在图像框中;如果单击 “隐藏图片 ”按钮,则清除图像框中的图片。 要求:程序中不得使用变量,每个事件过程中只能写一条语句。存盘时必须存放在考生文件夹下,工程文件名保存为 sjt2 vbp,窗体文件名保存为 sjt2 frm。三、简单应用题 42 (1)在考生文件夹下有一个工程文件 sjt3 vbp,请在窗体上 建立一个菜单,主菜单项为 “项目 ”(名称为 Item),它有两个名称分别为 Add和 Delete的子菜单项,标题分别为 “添加项目 ”和 “删除项目 ”,然后添加一个
24、列表框 (名称为 List1)和一个文本框(名称为 Text1),如图 1所示。编写适当的事件过程。程序运行后,如果执行 “添加项目 ”命令,则从键盘上输入要添加到列表框中的项目 (内容任意,不少于三个 );如果执行 “删除项目 ”命令,则从键盘上输入要删除的项目内容,将其从列表框中删除。程序的运行情况如图 2所示。 在考生文件夹下的工程文件 sjt3 vbp(相应的窗体文件名为 sjt3 frm),可以实现上述功能。但这个程序不完整,请把它补充完整。 要求:去掉程序中的注释符,把程序中的 ?改为适当的内容,使其正确运行,但不能修改程序中的其他部分。最后将修改后的文件按原文件名存盘。(2)在考
25、生文件夹下有一个工程文件sjt4 vbp(相应的窗体文件名为 sjt4 frm),其功能是通过调用过程 Sort将数组按升序排序。程序运行后,在 4个文本框中输入一组整数 (如图 1所示 ),然后单击命令按钮,即可使数组从小到大排序,并显示在文本框中 (如图 2所示 )。这个程序不完整,请把它补充完整,并能正确运 行。 要求:去掉程序中的注释符,把程序中的 ?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后将修改后的文件按原文件名存盘。 四、综合应用题 43 在考生文件夹下有一个工程文件 sjt5 vbp,在其窗体中有一个实心圆。程序运行时,当用鼠标左键单击窗体任何空白位置时
26、,实心圆则向单击位置直线移动;若用鼠标右键单击窗体,则实心圆停止移动。窗体文件中已经给出了全部控件,但程序不完整。 要求:请去掉程序中的注释符,把程序中的 ?改为正确的内容,使其能正确运行,不能修改程序的其他部分和控 件属性。最后将修改后的文件按原文件名存盘。 国家二级( VB)机试模拟试卷 65答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 KeyPreview 属性返回或设置一个值,以决定是否在控件的键盘事件之前激活窗体的键盘事件。键盘事件为: KeyDown、 KeyUp 和 KeyPress。当KeyPreview 的值为 True时窗体先接收键盘事件,然后是活动控件接收事
27、件;为False时(缺省值)活动控件接收键盘事件,而窗体不接收。 2 【正确答案】 B 【试题解析】 在一般情况下,垂直滚动 条的值由上往下递增,最上端代表最小值(Min),最下端代表最大值 (Max);水平滚动条的值从左到右递增,最左端代表最小值 (Min),最右端代表最大值 (Max),其取值范围为 32768 32768。 3 【正确答案】 C 4 【正确答案】 A 【试题解析】 通用对话框 (CommonDialog)提供诸如打开文件、保存文件、设置打印选项、选择颜色和字体、显示帮助等操作的一组标准对话框,该控件运行时不可见。通用对话框的 Action 属性用于设置被打开对话的类型。
28、5 【正确答案】 A 【试 题解析】 显示弹出式菜单使用 PopupMenu 方法。 6 【正确答案】 A 【试题解析】 实现对象的自动拖放应设置 DragMode=1。 7 【正确答案】 D 【试题解析】 把 Form1上文本框中的内容复制到 Form2上的文本框中,所以应该在 Form2中添加语句: Text1 = Form1.Text1。 8 【正确答案】 A 【试题解析】 VB 中,窗体和图片框具有 CurrentX、 CurrentY属性,经常用这两个属性来设置当前绘图点。 VB 中在图片框特定位置显示文本: Picture1.CurrentX =x 座标 设置当前 X方向座标 Pi
29、cture1.CurrentY =y 座标 设置当前 Y方向座标 Picture1.Print “文本内容 “ 在当前位置输出文本 三角形的构成条件是:任意 2边之和大于第 3边。设变量 a、 b、 c是 3条直线的长度,要求判断这 3条直线能否构成一个三角形。 9 【正确答案】 B 【试题解析】 三角形构成的条件必须满足任意 2边之和大于第 3边,即 a, b, c任何两个的和必须大于第三个。 A)满足。 B)中的 Or是或,条件不满足。 C)和D)可以通过判断,均 能进行正确判断。选 B)。 10 【正确答案】 C 【试题解析】 DoLoop Until 循环和 Do WhileLoop
30、循环都是满足执行条件时会一直执行循环体内的语句。直到条件不满足退出。外循环 i初值为 1,条件是小于 5,每次循环加 2,则执行 2次。内循环条件 i=1时执行 10次, i=3时执行 6次。选 C)。 11 【正确答案】 A 【试题解析】 素数是大于 1的自然数,除了 1和本身不能被任何数整除的数。程序用 Do While循环对 n 进行判断,如能被整除 isprime赋值为 False。否则赋值为True。随后的代码检测 isprime为 True时执行打印。因此 Do While判断条件中除了判断循环变量的上限还需要判断 isprime的值。根据执行条件可知,选 A)。 12 【正确答案
31、】 C 【试题解析】 n 和 m都获得数组元素 a( 0)的值。在 For循环中, k=1时, a( k) =a( 1) =43, If 条件满足, n=a( 0), m=a( 1)。 Else If判断的相同值的条件,只有在大于 n 并且不等于 m的时候才赋值给 n。因此 n 中存储的数永远比m小。而 m中的值是数组中最大的值。因此选 C)。 13 【正确答案 】 B 【试题解析】 Mid$(A$,4,2)是为了与老版本的 VB 兼容( $的作用是强制将函数的返回值设为字符型)。 &用来连接字符串。 If条件判断字符是否和输入的字符相等,相等则 n 加 1。选 B)。 14 【正确答案】 A
32、 【试题解析】 第一个 For循环对 x数组元素赋初值。被赋的值根据下标,从 b数组中获取。而 x的下标从数组 a中的元素获得。注意 Option Base 1的影响,下标从 1开始。因此 x数组中的值实际上是按照 a数组中值进行了一个重新排序。即 x( 1)是数组 b中第 4个元素的值: 27,其它值以此 类推。选 A)。 由高中数学可知,对于连续函数 f(x),若 f(x1)与 f(x2)值的符号相反,则在 x1和x2之间必存在 x0,使得 f(x0)=0(该点称为 “零点 “)。 15 【正确答案】 C 【试题解析】 判断 x1 和 x2之间是否存在零点的条件是 x1和 x2符号相反。即
33、 x1和 x2的积是负数。函数 f 可以返回 f( x)的值,因此满足上述条件的表达式是f(x1) * f(x2) 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 四、综合应用题 43 【正确答案】 【操作步骤】 步骤 1:打开本题工程文件。 步骤 2:分析并编写程序代码。 程序提供代码 Dim stepy As Integer 纵向移动增量 Dim stepx As Integer 横向移动增量 Const LEFT BUTTON = 1 Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Singl
34、e, y As Single) Dim x0 As Integer, y0 As Integer, a As Single, radius As Integer radius = Shape1.Width / 2 圆的半径 If Button = LEFT BUTTON Then x0 = Shape1.Left + radius 圆心的 x坐标 y0 = Shape1.Top + radius 圆心的 y坐标 If x = x0 Then stepy = Sgn(y - y0) * 50 stepx = ? Else a = (y - y0) / (x - x0) 斜率 stepx = Sg
35、n(x - x0) * 50 ? = a * stepx If Abs(stepy) Abs(stepx) Then stepy = Sgn(y - y0) * 50 stepx = stepy / a End If End If ? = True Else ? = False End If End Sub Private Sub Timer1_Timer() Shape1.Move Shape1.Left + stepx, Shape1.Top + ? End Sub 程序结束 参考答案 第 1个?处填入: 0 第 2个?处填入: stepy 第 3个?处填入: Timer1.Enabled 第 4个?处填入: Timer1.Enabled 第 5个?处填入: stepy 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。