1、国家二级( VB)机试模拟试卷 28及答案与解析 一、选择题 1 以下合法的 VB变量名是 ( )。 ( A) _x ( B) 2y ( C) a#b ( D) x_1_x 2 以下关于 VB特点的叙述中,错误的是 ( )。 ( A) VB中一个对象可有多个事件过程 ( B) VB应用程序能以编译方式运行 ( C) VB应用程序从 Form_Load事件过程开始执行 ( D)在 VB应用程序中往往通过引发某个事件导致对对象的操作 3 有如下语句序列: Dim a, b As Integer Print a Print b 执行以上语句序列,下列叙述中错误的是 ( )。 ( A)输出的 a值是
2、0 ( B)输出的 b值是 0 ( C) a是变体类型变量 ( D) b是整型变量 4 以下关于控件数组的叙述中,错误的是 ( )。 ( A)各数组元素共用相同的事件过程 ( B)各数组元素通过下标进行区别 ( C)数组可以由不同类型的控件构成 ( D)各数组元素具有相同的名称 5 以下关于 VB文件的叙述中,正确的是 ( )。 ( A)标准模块文件的扩展名是 .frm ( B) VB应用程序可以被编译为 .exe文件 ( C)一个工程文 件只能含有一个标准模块文件 ( D)类模块文件的扩展名为 .bas 6 以下自定义数据类型的语句中,正确的是 ( )。 ( A) Type student
3、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 String age As Integer End student ( D) Type ID As String * 20 name As String * 10 age As Integer End Type student 7
4、设: a 12, b 5, c 7,表达式 x (ac a Mod b) Int(13 / 5)的值是 ( )。 ( A) 5 ( B) 6 ( C) 7 ( D) 9 8 在程序中要使用 Array函数给数组 arr赋初值,则以下数组变量定 义语句中错误的是 ( )。 ( A) Static arr ( B) Dim arr(5) ( C) Dim arr() ( D) Dim arr As Variant 9 以下关于变量作用域的叙述中错误的是 ( )。 ( A)在窗体模块的声明部分声明的 Private变量,其作用域是窗体内的所有过程 ( B)在标准模块的声明部分声明的 Private变
5、量,其作用域是模块内的所有过程 ( C)在窗体模块的声明部分声明的 Pubilc变量,其作用域是本窗体的所有过程 ( D)在标准模块的声明部分声明的 Pubilc变量, 其作用域是应用程序的所有过程 10 下面关于文件叙述中错误的是 ( )。 ( A) VB数据文件需要先打开,再进行处理 ( B)随机文件每个记录的长度是固定的 ( C)不论是顺序文件还是随机文件,都是数据文件 ( D)顺序文件的记录是顺序存放的,可以按记录号直接访问某个记录 11 若要使文本框能够输入多行文本,应该设置的属性是 ( )。 ( A) MultiLine ( B) WordWrap ( C) ScrollBars
6、( D) AutoSize 12 以下关于命令按钮的叙述中正确的是 ( )。 ( A)命令按钮上可以显示图片 ( B)命令按钮能够分别响应单击、双击事件 ( C)程序运行时,不能改变命令按钮上的文字 ( D)若命令按钮的 Cancel属性设为 True,焦点在其他控件上时,按下回车键与单击该按钮的效果相同 13 窗体上有一个名称为 VScroll1的垂直滚动条,要求程序运行时,滚动块的初始位置在最下端,应该使 VScroll1.Value的值等于 ( )。 ( A) VScroll1.LargeChange ( B) VScroll1.SmallChange ( C) VScroll1.Max
7、 ( D) VScroll1.Min 14 设窗体名称为 frm1。以下叙述中正确的是 ( )。 ( A)运行程序时,能够加载窗体的事件过程是 frm1_Load ( B)运行程序时,能够加载窗体的事件过程是 Form1_Load ( C)程序运行中用语句: frm1.Name “New“ 可以更改窗体名称 ( D)程序运行中用语句: frm1.Caption “新标题 “ 可以改变窗体的标题 15 设运行程序时弹出的菜单如图所示 .关于该菜单,以下叙述中错误的是 ( )。*41 ( A)菜单中能够显示分隔线 是因为该菜单项的标题为 “ “ ( B)分隔线对应的菜单项的 Name属性可以为空
8、( C)退出菜单项的有效性属性被设为 False ( D)使用 PopupMenu方法能够显示如图所示的菜单 16 窗体上有一个列表框控件 List1。以下叙述中错误的是 ( )。 ( A) List1中有 ListCount 1个列表项 ( B)当 List1.Selected(i) True,表明第 i项被选中 ( C)设置某些属性,可以使列表框显示多列数据 ( D) List1.Text的值是最后一次被选中的列表项文本 17 以下 关于单选按钮和复选框的叙述中,正确的是 ( )。 ( A)单选按钮和复选框都能从多个选项中选择一项 ( B)单选按钮和复选框被选中时,选中控件的 Value属
9、性值为 True ( C)是否使用框架控件将单选按钮分组,对选项没有影响 ( D)是否使用框架控件将复选框分组,对选项没有影响 18 窗体的 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事件发生时,系统自动产生的
10、 ( D) MouseUp是鼠标向上移动时触发的事件 19 窗体上有一个名称为 CD1的通用对话框,一个名称为 Command1的命令按钮,相应的事件过程如下: Private Sub Command1_Click() CD1.Filter “All File|*.*|Text File|*.txt|Word|*.Doc“ CD1.FilterIndex 2 CD1.FileName “E: Test.ppt“ CD1.InitDir “E: “ CD1.ShowOpen End Sub 关于上述程序,以下叙述中正确的是 ( )。 ( A)初始过滤器为 “*.*“ ( B)指定的初始目录为 “
11、E: “ ( C)以上程序代码实现打开文件的操作 ( D)由于指定文件类型是 .ppt,所以导致打开文件的操作失败 20 编写如下程序: Private Sub Command1_Click() Dim i As Integer, j As Integer n InputBox(“输入一个大于 1的正整数 “) For i 2 To n For j 2 To Sqr(i) If i Mod j 0 Then Exit For Next j If jSqr(i)Then Print i Next i End Sub 该程序的功能是 ( )。 ( A)判断 n是否为素数 ( B)输出 n以内所有的
12、奇数 ( C)输出 n以内所有的偶 数 ( D)输出 n以内所有的素数 21 以下程序的功能是随机产生 10个两位的整数: Option Base 1 Private Sub Command1_Click() Dim a(10)As Integer Dim i As Integer Randomize For 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
13、* 90) 10 ( C) a(i) Int(Rnd * 100) 10 ( D) a(i) Int(Rnd * 101) 22 在窗体上画一个名称为 Command1的命令按钮,编写如下事件过程: Private Sub Command1_Click() n 0 For i 0 To 10 X 2 * 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 23 窗体上有名称为 Command1的命令按钮,名称分别为 Label1、 Lab
14、el2、 Label3的标签。编写如下程序: Private x As Integer Private Sub Command1_Click() Static y As Integer Dim z As Integer n 5 z z n y y n x x y Label1 x Label2 y Label3 z End Sub 运行程序,连续 3次单击命令按钮后, 3个标签中分别显示的是 ( )。 ( A) 5 5 5 ( B) 15 10 5 ( C) 15 15 15 ( D) 30 15 5 24 命令按钮 Command1的事件过程如下: Private Sub Command1_
15、Click() Dim arr(5, 5)As Integer Dim i As Integer, j As Integer For i 1 To 4 For j 2 To 4 arr(i, j) i j Next j Next i Print arr(1, 3) arr(3, 4) End Sub 执行上述过程,输出结果是 ( )。 ( A) 6 ( B) 7 ( C) 11 ( D) 12 25 现有程序如下: Option Base 1 Private Sub Form_Click() Dim x(5, 6)As Integer, y(5)As Integer For i 1 To 5
16、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, 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)程序有错,数组下标
17、越界 ( C) y数组中保存的是 x数组每行数据之和 ( D) x数组中数据的取值范围是 1 10 26 窗体上有一个名称为 Label1的标签;一个名称为 Timer1的计时器,其 Enabled和 Interval属性分别为 True和 1000。编写如下程序: 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)依
18、次显示字符 “A“、 “B“、 “C“、 “D“各一次 ( C)每隔 1秒显示字符 “A“一次 ( D)每隔 1秒依次显示 26个英文字母中的一个 27 窗体上有一个名称为 Command1的命令按钮,一个名称为 Text1的文本框。编写如下程序: Private Sub Command1_Click() Dim x As Integer x Val(InputBox(“输入数据 “) Text1 Str(x fun(x) fun(x) End Sub Private Function fun(ByRef n As Integer) If n Mod 3 0 Then n n n Else n
19、 n * n End If fun n End Function 对于上述程序,以下叙述中错误的是 ( )。 ( A)语句 fun n 有错,因为 n是整型, fun没有定义类型 ( B)运行程序 ,输入值为 5时,文本框中显示 655 ( C)运行程序,输入值为 6时,文本框中显示 42 ( D) ByRef表示参数按址传递 28 设工程文件中包名称分别为 Form1、 Form2的两个窗体,且 Form1的菜单属性设置如下: 窗体 Form1中的程序如下: Dim Flag As BooleanPrivate Sub Form_Load() Flag TrueEnd SubPrivate
20、Sub mnu1_Click(index As Integer) If Index 1 Then If Flag True Then Form2.show mnu1(1).Caption “隐藏窗体 2“ Flag False Else Form2.Hide mnu1(1).Caption “显示窗体 2“ Flag True End If End If If Index 2 Then EndEnd Sub关于上述程序,以下叙述中错误的是 ( )。 ( A) Index属性的值可以用来区分控件数组元素 ( B) Index为 1的菜单项的标题可能会改变 ( C)两个名称均为 Mnu1的菜单项构
21、成一个控件数组 ( D)语句 Form2.Hide将 Form2卸载 29 有如下程序: 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循环执行的次数为 ( )。 ( A) 4 ( B) 5 ( C) 7 ( D) 10 30 以下过程的功能是从数组中寻找最大值: Private
22、 Sub FindMax(a()As Integer, ByRef Max As Integer) Dim s As Integer, f As Integer Dim i As Integer s LBound(a) f UBound(a) Max a(s) For i s To f If a(i)Max Then Max a(i) Next End Sub 以下关于上述过程的叙述中,错误的是 ( )。 ( A)语句 Call FindMax(a, m)可以调用该过程,其中的 a是数组, m是 Integer类型变量 ( B) For循环次数等于 a数组的元素数 ( C)过程末尾应该增加一条
23、返回最大值的语句 FindMax Max ( D)参数 Max用于存放找到的最大值 31 下列叙述中正确的是 ( A)算法的效率只与问题的规模有关,而与数据的存储结构无关 ( B)算法的时 间复杂度是指执行算法所需要的计算工作量 ( C)数据的逻辑结构与存储结构是一一对应的 ( D)算法的时间复杂度与空间复杂度一定相关 32 下列叙述中正确的是 ( A)线性表链式存储结构的存储空间一般要少于顺序存储结构 ( B)线性表链式存储结构与顺序存储结构的存储空间都是连续的 ( C)线性表链式存储结构的存储空间可以是连续的,也可以是不连续的 ( D)以上说法均错误 33 某二叉树共有 12个结点,其中叶
24、子结点只有 1个。则该二叉树的深度为(根结点在第 1层) ( A) 3 ( B) 6 ( C) 8 ( D) 12 34 对长度为 n的线性表作快速排序,在最坏情况下,比较次数为 ( A) n ( B) n-1 ( C) n(n-1) ( D) n(n-1)/2 35 结构化程序设计中,下面对 goto语句使用描述正确的是 ( A)禁止使用 goto语句 ( B)使用 goto语句程序效率高 ( C)应避免滥用 goto语句 ( D)以上说法均错误 36 下面不属于软件测试实施步骤的是 ( A)集成测试 ( B)回归测试 ( C)确认测试 ( D)单元测试 37 下面不属于软件需求分析阶段主要
25、工作的是 ( A)需求 变更申请 ( B)需求分析 ( C)需求评审 ( D)需求获取 38 一般情况下,当对关系 R和 S进行自然连接时,要求 R和 S含有一个或者多个共有的 ( A)记录 ( B)行 ( C)属性 ( D)元组 39 有表示公司和职员及工作的三张表,职员可在多家公司兼职。其中公司 C(公司号,公司名,地址,注册资本,法人代表,员工数),职员 S(职员号,姓名,性别,年龄,学历),工作 W(公司号,职员号,工资),则表 W的键(码)为 ( A)公司号,职员号 ( B)职员号,工资 ( C)职员号 ( D)公司号,职 员号,工资 40 设计窗体时,双击窗体上没有控件的地方,打开
26、的窗口是 ( )。 ( A)代码窗口 ( B)属性窗口 ( C)工具箱窗口 ( D)工程窗口 二、基本操作题 41 (1)在名称为 Form1的窗体上添加一个名称为 CD1的通用对话框,通过属性窗口设置 CD1的初始路径为 C:,标题为 “保存等级考试 ”,默认的文件名为 None。 注意:存盘时必须存放在考生文件夹下,工程文件名保存为 sjt1.vbp,窗体文件名保存为 sjt1 frm。 (2)在名称为Form1的窗体上设计一个菜单,要求如下 (运行时 的效果见图 )。再编写适当的事件过程,使得程序运行时,单击 “上一个菜单项可用 ”,则 “不可用菜单项 ”变为可用。要求程序中不得使用变量
27、,且只有一条语句。注意:存盘时必须存放在考生文件夹下,工程文件名保存为 sjt2 vbp,窗体文件名保存为 sjt2 frm。 三、简单应用题 42 (1)在考生文件夹下有一个工程文件 sjt3 vbp,运行情况如图所示。程序的功能是计算如下表达式的值: z=(x一 2)!+(x一 3)!+(x一 4)!+(x N)! 其中的 N和 x值通过键盘分别输入两个文本框 Text1、 Text2中。单击名称为 Command1、标题为 “计算 ”的命令按钮,则计算表达式的值,并将计算结果在名称为 Label1的标签中显示。 在窗体文件中已经给出了全部控件和程序,但程序不完整,请去掉程序中的注释符,把
28、程序中的 ?改为正确的内容。 要求:程序调试通过后,必须按照如图所示输入 N=5, x=12,然后计算 z的值,并将计算结果显示在标签 Label1中,否则没有成绩。 注意:不能修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存盘。 (2)在考生文件夹下有一个工程文件 sjt4 vbp。窗体上有名称为 Timer1的计时器控件和名称为 Label1 的标签。该程序的功能是在名称为 Label1的标签中循环显示不同的内容。程序开始运行,在标签中显示 “第一项 ”(如图所示 ),且每隔 1秒钟依次显示 “第二项 ”、 “第三项 ”、 “第四项 ”,如此循环。在给出的窗体文件中已经有了全部
29、控件和程序,但程序不完整,要求去掉程序中的注释符,把程序中的 ?改为正确的内容。 注意:不能修改程序的其他部分和控件属性。最后将修改后的文件按原文件名存盘。 四、综合应用题 43 在窗体上画一个文本框,名称为 Textl(Multiline属性为 True),然后再添加三个命令按钮,名称分别为 Command1、 Command2和 Command3,标题分别为 “读数 ”、 “统计 ”和 “存盘 ”,如图所示。程序的功能是:单击 “读数 ”按钮,则把考生文件夹下的 in5 txt文件中的所有英文字符放入 Text1中;单击 “统计 ”按钮,找出并统计英文字母 i, j, k, l, m, n
30、(不区分大小写 )各自出现的次数;单击 “存盘 ”按钮,将字母 i到 n出现次数的统计结果依次存到考生文件夹下的 out5 txt中。 注意:存 盘时必须存放在考生文件夹下,工程文件名保存为 sjt5 vbp,窗体文件名保存为 sjt5 frm。 国家二级( VB)机试模拟试卷 28答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 VB 中变量的命名规则为: 必须以字母或汉字开头 由字母、汉字、数字或下划线组成 不能使用 VB的保留字。 _x不能以 _下划线开头,不合法; 2y不能以数字开头,不合法; a#b 中有 #,不合法; D选项符合命名规则,故D选项正确。 2 【正确答案】
31、C 【试题解析】 VB 应用程序不一定从 From_Load 事 件开始执行,它是由工程中启动对象决定先从哪儿开始执行。故 C选项错误。 3 【正确答案】 A 【试题解析】 任何变量在被声明后都会有一个初始值。一般情况下,数值型变量的初始值为 0;字符串变量的初始值为空字符串;变体型变量的初始值为空值,即Null 值;布尔型的初始值为假,即 False。 本题中变量 a定义时没有声明数据类型,默认为 Variant变体型变量,默认值是 Null;变量 b 定义为整型变量,默认值为 0。所以输出 a为空白, b 为 0 。故 A选项错误。 4 【正确答案】 C 【试题解析】 控件数组 是由类型相
32、同的控件组成,具有相同的名称,用下标Index属性区分各数组元素,它们共用相同的事件过程。故 C选项错误。 5 【正确答案】 B 【试题解析】 标准模块文件的扩展名是 .bas,不是 .frm,故 A选项错误。一个工程中可以包含一个或多个标准模块文件,故 C选项错误。类模块文件的扩展名为 .cls,不是 .bas。故 D选项错误。 B选项正确。 6 【正确答案】 B 【试题解析】 自定义数据类型的语法结构是: Type 自定义类型名 (下标 ) As (下标 ) As End Type 其中,成员可以定义为定长的或不定长字符串,也可定义为数组。 本题中, B选项符合语法规则,故 B 选项正确。
33、 7 【正确答案】 A 【试题解析】 按算术运算符优先级从高到低顺序依次计算: /、 、 Mod,结果为5,故选 A。 8 【正确答案】 B 【试题解析】 用 Array函数可以给 Variant类型的动态数组赋值;也可给Variant类型的变量赋值,此时该变量也看作是一个 Variant类型的动态数组。 例如: Dim a()As Variant , b As Variant a Array(1, “abc“, 3): b Array(5,6) 本题中 A、 D选项是把 arr都定义为 Variant型的变量, C选项是把 arr定义为动态数组,这都可以用 Array函数给 arr数组赋初值
34、; B 选项定义了一个 Variant型的一维固定数组 arr, Array函数不能给固定数组赋初值,故 B选项错误。 9 【正确答案】 C 【试题解析】 在窗体模块中声明的 Public变量,其作用域是应用程序的所有过程,故 C选项错误。 但用时注意:变量名前要 加窗体名,否则不能被其他模块的过程引用,只能被本模块内的所有过程引用。 10 【正确答案】 D 【试题解析】 顺序文件的记录是顺序存放的,先写入的记录存放在文件的最前面,后写入的依次往后面存放,最后写入的记录放在文件的最后面。如果访问某条记录,要先访问前面的记录,才能访问后面的记录,不能按记录号直接访问。故 D选项错误。 11 【正
35、确答案】 A 【试题解析】 文本框控件的 MultiLine属性如果设置为 False,则在文本框中只能输入单行文本;当设置为 True时,可以使用多行文本,即在文本 框中输入或输出文本时可以换行,并在下一行接着输入或输出。 12 【正确答案】 A 【试题解析】 按钮控件的 Picture属性可以给命令按钮指定一个图形。按钮的标题由属性 Caption设置,可以在程序中动态指定。当一个命令按钮的 Cancel属性被设置为 True时,按 ESC键与单击该命令按钮的作用相同。命令按钮能够响应单击事件,但不能响应双击事件。 13 【正确答案】 C 【试题解析】 滚动条的 Value属性表示滚动框在
36、滚动条上的当前位置,默认值为0,即在滚动条的左端或顶端,如果 Value的 值等于 Max属性的值时,则滚动框在滚动条的最右端或底端。 14 【正确答案】 D 【试题解析】 一个控件的事件过程由控件的实际名字 (Name属性 )、下划线和事件名称组成,而窗体事件过程由 “Form“、下划线和事件名组成。因此,不管窗体名称是什么,窗体加载事件过程总是 Form_Load。窗体的名称即 Name属性在程序运行时不可以更改,窗体的标题即 Caption属性则可以在程序运行时更改。 15 【正确答案】 B 【试题解析】 在设计菜单时,如果在菜单标题栏输入 “ “,则可以在菜单中加入一条 分隔线,菜单中
37、每一个菜单项,包括分隔线,都要有一个名称,即 Name属性不能为空。菜单项有效性属性设为 Flase时,则该项显示为灰色不可用状态。可以使用 PopupMenu 的方法显示弹出式菜单,格式为: PopupMenu 菜单名。 16 【正确答案】 A 【试题解析】 列表框控件的列表项个数即为 ListCount属性值。如果列表项的某项被选中,则该项的 Selected 属性值为 True。列表框控件的 Columns 属性用来确定列表框的列数。 Text属性的值为最后一次选中的表项的文本,不能直接修改Text属 性。 17 【正确答案】 D 【试题解析】 复选框按钮可以同时选择多个,而在一组单选按
38、钮中,只能选择其中的一个。单选按钮被选中时,其 Value属性值为 True,如果没有被选中其Value值为 False,复选框的 Value属性可以设置为 0、 1和 2,分别代表没选中、选中和禁用。单选按钮一般用框架进行分组,每个框架内的单选按钮的操作不影响其他组的按钮,而复选框是否分组对选项没有影响。 18 【正确答案】 D 【试题解析】 MouseUp 事件是鼠标松开时触发的事件过程,事件过程的 Button参数 值由系统产生,为被按下的键, Shift参数表示 Shift、 Ctrl 和 Alt键的状态,X、 Y参数表示光标的当前位置。 19 【正确答案】 B 【试题解析】 通用对话
39、框的 FilterIndex 属性值表示默认的过滤器,值为 2表示初始过滤器为过滤器中的第 2个,即 “*.txt“。 InitDir属性表示打开对话框时的初始目录。 ShowOpen 方法表示显示打开文件对话框。打开文件通用对话框只是返回选中的文件,具体如何操作文件需要另行编程决定,因此不会导致文件打开失败。 20 【正确答案】 D 【试题解 析】 假设输入 2、 4、 9进行验证,输入 2时程序会输出 2,输入 4时,程序会输出 2、 3,可见程序不是判断 n是否为素数,所以 A不对。由前面验证可知,程序也不是输出 n以内的所以奇数或偶数,所以 B、 C也不对。如果输入 9时,程序会输出
40、2、 3、 5、 7,说明程序是输出 n 以内的所有素数,所以 D正确。 21 【正确答案】 B 【试题解析】 由 Rnd函数生成的随机数在 0 1之间,包括 0但不包括 1,所以有可能产生 0,与题目要求的两位的整数不符。所以语句 a(i) Int(Rnd * 100) 1需要修改为 a(i) Int(Rnd * 90) 10,这样就能正确产生两位的整数了。 22 【正确答案】 B 【试题解析】 Mod 是取模运算符,即求运算两数相除的余数。每次循环中 X的值分别是 1,1,3,5,7,9,11,13,15,17,19,其中与 3求模为 0的数有 3、 9、 15共 3个,因此 n n 1会
41、执行 3次,最终 n 3。 23 【正确答案】 D 【试题解析】 变量 x被定义为窗体模块变量,它在整个窗体模块中有效。 Click事件中变量 y定义为 Static,即静态变量,它的值在每调用过程时都会保留上次的值。每次单击按 钮标签中显示的值即 x、 y、 z的值是: 第一次, n 5, z z n 0 5 5, y y n 0 5 5, x x y 0 5 5; 第二次, n 5, z z n 0 5 5, y y n 5 5 10, x x y 5 10 15; 第三次, n 5, z z n 0 5 5, y y n 10 5 15, x x y 15 1530; 因此 3次单击命令
42、按钮后, 3个标签中分别显示的是 30 15 5。 24 【正确答案】 C 【试题解析】 当用 Dim语句定义数组时,该语句把数组中的全部元素都初始化为 0,而把字符串数 组中的全部元素都初始化为空字符串。程序中利用 For循环为数组 arr的部分元素赋值这些元素的第一维范围是 1 4,第二维的范围是 2 4,值为两维下标的和。程序要输出 arr(1, 3) arr(3, 4)的值, arr(1, 3)值为 1 3 4, arr(3, 4)值为 3 4 7。 4 7 11,因此程序输出结果为 11。 25 【正确答案】 C 【试题解析】 程序利用 For循环为数组 x的 5行 6列元素以随机整
43、数赋值,随机数的范围是从 1到 9。过程 f的功能是计算二维数组 a()的每一行中元素值的和,每一行的和存放在另 一个数组 b()中,最后程序输出这些和值。因此 C正确。 26 【正确答案】 A 【试题解析】 Asc函数返回字符的 ASCII, Chr函数将数值转换成相应的 ASCII码字符。计时器间隔 Interval属性设置为 1000,则计时器事件每 1秒钟发生一次。 n的值每次调用计时器事件过程都会加 1, n n Mod 4又会使 n 值只能为 0、1、 2、 3,因此程序运行后每 1秒 Label1 标签将依次显示 “A“、 “B“、 “C“、“D“。 27 【正确答案】 A 【试
44、题解析】 过程 fun 的功能是将传入的值运算后返回, 当传入数值为 3的整数倍时返回该值的 2倍,否则返回该值的平方。过程 Fun 的参数指定为 ByRef 方式,即按址传递,因此会影响实参的值。 Str函数是将数值转换为字符串。过程fun定义时没有指明返回类型因此默认为 Variant类型,它可以表示任何值,因此 28 【正确答案】 D 【试题解析】 程序中菜单 Mnu1是一个控件数组,它们以 Index 属性值作为数组下标来区分各元素。在菜单单击事件中, Flag值为真时,显示 Form2,同时把索引为 1的菜单项标题改为 “隐藏窗体 2“,然后把 Flag标志设为假;当 Flag值为假
45、时,隐藏 Form2,同时把索引为 1的菜单项标题改为 “显示窗体 2“,然后把 Flag标志设为真。窗体 Hide方法,只是将窗体隐藏,并没有从内容中卸载。因此 D选项错。 29 【正确答案】 B 【试题解析】 外层 Do循环结束条件是 n10, n 初值为 1,每次加 2,循环体中每次循环 n的值为 3、 5、 7、 9、 11,值变化 5次,因此外层 Do 循环执行次数为 5次。 30 【正确答案】 C 【试题解析】 过程定义语句中第 1个参数是数组,调用是实参应该是一个数组变量或元素,第 2个参数是整型变量。过程中 LBound函数获取了数组下标的下限, UBound函数获取了数组下标
46、的上限,在 For i s to f 语句的循环中就可以访问数组中的各个元素。本过程是用 Sub 定义的过程不需要返回值。程序中找到的最大值由参数 Max返回,因为它是按址传递的参数,它的值会带给实参。因此 C选项的说法错误。 31 【正确答案】 B 【试题解析】 算法的效率与问题的规模和数据的存储结构都有关, A错误。算法的时间复杂度,是指执行算法所需要的计算工作量, B 正确。由于数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此数据的逻辑 结构和存储结构不是一一对应的, C错误。算法的时间复杂度和空间复杂度没有直接的联系, D错误。 32 【正确答案】 C 【试题解析】 线性表
47、的顺序存储结构具备如下两个基本特征:( 1)线性表中的所有元素所占的存储空间是连续的;( 2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。用一组任意的存储单元来依次存放线性表的结点,这组存储单元既可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的。因此 C正确。 33 【正确答案】 D 【试题解析】 二叉树中,度为 0的节点数等于度为 2的节点数加 1,即 n2=n0-1,叶子节点即度为 0, n0=1,则 n2=0,总节点数为 12=n0+n1+n2=1+n1+0,则度为 1的节点数 n1=11,故深度为 12,选 D。 34 【正确答案】 D 【试题解析】 快速
48、排序最坏情况就是每次选的基准数都和其他数做过比较,共需比较 (n-1)+(n-2)+1=n(n -1)/2,选 D。 35 【正确答案】 C 【试题解析】 结构化程序设计中,要注意尽量避免 goto语句的使用,故选 C。 36 【正确答案】 B 【试题解析】 软件测试主要包 括单元测试、集成测试、确认测试和系统测试。 37 【正确答案】 A 【试题解析】 需求分析阶段的工作可概括为个方面: 需求获取。 需求分析。 编写需求规格说明书。 需求审评。 38 【正确答案】 C 【试题解析】 自然连接是一种特殊的等值连接,它满足下面的条件: 两关系间有公共域; 通过公共域的等值进行连接,选 C。 39
49、 【正确答案】 A 【试题解析】 由于职员可以再多加公司兼职,表 W的键(码)应为公司关系和职员关系的主码,即公司号和职员号。 40 【正确答案】 A 【试题解析】 双击窗体上没有控件的地方,默认打开 “代码窗口 “。故选 A。 二、基本操作题 41 【正确答案】 (1)【操作步骤】步骤 1:按照题目要求建立窗体和控件,并设置控件的属性。程序中涉及的控件及属性见表 3.157。步骤 2:调试并运行程序,关闭程序后按题目要求存盘。 Private Sub Form_Load() CD1.ShowSaveEnd Sub(2)【操作步骤】步骤 1:建立界面,并设置菜单的属性见表 3.158。步骤 2:编写程序代码。参考答案 Private Sub menu2_Click() menu1.Enabled = Tru