(26)在窗体上画一个命令按钮(其名称为Command1),然后编写如下事件过程:
Private Sub Command1_Click()
Dim a(5,5)As Integer
Dim i As Integer,j As Integer
For i=l TO 3
For j=l To 3
a(i,j)=(I-1)*3+j
Prim a(I,j)
Next j
Print
Next i
End Sub
程序运行后,单击命令按钮,在窗体上的输出结果是:__________。
A)1 4 7
2 5 8
3 6 9
B)l 2 3
4 5 6
7 8 9
C)1 2 3 4 5 6 7 8 9
D)没有输出
答案:B
评析:程序共有两层循环,每执行完一次内循环,则打印换行,由此判断选项A,B可能正确,当外层循环执行第一次时,a(i j):(i-1)*3+j相当于a(i J)=j,由此可判断选项B为正确答案。
(27)在窗体上画两个标签和一个命令按钮,其名称分别为Labell、Label2和Commandl,
然后编写如下程序:
Private Sub func(L As Label,ByVal a As Integer)
L.Caption="1 234"
a=a*a
End Sub
Private Sub Form Load()
Label1.Caption="ABCD"
Label2.Caption=10
End Sub
Private Sub Command1_Click()
A=Val(Label2.Caption)
Call func(Labell,a)
Label2.Caption=a
End Sub
程序运行后,单击命令按钮,在两个标签Labell和Label2中显示的内容分别是:_________。
A)ABCD和10 B)1234和100
C)ABCD和100 D)1234和10
答案:D
评析:单击命令按钮后变量a赋初值a=10,通过Call调用函数后,Labell.Caption="1234",而由于参数a是按值传递的,所以调用完函数后变量a的值在单击事件中并没有改变,所以执行语句Label2.Caption=a后,Label2中显示的值仍为10.
(28)假定程序中有以下语句:
answer=MsgBox("Stringl",,"String2","String3",2)
执行该语句后,将显示一个信息框,此时如果单击"确定"按钮,则answer的值为:__________。
A)Stringl B)String2
C)String3 D)1
答案:D
评析:MsgaoX函数:在对话框中显示消息,等待用户单击按钮,并返回一个Integer告诉用户单击哪一个按钮。
返回值
常数 值 描述
vbOK 1 OK
vbCancel 2 Cancel
vbAbort 3 Abort
vbRetry 4 Retry
vbIgnore 5 Ignore
vbYes 6 Yes
vbNo 7 No
本题单击的是"确定"按钮,及vbOK,所以Ms;gaox返回l。
(29)设窗体Forml中有一名为mnuFile的菜单,它只有一个标题为Open的子菜单。为使程 序运行时,按下Alt+F键窗体中能够显示如下图所示的菜单项,则mnuFile的标题应为:_________。
A)File(F) B)File(F) C)File(&F) D)File(-F)
答案:C
评析:编辑菜单时,为了能够通过键盘访问菜单项,可以在字母前插入一个&符号。在程序运行时,&后面的字母带有下划线,而&本身不可见。如编辑菜单时输入的标题为File(&F),则运行时该菜单项显示为File(F),并且可以通过按键~lt+F来访问该菜单项。
(30)设a=5,b:6,c=7,d=8,则执行下列语句后,x的值为:________。
X=IIF((a>b)And(c<d),10,20)
A)10 B)20 C)30 D)300
答案:B
评析:函数IIF(expr,vall,val2)与IF语句相似,当布尔表达式expr为True时,则选择vall的值,否则选择val2的值。
(31)在窗体上画一个命令按钮,然后编写如下程序:
Sub Sl(By Val x As Integer,By Val y As Integer)
Dim t As Integer
t=x
x=y
y=t
End Sub
Private Sub Command1_Click()
Dim a As Integer.B As Integer
a=10
b=30
Sl a.b
Print"a=";a;"lb=";b
End Sub
程序运行后,单击命令按钮,输出结果是:________。
A)a=30b=10 B)a=30b=30
C)a=lO b=30 D)a=10 b:10
答案:C
评析:过程s1似乎是要将两个变量的值进行交换,但由于参数是用传值的方式来传递变量值的,所以执行完该过程后,a和b的值并未被交换,保持原来的值不变。
(32)能够获得一个文本框中被选取文本的内容的属性是_________。
A)Text B)SelLength C)SelText D)SelStart
答案:C
评析:文本框有很多属性,其中Text属性用来设置文本框中显示的内容:
SelLength属性存放当前选中的字符数;
SelText属性含有当前所选择的文本字符串,如果没有选择文本,则该属性含有一个空字符串。
SelStart属性定义当前选择的文本的起始位置。
(33)设置复选框中或单选按钮的标题对齐方式的属性是_________。
A)Align B)Style C)Sorted D)Alignment
答案:D
评析:复选框和单选按钮的相关属性
Style属性:指定复选框或单选按钮的显示方式
Alignment属性:设置复选框或单选按钮控件标题的对齐方式,可以取0和1两种值,取值为0则控件标题左对齐;取值为1则控件标题右对齐。
(34)下列程序段的执行结果为_________。
X=5
Y=-20
If Not X>0 Then X=Y.3 Else Y=X+3
Print X-Y:Y-X
A)-3 3 B) 5 -8 C) 3 -3 D) 25 -25
答案:A
评析:IF…Else语句
跟踪程序:在IF语句中,因为x=5>0,所以Not X>O为假,执行Else分支,即Y=5+3=8
所以打印的结果应当为:
X-Y=5-8=-3
y-X=8-5=3。
(35)改变器列表框的Drive属性值将激活_________事件。
A)Change B)Scroll C)KeyDown D)KeyUp
答案:A
评析:驱动器列表框控件的相关属性和事件
驱动器列表框的Drive属性,用来设置或返回程序运行时所选择的驱动器名。
当驱动器列表框的Drive属性值发生变化时,会触发驱动器列表框的Change事件。
当驱动器列表框的滚动框被重新定位或沿水平或垂直方向滚动时,会触发驱动器列表框的Scroll事件。
在驱动器列表框获得焦点时,按下或松开键盘上的按键,会触发驱动器列表框的KeyDown或KeyUp事件。
二、填空题(每空2分,共30分)
请将每空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。
(1) 测试的目的是暴露错误,评价程序的可靠性;而 【1】 的目的是发现错误的位置并 改正错误。
答案:【1】调试
评析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定;调试也称排错,它是一个与测试有联系又有区别的概念。具体来说,测试的目的是暴露错误,评价程序的可靠性,而调试的目的是发现错误的位置,并改正错误。
(2) 在最坏情况下,堆排序需要比较的次数为 【2】 。
答案:【2】O(nlog2n)
评析:在最坏情况下,冒泡排序所需要的比较次数为n(n-1)/2;简单插入排序所需要的比较次数为n(n-1)/2;希尔排序所需要的比较次数为O(n^l.5);堆排序所需要的比较次数为O(nlog2n)。
(3) 若串s="Program",则其子串的数目是 【3】 。
答案:【3】29
评析:串s中共有7个字符,由于串中字符各不相同,则其子串中有O个字符的1个(空串),,1个字符的7个,2个字符的6个,3个字符的5个,4个字符的4个,5个字符的3个,6个字符的2个,7个字符的1个,共有1+2+3+4+5+6+7+1=29。
(4) 一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管"与 实体"项目"的联系属于 【4】 的联系。
答案:【4】1对多或1:N
评析:两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有3种,即一对一(1:1)的联系、一对多(1:N)或多对一(N:1)的联系和多对多(N:N)的联系。
(5) 数据库管理系统常见的数据模型有层次模型、网状模型和 【5】 种。
答案:【5】关系模型
评析:数据库管理系统是位于用户与之间的一层系统管理软件,是一种系统软件,是用户与数据库之间的一个标准接口,其总是基于某种数据模型,可以分为层次模型、网状模型和关系模型。
(6) 为了选择多个控件,可以按住 【6】 ,然后单击每个控件。
答案:【6】Ctrl
评析:按住Ctri键然后连续单击控件可以将它们连续选中。
(7)执行下面的程序段后,S的值为 【7】 。
s=5
For i=2.6 To 4.9 Step 0.6
s=s+l
Next I
答案:【7】9
评析:以指定次数来重复执行一组语句。
语法
For counter。start T0 end[Step step]
[statements]
[Exit For]
[statements]
Next[counter]
从起始值开始计算,循环体要执行四次,所以最终的s的值为5+4=9。
(8)由Array函数建立的数组的名字必须是 【8】 类型。
答案:【8】变体或Variam
评析:Array返回一个包含数组的Variant。
语法
Array(argiist)
所需的arglist参数是一个用逗号隔开的值表,这些值用于给Variant所包含的数组的各元素赋值。如果不提供参数,则创建一个长度为0的数组。
(9)若有一个动态数组a有两个元素a(0)和a(1),现要令数组a有三个元素a(0)、a(1)和 a(2),则应当使用 【9】 语句。
答案:【9】ReDim a(2)
评析:ReDim语句:在过程级别中使用,用于为动态数组变量重新分配存储空间。
语法
ReDim[Preserve]varname(subscripts)[As type][,varname(subscripts)[As type]]…
可以使用ReDim语句反复地改变数组的元素以及维数的数目,但是不能在将一个数组定义为某种数据类型之后,再使用ReDim将该数组改为其它数据类型,除非是Variant所包含的数组。
如果将数组改小,则被删除的元素中的数据就会丢失。如果按地址将数组传递给某个过程,那么不要在该过程内重定义该数组的各维的大小。
Erase语句重新初始化大小固定的数组的元素,以及释放动态数组的存储空间(但不能重新定义数组)。
语法:
Erase arraylist
所需的arraylist参数是一个或多个用逗号隔开的需要清除的数组变量。
说明:
Erase根据是固定大小(常规的)数组还是动态数组,来采取完全不同的行为。Erase无需为固定大小的数组恢复内存。
Erase释放动态数组所使用的内存。在下次引用该动态数组之前,程序必须使用ReDim语句来重新定义该数组变量的维数。
(10)在窗体上画一个命令按钮Command1,然后编写如下程序:
Private Sub Command1_Click()
Dim art()As Integer
ReDim arr(3)
Fori=0 To 3
arr(i)=i
Next i
x=InputBox("请输入一个数字:")
If Val(x)>4 Then
ReDim alT(4)
alT(4)=x
EndIf
Me.Print(alT(4)-arr(3))
End Sub
程序运行后,单击命令按钮,在输入对话框中输入12,输出结果为 【10】 。
答案:【10】12
评析:用Redim语句重定义数组的维数时,原有维数内的内容将被破坏。除非用Redim Preserve来重新定义维数。
本题中由于输入值x>4,动态数组在被重定义为包含4个元素的数组后(即Redim arry(3),此时arry(3)=3),重新被定义为包含5个元素的数组,而重定义时并未用Preserve关键字。故此时arry(3)=O(实际上arty(0)、arty(1)、arry(2)的值也都为0,即Integer类型变量的初始值。)
(11)为了定义自己的鼠标光标,首先应把.MousePointer属性设置为 【11】 ,然后把 【12】 属性设置为一个图标文件。
答案:【11】99
【12】Mouselcon
评析:MousePointer属性用来返回或设置一个值,该值指示在运行时当鼠标移动到对象的一个特定部分时,被显示的鼠标指针的类型。如果将其设为99则表示通过该属性指定自定义图标。而MouseIcon属性用来返回或设置自定义的鼠标图标,方法是指定图标文件的路径。
(12)建立打开文件、保存文件、颜色、字体、打印对话框所使用的方法分别为 【13】 、 【14】 、ShowColor、ShowFont和ShowPrinter。
答案:【13】ShowOpen
【14】ShowSave
评析:CommonDialog控件提供一组标准的操作对话框,进行诸如打开和保存文件,设置打印选项,以及选择颜色和字体等操作。通过运行Windows帮助引擎控件还能显示帮助。CommonDialog控件建立对话框的操作是通过调用自身的方法实现的:
ShowOpen 显示"打开"对话框
ShowSave 显示"另存为"对话框
ShowColor 显示"颜色"对话框
ShowFont 显示"字体"对话框
ShowPrinter 显示"打印"或"打印选项"对话框
(13)启动窗体在 【15】 对话框中指定。
答案:【15】工程-属性
评析:在"工程-属性"对话框里有个名为"启动对象"的下拉列表框,在这里可以选择启动窗体或Sub Main。


