(25) 运行下面的程序后,输出的结果为
Cls
Dim t(5, 5) as Integer
For i=1 To 5: t(i, i) =1: Next
For i=1 To 5
For j=1 To 5
Print t(i, j) ,
Next j
Print
Next I
A)1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
B) 1
1
1
1
1
C)1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
D) 1 1 1 1 1
【命题目的】考查考生对循环结构的掌握。
【解题要点】程序以矩阵格式输出一个二维数组,由程序可知,数组的主对角线上的元素赋值为1,其他元素未赋值,初值为0。所以输出结果如选项C)所示。
【考点链接】Do…Loop循环结构。
(26) 以下属于Visual Basic中合法的数组元素的是
A) K8
B) k[8]
C) k(0)
D) k[8]
【命题目的】考查考生对数组知识的掌握。
【解题要点】数组元素的正确引用。
【错解分析】在Visual Basic中,数组元素一般形式为x(整数),括号中的整数是一个确定值,而且数组名x后的圆括号不能省去,也不能由其他的括号代替,所以正确答案是选项C)。
【考点链接】控件数组的引用。
(27) Sub过程与Function过程最根本的区别是
A) Sub过程的过程不能返回值,而Function过程能返回值
B) Function过程可以有形参,Sub过程不可以
C) Sub过程可以使用Call语句直接使用过程名调用,而Function过程不可以
D) 两种过程参数的传递方式不同
【命题目的】考查考生对函数和过程的理解。
【解题要点】在Visual Basic中有两类过程,一类是系统提供的内部函数和事件过程;另一类是用户根据自己的需要定义的,供事件过程的多次调用。在第二类过程中,涉及最多的是子过程。它们的共同点都是完成某种特定功能的一组程序代码;不同的是函数是可以直接返回值的特殊过程,所以函数过程定义时有返回值的类型说明。
两者最大的区别就是Sub过程的过程不能直接返回值,而Function过程能直接返回值。
【考点链接】函数和过程的定义及引用。
(28) 单击命令按钮时,下列程序的执行结果是
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
a=3
b=4
c=5
Print SecProc(c, b, A)
End Sub
Function FirProc(x As Integer, y As Integer, z As Integer)
FirProc=2 * x + y + 3 * z+2
End Function
Function SecProc(x As Integer, y As Integer, z As Integer)
SecProc=FirProc(z, x, y) + x+7
End Function
A) 20
B) 25
C) 37
D) 32
【命题目的】考查考生对函数调用的应用。
【解题要点】此题程序代码中用了两层调用,我们对这样的问题要多加小心,不能掉以轻心,千万不要把实参和相对应的形参弄混淆。主调过程Command1_Click输出的是SecProc(c, b, a)的返回值,调用过程SecProc时,主调过程分别把实参c、b、a地址传给形参x、y、z,此时在过程SecProc中,SecProc=FirProc(a,c,b) +7。由此看出,程序段执行此语句时,将调用过程FirProc。把实参a,c,b的地址分别传给形参x、y、z,此时在过程FirProc中,FirProc = 2 * x + y + 3 * z+2,所以FirProc(a,c,b)=6+4+15+2=27,SecProc(a,c,b)=27+3+7=37。
【考点链接】过程的定义和调用。
(29) 有如下事件过程:
Function UNC (ByVal x As Integer, ByVal y As Integer) As Integer
Do While y <> 0
sic=x / y
x=y
y=sic
Loop
UNC=x
End Function
以下是该函数的调用过程,该程序的运行结果是
Private Sub Command1_Click()
Dim a As Integer
Dim b As Integer
a=12
b=2
x=UNC (a, b)
Print x
End Sub
A) 0
B) 6
C) 2
D) 80
【命题目的】考查考生对函数的定义和调用的运用。
【解题要点】本题考查函数调用和输出格式的语句。调用UNC的过程如下:
x=12,y=2时,sic=6,x=2,y=6;
x=2,y=6时,sic=0,x=6,y=0;
y=0,所以跳出循环,输出x=6并结束程序。
【考点链接】过程的定义和调用。
(30) 有如下程序:
Private Sub Command1_Click()
Dim k As Integer, m As Integer
Dim op As Integer
k=4: m=1
op=PPC(k, m) : Print op;
op=PPC (k, m) : Print op
End Sub
Private Function PPC (a As Integer, b As Integer)
Static m As Integer, i As Integer
m=0: i=2
i=i + m + 1
m=i + a + b
PPC=m
End Function
程序运行后,输出的结果为
A) 4 6
B) 6 6
C) 8 8
D) 10 12
【命题目的】考查考生对函数及函数参数的运用。
【解题要点】在Sub过程中,程序段先定义了3个Integer型变量k,m,op,并给k赋给初值4,m的初值为1,然后调用事件过程PPC,并将它的值赋给op;在事件过程PPC中定义了两个形参,参数的传送是通过引用实参,即将k,m的地址作为a,b的地址;在PPC中,将m,I定义为静态变量,第一次调用后的值仍然保留,但是m,I分别都有赋值语句,将它们的值变为0,2,所以返回值不变。
【考点链接】过程的定义和调用,以及参数传递方式的选择。
(31) 编写如下事件过程:
Private Sub Form_KeyDown (KeyCode As Integer, Shift As Integer)
Print Chr(KeyCode)
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
Print Chr(KeyAscii)
End Sub
在一般情况下(即不按住Shift键和锁定大写键时) 运行程序,若按"T"键,则程序输出的结果是
A)T
T
B) t
T
C) T
t
D) t
t
【命题目的】考查考生对键盘事件的掌握程度。
【解题要点】KeyPress事件和KeyDown事件各参数的含义。
【考点链接】Click事件和DblClick事件的运用。
(32) 在用菜单编辑器设计菜单时,不可缺少的项目是
A) 快捷键
B) 名称
C) 索引
D) 标题
【命题目的】考查考生对菜单设计器的掌握程度。
【解题要点】菜单项建立的步骤。
【错解分析】选项A)中,快捷键(ShortCut) 下拉列表框是用来存储快捷键,供用户为菜单项选择一个快捷键,菜单项的快捷键可以不要,但如果选择了快捷键则会显示在菜单标题的右边,在程序运行时,用户按快捷键同样可以完成选择该菜单项并执行相应命令的操作。选项B)中,名称,用来输入菜单及菜单项名称的文本框。名称不在菜单中出现,名称是在代码中访问菜单项惟一的标识符,名称是不能省略的。选项C)中,索引,数值,表示菜单数组中的位置序号,如果不定义菜单数组,不要理会。选项D)中,标题(Caption) 文本框用来让用户输入显示在窗体上的菜单标题,键入的内容会在菜单编辑器窗口的下边空白部分显示出来,该区域称为菜单显示区域,如果在标题中某个字母前加上&,程序运行后在菜单项中该字母下将加上下划线,"Alt+特定字母"称为访问键,用以访问该菜单项,这种访问只能逐层进行,不能越过某一层而访问深层子菜单。
【考点链接】帮助上下文、复选、协调位置等。
(33) 下列说法正确的是
A) 在Visual Basic中的对话框分为两种类型:预定义对话框和自定义对话框
B) 自定义对话框由用户根据自己需要定义的
C) 预定义对话框是用户在设置程序代码后定义的
D) MsgBox函数是用户的自定义对话框的函数
【命题目的】考查考生对对话框的理解程度。
【解题要点】对话框的分类及特点。
【错解分析】在Visual Basic中,对话框分为3种类型:即预定义对话框、自定义对话框和通用对话框,所以选项A)不正确;预定义对话框也称预制对话框,是由系统提供的,Visual Basic系统提供了两种预定义对话框:即输入框和信息框(或消息框),前者用InputBox函数建立,后者用MsgBox函数建立,所以选项C)和选项D)不正确;自定义对话框也称定制对话框,这种对话框由用户根据自己的需要进行定义,输入框和信息框尽管很容易建立,但在应用上有一定的限制,所以选项B)是正确的;通用对话框是一种控件,用这种控件可以设计较为复杂的对话框。
(34) 在Visual Basic中,要将一个窗体加载到内存进行预处理但不显示所使用的语句是
A) Hide
B) Show
C) Load
D) Unload
【命题目的】考查考生对多重窗体的操作问题。
【解题要点】Load语句、Unload语句、Show方法和Hide方法的区别
(35) 在Visual Basic中按文件的访问方式不同,可将文件分为
A) ASCII文件和二进制文件
B) 文本文件和数据文件
C) 数据文件和可执行文件
D) 顺序文件和随机文件
【命题目的】考查考生对数据文件的分类掌握。
【解题要点】Visual Basic中文件的分类方式。
【错解分析】在Visual Basic中,分类方法有多种:根据数据性质,可分为程序文件和数据文件; 根据数据的存取方式和结构方式可分为顺序文件和随机文件;根据数据的编码方式,可分为ASCII文件和二进制文件。
综合上述分析,选项D)是正确的答案;选项B)中文本文件是按数据编码划分的,数据文件是按数据的性质划分的;选项C)中数据文件是按数据的性质划分的;选项A)是按数据的编码方式划分的。
二、填空题:共15空,每空2分,共30分。
(1) 栈和队列通常采用的存储结构是 【1】 。
(2) 在程序设计阶段应该采取 【2】 和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,进而用某种程序设计语言写成程序。
(3) 软件结构是以 【3】 为基础而组成的一种控制层次结构。
(4) 数据库系统阶段的数据具有较高独立性,数据独立性包括物理独立性和 【4】 两个含义。
(5) 数据库保护分为:安全性控制 、 【5】 、并发性控制和数据的恢复。
(6) 为了选择多个控件,可以按住 【6】 键,然后单击每个控件。
(7) 浮点数由3部分组成,即符号、 【7】 和尾数。
(8) 下面程序运行后,单击命令按钮,输出的结果是 【8】
Private Sub Command1_Click()
Dim a%(1 To 4) , b%(2 To 6) , i%, str1#, str2#
For i=1 To 4
a(i) =i
Next i
For i=2 To 6
b(i) =i
Next i
str1=YAG(A)
str2=YAG(b)
Print "str1="; str1; "str2="; str2
End Sub
Function YAG(a() As Integer)
Dim t#, i%
t=1
For i=LBound(A) To UBound(A)
t=t * a(i)
Next i
YAG=t
End Function
(9) 下面程序的作用是用InputBox函数输入一个整数,然后判断能否同时被2,5和7整除,如果能则输出该数及平方值。请填空。
Private Sub Command1_Click()
Dim numX As Integer
numX=Val(InputBox("请输入一个整数") )
If 【9】 Then
Form1.Print 【10】
End If
End Sub
(10) 下列程序计算Sn的值。Sn=a+aa+aaa+…+aaa…a,其中最后一项为n个。
例如: a=5 , n=4时,则Sn=5+55+555+5555。请在空白处填入适当的内容,将程序补充完整。
Private Sub Command1_Click()
Dim a As Integer, n As Integer, Cout As Integer
Dim Sn As Long, Tn As Long
Cout=1
Sn=0
Tn=0
a=InputBox("请输入a的值:")
【11】
Do
Tn=Tn * 10 + a
Sn=Sn + Tn
Cout=Cout + 1
【12】
Debug.Print a, n, Sn
End Sub
(11) 在窗体上有一个"背景色变换"按钮和一个"结束"按钮。单击"背景色变换"按钮,背景色变为红色;再单击,背景色变为绿色;再单击,背景色变为蓝色;再单击背景色变为红色……如此循环。单击"结束" 按钮,程序运行结束。请填空。
Private Sub cmdChange_Click()
If Mark=0 Then
【13】
Mark=1
ElseIf 【14】 Then
Form1.BackColor=vbGreen
Mark=2
ElseIf Mark=2 Then
Form1.BackColor=vbBlue
【15】
End If
End Sub
Private Sub cmdExit_Click()
End
End Sub
填空题参考答案:
1、链式存储或顺序存储
2、自顶而下
3、模块
4、逻辑独立性
5、完整性控制
6、Shift或Ctrl
7、指数
8、strX=24 str2=720
9、numX Mod 2 = 0 And numX Mod 5 = 0 And numX Mod 7 = 0;numX, numX ^ 2
10、(n=InputBox("请输入n的值!")),(Loop While Cout<=n或Loop)
11、Form1.BackColor = vbRed,Mark = 1,Mark = 0