1、国家二级 VB机试(选择题)模拟试卷 77 及答案与解析 一、选择题 1 下列链表中,其逻辑结构属于非线性结构的是 ( A)二叉链表 ( B)循环链表 ( C)双向链表 ( D)带链的栈 2 设循环队列的存储空间为 Q(1: 35),初始状态为 front=rear=35。现经过一系列入队与退队运算后, front=15, rear=15,则循环队列中的元素个数为 ( A) 15 ( B) 16 ( C) 20 ( D) 0或 35 3 下列关于栈的叙述中,正确的是 ( A)栈底元素一定是最后入栈的元素 ( B)栈顶 元素一定是最先入栈的元素 ( C)栈操作遵循先进后出的原则 ( D)以上说法
2、均错误 4 在关系数据库中,用来表示实体间联系的是 ( A)属性 ( B)二维表 ( C)网状结构 ( D)树状结构 5 公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是 ( A) 1: 1联系 ( B) m: 1联系 ( C) 1: m联系 ( D) m: n联系 6 ( A)选择 ( B)投影 ( C)自然连接 ( D)并 7 数据字典( DD) 所定义的对象都包含于 ( A)数据流图( DFD图 ) ( B)程序流程图 ( C)软件结构图 ( D)方框图 8 软件需求规格说明书的作用不包括 ( A)软件验收的依据 ( B)用户与开发
3、人员对软件要做什么的共同理解 ( C)软件设计的依据 ( D)软件可行性研究的依据 9 下面属于黑盒测试方法的是 ( A)语句覆盖 ( B)逻辑覆盖 ( C)边界值分析 ( D)路径覆盖 10 下面不属于软件设计阶段任务的是 ( A)软件总体设计 ( B)算法设计 ( C)制定软件确认测试计划 ( D)数据库设计 11 Visual Basic集成环境由若干窗口组成,其中不能隐藏 (关闭 )的窗口是 ( )。 ( A)主窗口 ( B)属性窗口 ( C)立即窗口 ( D)窗体窗口 12 为了声明一个长度为 128个字符的定长字符串变量 StrD,以下语句中正确的是( )。 ( A) Dim St
4、rD As String ( B) Dim StrD As String(128) ( C) Dim StrD As String128 ( D) Dim StrD As String*128 13 已知: x 6 y 39 则表达式 “yx * Sgn(x)“的值为 ( )。 ( A) 6.5 ( B) 6 ( C) 6 ( D) 6.5 14 在 Visual Basic中,所有标准控件都具有的属性是 ( )。 ( A) Caption ( B) Name ( C) Text ( D) Value 15 以下关于 VB文件的叙述中,正确的是 ( )。 ( A)标准模块文件的扩展名是 .fr
5、m ( B) VB应用程序可以被编译为 .exe文件 ( C)一个工程文件只能含有一个标准模块文件 ( D)类模块文件的扩展名为 .bas 16 以下自定义数据类型的语句中 ,正确的是 ( )。 ( A) Type student ID As String * 20 name As String * 10 age As Integer End student ( B) Type student ID As String * 20 name As String * 10 age As Integer End Type ( C) Type student ID As String name As
6、String age As Integer End student ( D) Type ID As String * 20 name As String * 10 age As Integer End Type student 17 在某个事件过程中定义的变量是 ( )。 ( A)局部变量 ( B)窗体级变量 ( C)全局变量 ( D)模块变量 18 以下过程定义中正确的过程首行是 ( )。 ( A) Private Sub Proc(Optional a as Integer, b as Integer) ( B) Private Sub Proc(a as Integer)as Integ
7、er ( C) Private Sub Proc(a()As Integer) ( D) Private Sub Proc(ByVal a()As Integer) 19 在窗体上画一个通用对话框,程序运行中用 ShowOpen方法显示 “打开 “对话框时,希望在该对话框的 “文件类型 “栏中只显示扩展名为 DOC的文件,则在设计阶段应把通用对话框的 Filter属性设置为 ( )。 ( A) “(*.DOC)*. DOC“ ( B) “(*. DOC)|(.DOC)“ ( C) “(*. DOC)|*. DOC“ ( D) “(*.DOC)|*. DOC“ 20 以下叙述中错误的是 ( )。
8、 ( A) Print #语句和 Write #语句都可以向文件中写入数据 ( B)用 Print #语句和 Write #语句所建立的顺序文件格式总是一样的 ( C)如果用 Print #语句把数据输出到文件,则各数据项之间没有逗号分隔,字符串也不加双引号 ( D)如果用 Write #语句把数据输出到文件,则各数据项之间自动插入逗号,并且把字符串加上双引号 21 为了使标签控件在显示其内容时不覆盖其背景内容 ,需进行设置的属性为( )。 ( A) BackColor ( B) BorderStyle ( C) ForeColor ( D) BackStyle 22 Visual Basic
9、控件一般都规定一个默认属性,在引用这样的属性时,只写对象名而不必给出属性名。默认属性为 Caption的控件是 ( )。 ( A)列表框 (ListBox) ( B)标签 (Label) ( C)文本框 (TextBox) ( D)组合框 (ComboBox) 23 窗体上有一个名称为 VScroll1的垂直滚动条,要求程序运行时,滚动 块的初始位置在最下端,应该使 VScroll1.Value的值等于 ( )。 ( A) VScroll1.LargeChange ( B) VScroll1.SmallChange ( C) VScroll1.Max ( D) VScroll1.Min 24
10、设窗体名称为 frm1。以下叙述中正确的是 ( )。 ( A)运行程序时,能够加载窗体的事件过程是 frm1_Load ( B)运行程序时,能够加载窗体的事件过程是 Form1_Load ( C)程序运行中用语句: frm1.Name “New“ 可以更改窗体名称 ( D)程序运行中用语句: frm1.Caption “新标题 “ 可以改变窗体的标题 25 设在窗体上有一个名称为 Check1的复选框数组,并有以下事件过程: Private Sub Check1_Click(Index As Integer) End Sub 则下面叙述中错误的是 ( )。 ( A)单击数组中任何复选框都会调用
11、此事件过程 ( B)参数 Index的值等于单击数组中某个复选框的 Index属性的值 ( C)上面的过程是数组中第 1个复选框的事件过程 ( D)从过程的首部 (即第 1行 )无 法确定数组中复选框的个数 26 下面列表框属性中,是数组的是 ( )。 ( A) ListCount ( B) Selected ( C) ListIndex ( D) MultiSelect 27 如果改变驱动器列表框的 Drive属性,则将触发的事件是 ( )。 ( A) Change ( B) Scroll ( C) KeyDown ( D) KeyUp 28 为了调整图像框的大小以与其中的图形相适应,必须把
12、它的 Stretch属性设置为( )。 ( A) True ( B) False ( C) 1 ( D) 2 29 窗体上已有的 3个单选按钮组成了 1个名为 ChkOpt1的控件数组。用于区分控件数组 ChkOpt1中每个元素的属性是 ( )。 ( A) Caption ( B) ListCount ( C) ListIndex ( D) Index 30 在窗体上画一个名称为 Command1的命令按钮 ,并编写如下程序: Option Base 1 Private Sub Command1_Click() Dim a(4, 4) For i 1 To 4 For j 1 To 4 a(i
13、, j) (i 1)* 3 j Next j Next i For i 3 To 4 For j 3 To 4 Print a(j, i); Next j Print Next i End Sub 运行程序,单击命令按钮,则输出结果为 ( )。 ( A) 6 9 7 10 ( B) 7 10 8 11 ( C) 8 11 9 12 ( D) 9 12 10 13 31 以下程序的功能是随机产生 10个两位的整数: Option Base 1 Private Sub Command1_Click() Dim a(10)As Integer Dim i As Integer Randomize F
14、or i 1 To 10 a(i) Int(Rnd * 100) 1 Print a(i) Next i End Sub 运行以上程序,发现有错误,需要对产生随机数的语句进行修改。以下正确的修改是 ( )。 ( A) a(i) Int(Rnd * 100) ( B) a(i) Int(Rnd * 90) 10 ( C) a(i) Int(Rnd * 100) 10 ( D) a(i) Int(Rnd * 101) 32 在窗体上画一个名称为 Command1的命令按钮,编写如下事件过程: Private Sub Command1_Click() n 0 For i 0 To 10 X 2 *
15、i 1 If X Mod 3 0 Then n n 1 Next i Print n End Sub 运行程序,单击命令按钮,则窗体上显示的是 ( )。 ( A) 1 ( B) 3 ( C) 5 ( D) 7 33 设窗体上有 2个文本框 Text1和 Text2,并有下面的事件过程: Dim n Private Sub Text1_KeyPress(KeyAscii As Integer) If “A“Max Then Max a(i) Next End Sub 以下关于上述过程的叙述中,错误的是 ( )。 ( A)语句 Call FindMax(a, m)可以调用该过程,其中的 a是数组,
16、 m是 Integer类型变量 ( B) For循环次数等于 a数组的元素数 ( C)过程末尾应该增加一条返回最大值的语句 FindMax Max ( D)参数 Max用于存放找到的最大值 40 有如下程序: Private Sub Command1_Click() Dim i As Integer, j As Integer Dim sum As Integer n 1 Do j 1 Do sum sum j j j 1 Print j; Loop Until j3 n n 2 Loop Until n10 Print sum End Sub 运行上述程序,外层 Do循环执行的次数为 ( )
17、。 ( A) 4 ( B) 5 ( C) 7 ( D) 10 国家二级 VB机试(选择题)模拟试卷 77 答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 在定义的链表中,若只含有一个指针域来存放下一个元素地址,称这样的链表为单链表或线 性链表。带链的栈可以用来收集计算机存储空间中所有空闲的存储结点,是线性表。在单链表中的结点中增加一个指针域指向它的直接前件,这样的链表,就称为双向链表(一个结点中含有两个指针),也是线性链表。循环链表具有单链表的特征,但又不需要增加额外的存贮空间,仅对表的链接方式稍做改变,使得对表的处理更加方便灵活,属于线性链表。二叉链表是二叉树的物理实现,是一种存
18、储结构,不属于线性结构。答案为 A选项。 2 【正确答案】 D 【试题解析】 在循环队列中,用队尾指针 rear指向队列中的队尾元素,用排头指针 front指向排头元素的前一个位置。在循环队列中进行出队、入队操作时,头尾指针仍要加,朝前移动。只不过当头尾指针指向向量上界时,其加操作的结果是指向向量的下界。由于入队时尾指针向前追赶头指针,出队时头指针向前追赶尾指针,故队空和队满时,头尾指针均相等。答案为 D选项。 3 【正确答案】 C 【试题解析】 栈顶元素总是后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。栈的修改是按后进先出的原则进行的。
19、因此,栈称为先进后出表,或 “后进先出 “表,所以选择C。 4 【正确答案】 B 【试题解析】 关系模型实体间的联系采用二维表来表示,简称表。选项 C为网状模型实体间的联系,选项 D为层次模型实体间的联系,选项 A属性刻画了实体 5 【正确答案】 C 【试题解析】 两个实体集间的联系实际上是实体集间的函数关系,主要有一对一联系( 1:1)、一对多联系( 1:m)、多对一联系( m:1)、多对多联系( m:n)。对于每一个实体部门,都有多名职员,则其对应的联系为一对多联系( 1:m),答案选 C。 6 【正确答案】 A 【试题解析】 由关系 R到关系 S为一 元运算,排除 C和 D。关系 S是关
20、系 R的一部分,是通过选择之后的结果,因此选 A。 7 【正确答案】 A 【试题解析】 在数据流图中,对所有元素都进行了命名,所有名字的定义集中起来就构成了数据字典。因此选 A,而 B, C, D都不符合。 8 【正确答案】 D 【试题解析】 软件需求规格说明书是需求分析阶段的最后成果,是软件开发的重要文档之一。 软件需求规格说明书有以下几个方面的作用。 便于用户、开发人员进行理解和交流, B 正确; 反映出用户问题的结构,可以作为软件开发工作的基础和依据, C正确; 作为确 认测试和验收的依据, A正确。 9 【正确答案】 C 【试题解析】 黑盒测试不关心程序内部的逻辑,只是根据程序的功能说
21、明来设计测试用例。在使用黑盒测试法时,手头只需要有程序功能说明就可以了。黑盒测试法分等价类划分法、边界值分析法和错误推测法,答案为 C。而 A、 B、 D均为白盒测试方法。 10 【正确答案】 C 【试题解析】 从技术观点上看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。所以 A、 B、 D正确, C为软件测试阶段的任务。 11 【正确答案】 A 【试题解析】 属性窗 口、立即窗口和窗体窗口都能隐藏,但主窗口不能。故选A。 12 【正确答案】 D 【试题解析】 有定长和不定长的字符串变量。默认情况下,定义的字符串变量属于不定长的,字符串长度可以改变,比如: Dim str As S
22、tring。如果声明一个定长字符串变量,形如 Dim str As String *字符个数。故 D选项正确。 13 【正确答案】 C 【试题解析】 本题按运算符从高到低优先级计算: *(,所以应该是 396)*Sgn( 6)=39( 6)*( 1)=(39 6=6 ,故选 C。 14 【正确答案】 B 【试题解析】 VB 标准控件中不同控件具有不同属性,有的相同有的不同,但都具有 Name属性。故选 B。 15 【正确答案】 B 【试题解析】 标准模块文件的扩展名是 .bas,不是 .frm,故 A选项错误。一个工程中可以包含一个或多个标准模块文件,故 C选项错误。类模块文件的扩展名为 .c
23、ls,不是 .bas。故 D选项错误。 B选项正确。 16 【正确答案】 B 【试题解析】 自定义数据类型的语法结构是: Type 自定义类型名 (下标 ) As (下标 ) As End Type 其中,成员可以定义为定长的或不定长字符串,也可定义为数组。 本题中, B选项符合语法规则,故 B 选项正确。 17 【正确答案】 A 【试题解析】 在某个事件过程中定义的变量是局部变量;在窗体或标准模块中用Dim或 Private定义的变量是窗体级或模块级变量;在窗体或标准模块中用 Public定义的变量是全局变量。故选 A。 18 【正确答案】 C 【试题解析】 A选项错误原因: Sub 过程的
24、第 1个参 数 a用 Optional 关键字声明,说明为可选参数,那么后面的参数 b也必须是可选参数,用 Optional 声明。 B 选项错误原因: Sub过程无返回值,不用指明返回值数据类型。 D选项错误原因:可以用 ByVal 关键字声明变量,不能声明数组。 C选项正确。 19 【正确答案】 D 【试题解析】 文件对话框中的 Filter属性是用来指定文件列表框中显示的文件类型。属性 Filter称为过滤器,需要设置多个过滤器时可用 “管道符 |“将各项隔开。管道符前面是说明,后面是类型。本题只显示扩展名为 DOC的文件,所以 Filter属性值设置为 “(*.DOC)|*. DOC“
25、。故选 D。 20 【正确答案】 B 【试题解析】 用 Print #语句和 Write #语句都可以向文件写入数据,但输出到文件的数据的格式不同。故 B 选项错误。 用 Print # 语句写入文本文件的数据,字符串不会自动加上双引号,各数据项之间没有都好分隔,原样输入,方便阅读。适合用 Line Input # 语句读出。 用 Write # 语句写入文本文件的数据,字符串会自动加上 “双引号,并且各数据项中间用,逗号分隔,阅读起来不是很好看。适合用 Input # 语句读出。故 A、 C、D选项正确。 21 【正确答案】 D 【试题解析】 标签控件的 BackStyle属性值为 0时,标
26、签为透明的,不会遮住背景内容, BackStyle属性值为 1时,标签将覆盖背景。 22 【正确答案】 B 【试题解析】 标签主要用来显示文本信息,它所显示的内容只能用 Caption 属性来设置或修改, Caption 为标签控件的默认属性,引用时可以只写标签控件的对象名。 23 【正确答案】 C 【试题解析】 滚动条的 Value属性表示滚动框在滚动条上的当前位置,默 认值为0,即在滚动条的左端或顶端,如果 Value的值等于 Max属性的值时,则滚动框在滚动条的最右端或底端。 24 【正确答案】 D 【试题解析】 一个控件的事件过程由控件的实际名字 (Name属性 )、下划线和事件名称组
27、成,而窗体事件过程由 “Form“、下划线和事件名组成。因此,不管窗体名称是什么,窗体加载事件过程总是 Form_Load。窗体的名称即 Name属性在程序运行时不可以更改,窗体的标题即 Caption属性则可以在程序运行时更改。 25 【正确答案】 C 【试题解析】 控件数组具有相 同的名称,它们以 Index属性值作为数组元素的下标,以此来区别控件数组的各个成员。本题中,单击复选框数组中的任何一个都会调用同一个单击事件过程,因此 C选项叙述有误。在单击事件过程参数中,Index参数即是该复选框的 Index属性值。由于控件数组使用具有相同的名称且有相同的单击事件过程,因此从过程的首部无法确
28、定数组中的复选框的个数。 26 【正确答案】 B 【试题解析】 在列表框控件中, Selected 属性是一个数组,各个元素的值为 True或 False,每个元素与列表框中的一项相对应,当元素值为 True时表明选择了该项,如为 False表示未选择。 ListCount属性值是一个数组,它列出列表框中表项的数量; ListIndex 属性值表示已选中的表项的位置,表项位置由索引值指定,第一项索引值为 0,第二项为 1,以此类推; MultiSelect属性用来设置一次可以选择的表项是一项、多项、指定范围。 27 【正确答案】 A 【试题解析】 如果改变驱动器列表框的 Driv属性,则将触发
29、 Change事件。 28 【正确答案】 B 【试题解析】 图像框的 Strethc属性值为 False时,将自动放大 或缩小图像框中的图形以与图像框的大小相适应。 29 【正确答案】 D 【试题解析】 控件数组的每个元素都有一个与之关联的下标,下标值由 Index属性指定,控件数组的各元素就以这个属性来区分。 30 【正确答案】 D 【试题解析】 程序中数组元素赋值如下: 第 1行, a(1,1) 1, a(1,2) 2, a(1,3) 3, a(1,4) 4; 第 2行, a(2,1) 4, a(2,2) 5, a(2,3) 6, a(2,4) 7; 第 3行, a(3,1) 7, a(3
30、,2) 8, a(3,3) 9, a(3,4) 10; 第 4行, a(4,1) 10, a(4,2) 11, a(4,3) 12, a(4,4) 13; 要输出的元素为: a(3,3)、 a(4,3)、 a(3,4)、 a(4,4),即为 9、 12、 10、 13。因此答案为 D。 31 【正确答案】 B 【试题解析】 由 Rnd函数生成的随机数在 0 1之间,包括 0但不包括 1,所以有可能产生 0,与题目要求的两位的整数不符。所以语句 a(i) Int(Rnd * 100) 1需要修改为 a(i) Int(Rnd * 90) 10,这样就能正确产生两位 的整数了。 32 【正确答案】
31、B 【试题解析】 Mod 是取模运算符,即求运算两数相除的余数。每次循环中 X的值分别是 1,1,3,5,7,9,11,13,15,17,19,其中与 3求模为 0的数有 3、 9、 15共 3个,因此 n n 1会执行 3次,最终 n 3。 33 【正确答案】 A 【试题解析】 KeyPress 事件的参数 KeyAscii 为所按键的 ASCII 码, Chr函数把这个 ASCII码转换为对应的字符,回车键的 ASCII码值是 13。程序中 KeyPress过程的功能是统计 Text1文本框中输 入的字符串中 A Z之间字母的个数,按回车键后把个数值显示在 Text2文本框中。在 Text
32、1文本框中输入 “Visual Basic 6.0“,其中 A Z的字母有 2个,按回车键后, Text2文本框中将会显示 2。 34 【正确答案】 B 【试题解析】 数组默认下标为 0,因此数组 a中的元素 a(0) 12, a(1) 3, a(2) 8, a(3) 5, a(4) 10, a(5) 3, a(6) 5, a(7) 9, a(8) 2, a(9) 4。 k 1时, fun(a(k 1), a(k)即 fun(a(0), a(1), 即 fun(12,3),过程中 x x y 12 3 9 3 6 3 3 3 0,函数返回 0; k 2时, fun(a(k 1), a(k)即
33、fun(a(1), a(2),即 fun(3,8), x y不成立,函数直接返回 3; k 3时, fun(a(k 1), a(k)即 fun(a(2), a(3),即 fun(8,5),过程中 x x y 85 3,函数返回 3; k 4时, fun(a(k 1), a(k)即 fun(a(3), a(4),即 fun(5,10), x y不成立,函数直接返回 5; k 5时, fun(a(k 1), a(k)即 fun(a(4), a(5),即 fun(10,3),过程中 x x y 10 3 7 3 4 3 1,函数返回 1; k 6时, fun(a(k 1), a(k)即 fun(a(
34、5), a(6),即 fun(3,5), x y不成立,函数直接返回 3; k 7时, fun(a(k 1), a(k)即 fun(a(6), a(7),即 fun(5,9), x y不成立,函数直接返回 5; k 8时, fun(a(k 1), a(k)即 fun(a(7), a(8),即 fun(9,2),过程中 x x y 92 7 2 5 2 3 2 1,函数返回 1; k 9时, fun(a(k 1), a(k)即 fun(a(8), a(9),即 fun(2,4), x y不成立,函数直接返回 2; 因此程序输出 0 3 3 5 1 3 5 1 2 。 35 【正确答案】 C 【试
35、题解析】 程序中 Mid 函数从输入字符串左边开始逐一取一个字符转换为大写,并连接到上次取出的字符的前面,因此文本框中显示的将是原输入字符串转换为大写的并倒序排列的字符串。所以 C正确。 36 【正确答案】 D 【试题解析】 由程序可知 s 1*(1+1)+2*(2+1)+3*(3+1)+4*(4+1).+N*(N+1),因此选项 D正确。 37 【正确答案】 C 【试题解析】 程序通过 For循环为数组 a赋值,具体值如下: a(1,1) 1 1 2, a(1,2) 2 1 3, a(1,3) 3 1 4; a(2,1) 2 2 4, a(2,2) 4 2 6, a(2,3) 6 2 8;
36、a(3,1) 3 3 6, a(3,2) 6 3 9, a(3,3) 9 3 12; 程序要计算指定数组元素的和,这几个元素是 a(1,3), a(2,2), a(3,1),所以 s 4 6 6 16。 38 【正确答案】 C 【试题解析】 变量 a初始化为含 4个元素的数组,由于有 Option Base 1语句,因此数组下标下界为 1,元素值 a(1) a(4)依次为 1、 2、 3、 4。 For循环中从第 4个元素开始对 4个元素值运算后累加,运算方法是第 1个元素值乘 10 的 0次方,第 2个元素值乘 10的 1次方,第 3个元素值乘 10的 2次方,第 4个元素值乘 10的 3次
37、方。即 4 30 200 1000 1234。 39 【正确答案】 C 【试题解析】 过程定义语句中第 1个参数是数组,调用是实参应该是一个数组变量或元素,第 2个参数是整型变量。过程中 LBound函数获取了数组下标的下限, UBound函数获取了数组下标的上限,在 For i s to f 语句的循环中就可以访问数组中的各个元素。本过程是用 Sub 定义的过程不需要返回值。程序中找到的最大值由参数 Max返回,因为它是按址传递的参数,它的值会带给实参。因此 C选项的说法错误。 40 【正确答案】 B 【试题解析】 外层 Do循环结束条件是 n10, n 初值为 1,每次加 2,循环体中每次循环 n的值为 3、 5、 7、 9、 11,值 变化 5次,因此外层 Do 循环执行次数为 5次。