1、国家二级 VB机试(选择题)模拟试卷 90 及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构 ( B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况 ( C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况 ( D)循环队列中元素的个数是由队头指针和队尾指针共同决定 2 一个栈的初始状态为空。现将元素 1、 2、 3、 4、 5、 A、 B、 C、 D、 E依次入栈,然后再依次出栈,则元素出栈的顺序是 ( )。 ( A) 12345ABCDE ( B) EDCBA54321 ( C) ABCD
2、E12345 ( D) 54321EDCBA 3 某二叉树有 5个度为 2的结点,则该二叉树中的叶子结点数是 ( )。 ( A) 10 ( B) 8 ( C) 6 ( D) 4 4 下列排序方法中,最坏情况下比较次数最少的是 ( )。 ( A)冒泡排序 ( B)简单选择排序 ( C)直接插入排序 ( D)堆排序 5 软件设计中划分模块的一个准则是 ( )。 ( A)低内聚低耦合 ( B)高内聚低耦合 ( C)低内聚高耦合 ( D)高内聚高耦合 6 下列选项中不属于结构化程序设计原则的是 ( )。 ( A)可封装 ( B)自顶向下 ( C)模块化 ( D)逐步求精 7 下列关于栈的叙述正确的是
3、( )。 ( A)栈按 “先进先出 “组织数据 ( B)栈按 “先进后出 “组织数据 ( C)只能在栈底插入数据 ( D)不能删除数据 8 在数据库设计中,将 E R图转换成关系数据模型的过程属于 ( )。 ( A)需求分析阶段 ( B)概念设计阶段 ( C)逻辑设计阶段 ( D)物理设计阶段 9 在数据管理技术发展的三个阶段中,数据共享最好的是 ( )。 ( A)人工管理阶段 ( B)文件系统阶段 ( C)数据库系统阶段 ( D)三个阶段相同 10 有三个关系 R、 S和 T如下:由关系 R和 S通过运算得到关系 T,则所使用的运算为 ( )。 ( A)笛卡尔积 ( B)交 ( C)并 (
4、D)自然连接 11 下列叙述中正确的是 ( )。 ( A) MsgBox语句的返回值是一个整数 ( B)执行 MsgBox 语句并出现信息框后,不用关闭信息框即可执行其他操作 ( C) MsgBox语句的第一个参数不能省略 ( D)如果省略 MsgBox 语句的第三个参数 (Title),则信息框的标题为空 12 语句 Dim a( 3 To 4,3 To 6)As Integer 定义的数组的元素个数是 ( )。 ( A) 18 ( B) 28 ( C) 21 ( D) 32 13 设窗体文件中有下面的事件过程: Private Sub Command1_Click() Dim s a% 1
5、00 Print a End Sub 其中变量 a和 s的数据类型分别是 ( )。 ( A)整型,整型 ( B)变体型,变体型 ( C)整型,变体型 ( D)变体型,整型 14 下面不能 在信息框中输出 “VB“的是 ( )。 ( A) MsgBox “VB“ ( B) x MsgBox(“VB“) ( C) MsgBox(“VB“) ( D) Call MsgBox “VB“ 15 现有语句: y IIf(x0, x Mod 3, 0) 设 x 10,则 y的值是 ( )。 ( A) 0 ( B) 1 ( C) 3 ( D)语句有错 16 窗体上有一个菜单编辑器设计的菜单。运行程序,并在窗体
6、上单击鼠标右键,则弹出一个快捷菜单,如图所示。下列说法错误的是 ( )。 ( A)在设计 “粘贴 “菜单项时,在菜 单编辑器窗口中设置了 “有效 “属性 (有 “) ( B)菜单中的横线是在该菜单项的标题输入框中输入了一个 “-“(减号 )字符 ( C)在设计 “选中 “菜单项时,在菜单编辑器窗口中设置了 “复选 “属性 (有 “) ( D)在设计该弹出菜单的主菜单项时,在菜单编辑器窗口中去掉了 “可见 “前面的“ 17 假定有以下循环结构: Do Until 条件表达式 循环体 Loop 则以下正确的描述是 ( )。 ( A)如果 “条件表达式 “的值是 0,则一次循环体也不执行 ( B)如
7、果 “条件表达式 “的值不为 0,则至 少执行一次循环体 ( C)不论 “条件表达式 “的值是否为 “真 “,至少要执行一次循环体 ( D)如果 “条件表达式 “的值恒为 0,则无限次执行循环体 18 执行语句 Dim X, Y As Integer 后 ( )。 ( A) X和 Y均被定义为整型变量 ( B) X和 Y均被定义为变体类型变量 ( C) X被定义为整型变量, Y被定义为变体类型变量 ( D) X被定义为变体类型变量, Y被定义为整型变量 19 在程序运行时,下面的叙述中正确的是 ( )。 ( A)用鼠标右键单击窗体中无控件的部分,会执行窗体的 Form_Load事件过程 ( B
8、)用鼠标左键单击窗体的标题栏,会执行窗体的 Form_Click事件过程 ( C)只装入而不显示窗体,也会执行窗体的 Form_Load事件过程 ( D)装入窗体后,每次显示该窗体时,都会执行窗体的 Form_Click事件过程 20 下列有关文件的叙述中,正确的是 ( )。 ( A)以 Output方式打开一个不存在的文件时,系统将显示出错信息 ( B)以 Append方式打开的文件,既可以进行读操作,也可以进行写操作 ( C)在随机文件中,每个记录的长度是固定的 ( D)无论是顺序文 件还是随机文件,其打开的语句和打开方式都是完全相同的 21 VB中有 3个键盘事件: KeyPress、
9、KeyDown、 KeyUp,若光标在 Text1文本框中,则每输入一个字母 ( )。 ( A)这 3个事件都会触发 ( B)只触发 KeyPress 事件 ( C)只触发 KeyDown、 KeyUp事件 ( D)不触发其中任何一个事件 22 设窗体的名称为 Form1,标题为 Win,则窗体的 MouseDown事件过程的过程名是 ( )。 ( A) Form1_MouseDown ( B) Win_MouseDown ( C) Form_MouseDown ( D) MouseDown_Form1 23 窗体上有一个名称为 HScroll1的滚动条,程序运行后,当单击滚动条两端的箭头时,
10、立即在窗体上显示滚动框的位置 (即刻度值 )。下面能够实现上述操作的事件过程是 ( )。 ( A) Private Sub HScroll1_Change() Print HScroll1.Value End Sub ( B) Private Sub HScroll1_Change() Print HScroll1.SmallChange End Sub ( C) Private Sub HScroll1_Scroll() Print HScroll1.Value End Sub ( D) Private Sub HScroll1_Scroll() Print HScroll1.SmallCh
11、ange End Sub 24 若已把一个命令按钮的 Default属性设置为 True,则下面可导致按钮的 Click事件过程被调用的操作是 ( )。 ( A)用鼠标右键单击此按钮 ( B)按键盘上的 Esc键 ( C)按键盘上的回车键 ( D)用鼠标右键双击此按钮 25 假定通过复制、粘贴操作建立了一个命令按钮数组 Command1,以下说法中错误的是 ( )。 ( A)数组中每个命令按钮的名称 (Name属性 )均为 Command1 ( B)若未做修改,数组中每个命令按钮的大小都一样 ( C)数组中各个命令按钮使用同一个 Click事件过程 ( D)数组中每个命令按钮的 Index属性
12、值都相同 26 以下关于菜单的叙述中,错误的是 ( )。 ( A)当窗体为活动窗体时,用 Ctrl E 键可以打开菜单编辑器 ( B)把菜单项的 Enabled属性设置为 False,则可删 除该菜单项 ( C)弹出式菜单在菜单编辑器中设计 ( D)程序运行时,利用控件数组可以实现菜单项的增加或减少 27 下面哪个属性肯定不是框架控件的属性 ( )。 ( A) Text ( B) Caption ( C) Left ( D) Enabled 28 窗体上有一个名称为 Option1的单选按钮数组,程序运行时,当单击某个单选按钮时,会调用下面的事件过程: Private Sub Option1_
13、Click(Index As Integer) End Sub 下面关于此过程的参数 Index 的叙述中正确的是 ( )。 ( A) Index为 1表示单选按钮被选中,为 0表示未选中 ( B) Index 的值可正可负 ( C) Index 的值用来区分哪个单选按钮被选中 ( D) Index表示数组中单选按钮的数量 29 要想使列表框只允许单选列表项,应设置的属性为 ( )。 ( A) Style ( B) Selected ( C) MultiSelect ( D) Enabled 30 在窗体上画一个名称为 Text1的文本框和一个名称为 Command1的命令按钮,然后编写如下事
14、件过程: Private Sub Command1_Click() Dim i As Integer, n As Integer For i 0 To 50 i i 3 n n 1 If i10 Then Exit For Next Text1.Text Str(n) End Sub 程序运行后,单击命令按钮,在文本框中显示的值是 ( )。 ( A) 2 ( B) 3 ( C) 4 ( D) 5 31 窗体上有一个名称为 Text1的文本框,一个名称为 CD1的通用对话框,一个标题为 “打开文件 “的命令按钮,如图所示。命令按钮的单击事件过程如下: Private Sub Command1_C
15、lick() CD1.ShowOpen Open CD1.FileName For Input As#1 MsgBox CD1.FileName Line Input#1, s Text1.Text s Close#1End Sub单击命令按钮,执行以上事件过程,打开选定的文件,读取文件的内容并显示在文本框中 .以下叙述中正确的是 ( )。 ( A)程序没有错误,可以正确完成打开文件、读取文件 中内容的操作 ( B)执行 Open命令时出错,因为没有指定文件的路径 ( C) Open语句是错误的,应把语句中的 For Input改为 For Output ( D) Line Input命令格式
16、错 32 窗体上有一个如右图所示的图形控件,控件中显示了如图所示的文字,可以判断这个图形控件 ( )。 ( A)是图像框 (Image) ( B)是图片框 (PictureBox) ( C)是形状控件 ( D)不是上述 3种控件中的一种 33 窗体上有一个由两个文本框组成的控件数组,名称为 Text1,并有如下事件过程 : Private Sub Text1_Change(Index As Integer) Select Case Index Case 0 Text1(1).FontSize Text1(0).FontSize * 2 Text1(1).Text Text1(0).Text C
17、ase 1 Text1(0).FontSize Text1(1).FontSize / 2 Text1(0).Text Text1(1).Text Case Else MsgBox “执行 Else分支 “ End Select End Sub 关于上述程序,以下叙述中错误的是 ( )。 ( A) Index用于标识数组元素 ( B)本程序中 Case Else分支的语句永远不会被执行 ( C)向任何一个文本框输入字符,都会在另一个文本框中显示该字符 ( D)下标为 0的文本框中显示的字符尺寸将越来越小 34 设有如下程序: Option Base 1 Dim a(3, 4)As Intege
18、r, b(4, 3)As Integer Private Sub Command1_Click() 循环 1 For i 1 To 3 For j 1 To 4 b(j, i) a(i, j) Next j Next i 循环 2 x b(1, 1) For i 1 To 4 For j 1 To 3 Print b(i, j); If xmax Then max a(k) End If Next k Print max End Sub 运行程序时发现,当输入 10个正数时,可以得到正确结果,但输入 10个负数时结果是错误的,程序需要修改。下面的修改中可以得到正确运行结果的是 ( )。 ( A
19、)把 If a(k)max Then改为 If a(k)0) Print n Mod 10; n n10 Wend Print End Sub 此程序功能是:输入 2个正整数,反序输出这 2个数的每一位数字,再反序输出这 2个数之和的每一位数字。例如:若输入 123 和 234,则应该输出: 3 2 1 4 3 2 7 5 3 但调试时发现只输出了前 2行 (即 2个数的反序 ),而未输出第 3行 (即 2个数之和的反序 ),程序需要修改。下面的修改方案中正确的是 ( )。 ( A)把过程 pro 的形式参数 n As Integer 改为 ByVal n As Integer ( B)把 C
20、all pro(a ( C)改为 pro a b ( D)把 n n10 改为 n n / 10 38 在窗体上画一个名称为 Command1的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() c 1234 c1 Trim(Str(c) For i 1 To 4 Print Next End Sub 程序运行后,单击命令按钮,要求在窗体上显示如下内容: 1 12 123 1234 则在横线处应填入的内容为 ( )。 ( A) Right(c1, i) ( B) Left(c1, i) ( C) Mid(c1, i, 1) ( D) Mid(c1, i,
21、 i) 39 命令按钮 Command1的单击事件过程如下: Private Sub Command1_Click() Dim a(10, 10)As Integer x 0 For i 1 To 3 For j 1 To 3 a(i, j) i * 2 Mod j If x,样式 ,标题 ),注意 MsgBox函数带括号,有返回值。 MsgBox语句格式: MsgBox(,样式 ,标题 ),有无括号都可以,无返回值。故 A选项错误。 其中: 第 1个参数:提示内 容是必需的,不能省略。故 C选项正确。 第 2个参数:可选。整型表达式,缺省值 0,指定信息框中按钮数目、类型、图标类型、缺省按钮
22、等。 第 3个参数:可选,如果省略,则标题栏并不为空默认显示它所属的工程名。故D选项错误。 执行 MsgBox语句时出现信息框后,必须关闭信息框才可执行其他操作。故 B 选项错误。 12 【正确答案】 D 【试题解析】 本题定义的是一个整型的二维数组, 3 To 4指的是 3、 2、1、 0、 1、 2、 3、 4(共 8行 ),3 To 6指的是 3、 4、 5、 6(共 4列 ),因此数组元素个数是 84 32,故选 D。 13 【正确答案】 C 【试题解析】 变量 s定义时没有指明数据类型,默认为 Variant变体型。变量 a是用整型的类型符号 %声明,并同时赋值 100,所以变量 a
23、的数据类型为整型。故C选项正确。 14 【正确答案】 D 【试题解析】 Msgbox 的功能:显示消息提示框,在对话框中显示提示消息,等待用户单击按钮,单击不同的按钮返回不同的整数。 MsgBox函数格式:变量 MsgBox(,样式 ,标题 ),注意 MsgBox函数带括号,有返回值; MsgBox语句 格式: MsgBox(,样式 ,标题 ),有无括号都可以,无返回值。 选项 D中用 Call 语句调用 MsgBox函数,要符合 Call语句的语法规则: Call 函数名 (实参表 ),缺少括号,应该为 Call MsgBox(“VB“),语法才正确。故 D选项不能输出 “VB“,会出错。
24、15 【正确答案】 B 【试题解析】 IIF是条件函数,它的语法格式是: IIf(, , ),本题中, x 10时,条件表达式 x0的值为 True,执 行 x Mod 3 即 10 Mod 3 结果为1。故选 B。 16 【正确答案】 A 【试题解析】 快捷菜单中的 “粘贴 “菜单项为无效时,在菜单编辑器窗口中 “有效“属性应该是不选中状态,没有 “,故 A选项错误。 17 【正确答案】 D 【试题解析】 本题的 Do Until Loop 循环结构是先判断,再执行的结构。 Do Until 循环语句执行的过程是,先判断条件表达式的值,如果条件表达式的值为 0或 False时,即条件不成立时
25、,则执行循环体,否则当条件表达式的值为非 0或 True时,即成 立,则退出 DOLoop 循环。 本题中,选项 A条件表达式的值是 0,说明条件不成立,执行循环体。故 A错误。 选项 B条件表达式的值不为 0,说明条件成立,退出循环。故 B错误。 选项 C中 Do UntilLoop 语句中条件表达式的值为 “假 “时,才至少执行一次循环体,故 C错误。 选项 D中条件表达式的值恒为 0,说明表达式总是不成立,所以可无限执行循环体,故 D选项正确。 18 【正确答案】 D 【试题解析】 声明变量时可以同时声明多个变量,但要分别说明每个变量的数据类型。如果定义变量时不说明数据类型,默认是 Va
26、riant变体类型变量。 本题中用 Dim同时定义了两个变量 X、 Y,变量 X没说明数据类型,所以是Variant型变量, Y是整型变量。故选 D选项正确。 19 【正确答案】 C 【试题解析】 如果窗体是活动的,那么在窗体上按下鼠标右键 (尚未松手抬起 ),即会触发 Form_MouseDown 事件,松手抬起后,要先触发 Form_MouseUp 事件,然后再触发 Form_Click 事件。如果窗体原先是非活动的,还会触发Form_GotFocus 事件,并且它最先发生。 Form_Load 事件是窗体显示之前,加载时触 发,单击窗体时不触发。故 A选项错误。 用鼠标左键单击窗体标题栏
27、时,不会执行 Form_Click 事件过程。故 B 选项错误。 装入窗体后,每次显示该窗体时或窗体成为活动窗体时,都会执行 From_Active窗体的激活事件。故 D选项错误。 20 【正确答案】 C 【试题解析】 A选项错误原因:当以 Output方式打开一个不存在的顺序文件时, Open 语句会首先创建该文件,然后再打开它,系统不会出错。 B 选项错误原因:以 Append 方式打开文件后,可将内存中的数据追加到顺序文件的尾部,可进行写操作,不能进行读 操作。 D选项错误原因: VB 中三种可访问的文件有:顺序文件、随机文件和二进制文件,不同文件打开的方式是不同的。 C选项中随机文件中
28、的每一行称为一条记录,每条记录的长度相同,通过记录号来定位和查找指定记录。故 C选项正确。 21 【正确答案】 A 【试题解析】 当用户按下某键时触发 KeyDown 和 KeyPress 事件,放开某键时触发 KeyUp事件。故每输入一个字符,这 3个事件都会触发。故 A选项正确。 22 【正确答案】 C 【试题解析】 事件过程名格式是:控件名 _事件过程名。 Form1 是窗体 控件的名称, Win是窗体的标题,所以窗体的 MouseDown 事件过程名是:Form1_MouseDown,故选 A。 23 【正确答案】 A 【试题解析】 根据题意可知,用户的操作是单击滚动条两端的箭头,故触
29、发的是滚动条的 Change事件;在窗体上显示的是滚动框的位置,即滚动条的当前刻度值, Value属性值可返回这个值,综合一下,故 A选项正确。 24 【正确答案】 C 【试题解析】 当命令按钮的 Default属性值为 True时,程序运行,按回车键和单击该命令按钮一样都会触发按钮的 Click 事件;当命令按钮的 Cancel属性值为True时,程序运行,按 Esc键和单击该命令按钮都会触发按钮的 Click 事件。故选 C。 25 【正确答案】 D 【试题解析】 命令按钮控件数组中各控件用相同的名称和同一 Click 事件过程,大小也一样,但是为了区分它们,各控件的 Index属性值是不
30、同的。故 D选项错误。 26 【正确答案】 B 【试题解析】 当菜单项的 Enabed 属性值设置为 False时,菜单项只是变为无效项,不可用,不会删除该菜单项。故 B 选项错误。 27 【正确答案】 A 【 试题解析】 框架没有 Text属性。故选 A。 28 【正确答案】 C 【试题解析】 Index参数值返回的是单选按钮数组中各单选按钮的索引值,用它来区分各单选按钮。故 A、 D选项错误, C选项正确; Index的值只能是非负数,故 B 选项错误。 29 【正确答案】 C 【试题解析】 列表框的 Style属性是设置列表框的外形; Selected 属性在程序运行中设置或返回列表项的
31、选中状态; Enabled属性设置列表框可用不可用; MultSelect用来设置选择列表项的方式。 0为默认,只允许单选列 表项; 1为复选,可同时选中一个或多个列表项,但要一个一个选中; 2也为复选,可一个一个选中列表项,也可连续选中。故选 C。 30 【正确答案】 B 【试题解析】 程序中 For循环的结束有两种情况,一种是循环完指定的次数,一种是达到一定的条件后直接退出循环。由于在循环体中循环变量 i的值被修改: i i 3,因此,每次循环开始时 i的取值为 0,4,8, i为 8时执行 i i 3 11, n n 1 3,这时 i的值大于 10,退出 For循环,因此 For循环执行
32、了 3次,即 n的值为 3。所以在文本框中会显示 3。 31 【 正确答案】 A 【试题解析】 第 1条语句中用 ShowOpen方法显示 “打开 “对话框后,在对话框中选中文件,单击 “打开 “按钮后, CD1.FileName属性就会返回打开文件的路径,所以用 Open语句打开文件时,就可用 CD1.FileName指定打开文件的路径,故 B选项说法错误。 因为第 4条语句中要用 Line Input从文件读取数据,故用 Open 语句打开文件时用Input模式打开是正确的,故 C选项说法错误。 Line Input命令格式为: Line Input #文件号,变量名,题中 Line In
33、put 语句格式正确。故 D选项错误。 本题程序无错误,能实现所说功能,故 A选项正确。 32 【正确答案】 B 【试题解析】 图片框是 “容器 “控件,可以作为父控件,而图像框不能。图片框可以通过 Print方法接收文本,并可接收由像素组成的图形,而图像框不能接收Print方法输入的信息,也不能用绘图方法在图像框上绘制图形。而形状控件 3D效果的样式,根据题目图示显然不是形状控件。因此这个图形控件是图片框。 33 【正确答案】 D 【试题解析】 控件数组的 Index属性作为控件数组的下标,用于标识数组元素 。题目中程序功能是当任一个文本框内容改变时设置第 2个文本框的字号是第 1个文本框字
34、号的 2倍,同时两个文本框显示相同文字。假如用户没有使用控件数组的 Index属性的默认值程序将执行到 Else分支。 34 【正确答案】 B 【试题解析】 Dim用于在标准模块、窗体模块或过程中定义变量或数组。程序可以正常运行, x中保存的是数组 b元素中的最大值。 35 【正确答案】 D 【试题解析】 程序中把变量 max的初始值设置为 0,没有考虑到负数的情况。应该把它的初始值设置为数组中的一个元素的值,然后让数组中 的各个元素与这个值比较,如果比它大,就替换变量 max的值,这样才能得到数组中的最大值。因此要修改 max 0这一行。 36 【正确答案】 B 【试题解析】 程序变量 su
35、m的值在开始计算第 2个学生的总成绩时,仍保留着第一个学生的总成绩,这样会把前面学生的总成绩计算进去,显然不对。因此,sum 0这一句应该放在第 1层 For循环体的第一句,即 For i 1 to 4和 for j 1 to 3之间。 37 【正确答案】 A 【试题解析】 在过程定义中过程的形式参数定义时如果没有 ByVal指明参数的传递方式,那么默认为地址传递,这样过程中对形参的改变将影响到实参的值。本程序中过程定义语句 Private Sub pro(n As Integer)说明形参 n为按地址传递的,而在过程内语句 n n10改变了形参的值,因此, a、 b的值就不再是最初输入的值了
36、,表达式 a b 就不是期望的两个输入数的和。因此得不到正确结果。 只要把 Private Sub pro(n As Integer)改为 Private Sub pro(ByVal n As Integer),程序即可得到正确结果,因此 A选项正确。 38 【正确答案】 B 【试题解析】 程序中使用 Str(c)将数值 1234转换成为一个字符串 “1234“,又使用 Trim函数去除了字符串首尾可能存在的空格,保证了字符串中只有 1、 2、 3、4这 4个字符。在 For 循环中从左边递次输出这些字符就需要使用 Left()函数,Left是左部截取函数,可以截取字符串左边指定个数的字符串,以 Left(c1, i)的形式即可每次循环取出期望的字符串。因此答案为 B。 39 【正确答案】 B 【试题解析】 40 【正确答案】 A 【试题解析】 题目中 fun过程是一个递归过程,它的结束条件是参数值为奇数。第一次调用,参数值为 6,是偶数所再次调用 fun 过程,这次参数为 6/2 3,是奇数,不再调用自身,接着执行下一句输出参数值即 3,然后返回第一次调用过程中执行下一句输出第一次调用参数值,即 6。因此程序会输出 3 6。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1