1、国家二级 VB机试(选择题)模拟试卷 136及答案与解析 一、选择题 1 下列叙述中正确的是 ( A)每一个结点有两个指针域的链表一定是非线性结构 ( B)所有结点的指针域都为非空的链表一定是非线性结构 ( C)循环链表是循环队列的链式存储结构 ( D)线性结构的存储结点也可以有多个指针 2 使用白盒测试方法时,设计测试用例应根据 ( A)程序的内部逻辑 ( B)程序的复杂结构 ( C)程序的功能 ( D)使用说明书 3 在医院,每个医生只属于某一个诊疗科,医生同一天可为多位患者看病,而一名患者可 在多个科室治疗。则实体医生和患者之间的联系是 ( A)多对多 ( B)多对一 ( C)一对多 (
2、 D)一对一 4 设序列长度为 n,在最坏情况下,时间复杂度为 O(log2n)的算法是 ( A)二分法查找 ( B)顺序查找 ( C)分块查找 ( D)哈希查找 5 设数据集合为 D= 1,3,5,7,9 , D上的关系为 R,下列数据结构 B=( D, R)中为非线性结构的是 ( A) R= (5,1), (7,9), (1,7), (9,3) ( B) R= (9,7), (1,3), (7,1), (3,5) ( C) R= (1,9), (9,7), (7,5), (5,3) ( D) R= (1,3), (3,5), (5,9) 6 深度为 7的二叉树共有 127个结点,则下列说法
3、中错误的是 ( A)该二叉树有一个度为 1的结点 ( B)该二叉树是满二叉树 ( C)该二叉树是完全二叉树 ( D)该二叉树有 64个叶子结点 7 某二叉树的中序序列为 BDCA,后序序列为 DCBA,则前序序列为 ( A) DCBA ( B) BDCA ( C) ABCD ( D) BADC 8 下面能作为软件需求分析工 具的是 ( A) PAD图 ( B)程序流程图 ( C)甘特图 ( D)数据流程图 (DFD图 ) 9 下面不属于对象主要特征的是 ( A)唯一性 ( B)多态性 ( C)可复用性 ( D)封装性 10 关系 R经过运算 A=B C 4 D 3(R)的结果为 ( A) (c
4、,c,11,4) ( B) (c,c,11,4) ( C) (a,a,2,4) ( D) (a,a,2,4)和 (e,e,6,1) 11 表达式 Sin(0) + Abs(-1) + Int(Rnd(0) + Len(Str(3.14)的值是 ( A) -1 ( B) 4 ( C) 5 ( D) 6 12 以下有关表达式的说法中,正确的是 ( A)表达式 LCase(“AB12“)Left(“abc“,2) And Len(“12.3“)=5的值是 True ( B)表达式 Int(Rnd() * 11) + 10表示的值的范围是 10 21 ( C)表达式 “1234“ABCD“的值为 Fl
5、ase ( D)表达式 Chr(Asc(“B“)=UCase(“b“)的值为 False 13 下列符号常量的声明中,不合法的是 ( A) Const e As Single = 2.718, pi = 3.14 ( B) Const a As Double=Sin(1) ( C) Private Const a=“计算机等级考试 “ ( D) Const a As String=Visual Basic“ 14 以下叙述中错误的是 ( A)设计窗体时,单击窗体上任何一个控件后,就可以在属性窗口中设置窗体的属性 ( B)窗体是对象 ( C)窗体可以被移动 ( D)窗体的 Name属性在程序运行
6、过程中不能被修改 15 以下语句或子句中,符合 Visual Basic语法要求 的是 ( A) Print a=;10+20 ( B) If xy Then t=x,x=y,y=t ( C) y = Log(Exp(x) + Abs(Atn(x) + Cos(x) 2 ( D) Case Is60 And Is0, ab),下面不能正确计算 a除以 b的余数的表达式是 ( A) a - a b * b ( B) a Mod b ( C) a - Int(a / b) * b ( D) a - (a b) * b 17 下列表达式中值为 -6的是 ( A) Int(-5.678) ( B) I
7、nt(-5.678-0.5) ( C) Fix(-5.678+0.5) ( D) Fix(-5.678) 18 在窗体上画一个文本框、一个标签,其名称分别为 Text1、 Label1,然后编写如下事件过程: Private Sub Text1_Change() Label1.Caption = UCase(Mid(Trim(Text1.Text), 7, 3) End Sub 程序运行时,如果在文本框中输入字符串 “VisualBasic计算机等级考试 “,则在标签Label1中显示的内容是。 ( A) asi ( B) ASI ( C) Bas ( D) BAS 19 为了使组合框成为下拉
8、式列表框,应把其 Style属性设置为 ( A) 0 ( B) 1 ( C) 2 ( D) 3 20 窗体上有一个名称为 Label1的标签控件,其 Caption属性的初始值为 0,还有一个计时器。为了在程序运行时,标签上的数字每秒加 1,应该把语句:Label1.Caption = Label1.Caption + 1 写在一个事件过程中,这个事件过程是 ( A)标签的 Timer事件过 程 ( B)计时器的 Timer事件过程 ( C)标签的 Click事件过程 ( D)计时器的 Click事件过程 21 当直线控件的 BorderStyle属性被设置为: 2 - Dash,控件显示的是
9、 ( A)实线 ( B)虚线 ( C)点线 ( D)不可见 22 下面关于列表框控件的叙述中错误的是 ( A) Selected属性是一个字符数组 ( B) List属性是一个字符数组 ( C)在运行时,列表框中的列表项可以多选 ( D) ListCount属性不能在属性窗口中设置 23 下列有关控件数组的说法 中,正确的是 ( A)控件数组中所包含的控件必须是同一种类型的,且它们的 Name属性值相同,但每个控件的 Index属性值不同 ( B)控件数组中所包含的控件必须是同一种类型的,且它们的 Name属性值不能相同 ( C)可以将窗体上的各种类型的控件创建到一个控件数组中 ( D)程序运
10、行时,对控件数组中的不同控件操作而触发事件时,执行的是对应于各个控件的事件过程代码 24 设有数组声明: Dim s(2, 3),下面错误的程序段是 ( A) For i = 1 To 3 For j = 1 To 2 s(i, j) = 0 Next j Next I ( B) For i = 1 To 2 For j = 1 To 3 s(i, j) = 0 Next j Next I ( C) For i = 1 To 3 For j = 1 To 2 s(j, i) = 0 Next j Next I ( D) For i = 0 To 2 For j = 0 To 3 s(i, j)
11、 = 0 Next j Next I 25 假定在某个事件过程中需要计算: y = 3! + 5! 的值,下面最好的设计是 ( A)设计 1个计算 n! 的函数 f(n),调用方式为: y = f(3) + f(5) ( B)设计 1个专门计算 3!+5!的函数 f( ),调用方式为: y = f( ) ( C)设计 2个函数 f3( )和 f5( )分别计算 3!, 5!,调用方式为: y = f3( ) + f5( ) ( D)不用单独的函数计算阶乘,全部代码放在同一个事件过程中 26 下面不能正确计算 1 + ( 1 + 2 ) + ( 1 + 2 + 3 ) + + ( 1 + 2 +
12、 + 10 ) 的是 ( A) Private Sub Command1_Click() s = 0 : t = 0 For i = 1 To 10 For j = 1 To i t = t + j Next j s = s + t Next i Print s End Sub ( B) Private Sub Command1_Click() s = 0 For i = 1 To 10 t = 0 For j = 1 To i t = t + j Next j s = s + t Next i Print s End Sub ( C) Private Sub Command1_Click()
13、 s = 0 For i = 10 To 1 Step -1 t = 0 For j = 1 To i t = t + j Next j s = s + t Next i Print s End Sub ( D) Private Sub Command1_Click() s = 0 : t = 0 For i = 1 To 10 t = t + i s = s + t Next i Print s End Sub 27 如果窗体模块 A中有一个过程: Private Sub Proc( ) End Sub 则下面叙述中错误的是 ( A)在窗体模块 B中可以调用此过程 ( B)在窗体模块 B中可
14、以有与此相同名称的过程 ( C)窗体模块 A中任何其他过程都可以调用此过程 ( D)在标准模块中不能调用此过程 28 以下叙述中错误的是 ( A)程序运行过程中,可以利用代码重新设置菜单项的 Visible属性的值 ( B)在菜单标题中,由 “10+20,选项 A错误; If语句以 End If结束,选项 B错误;表达大于 60小于 100用 Case 60 To 90,选项D错误;故正确答案为选项 C。 16 【正确答案】 A 【试题解析】 运算符 “/“是除,结果可能产生小数,而运算符 “是整除,结果一定是整数,选项 A的表达式很可能是负数,不可能是 a除以 b的余数,故正确答案为选项 A
15、。 17 【正确答案】 A 【试题解析】 Int(x)返回不大于 x的最大整数, Fix( x)为 取整函数,返回 x的整数部分。选项 A表达式的值为 -6;选项 B表达式的值为 -7;选项 C表达式的值为 -5;选项 D表达式的值为 -5,故正确答案为选项 A。 18 【正确答案】 D 【试题解析】 Trim( C)函数是去掉字符串 C两端的空格; Mid( C, 7, 3)函数截取 C中从第 7个字符开始的共 3个字符; Ucase函数是将 C中的小写字母转化为大写字母。故正确答案为选项 D。 19 【正确答案】 C 【试题解析】 Style属性:决定组合框的外观样式。可以取 0、 1和
16、2这 3个值。0: Dropdown ComboBox,称为 “下拉式组合框 “。 1: Simple ComboBox,称为 “简单组合框 “。 2: Dropdown ListBox,称为 “下拉式列表框 “。故本题正确答案为C选项。 20 【正确答案】 B 【试题解析】 标签的主要事件有单击( Click)和双击( DbClick)事件,没有Timer事件。故选项 A错误;标签的 Click事件,只有当单击标签控件时才会触发该事件。而本程序在运行时,标签的数字是自动添加的,而非通过单击事件。故选项 C错误;计时器只支持 Timer事件。故选项 D错误;本题正确答案为 B。 21 【正确答
17、案】 B 【试题解析】 直线控件的 BorderStyle属性用来设置直线的线型,取值范围为0 6; 2 - Dash表示虚线。故正确答案为选项 B。 22 【正确答案】 A 【试题解析】 Selected属性表示列表框中各个项目是否被选中,是一个逻辑型数组; List属性用来列出表项内容,是一个字符数组;选项 C、 D描述均正确。故正确答案为选项 A。 23 【正确答案】 A 【试题解析】 控件数组中所包含的控件必须是同一种类型的,且它们的 Name属性值相同,但每个控件 的 Index属性值不同,选项 B错误;一个控件数组的控件类型必须是同一类型,选项 C错误;控件数组共享过程,在对不同控
18、件操作时触发的是同一事件,选项 D错误;故正确答案为选项 A。 24 【正确答案】 A 【试题解析】 本题考查二维数组的初始化,题中定义了 3行 4列的二维数组, i代表第一维下标上界为 3, j代表第二维下标上界为 4。本题中 s( 2, 3)有 3行( 0-2)、 4列( 0-3),共 12个数组元素, A选项中数组元素 s( 3, 2)超出了数组界限,故正确答案为选项 A。 25 【正确答案】 A 【试题解析 】 3!和 5!都是计算某个数 n的阶乘,所以设计 1个计算 n!的函数f( n)即可。故正确答案为选项 A。 26 【正确答案】 A 【试题解析】 选项 A,当外层循环变量 i=
19、1时,执行内层循环,内层循环变量j=1时,执行结果为 t=1,内层循环结束, s=1;当外层循环变量 i=2时,执行内层循环,内层循环变量 j=1时, t=1+1,内层循环变量 j=2时, t=1+1+2,内层循环结束, s=1+t=1+( 1+1+2),至此, A选项已经不符合要求。按照同样的方法分析B、 C、 D选项,均满足题目要求,故正确答案为选项 A。 27 【正确答案】 A 【试题解析】 过程所处的位置不同,其控制的范围也不同,在窗体中定义的过程能被本模块即窗体中的其他过程调用,不能被其他窗体中的模块调用。选项 A表述错误,故正确答案为选项 A。 28 【正确答案】 C 【试题解析】
20、 选项 C中,同一窗体的菜单项,是 “名称 “不能相同,即 “name“属性不能相同,但 “caption“标题属性可以相同。故正确答案为选项 C。 29 【正确答案】 B 【试题解析】 一个工程可由多个窗体模块、标准模块和类模块组成, A选项、 C选项错误。窗体模 块的主要操作是在标准模块中进行的, D选项错误,故正确答案为 B选项。 30 【正确答案】 A 【试题解析】 Do Loop Until 循环,当程序开始执行时,先执行循环体,再计算循环 “条件 “值,当条件为真时结束循环,否则执行循环体。 Do WhileLoop ,当程序开始执行时,先计算循环 “条件 “值,当条件为假时结束循
21、环,否则执行循环体。 Num=0, Num10为假,继续执行内层 while循环, ,当 Num=10时, Num0为假,因 Num10为真, flag = False,退出内层 while循环,退出 If语句。进入外层 Do Loop Until 循环, Until中循环条件flag = False为真,结束外层循环。故最后输出结果为 11。本题正确答案为 A。 31 【正确答案】 C 【试题解析】 题中循环条件判断 4次,循环体执行 3次,第一次循环结果 n = 1, k = 3;第二次循环结果 n = 2, k = 9;第三次循环结果 n =3, k = 21。故正确答案为选项 C。 3
22、2 【正确答案】 D 【试题解析】 Do WhileLoop 循环执行时,首先计算 “条件 “值,然后判断条件是否为真,条件为真时继续执行循环体,条件为假时跳出循环, A选项中条件为假,跳出循环体, y值不变; DoLoop While 循环执行时首先执行循环体,然后计算条件值,判断条件是否为真,条件为真时返回继续执行循环体,条件为假时跳出循环, B选项中执行循环体后 y为 1,判断条件时永远为真, DO 循环会陷入“死循环 “; Do UntilLoop 循环执行时,首先计算 “条件 “值,然后判断条件是否为真,条件为假时继续执行循环体,条 件为真时跳出循环, C选项判断条件时为真,跳出循环
23、, y值不变; DoLoop Until 循环执行时首先执行循环体,然后计算条件值,判断条件是否为真,条件为假时返回继续执行循环体,条件为真时跳出循环, D选项执行循环体后 y为 1,判断条件时为真,跳出循环,故本题正确答案为选项 D。 33 【正确答案】 B 【试题解析】 先执行内层 Do循环,结束后执行外层 Do循环。由题意可知, c=a=7,当执行内层 Do循环时, c=c-b=3,此时判断条件 c a,第一次 执行,循环条件 1-1,其中 d(3)=0, a=-1, a-1为假,结束循环,再执行if Thenelse 语句, d(k)=d(2)=-1,故 b=k=2,对应的实参为 n,
24、所以 n=2。故本题正确答案为 C。 39 【正确答案】 C 【试题解析】 文本框中 LostFocus事件是当一个对象失去焦点时触发该事件。当按 Tab键或用鼠标单击另一个对象时,都会使焦点所在对象失去焦 点。 GotFocus事件与 LostFocus事件正好相反,当一个对象获得焦点时触发该事件。 Change事件是当用户在文本框中输入内容或者程序代码中给 Text属性赋新值时触发该事件。故正确答案为选项 C。 40 【正确答案】 A 【试题解析】 ListIndex属性返回当前被选择项目的索引号 n; ListCount属性返回列表框中项目的数值,题中为 7; AddItem方法用来为列表框添加新的项目;RemoveItem方法用来删除列表框指定的项目。题中首先删除 “南京 “项目,后用 “天津 “项目添加到删除的位置。 故正确答案为选项 A。