1、二级 VISUAL+BASIC 笔试-336 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.定义过程的格式中,Static 关键字的作用是指定过程中的局部变量在内存中的存储方式。若使用了Static 关键字,则(分数:2.00)A.每次调用此过程,该过程中的局部变量都会被重新初始化B.在本过程中使用到的,在其他过程中定义的变量也为 Static 型C.每次调用此过程时,该过程中的局部变量的值保持在上一次调用后的值D.定义了该过程中定义的局部变量为“自动”变量2.在窗体中添加一个通用对话框,其名称为 CommonDialog1,然后添加一个
2、命令按钮。要求单击命令按钮时,打开一个保存文件的通用对话框。该窗口的标题为“打开”,在文件类型框中显示的是 Text Files(*.txt)。则能够满足上述要求的程序是(分数:2.00)A.Private Sub Command1_Click()CommonDialog1. Flags=cdloFNHideReadonlyCommonDialogl. Filter=“AllFiles(*.*)|*.*|TextFiles“VisibleB.Visible;CaptionC.Visible;NameD.Enabled;Caption35.设有下列二叉树:(分数:2.00)A.B.C.D.二、填
3、空题(总题数:12,分数:30.00)36.算法的工作量大小和实现算法所需的存储单元多少分别称为算法的 【1】 。(分数:2.00)填空项 1:_37.在面向对象方法中,信息隐蔽是通过对象的 【2】 性来实现的。(分数:2.00)填空项 1:_38.子程序通常分为两类: 【3】 和函数,前者是命令的抽象,后者是为了求值。(分数:2.00)填空项 1:_39.在面向对象方法学中,直接反映了用户对目标系统的要求的模型是 【4】 。(分数:2.00)填空项 1:_40.数据库保护分为:安全性控制、 【5】 、并发性控制和数据的恢复。(分数:2.00)填空项 1:_41.为了在运行时把窗体 Form1
4、 的标题(Caption 属性)设置为“Test Program”,应使用的语句为 【6】 。(分数:2.00)填空项 1:_42.为了建立窗体的 Click 事件过程,即 Form_Click,应先在代码窗口的 【7】 栏中选择 Form,然后在 【8】 栏中选择 Click。(分数:4.00)填空项 1:_43.设有如下表达式:10*x2+5*x-2*Sin(B)/2,它相当于代数式 【9】 。(分数:2.00)填空项 1:_44.在菜单编辑器中建立一个菜单,名称为 mymenu,用下面的语句可以把它作为弹出式菜单弹出,请填空。Form1. 【10】 mymenu(分数:2.00)填空项
5、1:_45.由 Array 函数建立的数组的名字必须是 【11】 类型。(分数:2.00)填空项 1:_46.设有程序:Option Base 1Private Sub Command1_Click()Dim arr1,Max as Integerarr1Array(12,435,76,24,78,54,866,43)【12】 arr1(1)For i1 To 8If arr1(i)Max Then 【13】 Next iPrint“最大值是:“;MaxEnd Sub以上程序的功能是:用 Array 函数建立一个含有 8 个元素的数组,然后查找并输出该数组中元素的最大值。请填空。(分数:4.0
6、0)填空项 1:_47.设有如下程序:Private Sub Form_Click()Dim a As Integer,b As Intgera=20:b=50p1 a,bp2 a,bp3 a,bPrint“a=“;a,“b=“;bEnd SubSub p1(x As Integer,ByVal y As Integer)x=x+10y=y+20End SubSub p2(ByVal x As Integer,y As Integer)x=x+10y=y+20End SubSub p3(ByVal x As Integer,ByVal y As Integer)x=x+10y=y+20End
7、Sub该程序运行后,单击窗体,则在窗体上显示的内容是:a= 【14】 和 b= 【15】 。(分数:4.00)填空项 1:_二级 VISUAL+BASIC 笔试-336 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.定义过程的格式中,Static 关键字的作用是指定过程中的局部变量在内存中的存储方式。若使用了Static 关键字,则(分数:2.00)A.每次调用此过程,该过程中的局部变量都会被重新初始化B.在本过程中使用到的,在其他过程中定义的变量也为 Static 型C.每次调用此过程时,该过程中的局部变量的值保持在上一次调用后的值 D.
8、定义了该过程中定义的局部变量为“自动”变量解析:解析 Static 关键字用于指定局部变量在内存中的存储方式。变量的存储方式有两种:静态的和动态的。静态存储方式是指当过程运行完毕后,变量所占的内存单元不释放,而变量的值被保存下来,该变量为静态变量。Static 型变量所占存储控件只初始化一次,且变量的值在整个程序运行期间都存在; Static 关键字对过程之外定义的变量没有影响;Static 关键字使定义该过程中定义的局部变量为静态变量。2.在窗体中添加一个通用对话框,其名称为 CommonDialog1,然后添加一个命令按钮。要求单击命令按钮时,打开一个保存文件的通用对话框。该窗口的标题为“
9、打开”,在文件类型框中显示的是 Text Files(*.txt)。则能够满足上述要求的程序是(分数:2.00)A.Private Sub Command1_Click()CommonDialog1. Flags=cdloFNHideReadonlyCommonDialogl. Filter=“AllFiles(*.*)|*.*|TextFiles“软件设计包括软件的结构、数据接口和过程设计。其中结构设计是定义软件系统各主要部件之间的关系;数据设计是将分析时创建的模型转化为数据结构的定义;接口设计是描述软件内部、软件和操作系统之间及软件与人之间如何通信。过程设计则是把系统结构部件转换成软件的过
10、程描述。16.以下属于 Visual Basic 合法的数组元素是(分数:2.00)A.x8B.x8C.x(0) D.x6解析:解析 本题主要考查数组元素的一般格式。在 Visual Basic 中,数组的一般格式为:Dim 数组名(第一维说明, 第二维说明)As 类型,注意数组名后边是小括号。故选项 C 正确。17.在运行程序时,在文本框中输入新的内容,或在程序代码中改变 Text 的属性值,相应会触发到什么事件?(分数:2.00)A.GotFocusB.ClickC.Change D.DblCliek解析:解析 在本题的四个选项中, GotFocus 是设置焦点事件,所以选项 A 不合题意
11、;Click 是单击事件,不合题意;DblClick 是双击事件,也不合题意;Change 是改变文本框内容事件,只要文本框中的内容改变就会触发,故选项 C 是本题的答案。18.目录列表框的 Path 属性的作用是(分数:2.00)A.显示当前驱动器或指定驱动器上的目录结构 B.显示当前驱动器或指定驱动器上的某目录下的文件名C.显示根目录下的文件名D.显示指定路径下的文件解析:解析 目录列表框的 Path 属性的作用是显示当前驱动器或指定驱动器上的目录结构。选项 A 正确。19.我们可以在设计时(属性窗口中)和运行时(程序代码中)设置属性的属性值,以下关于属性设置的说法正确的是(分数:2.00
12、)A.在属性窗口中可以设置所有属性的属性值B.在程序代码中可以设置所有属性的属性值C.属性的名称由 VB 事先定义,用户不能改变 D.所有对象的属性都是可见的解析:解析 属性的名称由 VB 事先定义,用户不能改变。选项 C 的说法正确。20.完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例的测试方法是(分数:2.00)A.黑箱测试法 B.白箱测试法C.错误推测法D.安装测试法解析:解析 黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据功能导出测试用例。白箱测试是根据对程序内部逻辑结构的分析来选取测试用例,白箱测试也称为逻辑覆盖测试。错误推测法只是黑箱测试所使用的一种
13、具体的方法。安装测试是测试层次中的一种,它属于高级测试。根据以上知识点可知选项 A 正确。21.设 a=2,b=3,c=4,d=5,则表达式 Not ac Or 4*c=b2 And b (分数:2.00)A.B.C.D. 解析:解析 本题考查各类表达式的综合运算。先执行 Not ac 值为 False,再判断 4*cb-2 And ba+c 为 False,所以最终结果为 False。选项 D 正确。22.在参数传递过程中,使用关键字来修饰参数,可以使之按值传递,此关键字是( )(分数:2.00)A.ByVal B.ByrefC.ValueD.Reference解析:解析 在参数传递过程中,
14、使用关键字 ByRef 来修饰参数,可以使之按地址传递。使用 ByVal 关键字来修饰,可以使之按值传递。故选项 A 正确。23.在窗体上画一个名称为 Command1 的命令按钮,然后编写如下事件过程:Private Sub Command1_Click()Call sub1(-15.1,2.54)End SubPublic Function sub1(a As Integer,ByVa1 b As String) As IntegeraVal(b)sub1=aPrint sub1End Function程序运行后,单击命令按钮,在窗体上输出的是(分数:2.00)A.3 B.2C.-15D.
15、提示出错解析:解析 本题主要考查了功能函数的调用。特别要注意的是转换函数 Va1 的含义。Va1 表示的含义是将字符串转换为数值型,在本题中要求转换为整型值,在转换过程中应用到了四舍五人的规则,Va1(2.54)的结果值为 3。故程序运行后单击命令按扭,在窗体上输出的数为 3。选项 A 正确。24.在磁盘 C 的根目录下有一个名为 Sco.dar 的文件,内容为姓名、英语成绩、物理成绩、数学成绩,现依此文件在根目录中建立一个名为 Aver.dat 的文件,内容为姓名及三门课的平均成绩,但程序不完整,请在_处补充。Open“C:/Sco.dat“For Input As #3Open“C:/Av
16、er.dat“For Output As #2While _Input #3,NA$,ENG,PHY,MATHWrite #2,NA$,(ENG+PHY+MATH)/3WendClose #2Close #3(分数:2.00)A.EOF(3)B.Not EOF(3) C.EOF(2)D.Not EOF(2)解析:解析 EOF(文件号)函数返回一个表示文件指针是否到达文件末尾的值。当到文件末尾时,函数的返回值为 True,否则返回 False。分析题意可知读取文件号为 3,当文件 3 不结束时,就可以执行读操作。用程序语言表示应为:Not EOF(3)。故选项 B 正确。25.以下说法不正确的是
17、(分数:2.00)A.Visual Basic 是一种可视化编程工具B.Visual Basic 是面向过程的编程语言 C.Visual Basic 是结构化程序设计语言D.Visual Basic 采用事件驱动编程机制解析:解析 Visual Basic 是面向对象的编程语言,故选项 B 的说法不正确。26.在 MsgBox 函数中哪一个参数是必须的(分数:2.00)A.prompt B.buttonsC.titleD.context解析:解析 MsgBox 函数用来设计消息对话框,并返回用户的选择。其格式为: MsgBox (Prompt, Type, Title, HelpFile,Co
18、ntext)Prompt 表示显示在对话框中的信息,此参数是必须的,不可省略。Type 用来指定对话框中显示的按扭类型、数目和图标样式。Title 用来设置对话框的标题。如果省略,标题内容为工程名。27.下列叙述中正确的是(分数:2.00)A.在窗体的 Form_Load 事件过程中定义的变量是全局变量B.局部变量的作用域可以超出所定义的过程C.在某个 Sub 过程中定义的局部变量可以与其他事件过程中定义的局部变量同名,但其作用域只限于该过程 D.在调用过程时,所有局部变量被系统初始化为 0 或空字符串解析:解析 局部变量在过程内定义,在过程中有效,可用 Dim 或 Static 语句定义,用
19、 Dim 语句定义的变量随过程的执行而建立,随过程的结束而消失。Static 语句定义的变量只建立一次,能在过程结束后保存原值。根据以上知识点可以排除 A、B、D 项,只有 C 项的叙述是正确的。28.按条件 f 对关系 R 进行选择,其关系代数表达式是(分数:2.00)A.R|RB.C. f(R) D. f(R)解析:解析 选项 A 表示 R 与 R 的自然连接。选项 B 表示按条件 fR 与 R 进行连接。选项 D 表示按条件对关系 R 进行投影。只有选项 C 表示按条件 f 对关系 R 进行选择。29.下列关于 Sub Main 过程的叙述,正确的是(分数:2.00)A.Sub Main
20、 是启动过程,它类似于 C 语言中的 Main 函数 Sub Main B.在一个含有多个窗体或多个工程的应用程序中,整个工程的执行一定从头开始C.Sub Main 过程可以位于任何模块中D.Sub Main 过程自动作为工程的启动过程解析:解析 Sub Main 是标准模块中的一个特殊的通用过程,主要用于控制应用程序的启动。Visual Basic 6.0 规定 Sub Main 过程是具有启动应用程序功能的启动过程,即除了窗体模块以外,应用程序还可以由 SubMain 过程启动。根据以上知识点可知 B、C、D 项的叙述均有误,只有 A 项是正确的。30.结构化程序设计的一种基本方法是(分数
21、:2.00)A.筛选法B.递归法C.归纳法D.逐步求精法 解析:解析 自顶而下逐步求精法是结构化程序设计所采用的基本方法。31.在程序运行期间可以用_函数把图形装入窗体、图片框或图像框。(分数:2.00)A.AutosizeB.StretchC.PietureD.LoadPicture 解析:解析 Autosize 是图片框的属性,它用来设置控件是否自动调整大小来适应其中的图形。Stretch 是图像框的属性,用来设置是否可以拉伸图形以适应控件的大小。 Picture 图片框和图像框都有Picture 属性,主要用来设置显示的图形。排除选项 A、B、C 项。在程序运行期间,可能用 LoadPi
22、cture函数装入图形文件。其加载格式为:对象名. PictureLoadPicture(“图形文件标识“),默认图形文件标识符表示清除图片框或图像框中的图像。32.程序的基本控制结构是(分数:2.00)A.DoLoop 结构、DoLoop While 结构和 ForNext 结构B.子程序结构、自定义函数结构C.顺序结构、选择结构和循环结构 D.单行结构、多行结构和多分支结构解析:解析 程序的基本控制结构有三种,分别为顺序结构、选择结构和循环结构。选项 C 正确。33.设树 T 的度为 4,其中度为 1,2,3,4 的结点个数分别为 4,2,1,1。则 T 中的叶子结点数为(分数:2.00)
23、A.8 B.7C.6D.5解析:解析 根据题意可将此树画图如下:*所以该树的叶子结点数为 8。34.只有当一个对象的_和_属性为 True,它才能获得焦点。(分数:2.00)A.Enabled;Visible B.Visible;CaptionC.Visible;NameD.Enabled;Caption解析:解析 焦点是接收用户鼠标或键盘输入的能力。控件得到焦点时会有特别的外观。如果要使控件能够接收焦点,要求控件的 Enabled 和 Visible 属性必须均为 True。35.设有下列二叉树:(分数:2.00)A.B. C.D.解析:解析 前序遍历的规则为:根一左一右。根据此规则可首先得
24、到节点 A 为第一个访问节点,然后是 A 结点的左子树,对其也应用前序遍历规则,得出序列 TBZ,右子树的遍历方法相同,结果为 XCYP。故选项 B 正确。二、填空题(总题数:12,分数:30.00)36.算法的工作量大小和实现算法所需的存储单元多少分别称为算法的 【1】 。(分数:2.00)填空项 1:_ (正确答案:时间复杂度和空间复杂度)解析:解析 算法的工作量大小和实现算法所需的存储单元多少分别称为算法的时间复杂度和空间复杂度。37.在面向对象方法中,信息隐蔽是通过对象的 【2】 性来实现的。(分数:2.00)填空项 1:_ (正确答案:封装)解析:解析 在面向对象方法中,信息隐藏是通
25、过对象的封装性来实现的。38.子程序通常分为两类: 【3】 和函数,前者是命令的抽象,后者是为了求值。(分数:2.00)填空项 1:_ (正确答案:过程)解析:解析 子程序通常分为过程和函数两类。前者是命令的抽象,后者是为了求值。39.在面向对象方法学中,直接反映了用户对目标系统的要求的模型是 【4】 。(分数:2.00)填空项 1:_ (正确答案:功能模型)解析:解析 在面向对象方法学中,功能模型直接反映了用户对目标系统的要求。40.数据库保护分为:安全性控制、 【5】 、并发性控制和数据的恢复。(分数:2.00)填空项 1:_ (正确答案:完整性控制)解析:解析 数据库保护分为:安全性控制
26、、完整性控制、并发性控制和数据的恢复。41.为了在运行时把窗体 Form1 的标题(Caption 属性)设置为“Test Program”,应使用的语句为 【6】 。(分数:2.00)填空项 1:_ (正确答案:Caption“Test Program“或 Caption“Test Program“或 Me. Caption“Test Program/)解析:解析 窗体的 Caption 属性是用来在窗体的标题栏中显示标题的。通过代码为属性赋值的语句格式是:对象名.属性名表达式,故可以用语句 Form1.Caption“Test Program“或 Caption“Test Program“
27、实现题中要求的功能。再者因为是为本窗体设置属性,可以用 Me 来代替对象名。也可以写成语句 Me. Caption“Test Program“。42.为了建立窗体的 Click 事件过程,即 Form_Click,应先在代码窗口的 【7】 栏中选择 Form,然后在 【8】 栏中选择 Click。(分数:4.00)填空项 1:_ (正确答案:7 对象8 过程)解析:解析 为了建立窗体的 Click 事件过程,即 Form_Click,应先在代码窗口的对象栏中选择 Form,然后在过程栏上选择 Click。43.设有如下表达式:10*x2+5*x-2*Sin(B)/2,它相当于代数式 【9】 。
28、(分数:2.00)填空项 1:_ (正确答案:10x*x-5*x-sinb)解析:解析 本题主要考查 Visual Basic 中的表达式与代数关系式的转换。44.在菜单编辑器中建立一个菜单,名称为 mymenu,用下面的语句可以把它作为弹出式菜单弹出,请填空。Form1. 【10】 mymenu(分数:2.00)填空项 1:_ (正确答案:PopupMenu)解析:解析 建立弹出式菜单用 PopupMenu 方法,格式如下;对象名.PopupMenu 菜单名,Flag,x ,y,BoldCommand其中:对象名:指出在哪一个对象上打开弹出式菜单,若省略,则在当前窗体打开弹出式菜单。菜单名:
29、是指通过“菜单编辑器”设计出的主菜单名称。Flags:位置参数,包含位置常数和行为常数两个值。x 和 y:菜单弹出坐标,默认为鼠标坐标。BoldCommand:指定菜单中要以粗体字显示的菜单名称。45.由 Array 函数建立的数组的名字必须是 【11】 类型。(分数:2.00)填空项 1:_ (正确答案:Variant)解析:解析 由 Array 函数建立的数组的名字必须是变体类型,即 Variant 类型。46.设有程序:Option Base 1Private Sub Command1_Click()Dim arr1,Max as Integerarr1Array(12,435,76,2
30、4,78,54,866,43)【12】 arr1(1)For i1 To 8If arr1(i)Max Then 【13】 Next iPrint“最大值是:“;MaxEnd Sub以上程序的功能是:用 Array 函数建立一个含有 8 个元素的数组,然后查找并输出该数组中元素的最大值。请填空。(分数:4.00)填空项 1:_ (正确答案:12 Max13 Maxarr1(i))解析:解析 程序中用 Array 函数给变体变量 arr1 赋了一组数,由于程序有 Option Base 1 语句,因此,数组元素的下标下界从 1 开始,接着把第一个数组元素赋给变量 Max,这样为进行比较创造了条件
31、,程序中的 For 循环控制比较次数,每次循环中,根据题目要求,若 arr1(i)Max,则 arr1(i)较大,应该用 arr1(i)替代 Max,所以程序中13处应填语句 Maxarr1 (i)。47.设有如下程序:Private Sub Form_Click()Dim a As Integer,b As Intgera=20:b=50p1 a,bp2 a,bp3 a,bPrint“a=“;a,“b=“;bEnd SubSub p1(x As Integer,ByVal y As Integer)x=x+10y=y+20End SubSub p2(ByVal x As Integer,y
32、As Integer)x=x+10y=y+20End SubSub p3(ByVal x As Integer,ByVal y As Integer)x=x+10y=y+20End Sub该程序运行后,单击窗体,则在窗体上显示的内容是:a= 【14】 和 b= 【15】 。(分数:4.00)填空项 1:_ (正确答案:14 3015 70)解析:解析 本题考查了参数的虚实结合的传送方式。用虚实结合的方式,实现调用程序和被调用过程之间的数据传送。传送方式有两种:按值传送和按址传送。按值传送:Call 语句中的实际参数是常量或表达式时表示按值传送。若要求变量按值传送,可以把变量用括号括起来,使之成
33、为一个表达式。例如,实际参数写成(a),则(a)表示一个表达式,表示按值传送。在过程的定义语句中使用 ByVal 关键字指定形式(虚拟)参数,也表示按值传送参数。按址传送:Call 语句中的实际参数是变量时,表示是按地址传送参数。理解了以上知识点后我们再来分析本题。题中的三个过程 p1 中 x 为传址方式,y 为传值方式;p2 中 x 为传值方式,y 为传址方式;p3 中 x 和 y 都为传值方式。特别要注意的是在传值调用时不影响实际参数,传址调用时影响实际参数。故在调用了三个过程后,a 只在 p1 过程中受到了影响 b 只在 p2 过程中受到了影响。在 p1 中执行的语句 aa+10 使 a 的值变为 30。在 p2 中执行的语句 bb+20 使 b 的值变为 70。