1、二级 VISUAL+BASIC 笔试 3 及答案解析(总分:90.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下列语句正确的是(分数:2.00)A.If AB Then Print“A 不等于 B“B.If AB Then Print“A 不等于 B“D.1f AB Print“A 不等于 B“2.为了提高测试的效率,应该(分数:2.00)A.随机选取测试数据B.取一切可能的输人数据作为测试数据C.在完成编码以后制定软件的测试计划D.集中对付那些错误群集的程序3.已知二叉树后序遍历序列是 dabec,中序遍历序列是 debac,它的前序遍历序列是(分数:2
2、.00)A.acbedB.decabC.deabcD.cedba4.单击命令按钮时,下列程序的执行结果为 Private Sub Command1_Click() Dim x As Integer,y As Integer x=12:y=32 Call Proc(x,y) Print x;yEnd SubPublic Sub Proc(n As Integer,ByVal m As Integer) n=n Mod 10 m=m Mod 10End Sub(分数:2.00)A.12 32B.2 32C.2 3D.12 35.关于 Visual Basic“方法“的概念错误的是(分数:2.00)
3、A.方法是对象的一部分B.方法是预先定义好的操作C.方法是对事件的响应D.方法用于完成某些特定的功能6.在窗体上建立通用对话框需要添加的控件是(分数:2.00)A.Data 控件B.From 控件C.CommonDialog 控件D.VBComboBox 控件7.Sub 过程与 Function 过程最根本的区别是(分数:2.00)A.Sub 过程可以用 Call 语句直接使用过程名调用,而 Function 过程不可以B.Function 过程可以有形参,Sub 过程不可以C.Sub 过程不能返回值,而 Function 过程能返回值D.两种过程参数的传递方式不同8.下列说法有错误的是(分数
4、:2.00)A.默认情况下,属性 Visible 的值为 FalseB.如果设置控件的 Visible 属性为 False,则运行时控件会隐藏C.Visible 的值可设为 True 或者 FalseD.设置 Visible 属性同设置 Enabled 属性的功能是相同的,都是使控件处于失效状态9.下面有关注释语句的格式,错误的是(分数:2.00)A.Rem 注释内容B.注释内容C.a=3:b=2,对 a、b 赋值D.Private Sub Command1_MouseDown(button As Integer,shift As Integer,_Rem 鼠标按下事件的命令调用过程 X As
5、 Single,Y As Singl10.计算 z 的值,当 x 大于 y 时,z=x;否则 z=y。下列语句错误的是(分数:2.00)A.If x=y Then z=x:z=yB.If x=y Then z=x Else z=yC.z=y:If x=y Then z=xD.If xB Then Printf“A 不等于 B“C.If A=y Then z=x:z=y B.If x=y Then z=x Else z=yC.z=y:If x=y Then z=xD.If x=y Then z=y Else z=x解析:解析:选项 A)中的语句行有两条语句,执行 If 语句后,执行 z=y 语句
6、,所以不管 x 是否大于 y,最终 x 的值都等于 y。11.下面语句正确的是(分数:2.00)A.If xy Then y=x3 B.If xy Then y=3xC.If xy Then y=x3D.If xy Then y=x * * 3解析:解析:此题考查是条件浯句的结构。条件语句可以分为三种类型,如下: If Then 结构 If Then Else 结构 Select Case 结构 而 If Then 结构有两种格式: 条件 Then 语句 条件 Then 语句块 End If12.不能脱离控件(包括客体)而独立存在的过程是(分数:2.00)A.事件过程 B.通用过程C.Sub
7、过程D.函数过程解析:解析:事件过程由 Visual Basic 创建,事件过程是当用户对一个对象发出一个动作时所产生的事件,不能脱离控件而独立存在;通用过程时通用的,不与任何特定事件相联系,它完成特定的任务,只能由别的过程调用;Sub 过程包括事件过程和通用过程,称之为子过程。也就是说,有些 Sub 过程与对象相关联,有些 Sub 过程与对象没有联系;函数过程类似于内部函数,由用户定义的,完成一些特殊函数关系的计算,并且要返回函数值的过程,显然函数过程不必与控件发生联系。13.在 Visual Basic 中,要将一个窗体加载到内存进行预处理但不显示,应使用的语句是(分数:2.00)A.Lo
8、ad B.ShowC.HideD.Unload解析:解析:此题是考查有关 Load 语句、Unload 语句、Show 方法和 Hide 方法的,在此简单介绍一下这些语句和方法: Load 语句 格式:Load 窗体名称 Load 语句把一个窗体装入内存,执行Load 语句后,可以引用窗体中的控件及各种属性,但此时窗体没有显示出来,“窗体名称”是窗体的Name 属性; Unload 语句 格式:Unload 窗体名称 该语句与 Load 语句的功能相反,它清除内存中指定的窗体; Show 方法 格式:窗体名称.Show模式 Show 方法用来显示一个窗体。如果省略“窗体名称”,则显示当前窗体。
9、参数“模式”用来确定窗体的状态,可以取两种值,即 0和 1(不是 False 和 True)。当“模式”值为 1 (或常量 vbModal)时,表示窗体是“模态型”窗体,在这种情况下,鼠标只在此窗体内起作用,不能到其他窗口内操作,只有关闭该窗口才能对其他窗口进行操作;当“模式”值为 0 (或省略参数“模式”值)时,表示窗体为“非模态型”窗体,不用关闭该窗体就可以对其他窗体进行操作; Hide 方法 格式:窗体名称Hide Hide 方法使窗体隐藏,即不在屏幕上显示,但仍在内存中,因此,它与 Unload 语句的作用不同。14.下列各控件不包含滚动条的控件是(分数:2.00)A.ListBoxB
10、.ComboBoxC.TextBoxD.LabelBox 解析:解析:滚动条的用处是滚动数据或文本,以便快速找到所需的内容。如果一个控件存放有大量的数据或文本,这个控件一般会带有滚动条。ListBox,TextBox 和 ComboBox 可以存放大量的数据或文本,本身带有滚动条,而 LabelBox 仅是显示“标签”信息,一般标签不需要大块文本,所有它不包含滚动条。15.下列有关数据库的描述,正确的是(分数:2.00)A.数据库是一个 DBF 文件B.数据库是一个关系C.数据库是一个结构化的数据集合 D.数据库是一组文件解析:解析:数据库(Database,简称 DB)是数据的集合,它具有统
11、一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有“集成”、“共享”之特点。16.算法的时间复杂度是指(分数:2.00)A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数 D.算法程序中的指令条数解析:解析:算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量:算法的空间复杂度一般是指执行这个算法所需要的内存空间。17.如果在程序中要将 c 定义为静态变量,且为整型数,则应使用的语句是(分数:2.00)A.Redim a As IntegerB.Stat
12、ic a As Integer C.Public a As IntegerD.Dim a As Integer解析:解析:在 Visual Basic 中,定义变量的关键字为 Dim、Static、Redim、Public 或 Private,它们在使用上是不同的,Dim 用于标准模块、窗体模块或过程中定义变量或者数组;Static 用于过程中定义静态变量或数组;Public 用于在标准模块中定义全局变量或数组;Redim 主要用于定义数组。18.栈和队列的共同特点是(分数:2.00)A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素 D.没有共同点解析:解析:栈和队列都是一种特
13、殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种“后进先出”的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种“先进先出”的线性表。19.执行 x$=InputBox(“请输入 x 的值“)时,在弹出的对话框中输入 123,在列表框 List1 选中 1 个列表项(数据为 456),使有的值使 123456 的语句是(分数:2.00)A.y=x$+List1List(0) B.y=x$+List1List(1)C.y=Val(x$)+Val(List1List(0)D.y=Val(x$)&Val(List1L
14、ist(1)解析:解析:选项 A)中,x$和 List1List(0)都是字符类型,用“+”运算符表示将这两个字符串连接起来,结果正好是 123456;选项 B)中,List1List(1)不是列表框控件的第一个列表项;选项 c)中,Val函数将字符串转换成数值,这两个数值相加的表达式的运算结果为 579;选项 D)同选项 B)。20.软件生命周期中所花费用最多的阶段是(分数:2.00)A.详细设计B.软件编码C.软件测试D.软件维护 解析:解析:软件生命周期分为软件定义、软件开发及软件运行维护 3 个阶段。本题中,详细设计、软件编码和软件测试都属于软件开发阶段;维护是软件生命周期的最后一个阶
15、段,也是持续时间最长,花费代价最大的一个阶段,软件工程学的一个目的就是提高软件的可维护性,降低维护的代价。21.编写如下两个事件过程:Private Sub Form_KeyDown(KeyCode AS Integer,Shift As Integer) Print Chr(KeyCode)End SubPrivate Sub Form_KeyPress(KeyAscii As Integer) Print Chr(KeyAscii)End Sub 在一般情况下(即不按住 Shift 键和锁定大写键时)运行程序,如果按“A“键,则程序输出的结果是(分数:2.00)A.A AB.a AC.A
16、a D.a a解析:解析:此题考查了 KeyPress 事件和 KeyDown 事件,下面我们具体说明一下两个事件。 当按键盘上的某个按钮,将发生 KeyPress 事件。该事件可用于窗体、复选框、组合框、命令按钮、列表框,图片框、文本框、滚动条及文件有关的控件。用户自己可以定义 KeyPress 事件过程,一般格式为: Private Sub Form_KeyPress(KeyAscii As Integer) End Sub KeyPress 事件是用来识别按键的ASCII 码。 KeyDown 事件返回的是键盘的直接状态,返回的是键;而 KeyPress 事件返回的是“字符”的 ASCI
17、I 码。所以要输出字符还得用 Chr 函数。22.下面的属性中,用于自动调整图像框中图形内容的大小的是(分数:2.00)A.PictureB.CurentYC.CurrentXD.Stretch 解析:解析:本题的目的在于考查学生对图形控件的属性设置。Picture 属性用于窗体、图片框和图像框,它可以通过属性窗口设置,用来把图形放到这些对象中,因此选项 A)是不正确的;CurrentX 和 CurrentY用来设置下一个输出的水平坐标和垂直坐标,因此选项 B)和 C)都不正确;Stretch 属性用于图像框,用于自动调整图像框中图形内容的大小,既可通过属性窗口设置,也可以通过程序代码设置,该
18、属性的取值为 True 或 False,当其值为 False 时,将自动放大或缩小图像框中的图形以与图像框的大小相适应,因此选项 D)是正确的。23.结构化程序设计的 3 种结构是(分数:2.00)A.顺序结构、选择结构、转移结构B.分支结构、等价结构、循环结构C.多分支结构、赋值结构、等价结构D.顺序结构、选择结构、循环结构 解析:解析:顺序结构、选择结构和循环结构(或重复结构)是结构化程序设计的 3 种基本结构。24.声明一个变量为局部变量应该用(分数:2.00)A.GlobalB.PrivateC.Static D.Public解析:解析:根据变量的定义位置和所使用的变量定义语句的不同,
19、Visual Basic 中的变量可以分为局部变量、模块变量和全局变量。模块级变量在模块部分用 Private 或 Dim 语句声明;全局变量必须用Public 或 Global 语句声明;局部变量在过程内用 Dim 或 Static 语句声明。25.要使菜单项 MenuOne 在程序运行时失效,使用的语句是(分数:2.00)A.MenuOnVisible=TreeB.MenuOnVisible=FalseC.MenuOnEnabled=TrueD.MenuOnEnabled=False 解析:解析:菜单控件的主要属性有:Caption、Name、Index、Enabled、Visible 等
20、,其中 Enabled 和Visible 属性值为逻辑值,Visible 属性用于表示菜单项是否可见,Enabled 属性用于表示菜单项是否可用。当 Enabled 属性值为 False 时,表示菜单项当前不可 用,属性值为 True 时,表示菜单项可用。26.下列程序的执行结果为 Private Sub Command1_Click() Dim FirStr As String FirSt=“abcdef“ Print Pat(FirStr)End SubPrivate Function Pat(xStr As String)As String Dim tempStr As String,s
21、trLen As Integer tempStr=“ “ strLen=Len(xStr) i=1 Do While i=Len(xStr)-3 tempStr=tempStr+Mid(xStr,i,1)+Mid(xStr,strLen -i+1,1) i=i+1 Loop Pat=tempStrEnd Function(分数:2.00)A.abcdefB.afbecd C.fedcbaD.defabc解析:解析:主调函数最终输出值是 Pat(FirStr)过程的返回值,这就得调用函数过程 Pat。 被调过程 Pat 的参数 xStr 从主调函数中收到实参 FirStr 传来的值“abcdef
22、”,过程 Pat 开始声明了两个变量,一个是 String 型的 tempStr,一个是 Integer 型的 strLen。语句 tempStr=“。 strLen=Len(xStr) 以上两条语句的功能是:为变量 tempStr 赋空值,变量 strLen 的值就是 xstr 的长度,此题为 6。程序代码执行 Do WhileLoop 的循环语句: 第一次循环,I=1,I=3 成立,执行语句tempStr+Mid(xStr,i,1)+Mid(xStr, strLen-i+1,1); mid 函数一般调用格式:Mid(字符串,p,n) 其功能就是从第 p 个字符开始,向后截取 n 个字符,第
23、一次循环结束后,tempStr=“af”; 第二次循环,I=2,I=3 成立,继续执行循环体,tempStr=“afbe”; 第三次循环,I=3,I=3 成立,继续执行循环体,tempStr=“afbecd”; 第四次循环,I=4,I=3 不成立,则跳出循环体,执行语句 Pat=tempStr。所以最终 Pat(FirStr)=“afbecd”,即最后程序执行结果如选项 B)所示。27.单击命令按钮时,下列程序的执行结果是 Private Sub Command1_Click() Dim a As Integer,b As Integer,c As Integer a=3 b=4 c=5 Pr
24、int SecProc(c,b,a)End SubFunction FirProC(x As Integer,y As Integer,z As Integer) FirProc=2*s+y+3*zEnd FunctionFunction SecProc(x As Integer,y As Integer,z As Integer) SecProc=FirProc(z,x,y)+xEnd Function(分数:2.00)A.20B.22C.28 D.30解析:解析:此题程序代码中用了两层调用,我们对这样的问题要多加小心,不能掉以轻心,千万不要把实参和相对应的形参弄混淆。主调过程 Comman
25、d1_Click 输出的是 SecProc(c,b,a)的返回值,调用过程SeeProe 时,主调过程分别把实参 c、b、s 地址传给形参 x、y、z,此时在过程 SecProc 中,SecProc=FirProc(a,b,c)+c。由此看出,程序段执行此语句时,将调用过程 FirProe。把实参 a、c、b的地址分别传给形参 x、y、z,此时在过程 FirProc 中,FirProe=2 * x + y + 3 * z,所以FirProc(a,c,b)=6+4+15=25, SecProc(a,c,b)=25+3=28,所以选项 C)是正确的。28.以下属于 Visual Basic 合法的
26、数组元素是(分数:2.00)A.x8B.x8C.s(0) D.v8解析:解析:本题是对数组基本知识的考查,在 Visual Basic 中,数组元素一般形式为 x(整数),括号中的整数是一个确定值,而且数组名 x 后的圆括号不能省去,也不能由其他的括号代替,所以本题的正确答案是选项 C)。29.下列有关数据库的描述,正确的是(分数:2.00)A.数据处理是将信息转化为数据的过程B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C.关系中的每一列称为元组,一个元组就是一个字段D.如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字 解
27、析:解析:数据处理是指将数据转换成信息的过程,所以选项 A)叙述错误;数据的物理独立性是指数据的物理结构的改变,不会影响数据库的逻辑结构,所以选项 B)叙述错误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,所以选项 C)叙述错误。30.链表不具有的特点是(分数:2.00)A.不必事先估计存储空间B.可随机访问任一元素 C.插入删除不需要移动元素D.所需空间与线性表长度成正比解析:解析:链表采用的是链式存储结构,它克服了顺序存储结构的缺点:它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,不需要移动数据元素。但是链式存储结构也有不足
28、之处:每个结点中的指针域需额外占用存储空间;链式存储结构是一种非随机存储结构。31.以下各项中,Visual Basic 不能接收的图形文件是(分数:2.00)Aico 文件Bjpg 文件Cpsd 文件 Dbmp 文件解析:解析:在 Visual Basic 中,可以接受不同的图形文件,见下表。 32.下列程序段执行结果为 x=5y=-6If Not x0 Then x=y-3 Else y=x+3Print x-y;y-x(分数:2.00)A.-3 3 B.5 -9C.3 -3D.-6 5解析:解析:程序开始时分别执行 x,y 赋值 5,-6。If 语句 Not xO 相当于 x=0,现在
29、x 的值为 5,比 0 大,所以条件值为 False,执行 Else 浯句 y=x+3,此时 y 为 8,执行 Print 方法,即输出 x-y 和 y-x的值,x-y=-3,y-x=3,所以最后输出结果应该如选项 A)所示。33.运行下列程序段后,显示的结果为 J1=23 J2=32 If J1J2 Then Print J2 Else Print J1(分数:2.00)A.23B.32 C.55D.2332解析:解析:题中是条件语句 If J12 Then Print J2 Else Print J1,即 J1 J2 时输出 J2,否则输出 J1,即输出两者的最大者。显然应该是 32,正确
30、答案是选项 B)。34.数据库管理系统 DBMS 中用来定义模式、内模式和外模式的语言为(分数:2.00)A.CB.BasicC.DDL D.DML解析:解析:选项 A)、B)显然不合题意。数据定义语言(Data Definition Language,简称 DDL)负责数据的模式定义与数据的物理存取构建;数据操纵语言(Data Manipulation Language,简称 DML)负责数据的操纵,包括查询及增、删、改等操作。35.只有将组合框的 Style 属性设置为何值时,才能触发 DblClick 事件?(分数:2.00)A.0B.1 C.2D.3解析:解析:组合框的事件依赖于其 S
31、tyle 属性,只有 Style 属性设置为 1 时,才能接收 DblClick 事件,因此只有 B)选项正确。二、B填空题/B(总题数:10,分数:20.00)36.算法的基本特征是可行性、确定性、 【1】 和拥有足够的情报。(分数:2.00)填空项 1:_ (正确答案:【1】有穷性)解析:解析:算法是指解题方案的准确而完整的描述。它有 4 个基本特征,分别是可行性、确定性、有穷性和拥有足够的情报。37.在长度为 n 的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为 【2】 。(分数:2.00)填空项 1:_ (正确答案:【2】log 2n)解析:解析:对于长度为 n 的有序线性表
32、,在最坏情况下,二分查找只需要比较 log2n 次,而顺序查找需要比较n 次。38.在面向对象的程序设计中,类描述的是具有相似性质的一组 【3】 。(分数:2.00)填空项 1:_ (正确答案:【3】对象)解析:解析:将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。39.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为 【4】 。(分数:2.00)填空项 1:_ (正确答案:【4】软件生命周期)解析:解析:软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护
33、等活动。40.数据库管理系统常见的数据模型有层次模型、网状模型和 【5】 3 种。(分数:2.00)填空项 1:_ (正确答案:【5】关系模型)解析:解析:数据库管理系统是位于用户与操作系统之间的一层系统管理软件,是一种系统软件,是用户与数据库之间的一个标准接口。其总是基于某种数据模型,可以分为层次模型、网状模型和关系模型。41.Visual Basic 对象可以分为两类,分别为 【6】 和 【7】 。(分数:2.00)填空项 1:_ (正确答案:【6】预定义对象)解析:【7】用户定义对象 解析:对象分为两类:预定义对象和用户定义对象,预定义对象是由系统设计好的,可以直接使用或对其进行操作;而
34、用户定义对象中的对象可由程序员自己定义,建立自己的对象。42.完成下面的程序,使显示结果如下图所示。 Private Sub Form_Click() FontSize=18 Sample$s=“U【8】 /U“ x=(ScaleWidth-TextWidth(Sample$)2 y=(ScaleHeight-TextHeight(Sample$)2 CurrentX=x CurrentY=y U 【9】 /USample$ End Sub (分数:2.00)填空项 1:_ (正确答案:【8】Welcome to Beijing!)解析:【9】Print 解析:该题中主要是考查了赋值语句与显示
35、语句。赋值语句是根据图示给出的信息,填写上字符串,然后,用 Print 命令,使字符串显示在窗体上。赋值语句为 Sample$= “Welcome to Beijing!“;输出语句为:Print Sample$。43.下列程序的功能是:当 x100 时,没有意义。请填空。Private Sub Command1_Click()Dim x As Singlex=InputBox(“请输入 x 的值!“) U 【10】 /UCase Is50y=08 * xCase 50 To 100y=07 * xU 【11】 /UPrint“输入的数据出界!“End SelectPrint x,yEnd S
36、ub(分数:2.00)填空项 1:_ (正确答案:【10】Select Case x)解析:【11】Case Else 解析:阅读程序后,看到程序中有了 Case 和 End Select 子句,没有多分支选择结构的起始语句,很明显,第一个空应该填写多分支结构的起始语句 Select Case x。在 Select Case 结构中,只有两个 Case 子句,分别表示 x 取值的两种情况,但题目中将 x 的值分为 3 种情况,可见第二个空应该填写 Case Else 语句。44.改变驱动器列表框的 Drive 属性值将引发 【12】 事件。(分数:2.00)填空项 1:_ (正确答案:【12】
37、Change)解析:解析:本题考查的是驱动器列表框的知识。驱动器列表框的最常用的事件是“Change 事件”,每次重新设置 Drive 属性都会引起“Change”事件。45.下面程序是由鼠标事件在窗体上画图,如果按下鼠标将可以画图,双击窗体可以清除所画图形。补充完整下面的程序。 首先在窗体层定义如下变量: Dim PaintStart As Boolean 编写如下事件过程: Private Sub Form_Load() DrawWidth=2 ForeColor=vbGreen End Sub Private Sub Form_MouseDown(Button As Integer,Sh
38、ift As Integer,_ X As Single,Y As Single) U 【13】 /U End Sub Private Sub Form_MouseMove(Button As Integer,Shift As Integer,_ X As Single,Y As Single) If PaintStart Then PSet(X,Y) End If End Sub Private Sub Form_MouseUp(Button As Integer,Shift As Integer,_ X As Single,Y As Single) U 【14】 /U End Sub Pr
39、ivate Sub Form_Db1Click() U 【15】 /U End Sub(分数:2.00)填空项 1:_ (正确答案:【13】PaintStart=True)解析:【14】PaintStart=False 【15】Cis 解析:上述过程定义了一个布尔型变量 PaintStart,当按下鼠标左键(触发 MouseDown 事件)时,由题意按下鼠标键表示能画图,所以该变量的值为 True,而松开鼠标左键(触发 MouseUp 事件)时,该变量为 False;如果变量 PaintStart 为 True,则移动鼠标(触发 MouseMove 事件),将在窗体上绘出一个点;除鼠标事件外,上述程序还含有一个 Load 事件过程和一个DblClick 事件过程,其中 Load 事件过程用来设置画点的大小和颜色, DblClick 事件过程用来清除所画的图形,函数 Pset 是画点语句,用它可以在(x,y)处画一个点。