1、2009年 9月国家二级( VisualBasic)笔试真题试卷及答案与解析 1 下列数据结构中,属于非线性结构的是 ( A)循环队列 ( B)带链队列 ( C)二叉树 ( D)带链栈 2 下列数据结构中,能够按照 “先进后出 ”原则存取数据的是 ( A)循环队列 ( B)栈 ( C)队列 ( D)二叉树 3 对于循环队列,下列叙述中正确的是 ( A)队头指针是固定不变的 ( B)队头指针一定大于队尾指针 ( C)队头指针一定小于队尾指针 ( D)队头指针可以大于队尾指针,也可以小于队尾指针 4 算 法的空间复杂度是指 ( A)算法在执行过程中所需要的计算机存储空间 ( B)算法所处理的数据量
2、 ( C)算法程序中的语句或指令条数 ( D)算法在执行过程中所需要的临时工作单元数 5 软件设计中划分模块的一个准则是 ( A)低内聚低耦合 ( B)高内聚低耦合 ( C)低内聚高耦合 ( D)高内聚高耦合 6 下列选项中不属于结构化程序设计原则的是 ( A)可封装 ( B)自顶向下 ( C)模块化 ( D)逐步求精 7 软件详细设计产生的图如下: 该图是 ( A) NS图 ( B) PAD图 ( C)程 序流程图 ( D) E, R图 8 数据库管理系统是 ( A)操作系统的一部分 ( B)在操作系统支持下的系统软件 ( C)一种编译系统 ( D)一种操作系统 9 在 E-R图中,用来表示
3、实体联系的图形是 ( A)椭圆形 ( B)矩形 ( C)菱形 ( D)三角形 10 有三个关系 R, S和 T如下:其中关系 T由关系 R和 s通过某种操作得到,该操作为 ( A)选择 ( B)投影 ( C)交 ( D)并 11 以下变量名中合法的是 ( A) x21 ( B) print ( C) str_n ( D) 2x 12 把数学表达式 (5x+3)/(2y-6)表示为正确的 vB表达式应该是 ( A) (5x+3) (2y-6) ( B) x*5+3 2*Y-6 ( C) (5*x+3)(2*Y-6) ( D) (x*5+3) (Y*2-6) 13 下面有关标准模块的叙述中,错误的
4、是 ( A)标准模块不完全由代码组成,还可以有窗体 ( B)标准模块中的 Private过程不能被工程中的其他模块调用 ( C)标准模块的文件扩展名为 bas ( D)标准模块中的全局变量可以被工程中的任何模块引用 14 下面控件中,没有 Caption属性的是 ( A)复选框 ( B)单选按钮 ( C)组合框 ( D)框架 15 用来设置文字字体是否斜体的属性是 ( A) FontUnderline ( B) FontBold ( C) FontSlope ( D) Fontltalic 16 若看到程序中有以下事件过程,则可以肯定的是,当程序运行时 Private Sub Click_Mo
5、useDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Print”VB Program” End Sub ( A)用鼠标左键单击名称为 “Commandl”的命令按钮时,执行此过程 ( B)用鼠标左键单击名称为 “MouseDown”的命令按钮时,执行此过程 ( C)用鼠标右键单击名称为 “MouseDown”的控件时,执行此过程 ( D)用鼠标左键或右键单击名称为 “Click”的控件时,执行此过程 17 可以产生 30一 50(含 30和 50)之间的随机整数的表达式是 ( A) Int(Rnd*21+
6、30) ( B) Int(Rnd*20+30) ( C) Int(Rnd*50-Rnd$30) ( D) Int(Rnd*30+50) 18 在程序运行时,下面的叙述中正确的是 ( A)用鼠标右键单击窗体中无控件的部分,会执行窗体的 Form L0ad事件过程 ( B)用鼠标左键单击窗体的标题栏,会执行窗体的 Form_Click事件过程 ( C)只装入而不显示窗体,也会执行窗体的 Form Load事件过程 ( D)装入窗体后,每次显示该窗体时,都会执行窗体的 Form_Click事件过程 19 窗体上有名称为 Cornmandl的命令按钮和名称为 Textl的文本框 Private Sub
7、 Commandl_Click() Textl Text=“程序设计 ” nxt1 SetFocus End Sub Private Sub Textl_GotFocus() Textl Text=”等级考试 ” End Sub 运行以上程序,单击命令按钮后 ( A)文本框中显示的是 “程序设计 ”,且焦点在文本框中 ( B)文本框中显示的是 “等级考试 ”,且焦点在文本框中 ( C)文本框中显示的是 “程序设计 ”,且焦点在命令按钮上 ( D)文本框中显示的是 “等级考试 ”,且焦点在命令按钮上 20 设窗体上有名称为 Optionl的单选按钮,且程序中有语句: If Optionl Val
8、ue=True Then 下面语句中与该语句不等价的是 ( A) If Optionl Value Then ( B) If Optionl=True Then ( C) If Value=True Then ( D) If Optionl Then 21 设窗体上有 1个水平滚动条,已经通过属性窗口把它的 Max属性设置为 l, Min属性设置为 100。下面叙述中正确的是 ( A)程序运行时,若使滚动块向左移动,滚动条的 Value属性值就增加 ( B)程 序运行时,若使滚动块向左移动,滚动条的 Value属性值就减少 ( C)由于滚动条的 Max属性值小于 Min属性值,程序会出错 (
9、D)由于滚动条的 Max属性值小于 Min属性值,程序运行时滚动条的长度会缩为一点,滚动块无法移动 22 有如下过程代码: Sub var_dim() Static numa AS Integer Dim numb As Integer numa=Duma+2 numb=numb+1 print numa; mumb End Sub 连续 3次调用 vardim过程,第 3次调用时的输出是 ( A) 2 1 ( B) 2 3 ( C) 6 1 ( D) 6 3 23 在窗体上画 1个命令按钮,并编写如下事件过程: Private Sub Command1-Click() For i=5 To
10、1 Step-0 8 Print Int(i); Next i End Sub 运行程序,单击命令按钮,窗体上显示的内容为 ( A) 5 4 3 2 1 1 ( B) 5 4 3 2 1 ( C) 4 3 2 1 1 ( D) 4 4 3 2 1 l 24 在窗体上画 1个命令按钮,并编写如下事件过程 i Private Sub CommandlClick() Dim a(3, 3) For m=1 T0 3 F0r n=1 To 3 If n=m Or n=4-m Then a(m, n)=m+n Else a(m, n): 0 End If Print a(m, n); Next n Pr
11、im Next m End Sub 运行程序,单击命令按钮,窗体上显示的内容为 ( A) 2 0 0 ( B) 2 0 4 ( C) 2 3 0 ( D) 2 0 0 25 设有以下函数过程: Function fun(a As Integer, b As Integer) Dim c As Integer If ab a=a-b Wend fun=a End Function 在调试时发现函数是错误的。为使函数能产生正确 的返回值,应做的修改是 ( A)把 a=a-b改为 a=b-a ( B)把 a=a-b改为 a=a b ( C)把 While ab改为 While ab改为 While
12、a=b 30 下列关于通用对话框 CommonDialogl的叙述中,错误的是 ( A)只要在 “打开 ”对话框中选择了文件,并单击 “打开 ”按钮,就可以将选中的文件打开 ( B)使用 CommonDiatogl ShowColor方法,可以显示 “颜色 ”对话框 ( C) CancelError属性用于控制用户单击 “取消 ”按钮 关闭对话框时,是否显示出错警告 ( D)在显示 “字体 ”对话框前,必须先设置 CommonDialogl的 Flags属性,否则会出错 31 在利用菜单编辑器设计菜单时,为了把组合键 “Ah+x”设置为 “退出 (x)”菜单项的访问键,可以将该菜单项的标题设置
13、为 ( A)退出 (X ) ( B)退出 ( X) ( C)退出 (x#) ( D)退出 (#x) 32 在窗体上画 1个命令按钮和 1个文本框,其名称分别为 Commandl和 Textl,再编写如下程序: Dim 88 As String Private Sub TextlKeyPress(KeyAscii As Integer) If Chr(KeyAscii)=75 Thell Level=“B” Else s=60 Then Level=“C” Else Level=“D” End 下面用 Seleet Case结构改写上述程序,使两段程序所实现的功能完全相同。请填空。 Select
14、 Case S Case【 】 =90 Level=“A” Case 75 To 89 Level=”B” Case 60 To 74 Level=”C” Case【 】 Level=”D” 【 】 2009年 9月国家二级( VisualBasic)笔试真题试卷答案与解析 1 【正确答案】 C 【试题解析】 根据数据结构中各数据元素之间前后关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。线性结构表示数据元素之间为一对一的关系,非线性结构表示数据元素之间为一对多或者多对一的关系。根据各种结构的定义知二叉树是一种非线性结构。 2 【正确答案】 B 【试题解析】 栈是限定只在一端
15、进行插入与删除的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。栈 顶元素总是后被插入的元素,也是最先被删除的元素;栈底元素总是最先被插入的元素,也是最后才能被删除的元素。栈是按照 “先进后出 ”或 “后进先出 ”的原则组织数据的。 3 【正确答案】 D 【试题解析】 循环队列是将顺序队列首尾相连形成的,随着插入元素或删除元素的进行,其队头指针及队尾指针是在不断变化的,有时可能会出现队头指针大于队尾指针的情况,也可能是队尾指针大于队头指针,故答案为 D)。 4 【正确答案】 A 【试题解析】 算法的空间复杂度是指:算法执行过程中所需的存储空间。一个算法所占用的存储 空间包括算法程序所占的
16、空间、输入的初始数据所占的存储空问以及算法执行过程中所需要的额外空间。 5 【正确答案】 B 【试题解析】 模块划分应考虑的因素包括模块之间的耦合和内聚。一般来说,要求模块之间的耦合尽可能地低,即模块尽可能独立,要求模块的内聚程度尽可能地高。即遵循高内聚、低耦合的原则。 6 【正确答案】 A 【试题解析】 模块化、白顶向下、逐步求精都是结构化程序设计的原则;可封装是面向对象程序设计原则。 7 【正确答案】 C 【试题解析】 Ns图是由若干基本框图构成的流 程图,其特点是没有流程线;PAD图即问题分析图 (Pmbm A-nalysis Diagram),它是一种由左往右展开的二维树型结构;程序流
17、程图用于描述问题解决的过程和步骤,其中方框表示处理步骤,菱形框表示逻辑判断,箭头表示控制流向; ER图即实体一联系图 (Entity Relationship Diagram),用来描述现实世界的概念模型,构成元素有实体、属性和联系,分别用矩形、椭圆形和菱形表示。本题答案为 C)。 8 【正确答案】 B 【试题解析】 数据库管理系统是指位于用户与操作系统之间的数据 管理软件。数据库管理系统是为数据库建立、使用和维护而配置的软件。 9 【正确答案】 C 【试题解析】 ER图中用矩形表示实体 (等同于表 ),用椭圆形表示实体的属性(等同于表中字段 ),用菱形表示实体关系 (等同于外键 )。 10
18、【正确答案】 D 【试题解析】 两个相同结构关系的并是由属于这两个关系的元组组成的集合。 11 【正确答案】 C 【试题解析】 变量命名应遵循以下规则: 名字只能由字母、数字和下划线组成; 名字的第一个字符必须是英文字母,最后一个字符可以是类型说明符; 名字 的有效字符为 255个; 不能用 Visual Basic的保留字作变量名。但可以把保留字嵌入变量名中;同时。变量名也不能是末尾带有类型说明符的保留字。变量名字中不应该出现 “一 ”符号,所以 A)选项错误; print是 Visual Basic中的保留字,所以 B)选项也不符合变量命名规则;选项 D)中 2x的第一个字符不是英文字母。
19、所以也不符合变量命名规则。 12 【正确答案】 D 【试题解析】 VB中的数乘应用 “*”来连接,浮点除法用 “ ”连接。选项。 A)中应该将 5x、 2y改成 5*x和 2*y;选项 B)中 5*x+3是一个整体被除数,所以应该用小括号,否则整个表达式的运算优先级顺序将改变;选项 C)中两个表达式间应该用 “ ”连接。 13 【正确答案】 A 【试题解析】 模块有窗体模块、标准模块和类模块三种类型,其中标准模块可以包含类型、常数、变量、外部过程和公共过程的公共的或模块级的声明,其文件扩展名为 bas。标准模块中可以引用窗体但不包含窗体,所以 A)选项错误。 14 【正确答案】 C 【试题解析
20、】 组合框吉有 Name、 HeiSt、 Width、 Top、 Left、 Enabled、Visible、 Index、 List、 L,istlndex、 ListCoum、 Selected、 Sorted、 Text、MultiSelect和 Style等属性,但没有 Caption属性。 15 【正确答案】 D 【试题解析】 FomUnderline属性是表示正文字体是否带有下划线; FontBold属性是表示正文字体是否是粗体;没有 FontSlope属性; Fontltalic属性是表示正文字体是否是斜体。所以正确答案为 D)。 16 【正确答案】 D 【试题解析】 在鼠标单击
21、事件过程中, Button属性 值为 1时代表按下鼠标左键,值为 2时代表按下鼠标右键,题中所述代码中没有定义 Button值,所以单击鼠标左键或者右键都能触发 MouseDown事件;代码中控件名称为 Click,所以答案为D)。 17 【正确答案】 A 【试题解析】 生成某个范围内的随机整数,计算公式为: Int(上界 -下界+1)*Pmd+下界 ),题目中上界为 30,下界为 50,所以正确答案为 A)。 18 【正确答案】 C 【试题解析】 当加载窗体时,系统自动触发该窗体的 Load事件;当窗体成为一个活动窗口时,触发 Activate事件;单击窗体空白处时,会触发窗体 Click事
22、件;选项 A)触发的是 Form_Click事件;选项 B)用鼠标左键单击窗体的标题栏,不会触发 Form_Click事件过程;选项 D)触发的是 Form_Activate事件过程。所以正确答案为 C)。 19 【正确答案】 B 【试题解析】 运行程序后单击命令按钮,首先执行命令按钮 Commandl_Click代码的内容,即 Textl文本框获得焦点并显示内容 “程序设计 ”;当文本框获得焦点后,程序执行文本框的 Textl_GetFocus事件代码。即文本框显示内容 “等级考试 ”,覆盖了原来文本框的内容,同时文本框获得焦点。 20 【正确答案】 C 【试题解析】 If语句中,如果省略其
23、判断条件,则默认为 The时, Then后面的语句成立,所以选项 A)的形式与题目语句等价; Option1的默认属性为 Value,所以选项 B)中的 Option1=true与题中语句 Optionl Value=True等价;同理。选项D)省略了 If语句判断条件以及 Option1的默认属性,也是与原语句等价的。 21 【正确答案】 A 【试题解析】 因为 MaxMin,最大值将分 别被嚣于水平滚动条的最左端,所以程序运行时,水平滚动条左边为 100,右边为 1,滚动条向左移动,滚动条的Value属性值就增加,所以正确答案为 A)。 22 【正确答案】 C 【试题解析】 由题意可知,
24、numa是静态变量,所以 3次调用过程该变量值是累加的,而 numb是动态变量,每次调用过程,该变量值都被初始化为 O,所以 3次调用该过程后输出的结果是 6和 1。 23 【正确答案】 A 【试题解析】 题中所述程序是一个初值为 5,步长为 -0 8,终值为 1的循环过程。第一次执行时,循环变量 i_5, Print Int(i)的输出结果为在窗体上打印数字5,其中 Int()函数取不大于 i的最大整数;第二次循环, i=4 2,输出结果为 4;第三次、第四次输出结果分别为 3和 2;第五次循环, i_1 8,输出结果为 1;第六次循环, i=1,输出结果为 l。第六次循环后跳出循环,整个程
25、序结束。 24 【正确答案】 B 【试题解析】 当 m; 1时,如果 n=1,满足条件 m=n,执行 Then语句 a(1, 1):m+n=2;当 n=2时,不满足 语句中的条件,执行 Else语句 a(1, 2)=0;当 n=3时,满足 If条件 n=4-m,执行 Then语句 a(1, 3)=m+n=4。同理可得,当 m; 2时,得到的结果为 0, 4, 0;当 m=3时,结果为 4, 0, 6。 25 【正确答案】 B 【试题解析】 题中所述函数过程中, 语句用来保证数 a大于数 b,如果数 a小于数 b,则将两者的值交换。取模运算符 Mod用来求余数,即结果是数 c整除数b所得的余数。
26、 c等于 a值的累加,其值在逐步增大, c当然能整除 a;而循环结束的条件为 c是否能整除 b,当刚好整除时跳出循环体,所以 c的值能整除 a和 b的最小值,因此 Do Loop循环语句运行的结果为 a和 b的最小公倍数。 26 【正确答案】 C 【试题解析】 flag变量为静态变量;第一次执行 Timerl_Timer事件过程, flag=-1,文本框为绿色;第二次执行 TimerlTimer事件过程, flag=1。文本框为红色;第三次执行 Timerl_Jimer事件过程, flag=-1,文本框为绿色;依次类推,每执行一次,文本框的颜色变换一次,时间间隔为 5秒,所以正确答案为 C)。
27、 27 【正确答案】 D 【试题解析】 根据题意,最初的算术表达式是从 2。累加到 2102。即一共有 11项相加, s的初值为 l(即 20)因此还 要循环累加 1O,所以应将循环变量 k的值改为从1到 10;另外,循环体中 s的作用就是累加,以 s=1为例,应该是先累加 s,再累乘改变 a的值,所以要将 s=s+a和 a=a*2的语句交换顺序。只有同时修改上述两项,即选项 (B)和选项 C)所示时,才能得到正确结果,所以选择答案 D)。 28 【正确答案】 B 【试题解析】 按照局部变量覆盖全局变量的原则, CommandlClick中的 x变量为局部变量,其初值为 0; y变量为全局变量
28、,其初值为 20 x、 y均加 100得到答案 B)。 29 【正确答案】 D 【 试题解析】 当 a=b时,余数应该为 0,而不是 a,程序执行结果会跳出循环使fun=a,应该继续循环,正确答案为 D)。 30 【正确答案】 A 【试题解析】 “打开 ”对话框的功能是由用户从目录中选择一个将要打开的文件,但 “打开 ”对话框并不能真正打开一个文件,它只提供了一个打开文件的用户界面,供用户选择所要打开的文件,所以正确答案为 A)。 31 【正确答案】 B 【试题解析】 如果在菜单标题的某个字母前加一个 “ ”符号,那么该字母就成了热键字母,并且在窗体上显示时,该字母有下划线;在操作时同时 按
29、Alt和该字母,就可以选择这个菜单选项,所以正确答案为 B)。 32 【正确答案】 D 【试题解析】 题目中程序是将 ss字符串进行反向排列,并放到 m中去。其中Number空格后的 100被当成字符串来处理,最后结果是将 “Number 100”反向排列,并通过 UCase()函数将所有字母转换成大写,得到 001 REBM1N。 33 【正确答案】 B 【试题解析】 Timer1中用了一个循环,只要圆没有到最右边的直线 Line2处,这个圆就会一直向右移动。但因为 Timerl中本来已经通过设置。 Interval属性来控制循环, Timer事件中的循环重复了,所以答案为 B)。 34 【
30、正确答案】 C 【试题解析】 以 Output模式打开文件时,如果文件名指定的文件不存在,则会自动建立一个文件,系统不会显示错误信息,所以选项 A)是错误的;以 Append模式打开文件时,是从文件当前结束开始写入数据,且保留原有数据。但是不能读数据,所以选项 B)是错误的;随机文件是以记录为单位,有一组固定长度的记录顺序排列而成,并且给每个记录赋予了记录号以便查找,所以选项 c)是正确的;随机文件和顺序文件的打开语句和 打开方式是不同的,所以选项 D)是错误的。 35 【正确答案】 A 【试题解析】 错误原因:每一次删除列表框满足项,列表框的项目数目就会相应地减少,所以就出现了漏删内容,如果
31、把循环变量 k改成从 Lis他 ListCout-1到0,从最后一个项目往第一个项目查找,满足条件就删除该项目,从而不会出现遗漏现象,所以正确答案为 A)。 36 【正确答案】 14 【试题解析】 在二叉树中,度为 O的结点数是度为 2的结点数加 1,故二叉树中结点数的总和为度为 O的结点数、度为 1的结点数及度为 2的结点数三者相加,得出结果为 14个结点。 37 【正确答案】 逻辑判断 【试题解析】 绘制流程图时事实描述用椭圆形表示、行动方案用矩形表示、问题用菱形表示、箭头代表流动方向。 38 【正确答案】 需求分析 【试题解析】 需求分析阶段的工作主要包括需求获取、需求分析、编写需求规格
32、说明书和需求评审等 4方面,产生的主要文档为软件需求规格说明书,它可以为用户、分析人员和设计人员之间的交流提供方便,直接支持目标软件系统的确认,也可以作为控制软件开发进程的依据。 39 【正确答案】 多对多 【试题解析】 一 名学生可以选择多门课程,一门课程也可以由多名学生选择,因此是多对多的联系。 40 【正确答案】 身份证号 【试题解析】 主关键字是表中区别不同的记录的标识,在该表中只有身份证号能具有这个作用,所以用其作为主关键字。 41 【正确答案】 12,10 【试题解析】 函数 fy中的参数 a是按地址传递,函数 fx中的参数 a是按值传递,所以执行 z=fy(y)后, y的值为 1
33、0, z的值为 10, x的值为 3,而执行 fx(fx(x)后, fx(fx(x)的为 12。 42 【正确答案】 Number,s 【试题解析】 EoF函数的格式为 EOF(文件号 ),用于测试文件指针是否到达文件末尾,因此第 14个空应填文件号 Number; Line函数返回文件中一行的数据,要将文件中的内容在文本框中显示,就要用 Textl Text连接上 s再连接回车换行,所以第 15个空应该填文件中的内容 s。 43 【正确答案】 Text1 Text,Textl Text,Form2 【试题解析】 lsNumeric是一个字符串函数,其参数是一个字符串或者数字,返回值是 个布尔
34、值,如果这个参数是纯数字组成,将会返回 Trile,否 则将返回False,在这里作用是为了检验文本框中输入的是否为纯数据即数值数据,所以第6个空应该填 Textl Text;在判断完成以后要将 Text1中的文本内容转化为数字,因此第 7个空也应填 Textl Text;最后输入的结果要在 Form2中显示出来,所以第 8个空应该填 Form2,表示利用的是 Form2的 Print方法。 44 【正确答案】 Is,Else,End Select 【试题解析】 在 Select判断语句中,如果是判断区间变量值,可以用 “表达式 To表达式 ”的形式;如果不是判断区间变量值,则 关系运算表达式前面要加上 Is,所以第 9个空应该为 Is; Select判断其余的情况应该用 Case: Else来表示,所以第10个空为 Else;情况语句以 Select Case开头,以 End Select结束,所以第 11个空应该填 End Select。