一、单项选择题
(1) 算法的空间复杂度是指
A) 算法程序的长度
B) 算法程序中的指令条数
C) 算法程序所占的存储空间
D) 执行过程中所需要的存储空间
解析: 算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。
(2) 用链表表示线性表的优点是
A) 便于随机存取
B) 花费的存储空间较顺序存储少
C) 便于插入和删除操作
D) 数据元素的物理顺序与逻辑顺序相同
解析: 链式存储结构克服了顺序存储结构的缺点:它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,不需要移动数据元素。故链式存储结构下的线性表便于插入和删除操作。
(3) 数据结构中,与所使用的计算机无关的是数据的
A) 存储结构
B) 物理结构
C) 逻辑结构
D) 物理和存储结构
解析: 数据结构概念一般包括3个方面的内容,数据的逻辑结构、存储结构及数据上的运算集合。数据的逻辑结构只抽象的反映数据元素之间的逻辑关系,而不管它在计算机中的存储表示形式。
(4) 结构化程序设计主要强调的是
A) 程序的规模
B) 程序的效率
C) 程序设计语言的先进性
D) 程序易读性
解析: 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化及限制使用goto语句,总的来说可使程序结构良好、易读、易理解、易维护。
(5) 软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指
A) 模块间的关系
B) 系统结构部件转换成软件的过程描述
C) 软件层次结构
D) 软件开发过程
解析: 软件设计包括软件结构设计、数据设计、接口设计和过程设计。其中结构设计是定义软件系统各主要部件之间的关系;数据设计是将分析时创建的模型转化为数据结构的定义;接口设计是描述软件内部、软件和操作系统之间及软件与人之间如何通信;过程设计则是把系统结构部件转换成软件的过程性描述。
(6) 检查软件产品是否符合需求定义的过程称为
A) 确认测试
B) 集成测试
C) 验证测试
D) 验收测试
解析: 确认测试的任务是验证软件的功能和性能,以及其他特性是否满足需求规格说明中确定的各种需求;集成测试的主要目的是发现与接口有关的错误。
(7) 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是
A) 控制流
B) 加工
C) 数据存储
D) 源和潭
解析: 数据流图包括4个方面,即加工(转换) (输入数据经加工变换产生输出) 、数据流(沿箭头方向传送数据的通道,一般在旁边标注数据流名) 、存储文件(数据源) (表示处理过程中存放各种数据的文件) 、源和潭(表示系统和环境的接口,属系统之外的实体)。不包括选项中的控制流。
(8) 应用数据库的主要目的是
A) 解决数据保密问题
B) 解决数据完整性问题
C) 解决数据共享问题
D) 解决数据量大的问题
解析: 数据库中的数据具有"集成"与"共享"的特点,亦即是数据库集中了各种应用的数据,进行统一构造与存储,而使它们可以被不同应用程序所使用,故选项C)正确。
(9) 在数据库设计中,将E-R图转换成关系数据模型的过程属于
A) 需求分析阶段
B) 逻辑设计阶段
C) 概念设计阶段
D) 物理设计阶段
解析: E-R模型即实体-联系模型,是将现实世界的要求转化成实体、联系、属性等几个基本概念,以及它们之间的两种联接关系。数据库逻辑设计阶段包括以下几个过程:从E-R图向关系模式转换,逻辑模式规范化及调整、实现规范化和RDBMS,以及关系视图设计。
(10) 在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是
A) 数据库系统
B) 文件系统
C) 人工管理
D) 数据项管理
解析: 人工管理阶段是在20世纪50年代中期以前出现的,数据不独立,完全依赖于程序;文件系统是数据库系统发展的初级阶段,数据独立性差;数据库系统具有高度的物理独立性和一定的逻辑独立性。
(11) 窗体文件的扩展名是
A) .bas
B) .cls
C) .frm
D) .res
解析:.bas为程序模块文件的扩展名;.cls为类模块文件的扩展名;.res为相关资源文件的扩展名,.frm为窗体文件的扩展名,所以选项C)是正确的。
(12) 下列可以启动Visual Basic的方法是
A) 打开"我的电脑",找到存放Visual Basic所在系统文件的硬盘及文件夹,双击"VB6.exe"图标
B) 在DOS窗口中,键入Visual Basic的路径,执行Visual Basic可执行文件
C) 利用"开始"菜单中的"程序"命令可启动Visual Basic
D) A) 和C)
解析:启动Visual Basic有4种方式:打开"我的电脑",找到存放Visual Basic所在的系统文件的硬盘及文件夹,双击"VB6.exe"图标,即可进入Visual Basic编程环境;所以选项A)是正确的;利用"开始"菜单中的"程序"命令方式进入;所以选项C)也是正确的;使用"开始"菜单中的"运行"命令,在"打开"栏中键入VB6.exe的存放路径,单击"确定"按钮即可;把VB6.exe文件直接拖到桌面可建立启动Visual Basic的快捷方式,双击该执行文件即可。
(13) 关于货币型数据的说明,正确的是
A) 货币型数据有时可以表示成整型数据
B) 货币型数据与浮点型数据完全一样
C) 货币型数据是由数字和小数点组成的字符串
D) 货币型数据是小数点位置固定的实型数
解析:货币型数据是Visual Basic特有的一种数据结构,是专门用来表示货币数量的数据类型。货币型数据不能表示成整型数据的形式,这是使用"货币"数据的实际需要决定的。货币型数据是数值的,经常要进行各种运算,不能是字符串。货币型数据与浮点型数据都是带有小数点的数,但货币型数据小数点后的有效数位固定为4位。
(14) 在运行程序时,在文本框中输入新的内容,或在程序代码中改变Text的属性值,相应会触发到什么事件?
A) GotFocus
B) Click
C) Change
D) DblClick
解析:在本题的四个选项中,GotFocus是设置焦点事件,所以选项A)不合题意;Click是单击事件,不合题意;DblClick是双击事件,也不合题意;Change是改变文本框内容事件,只要文本框中的内容改变就会触发,故选项C)是本题的答案。
(15) 如果一个变量未经定义就直接使用,则该变量的类型为
A) Integer
B) Byte
C) Boolean
D) Variant
解析:在Visual Basic中,系统提供了多种数据类型,有字符串类型、数值型、货币型、布尔型,日期型等,此外还有一种变体类型,Variant是一种特殊的数据类型,Variant变量中可以存放任何类型的数据,如数值、文本字符串、日期和时间等,向Variant变量赋值时不必进行任何转换,系统将自动进行必要的转换。如果变量未经定义就直接使用,则该变量为Variant类型。
(16) 根据变量的作用域,可以将变量分为3类,分别为
A) 局部变量、模块变量和全局变量
B) 局部变量、模块变量和标准变量
C) 局部变量、模块变量和窗体变量
D) 局部变量、标准变量和全局变量
解析:变量的作用域指变量的作用范围,根据变量的定义位置和使用的变量定义语句的不同,变量可以分为3类,即局部变量、模块变量和全局变量。局部变量是在过程(事件过程或通用过程) 内定义的变量,其作用域是它所在的过程,通常用来存放中间结果或用作临时变量;模块变量包括窗体变量和标准模块变量,窗体变量可用于该窗体内的所有过程,使用前必须先声明,也就是说,窗体层变量不能默认声明;全局变量也称全程变量,其作用域最大,可在工程的每个模块、每个过程中使用,和模块级变量类似,全局变量也在标准模块的声明部分声明,所不同的是全局变量必须用Public或Global语句声明,不能用Dim语句声明,更不能用Private声明;全局变量只能在标准模块中声明,不能在过程或窗体模块中声明。
(17) 标签控件能够显示文本信息,文本内容只能用什么属性来设置?
A) Alignment
B) Caption
C) Visible
D) BorderStyle
解析:标签(Label) 主要用来显示一小段不需要用户修改的文本,被显示文本内容只能由Caption属性来定义和修改,因此选项B)是正确的;选项A)确定标签标题的放置方式;选项C)决定程序运行后,控件是否在屏幕上显示出来;BorderStyle属性返回或设置对象的边框样式。
(18) 一个工程必须包含的文件的类型是
A) *.vbp *.frm *.frx
B) *.vbp *.cls *.bas
C) *.bas *.ocx *.res
D) *.frm *.cls *.bas
解析:一个工程中可以包含7类文件,其中,工程文件、窗体文件和窗体的二进制数据文件是一个工程不可缺少的文件,这7类文件的扩展名及含义分别是:
.vbp是Visual Basic Project的缩写,表示工程文件。
.frm是Form的缩写,表示窗体文件。
.frx笔试窗体的二进制数据文件。
.cls是class的缩写,表示类模块文件。
.bas是Basic的缩写,表示标准模块文件。
.ocx表示ActiveX控件的文件。
.res是resource的缩写,表示资源文件。
(19) 在Visual Basic中,要使标签的标题栏居中显示,则将其Alignment属性设置为
A) 0
B) 2
C) 1
D) 3
解析:本题考查的是标签的Alignment属性的设置。
Alignment属性用来设置标签中标题的位置,可将其设置为0,1,2,作用如下:
0:标题靠左显示(默认)。
1:标题靠右显示。
2:标题居中显示。
(20) 在Visual Basic中,组合框是文本框和什么的特性的组合?
A) 复选框
B) 标签
C) 列表框
D) 目录列表框
解析:组合框是一个独立的控件,它具有列表框和文本框的功能,它可以像列表框一样,让用户通过鼠标选择需要的项目,也可以像文本框一样,用键入的方式选择项目。
21) 当滚动条位于最左端或最上端时,Value属性被设置为
A) Min
B) Max
C) Max和Min之间
D) Max和Min之外
解析:一般情况下,垂直滚动条的值由上往下递增,最上端代表最小值,最下端代表最大值;水平滚动条的值从左到右递增,最左端代表最小值,最右端代表最大值。因此当滚动条位于最左端或最下端时,Value属性被设置为Min。
(22) 下面的数组声明语句中正确的是
A) Dim gg[1,5] As String
B) Dim gg[1 To 5,1 To 5] As String
C) Dim gg(1 To 5) As String
D) Dim gg[1 :5,1: 5] As String
解析:在默认情况下无论是一维还是二维或更多维的数组其缺省下标都从0开始,但有时为了方便,用户可以自定义数组的上下界,那就得用关键字To来设置。例如:d(1 To 6),其含义就是一个名为d,上界为6,下界为1的数组。
(23) 下列说法正确的是
A) 任何时候都可以使用标准工具栏的"菜单编辑器"按钮打开菜单编辑器
B) 只有当代码窗口为当前活动窗口时,才能打开菜单编辑器
C) 只有当某个窗体为当前活动窗体时,才能打开菜单编辑器
D) 任何时候都可以使用"工具"菜单下的"菜单编辑器"命令,打开菜单编辑器
解析:在Visual Basic中,因为"菜单编辑器"命令是在"工具"菜单下,所以只有当某个窗体为当前活动窗体时,才能从"工具"菜单中选择"菜单编辑器"选项,打开菜单编辑器。
(24) 下列各选项说法错误的一项是
A) 文件对话框可分为两种,即打开(Open) 文件对话框和保存(Save As) 文件对话框
B) 通用对话框的Name属性的默认值为CommonDialogX,此外,每种对话框都有自己的默认标题
C) 打开文件对话框可以让用户指定一个文件,由程序使用;而用保存文件对话框可以指定一个文件,并以这个文件名保存当前文件
D) DefaultEXT属性和DialogTitle属性都是打开对话框的属性,但非保存对话框的属性
解析:文件对话框分为两种:即打开对话框和保存对话框,所以选项A)的正确;通用对话框的Name属性的默认值为CommonDialogX,此外,每种对话框都有自己的默认标题,所以选项B)正确;打开文件对话框可以让用户指定一个文件,由程序使用,而用保存文件对话框可以指定一个文件,并以这个文件名保存当前文件,所以选项C)正确;除DefaultEXT、DialogTitle属性是打开和保存对话框共有的,还有FileName、FileTitle、Filter、FilterIndex、Flags、InitDir、MaxFileSize、CancelError、HelpCommand、HelpContext和HelpFile属性,都是它们共有的,所以选项D)不正确。
(25) 用InputBox函数设计的对话框,其功能是
A) 只能接收用户输入的数据,但不会返回任何信息
B) 能接收用户输入的数据,并能返回用户输入的信息
C) 既能用于接收用户输入的信息,又能用于输出信息
D) 专门用于输出信息
解析:InputBox函数能接收用户输入的数据,并能返回用户输入的信息,不能用于输出信息。InputBox函数中的Prompt参数是在对话框中显示提示信息,这种提示信息是由用户确定的,不能把它当作输出信息的功能。
(26) 下列程序段的执行结果为
I=4
x=5
Do
I=I + 1
x=x + 2
Loop Until I>=7
Print "I="; I
Print "x="; x
A) I=4x=5
B) I=7x=15
C) I=6x=8
D) I=7x=11
解析:此题用的是Do循环结构,其格式为:
Do
语句块]
[Exit Do]
Loop Until 循环条件
此循环由于"先执行后检查",所以至少执行一次。本题中,程序运行到循环条件I>=7的值为True时才停止。所以当程序结束运行后I=7,x=11。
(27) 下列程序段的执行结果为
a=1
b=5
Do
a=a + b
b=b + 1
Loop While a < 10
Print a; b
A) 1 5
B) 12 7
C) a b
D) 10 25
解析:此题比较简单,开始a为1,b为5,执行Do语句,具体运行为:执行a=a+b,b=b+1语句后,a为6,b为6。这样运行到a=12,程序终止循环,此时b=7。
(28) 下列程序段的执行结果为
a=75
If a > 60 Then I=1
If a > 70 Then I=2
If a > 80 Then I=3
If a < 90 Then I=4
Print "I="; I
A) I=1
B) I=2
C) I=3
D) I=4
解析:此题为If Then 结构的条件语句,如果a > 60 ,则I = 1;如果a > 70 ,则I = 2;如果a > 80 ,则I = 3;如果 a < 90,则I = 4;本题的条件是a=75,所以输出结果应该是I = 4。
(29) 有如下事件过程:
Private Sub Command1_Click()
b=10
Do Until b=-1
a=InputBox("请输入a的值")
a=Val(A)
b=InputBox("请输入b的值")
b=Val(b)
a=a * b
Loop
Print a
End Sub
程序运行后,依次输入数值30,20,10,-1,输出结果为
A) 6000
B) -10
C) 200
D) -6000
解析:Do Until-Loop循环执行的规则是:先判断Do语句中的<条件>,若为真,则结束循环;若<条件>为假,则执行循环体。
本程序执行时,先判断条件"b=-1"是否为真,此时b为10,"b=-1"不成立,执行循环体。a和b分别取得InputBox函数接收到的值为30和20,做乘法后a的值为600。执行Loop后,返回Do语句再判断"b=-1"是否为真,此时b为20,"b=-1"不成立,继续执行循环体,a和b再次取得InputBox函数接收到的值为10和-1,做乘法后a的值为-10。执行Loop后,返回到Do语句判断"b=-1"是否为真,此时b=-1,"b=-1"条件成立,结束循环,把a的值打印出来。
(30) 下面程序段执行结果为
x=Int(Rnd() + 3)
Select Case x
Case 5
Print "excellent"
Case 4
Print "good"
Case 3
Print "pass"
Case Else
Print "fail"
End Select
A) excellent
B) good
C) pass
D) fail
解析:本题中可以看到x = Int(Rnd()+ 3) 语句,其中Rnd用来产生随机数,其值在0~1之间,而在(Rnd()+3) 前面有Int进行强制转换,所以x为3,执行Print "pass"语句。
(31) 定义过程的格式中,Static关键字的作用是指定过程中的局部变量在内存中的存储方式。若使用了Static关键字,则
A) 每次调用此过程,该过程中的局部变量都会被重新初始化
B) 在本过程中使用到的,在其他过程中定义的变量也为Statci型
C) 每次调用此过程时,该过程中的局部变量的值保持在上一次调用后的值
D) 定义了该过程中定义的局部变量为"自动"变量
解析:Static关键字用于指定局部变量在内存中的存储方式。变量的存储方式有两种:静态的和自动的。静态存储方式是指当过程运行完毕后,变量所占的内存单元不释放,而变量的值被保存下来,该变量为静态变量。Static型变量所占存储控件只初始化一次,且变量的值在整个程序运行期间都存在;Static关键字对过程之外定义的变量没有影响;Static关键字是定义该过程中定义的局部变量为静态变量。
(32) 单击命令按钮时,下列程序的执行结果为
Private Sub Command1_Click()
Dim x As Integer, y As Integer
x=50: y=78
Call PPP(x, y)
Print x; y
End Sub
Public Sub PPP(ByVal n As Integer, ByVal m As Integer)
n=n \ 10
m=m \ 10
End Sub
A) 08
B) 5078
C) 450
D) 7850
解析:在调用过程时,一般主调与被调过程之间有数据传递,即将主调过程的实参传递给被调用的过程,完成实参与形参的结合,然后执行被调过程,在Visual Basic中,实参与形参的结合有两种方式,即传址与传值。这两种方法的特点如下:
传址的结合过程时,当调用一个过程时,它将实参的地址传给形参,因此在被调用的过程中,对形参的任何操作都变成了对相应实参的操作,因此实参的值会随形参的改变而改变。
传值的结合过程时,当调用一个过程时,系统将实参的值复制给形参并断开了联系,被调用过程中的操作是在形参自己的存储单元中进行的,当过程调用结束时,这些形参所占用的存储单元也同时被释放,因此在过程中对形参的任何操作不会影响实参。而题中被调过程PPP中有两个形参,两者均为传值方式。主调过程分别把实参x、y 传递给PPP,所以当过程调用结束后,实参x、y的值都没有改变,最后输出的值应为50 78。
(33) 单击按钮时,以下程序运行后的输出结果是
Private Sub proc1(x As Integer, y As Integer, z As Integer)
x=3 * z
y=2 * z
z=x + y
End Sub
Private Sub Command1_Click()
Dim x As Integer, y As Integer, z As Integer
x=1: y=2: z=3
Call proc1(x, x, z)
Print x; x; z
Call proc1(x, y, y)
Print x; y; y
End Sub
A) 6 6 12
6 10 10
B) 9 5 10
5 10 10
C) 9 6 12
9 10 15
D) 9 10 10
5 4 10
解析:从整体上看,可得主调过程将两次调用过程Proc1后,实参的值将随形参变化而变化,现在分析一下这两次调用实参和形参是怎么变化的。
第一次调用被调过程proc1,主调过程把实参x,x,z的地址分别传给形参x,y,z,此时形参x,y,z值分别为1,1,3,执行语句x = 3 * z后,形参x值变为9,此时相对应的实参x也变为9,执行语句y = 2 * z后,形参y值变为6,则相对应的实参x值变为6。执行z = x + y后,形参z值应为12,当然这次调用后,程序代码输出的数值为6,6,12;
第二次调用被调过程proc1,主调过程把实参x,x,z的地址分别传给形参x,y,z。我们应注意一下,此时实参x的值为6而不是1,所以此时形参x,y,z值分别为6,2和2,执行语句x = 3 * z后,形参x值为6,相对实参x值也相应的变为6。执行语句y = 2 * z后,形参y值变为4,相应的实参y值也变为4,执行z = x + y后,形参z值变为10,相应的实参y的值变为10,而形参y和z的地址相同,最后它们值都应为10,所以此次调用后,程序代码将输出的数值为6,10和10。
(34) 单击命令按钮时,下列程序的运行结果为
Private Sub Command1_Click()
Print MyFund(20, 18)
End Sub
Public Function MyFund(m As Integer, n As Integer) As Integer
Do While m <> n
Do While m > n: m=m - n: Loop
Do While m < n: n=n - m: Loop
Loop
MyFund=m
End Function
A) 0
B) 2
C) 4
D) 6
解析:此题程序代码中,被调过程采用了Do While…Loop的嵌套语句结构,主调过程只调用了一次被调过程,Print MyFund(20, 18) 语句表明,程序最后输出的只是被调过程的返回值。主调过程在调用被调过程MyFund时,把数值20,18分别传给形参m和n,从被调过程中的循环语句来看,因为此时m的值大于n的值,所以执行语句m = m - n,m值变为2,而由语句MyFund = m可看出,此过程的返回值就是m的值,即2。
(35) 在窗体上画一个命令按钮,然后编写如下程序
Private Sub Command4_Click()
Dim a As Integer, b As Integer
a=1
b=2
Print N(a, b)
End Sub
Function N(x As Integer, y As Integer) As Integer
N=IIf(x > y, x, y)
End Function
程序运行后,单击命令按钮,输出结果为
A) 1
B) 2
C) 5
D) 8
解析:事件过程N的作用是输出两个数中最大的,它调用了IIF函数,条件部分是(x>y),如果满足,那么N的值即为x的值,否则为y的值。在Sub过程中,定义了两个变量a,b,并赋给它们初值1,2,并调用Print函数,输出N(a,b)的值,因为x<y,所以输出y=2。