1、国家二级 VB机试(选择题)模拟试卷 35 及答案与解析 一、选择题 1 下列叙述中正确的是 ( A)一个算法的空间复杂度大,则其时间复杂度也必定大 ( B)一个算法的空间复杂度大,则其时间复杂度必定小 ( C)一个算法的时间复杂度大,则其空间复杂度必定小 ( D)算法的时间复杂度与空间复杂度没有直接关系 2 下列叙述中正确的是 ( A)循环队列中的元素个数随队头指针与队尾指针的变化而动态变化 ( B)循环队列中的元素个数随队头指针的变化而动态变化 ( C)循环队列中的元素个数随队尾指针的变化而动态变化 ( D)以上说法都不对 3 一棵二叉树中共有 80个叶子结点与 70个度为 1的结点,则该
2、二叉树中的总结点数为 ( A) 219 ( B) 229 ( C) 230 ( D) 231 4 对长度为 10的线性表进行冒泡排序,最坏情况下需要比较的次数为 ( A) 9 ( B) 10 ( C) 45 ( D) 90 5 构成计算机软件的是 ( A)源代码 ( B)程序和数据 ( C)程序和文档 ( D)程序、数据及相关文档 6 软件生命周期可分为定义阶段、开发阶段和维护阶段,下面不属于开发阶段任务的是 ( A)测试 ( B)设计 ( C)可行性研究 ( D)实现 7 下面不能作为结构化方法软件需求分析工具的是 ( A)系统结构图 ( B)数据字典 (DD) ( C)数据流程图 (DFD
3、图 ) ( D)判定表 8 在关系模型中,每一个二维表称为一个 ( A)关系 ( B)属性 ( C)元组 ( D)主码(键) 9 若实体 A和 B是一对多的联系,实体 B和 C是一对一的联系,则实体 A和 C的联系是 ( A)一对一 ( B)一对多 ( C)多对一 ( D)多对多 10 ( A)选择 ( B)投影 ( C)交 ( D)并 11 以下合法的 VB变量名是 ( )。 ( A) _x ( B) 2y ( C) a#b ( D) x_1_x 12 以下关于 VB特点的叙述中,错误的是 ( )。 ( A) VB中一个对象可有多个事件过程 ( B) VB应用程序能以编译方式运行 ( C)
4、VB应用程序从 Form_Load事件过程开始执行 ( D)在 VB应用程序中往往通过引发某个事件导致对对象的操作 13 Print Format(1234.56, “#.#“)语句的输出结果是 ( )。 ( A) 123.4 ( B) 1234.6 ( C) 1234.5 ( D) 1234.56 14 Print Right(“VB Programming“, 2)语句的输出结果是 ( )。 ( A) VB ( B) Programming ( C) ng ( D) 2 15 假定已在窗体上画了多个控件,其中有一个被选中,为了在属性窗口中设置窗体的属性,预先应执行的操作是 ( )。 ( A
5、)单击窗体上没有控件的地方 ( B)单击任意一个控件 ( C)双击任意一个控件 ( D)单击属性窗口的标题栏 16 下列操作中不能向工程添加窗体的是 ( )。 ( A)执行 “工程 “菜单中的 “添加窗体 “命令 ( B)单击工具栏上的 “添加窗体 “按钮 ( C)右击窗体,在弹出的菜单中选择 “添加窗体 “命令 ( D)右击工程资源管理器,在弹出的菜单中选择 “添加 “命令,然后在下一级菜单中选择 “添加窗体 “命令 17 下列关于顺序文件的描述中,正确的是 ( )。 ( A)文件的组织与数据写入的顺序无关 ( B)主要的优点是占空间少,且容易实现记录的增减操作 ( C)每条记录的长度是固定
6、的 ( D)不能像随机文件一样灵活地存取数据 18 下列操作说明中,错误的是 ( )。 ( A)在具有 焦点的对象上进行一次按下字母键操作,会引发 KeyPress事件 ( B)可以通过 MousePointer属性设置鼠标光标的形状 ( C)不可以在属性窗口设置 MousePointer属性 ( D)可以在程序代码中设置 MousePointer属性 19 以下关于变量作用域的叙述中错误的是 ( )。 ( A)在窗体模块的声明部分声明的 Private变量,其作用域是窗体内的所有过程 ( B)在标准模块的声明部分声明的 Private变量,其作用域是模块内的所有过程 ( C)在窗体模块的声明
7、部分声明的 Pubilc变 量,其作用域是本窗体的所有过程 ( D)在标准模块的声明部分声明的 Pubilc变量,其作用域是应用程序的所有过程 20 下面关于文件叙述中错误的是 ( )。 ( A) VB数据文件需要先打开,再进行处理 ( B)随机文件每个记录的长度是固定的 ( C)不论是顺序文件还是随机文件,都是数据文件 ( D)顺序文件的记录是顺序存放的,可以按记录号直接访问某个记录 21 要使图像框 (Image)中的图像能随着图像框的大小伸缩,应该设置的属性及值是( )。 ( A) AutoSize值为 True ( B) AutoRedraw值为 True ( C) Stretch值为
8、 True ( D) BorderStyle值为 0 22 如果要在窗体上画一个标签,应在工具箱窗口中选择的图标是 ( )。 23 列表框中被选中的数据项的位置可以通过一个属性获得,这个属性是 ( )。 ( A) List ( B) ListIndex ( C) Text ( D) ListCount 24 为了使一个复选框被禁用 (灰色显示 ),应把它的 Value属性设置为 ( )。 ( A) 0 ( B) 1 ( C) 2 ( D) False 25 下列关于 利用通用对话框产生的文件对话框的相关属性的描述中,错误的是( )。 ( A) InitDir属性用于设置对话框中显示的起始目录
9、( B) Filter属性用于设置对话框默认的过滤器 ( C) DefaultExt属性用于设置对话框中默认的文件类型 ( D) FileTitle属性用于存放对话框中所选择的文件名 26 下列事件的事件过程中,参数是输入字符 ASCII码的是 ( )。 ( A) KeyDown事件 ( B) KeyUp事件 ( C) KeyPress事件 ( D) Change事件 27 以下关于单选按 钮和复选框的叙述中,正确的是 ( )。 ( A)单选按钮和复选框都能从多个选项中选择一项 ( B)单选按钮和复选框被选中时,选中控件的 Value属性值为 True ( C)是否使用框架控件将单选按钮分组,
10、对选项没有影响 ( D)是否使用框架控件将复选框分组,对选项没有影响 28 窗体的 MouseUp事件过程如下: Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub 关于以上定义,以下叙述中错误的是 ( )。 ( A)根据 Shift参数,能够确定使用转换键的情况 ( B)根据 X、 Y参数可以确定触发此事件时鼠标的位置 ( C) Button 参数的值是在 MouseUp事件发生时,系统自动产生的 ( D) MouseUp是鼠标向上移动时触发的事件 29
11、 设窗体上有一个水平滚动条 HScroll1和一个命令按钮 Command1,及下面的事件过程: Private Sub Form_Load() HScroll1.Min 0 HScroll1.Max 100End SubPrivate Sub Command1_Click() HScroll1.Value 70End Sub程序运行时单击命令按钮,则滚动条上滚动块位置的图示是 ( )。 30 窗体上有一个名称为 Text1的文本框,一个名称为 Command1的命令按钮。以下程序的功能是从顺序文件中读取数据: Private Sub Command1_Click() Dim s1 As St
12、ring, s2 As String Open “c: d4.dat“ For Append As #3 Line Input #3, s1 Line Input #3, s2 Text1.Text s1 s2 Close End Sub 该程序运行时有错误,应该进行的修改是 ( )。 ( A)将 Open语句中的 For Append改为 For Input ( B)将 Line Input改为 Line ( C)将两条 Line Input语句合并为 Line Input #3, s1, s2 ( D)将 Close语句改为 Close #3 31 有如下程序: Private Sub F
13、orm_Click() Dim i As Integer, n As Integer For i 1 To 20 i i 4 n n i If i10 Then Exit For Next Print n End Sub 程序运行后,单击窗体,则输出结果是 ( )。 ( A) 14 ( B) 15 ( C) 29 ( D) 30 32 窗体上有 1个名称为 Command1的命令按钮,事件过程如下: Private Sub Command1_Click() Dim num As Integer, x As Integer num Val(InputBox(“请输入一个正整数 “) Select
14、 Case num Case Is100 x x num Case Is1 ( D) i 10 Do i i 2 Loop Until i 1 35 现有程序如下: Option Base 1 Private Sub Form_Click() Dim x(5, 6)As Integer, y(5)As Integer For i 1 To 5 For j 1 To 6 x(i, j) Int(Rnd * 9 1) Next j Next i Call f(5, 6, x, y) For i 1 To 5 Print y(i); Next i End Sub Sub f(m As Integer
15、, n As Integer, a()As Integer, b()As Integer) For i 1 To m b(i) 0 For j 1 To n b(i) b(i) a(i, j) Next j Next i End Sub 关于上述程序,以下叙述中正确的是 ( )。 ( A)调用过程语句有错,参数不匹配 ( B)程序有错,数组下标越界 ( C) y数组中保存的是 x数组每行数据之和 ( D) x数组中数据的取值范围是 1 10 36 窗体上有一个名称为 Label1的标签;一个名称为 Timer1的计时器,其 Enabled和 Interval属性分别为 True和 1000。编
16、写如下程序: Dim n As Integer Private Sub Timer1_Timer() ch Chr(n Asc(“A“) Label1.Caption ch n n 1 n n Mod 4 End Sub 运行程序,将在标签中 ( )。 ( A)不停地依次显示字符 “A“、 “B“、 “C“、 “D“,直至窗体被关闭 ( B)依次显示字符 “A“、 “B“、 “C“、 “D“各一次 ( C)每隔 1秒显示字符 “A“一次 ( D)每隔 1秒依次显示 26个英文字母中的一个 37 要求在程序运行时,如果按住鼠标左键不放而移动鼠标,鼠标的位置坐标同步显示在窗体右 上角的标签 (名称
17、为 Label1)中,如右图所示,放开鼠标左键后,停止同步显示。下面可以实现此功能的程序是 ( )。 ( A) Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button 1 Then Label1 “X “ & X & “ Y “ & Y End If End Sub ( B) Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) I
18、f Button 1 Then Label1 “X “ & X & “ Y “ & Y End If End Sub ( C) Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button 1 Then Label1 “X “ & X & “ Y “ & Y End If End Sub ( D) Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As
19、 Single) Label1 “X “ & X & “ Y “ & Y End Sub 38 窗体上有一个名为 List1的列表框和一个名为 Command1的命令按钮,并有下面的事件过程: Private Sub Command1_Click() n% List1.ListIndex If n0 Then ch$ List1.List(n) List1.List(n) List1.List(n 1) List1.List(n 1) ch End If End Sub 程序运行时,选中 1个列表项,然后单击 Command1按钮,则产生的结果是( )。 ( A)若选中的不是最前面的列表项,则
20、选中的列表项与它前一个列表项互换位置 ( B)选中的列表项与它前面的列表项互换位置 ( C)若选中的不是最后面的列表项,则选中的列表项与它后一个列表项互换位置 ( D)选中的列表项与它后面的列表项互换位置 39 在窗体上画一个名称为 Text1的文本框,并编写如下程序: Option Base 1 Private Sub Form_Click() Dim arr Dim Start As Integer, Finish As Integer Dim Sum As Integer arr Array(12, 4, 8, 16) Start LBound(arr) Finish UBound(ar
21、r) Sum 0 For i Start To Finish Sum Sum arr(i) Next i c Sum / Finish Text1.Text c End Sub 运行程序,单击窗体,则在文本框中显示的是 ( )。 ( A) 40 ( B) 10 ( C) 12 ( D) 16 40 在窗体上画一个命令按钮和一个标签,其名称分别为 Command1和 Label1,然后编写如下事件过程: Private Sub Command1_Click() Dim arr(10) For i 6 To 10 arr(i) i 5 Next i Label1.Caption arr(0) ar
22、r(arr(10)/ arr(6) End Sub 运行程序,单击命令按钮,则在标签中显示的是 ( )。 ( A) 0 ( B) 1 ( C) 2 ( D) 3 国家二级 VB机试(选择题)模拟试卷 35 答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 算法的空间复杂度是指算法在执行过程中所需要的内存空间,算法的时间复杂度,是指执行算法 所需要的计算工作量,两者之间并没有直接关系,答案为 D。 2 【正确答案】 A 【试题解析】 在循环队列中,用队尾指针 rear指向队列中的队尾元素,用排头指针 front指向排头元素的前一个位置。因此,从排头指针 front指向的后一个位置直到队
23、尾指针 rear指向的位置之间所有的元素均为队列中的元素。所以循环队列中的元素个数与队头指针和队尾指针的变化而变化, A正确。 3 【正确答案】 B 【试题解析】 二叉树中,度为 0的节点数等于度为 2的节点数加 1,即 n2=n0-1,叶子节点即度为 0,则 n2=79,总结点数为 n0+n1+n2=80+70+79=229,答案为B。 4 【正确答案】 C 【试题解析】 冒泡法是在扫描过程中逐次比较相邻两个元素的大小,最坏的情况是每次比较都要将相邻的两个元素互换,需要互换的次数为9+8+7+6+5+4+3+2+1=45,选 C。 5 【正确答案】 D 【试题解析】 软件指的是计算机系统中与
24、硬件相互依赖的另一部分,包括程序、数据和有关的文档,选 D。 6 【正确答案】 C 【试题解析】 开发阶段包括分析、设计和实施两类任务。其中分析、设计包括需求分析、总体设计和详细设计 3个阶段,实施则包括编码和测试两个阶段, C不属于开发阶段。 7 【正确答案】 A 【试题解析】 结构化方法软件需求分析工具主要有数据流图、数据字典、判定树和判定表。 8 【正确答案】 A 【试题解析】 关系模型采用二维表来表示,即每个二维表称为一个关系。 9 【正确答案】 B 【试题解析】 A和 B 为一对多的联系,则对于 A中的每一个实体, B 中有多个实体与之联系,而 B与 C为一对一联系,则对于 B中的每
25、一个实体, C中之多有一个实体与之联系,则可推出对于 A中的每 一个实体, C中有多个实体与联系,所以为一对多联系。 10 【正确答案】 D 【试题解析】 关系 T中的元素与关系 R和关系 S 中不同元素的总和,因此为并操作。 11 【正确答案】 D 【试题解析】 VB 中变量的命名规则为: 必须以字母或汉字开头 由字母、汉字、数字或下划线组成 不能使用 VB的保留字。 _x不能以 _下划线开头,不合法; 2y不能以数字开头,不合法; a#b 中有 #,不合法; D选项符合命名规则,故D选项正确。 12 【正确答案】 C 【试题解析】 VB 应用程序不一定从 From_Load 事件开始执行,
26、它是由工程中启动对象决定先从哪儿开始执行。故 C选项错误。 13 【正确答案】 B 【试题解析】 Format 是格式输出函数,数据要按照 “输出格式字符串 “指定格式输出。 “输出格式字符串 “中 #表示显示一数字,若此位置没有数字则不显示。本题中 “输出格式字符串 “整数部分 #长度小于 1234时, 1234按原样输出,小数部分 #长度为 1,则小数部分保留一位,四舍五入取 6,故选 B。 14 【正确答案】 C 【试题解析】 Right是字符串的右部截取函数,本题中是从字符串 “VB Programming“右边向左截取 2个字符,即为 “ng“,故选 C。 15 【正确答案】 A 【
27、试题解析】 单击窗体上没有控件的地方,在属性窗口就会出现窗体的各属性,这样就可对窗体的属性进行设置,故 A选项正确。单击任意一个控件,在属性窗口中出现的是该控件的属性,故 B选项错误;双击任意一个控件,打开的是 “代码窗口 “,故 C选项错误;单击属性窗口的标题栏,属性窗口成为活动窗口,故 D选项错误。 16 【正确答案】 C 【试题解析】 右击窗体,弹出的菜单中没有 “添加窗体 “命令,故 C选项错误。 17 【正确答案】 D 【试题解析】 顺序文件的特点是:文件中各记录写入、存放和读取的顺序是一致的,即最先写入的记录放在文件的最前面,后面写入的依次往后面存放,最后写入的记录存放在文件的最后
28、。读取时也是,先读取完前面的记录,才能读取后面的记录。所以文件的组织与数据写入的顺序有关,而且读取文件时效率低,不灵活。故 A选项错误, D选项正确。根据顺序文件的特点,文件实现记录的增减不容易。故 B选项错误。顺序文件的每条记录中各数据项个数不固定,所以记录的长度也不固定。故 C选项错误。 18 【正确答案】 C 【试题解析】 可以在属性窗口中给 MousePointer属性设置属性值。故 C选项错误。 19 【正确答案】 C 【试题解析】 在窗体模块中声明的 Public变量,其作用域是应用程序的所有过程,故 C选项错误。 但用时注意:变量名前要加窗体名,否则不能被其他模块的过程引用,只能
29、被本模块内的所有过程引用。 20 【正确答案】 D 【试题解析】 顺序文件的记录是顺序存放的,先写入的记录存放在文件的最前面,后写入的依次往后面存放,最后写入的记录放在文件的最后面。如果访问某条记录,要先访问前面的记录 ,才能访问后面的记录,不能按记录号直接访问。故 D选项错误。 21 【正确答案】 C 【试题解析】 图像框控件的 Stretch 属性用来调整图像框中图形内容的大小。它既可以通过属性窗口设置,也可通过程序设置。该属性的取值为 True或 Flase。当其属性值为 False时,将自动放大或缩小图像框中的图形以与图像框的大小相适应。 22 【正确答案】 B 【试题解析】 标签控件
30、在工具箱中的图标是。而是文本框控件的图标,是按钮控件的图标,是形状控件的图标。 23 【正确答案】 B 【试题解析 】 列表框控件的 ListIndex 属性值是已选中的表项的位置。表项位置由索引值指定,第一项的索引值为 0,第二项为 1,以此类推。如果没有任何项被选中, ListIndex 的值将设置为 1。 24 【正确答案】 C 【试题解析】 复选框的 Value属性可以设置为 0、 1或 2。 0表示没有选择该复选框, 1表示选中该复选框, 2表示该复选框被禁用 (灰色显示 )。 25 【正确答案】 B 【试题解析】 通用对话框的 InitDir属性用于设置对话框中显示的起始目录,Fi
31、lter属性用来指定在对话框中显示的文件 类型, FilterIndex 用于设置对话框默认的过滤器, DefaultExt属性用于设置对话框中默认的文件类型, FileTitle属性用于存放对话框中所选择的文件名。 26 【正确答案】 C 【试题解析】 KeyPress 事件参数 KeyAscii As Integer, KeyAscii 是所按键字符的ASCII码。 KeyDown 和 KeyUp事件参数有两个,是 KeyCode As Integer和 Shift As Integer, KeyCode 是按键的实际的 ASCII 码,同一个按键上的大小写字母它们的 KeyCode相同
32、(使用大写字母的 ASCII 码 )。 27 【正确答案】 D 【试题解析】 复选框按钮可以同时选择多个,而在一组单选按钮中,只能选择其中的一个。单选按钮被选中时,其 Value属性值为 True,如果没有被选中其Value值为 False,复选框的 Value属性可以设置为 0、 1和 2,分别代表没选中、选中和禁用。单选按钮一般用框架进行分组,每个框架内的单选按钮的操作不影响其他组的按钮,而复选框是否分组对选项没有影响。 28 【正确答案】 D 【试题解析】 MouseUp 事件是鼠标松 开时触发的事件过程,事件过程的 Button参数值由系统产生,为被按下的键, Shift参数表示 Sh
33、ift、 Ctrl 和 Alt键的状态,X、 Y参数表示光标的当前位置。 29 【正确答案】 C 【试题解析】 题目中程序运行时设置了水平滚动条所能表示的最小值为 0,能表示的最大值为 100,当单击命令按钮时,设置水平滚动条的当前位置为 70,即在水平滚动条中部偏右的位置,按各个选项图形的所示, C选项的图示与题目相符。 30 【正确答案】 A 【试题解析】 文件打开方式中的 Append意味着打开的文件是顺 序输出方式,也就是说打开文件是为了向其中写入数据的而不是要读出数据。因此 Open “c:d4.dat“ For Append As #3 应该改为 Open “c: d4.dat“
34、For Input As #3。所以 A选项正确。 Clsoe语句中的文件号可以省略,这时会关闭所有打开的文件。 31 【正确答案】 D 【试题解析】 程序中 For循环中的 If语句判断循环变量 i值如果大于 10则退出循环。各次循环变量值变化如下: i 1时, i i 4 1 4 5, n n i 0 5 5,此时 i 5, i10不 成立, i加 1转入下次循环。 i 6时, i i 4 6 4 10, n n i 5 10 15,此时, i 10, i10不成立, i加 1转入下次循环。 i 11时, i i 4 11 4 15, n n i 15 15 30,此时, i 15, i1
35、0成立,退出循环。此时 n 30。 32 【正确答案】 B 【试题解析】 按钮事件中变量 x为过程局部变量,第 1次输入 100时, Select语句执行 Case Else分支 x x*num 0*100=0。第二次输入 90时, Select语句执行Case Else分支 x x*num 0*90=0。第三次输入 60时 Select语句执行 Case Is1 是否成立,此后 i值不会小于等于,循环会一直继续下去,不会正常结束。选项 D中 i初值为 10,每次循环 i值减 2,因此它总是偶数,而循环结束的条件是 i 1,不可能达到,循环会 一直继续下去。 35 【正确答案】 C 【试题解析
36、】 程序利用 For循环为数组 x的 5行 6列元素以随机整数赋值,随机数的范围是从 1到 9。过程 f的功能是计算二维数组 a()的每一行中元素值的和,每一行的和存放在另一个数组 b()中,最后程序输出这些和值。因此 C正确。 36 【正确答案】 A 【试题解析】 Asc函数返回字符的 ASCII, Chr函数将数值转换成相应的 ASCII码字符。计时器间隔 Interval属性设置为 1000,则计时器事件每 1秒钟发生一次。 n的值每次调用计时器事件过程都会加 1, n n Mod 4又会使 n 值只能为 0、1、 2、 3,因此程序运行后每 1秒 Label1 标签将依次显示 “A“、
37、 “B“、 “C“、“D“。 37 【正确答案】 C 【试题解析】 鼠标移动时产生的事件是 MouseMove事件。 MouseDown 事件过程的参数定义如下: Sub Form_MouseMove(Button As integer, Shift As Integer, x As Single, y As single) 其中 Button 表示被按下的鼠标键,按下左键时值为 1,按下右键时值为 2,按下中间键 时值为 4。 x, y参数表示鼠标光标当前位置的坐标。 题目要求按住左键时移动显示鼠标位置,因此在事件过程要判断是否按下了左键,按下了左键则在标签中显示鼠标位置,否则不显示。因此可
38、用 If Button 1来判断是否按下了左键及是否显示鼠标位置。因此应该选择 C选项。 38 【正确答案】 A 【试题解析】 当单击 Command1 按钮后, List1列表框中被选中项的索引值赋给变量 n,如果被选中项不是空也不是第 1项时,将选中项的项目文字赋值给变量ch,用选中项的上面一项的文字替换选中项的文字,再把变量 ch 中的文 字替换选中项上面一项的文字,简单说就是选中项和它上面一项的文字交换。因此 A选项的说法正确。 39 【正确答案】 B 【试题解析】 程序中将变量 arr初始化为有 4个元素的数组,使用 Lbound和Ubound函数分别获取数组下标的上下限,然后将数组中的元素值相加,用整除运算求它们的平均值。算式可写为 (12 4 8 16)/ 4 (40)/4 10。所以答案为 B。 40 【正确答案】 C 【试题解析】 程序为使用 For语句为数组中部分元素赋值,没显示赋值的数组元素的值默认为 0,因此 arr(0) 0, arr(10) 10 5 5, arr(6) 6 5 1,arr(arr(10)/ arr(6)即, arr(5 / 1) arr(5) 0, arr(0) arr(5) 0 0 0。因此标签中显示为 0。