(26)使用器列表框的_______属性可以返回或设置驱动器列表中当前选中的磁盘驱动 器的索引值。
A)ChDrive B)Drive C)List D)Listlndex
答案:D
评析:Drive属性用来设置或返回程序运行时所选择的驱动器名。
List属性是包含了当前系统中有效驱动器的连接列表。
Listlndex属性用来设置或返回驱动器连接列表中当前所选中的项目的索引。
(27)使用目录列表框的_______属性可以返回或设置当前工作目录的完整路径(包括驱动器盘符)。
A)Drive B)Path C)Dir D)ListIndex
答案:B
评析:目录列表框控件的相关属性
Path属性用来返回或设置当前的工作路径。例如,当前工作路径是"C:\Windows",则Path属性返回的值就是:"C:\Windows"。
ListIndex属性用来返回或设置目录列表框的目录列表中当前所选中的项目的索引。
(28)下面叙述中正确的是_________。
A)随机文件中记录的长度不是固定不变的
B)随机文件由若干条记录组成,并可以按记录号访问各个记录
C)不能按任意顺序访问随机文件中的数据
D)可以同时对打开的随机文件进行读写操作
答案:B
评析:随机文件又称直接文件,由若干个记录来组成,每个记录的长度都是固定的,并且每个记录都有一个记录号,因此可以根据记录号访问随机文件的任意记录。
注意:当用Open语句打开一个随机文件的时候,如果指定存取誉型为读写类型,则可以任意读写该文件;
如果指定存取类型为只读类型,则只能进行读操作;如果指定存取类型为只写类型,则只能进行写操作。
(29)编写如下事件过程:
Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,
Y As Single)
If Shift=6 And Button=2 Then
Print"BBBB"
End If
End Sub
程序运行后,为了在窗体上输出"BBBB",应执行的操作为_________。
A)同时按下Shift键和鼠标左键
B)同时按下Shift键和鼠标右键
C)同时按下Ctrl、Alt键和鼠标左键
D)同时按下Ctrl、Alt键和鼠标右键
答案:D
评析:在鼠标的Mouse_Down事件申,当按下左键时,Button=l,右键时Button=2,在键盘上按下Shift键时,Shift值为l,Ctrl键时,Shift值为2,Alt时,Shift值为4,如果同时按下多键,则它们的值也相加。
(30)在窗体上画一个文本框,其名称为Text1。为了在程序运行后Text1中的文本不可编 辑,应当使用的语句:_________。
A)Textl.Clear B)Textl.Locked=True
C)Textl.Visible=False D)Textl.Enabled=True
答案:B
评析:对于Textbox控件,可通过设置其Visible属性为False,使其隐藏,设置Enabled属性为False使其不可用,设置Locked属性为True,使其不可被编辑。
(31)以下程序段运行的结果是:_________。
Dim a(-1 To 51 As Boolean
Dim nag As.Boolean
flag=False
Dim i As Integer
Dim j As Integer
Do Until flag=True
For i=-1 To 5
j=j+1
If a(i)=False Then
a(i)=True
Exit For
End If
If i=5 Then
flag=True
End If
Next
Loop
Print j
A)20 B)7 C)35 D)8
答案:C
评析:该程序段的作用是给数组a的每个数组元素赋值True,具体实现的方式为:
每次从数组a的第一个元素开始判断,该元素是否为False,如果是,则令此元素为True,然后跳出循环,重新从数组a的第一个元素开始判断;如果当前元素不为False,则判断下一个元素。因此语句j=j+1将执行1+2+3+4+5+6+7=28次,即j=28。然后再遍历一遍数组a的所有元素,最后结束程序段。所以i最终的值是:j=28+7=35。
(32)以下叙述不正确的是:__________。
A)在Sub过程中可以调用Function过程
B)在用Call调用Sub过程时必须把参数放在括号里
C)在Sub过程中可以嵌套定义Function
D)-用Static声明的过程中的局部变量都是Static类型
答案:C
评析:Vb中,可以直接使用过程名调用过程,也可以结合Call关键字调用。使用Call调用过程时,参数列表必须用括号包含起来。VB语言不支持函数与过程的嵌套定义。Static关键字可以指定局部变量为静态类型变量。
(33)在窗体上画一个命令按钮,其名称为Command1,然后编写如下程序:
Function Func(By Val x As Integer,y As Integer)
y=x*y
If y>0 Then
Func=x
Else
Func=y
End If
End Function
Private Sub Command1_Click()
Dim a As Integer.B As Integer
a=3
b=4
c=Func(a,b)
Print"a=";a
Print"b=":b
Print"c=":c
End Sub
程序运行后,单击命令按钮,其输出结果为:________。
A)a=3 b=12 c=3 B)a=3 b=4 c=3
C)a=3 b=4 c=12 D)a=13 b=12 c=12
答案:A
评析:函数Func(3,4)的返回值为3,故c的值为3。由于参数x是按值传递的,a的值仍为3;而参数v是按地址传递的,b的值变为3*4。
(34)在窗体上画一个驱动器列表框、一个目录列表框和一个文件列表框,其名称分别为 Drivel、Dir1和File1。当改变目录列表框的内容时,要求文件列表框中显示当前选中的文件夹中的内容,则在Dir1_Change事件过程中应使用的语句是:_______。
A)Dirvel.Drive=Dirl.Path B)Dirl.Path=Drivel.Drive
C)Dirl.Path=Filel.Path D)Filel.Path=Dirl.Path
答案:D
评析:由于要在文件列表框中显示当前选中的文件夹中的内容,所以应使用的语句是Filel.Path=Dirl.Path。
(35)下列程序段的执行结果为_________。
A=0:B=0
For I=-1 TO -2 Step -l
For J=l TO 2
B=B+l
Next J
A=A+1
NextI
Print A:B
A)2 4 B)-2 2 C)4 2 D)2 3
答案:A
评析:For…Next循环
跟踪程序:内循环的循环体执行了四次,外循环的循环体执行了两次,故A=2,B=4。
二、填空题(每空2分,共30分)
请将每空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。
(1) 实现算法所需的存储单元多少和算法的工作量大小分别称为算法的 【l】 。
答案:【1】空间复杂度和时间复杂度
评析:算法的复杂性是指对一个在有限步骤内终止算法和所需存储空间大小的估计。算法所需存储空间大小是算法的空间复杂性,算法的计算量是算法的时间复杂性。
(2) 数据结构包括数据的逻辑结构、数据的 【2】 以及对数据的操作运算。
答案:【2】存储结构
评析:数据结构包括3个方面,即数据的逻辑结构、数据的存储结构及对数据的操作运算。
(3) 一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的 【3】 。
答案:【3】可重用性
评析:继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。
(4) 面向对象的模型中,最基本的概念是对象和 【4】 。
答案:【4】类
评析:面向对象模型中,最基本的概念是对象和类。对象是现实世界中实体的模型化;将属性集和方法集相同的所有对象组合在一起,可以构成一个类。
(5) 软件维护活动包括以下几类:改正性维护、适应性维护、 【5】 维护和预防性维护。
答案:【5】完善性
评析:软件维护活动包括以下几类:改正性维护、适应性维护、完善性维护和预防性维护。改正性维护是指在软件交付使用后,为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程;适应性维护是指为了使软件适应变化,而去修改软件的过程;完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性;预防性维护是为了提高软件的可维护性、可靠性等,为以后的进一步改进软件打下良好基础。
(6) Visual Basic中的控件分为3类,它们是标准控件、 【6】 和可插入对象。
答案:【6】ActiveX控件
评析:Visual BASIC中的控件分为以下3类:
标准控件(也称内部控件)、ActiveX控件、可插入对象。
(7)程序执行结果s的值 【7】 。
Private Sub subl(Byval p As Integer)
p=p*2
End Sub
Private Sub Command1_lick()
Dim i As Integer
i=3
Call subl(i)
if i>4theni=i mod 2
Print cstr(i)
End Sub
答案:【7】3
评析:ByVal表示所声明的参数是按值传递的。因此参数值的变化只在被调用的函数或过程中有效,即只是形参的值有变化,而实参不受影响。ByRef表示所声明的参数是按地址传递的。因此形参值的变化都会反映在实参上。
本题程序中,参数p是按值传递的,因此调用subl后,实参i的值仍为3。
(8)在执行KeyPress事件过程时,KeyASCII是所按键的 【8】 值。对于有上档字符和下档字符的键,当执行KeyDown事件过程时,KeyCode是 【9】 字符的ASCII值。
答案:【8】ASCII
【9】下档
评析:此事件当用户按下和松开一个ANSI键时发生。
语法
Private Sub object KeyPress([index.As Integer,]keyascii As Integer)
应当使用KeyDown和KeyUP事件过程来处理任何不被KeyPress识别的击键,诸如:功能键、编辑键、定位键以及任何这些键和键盘换档键的组合等。与KeyDown和KeyUp事件不同的是,KeyPress不显示键盘的物理状态,而只是传递一个字符。
KeyPress将每个字符的大、小写形式作为不同的键代码解释,即作为两种不同的字符。而KeyDown和KeyUp用两种参数解释每个字符的大写形式和小写形式:KeyCode一显示物理的键(将A和a作为同一个键返回)和Shift.指Shift+Key键的状态而且返回A或a其中之一。
(9)文件的打开和关闭语句分别是 【l0】 和 【11】 。
答案:【10】Open
【ll】Close
评析:Open语句能够对文件输入/输出(I/O)。其语法结构为:
Open pathname For mode[Access access][lock]As[或]filenumber[Len=reclen[gth]
关闭Open语句所打开的输入/输出(I/O)文件使用的是Close语句。语法格式为
Close[filenumbedist]
其中可选的filenumberlist参数为一个或多个文件号。
(10)假定有如下程序代码,程序运行后,把鼠标光标移到窗体内,每单击一次,变换一种鼠标光标的形状,依次显示鼠标光标的15个属性。请在划线处将程序补充完整。
Private Sub Form_Click()
Static x As Integer
Cls
Print"Mousepointer Property is now";x
Forml. 【l2】 =x
x=x+1
If x=15 Then x=0
End Sub
答案:【12】MousePointer
评析:MousePointer属性可以通过代码设置,也可以通过属性窗口设置,在程序代码中设置MousePointer属性的一般格式为:
对象.MousePointer=设置值
由于程序中使用Static关键字定义变量x,每次单击窗体时x的值增加l,并且下次单击窗体时,x能保留上次的值,这样就能保证每次单击窗体时看到到鼠标光标都和上一次看到的不一样。
(11)在窗体上画一个命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Dim a(1 To 10)
Dim p(1 To 3)
k=5
For i=l To 10
a(i)=i
Next i
For i=l To 3
p(i)=a(i*i)
Next i
For i=l TO 3
k=k+p(i)*2
Next i
Prim k
End Sub
程序运行后,单击命令按钮,输出结果是 【13】 。
答案:【13】 33
评析:观察程序,通过第一个以i为循环变量的循环,给数组a()进行赋值,数组a()中的各个元素的值就是其下标值。
通过第二个以i为循环变量的循环,给数组p()进行赋值:
i=l,p(i)=a(I*i),p(1)=a(1)=1
i=2,p(i)=a(I*i),p(2)=a(4)=4
i=3,p(i)=a(j*i),p(3)=a(9)=9
通过第三个以i为循环变量的循环,得到变量k的值:
i=l,k=k+p(i)*2=5+p(1)木2=7
i=2,k=k+p(i1*2=7+p(2)"2=15
i=3,k=k+p(i)*2=15+p(3)*2=33
最终输出结果是:33.
(12)假定建立了一个工程,该工程包括两个窗体,其名称(Name属性)分别为Form1和Form2,启动窗体为Form1。在Form1上画一个命令按钮Command1,程序运行后,要求当单击该命令按钮时,Form1窗体消失,显示窗体Form2,请将下面的程序补充完整。
Private Sub Command1 Click()
【14】 Form1
Form2. 【15】
End Sub
答案:【14】Unload
【15】Show或Show 1
评析:Unload语句、Show方法
Unload语句用来将指定窗体从内存中清除。
格式:Unload窗体名称
Show方法用来显示一个窗体。
格式:窗体名称.Show[模式]
参数"模式"用来确定显示窗体的状态,可以取值O或1。
取值为0(O值是缺省值)则窗体是"无模式"窗体,当该窗体显示出来时,不但可以对该窗体进行操作,还可以对其他显示出来的窗体进行操作;取值为l则窗体是"模式"窗体,当该窗体显示出来时,只能对该窗体进行操作,只有当该窗体关闭后,才能对其他窗体进行操作。


