一、熟悉考试题型,掌握基本做题技巧。

VB考试只有选择题和填空题两种题型,其中选择题共30题,分值70分,填空题共15小题,分值30分。这两种题型的解题方法有所不同,考生在备考时要深化对基本概念和知识点的理解,并注重实践,同时要多做一些针对性的练习,特别是历年真题,从中找出规律性的东西以及解题技巧。

A、选择题解题技巧:

常见的选择题解法有“排除法”。我们从历年四次考试中分别挑选一个选择题进行举例,希望大家引起重视,并能熟练掌握这种解题技巧。
例1:(2003年09月考题)设有如下通用过程,在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Dim x As Integer
x = 10
y = 5
y = f(x)
Print x; y
End Sub
Public Function f(x As Integer)
Dim y As Integer
x = 20
y = 2
f = x * y
End Function
程序运行后,如果单击命令按钮,则在窗体上显示的内容是
A)10 5 B)20 5 C)20 40 D)10 40
【答案】C
【分析】对于传值和传地址的题目,解题时我们可以运用适当的排除技巧,如针对上面的题目我们可以进行分析后直接得出结果:
本题中,X初值是10,Y初值是5。
但由于X传地址,所以要互相影响,故在主程序调用函数F(X)后,打印语句中X不可能是原来的10,因此可以马上排除答案A和D;而Y是靠函数本身传递值,故在函数过程中F得到新值40后就如同传地址一样把结果传给了Y。故本题的答案是C。

例2:(2003年04月考题)在窗体上画一个名称为Command1的命令按钮,再画两个名称分别为Label1、Label2的标签,然后编写如下程序代码:
Private X As Integer
Private Sub Command1_Click()
X=5:Y=3
Call proc(X,Y)
Label1.Caption=X
Label2.Caption=Y
End Sub
Private Sub proc(ByVal a As Integer,ByVal b As Integer)
X=a* a
Y=b+b
End Sub
程序运行后,单击命令按钮,则两个标签中显示的内容分别是
A)5和3 B)25和3 C)25和6 D)5和6
【答案】B
【分析】本题中的X是窗体级变量,所以X在过程之间传递参数时相当于传地址,互相要影响。同时,过程之间本身有A和B要与X和Y传值。由于本题中的X原先是5,则程序执行后X应该改变,故先排除答案A和D。另外,B和Y传的是值,它们互不影响,故又可以排除答案C。因此最终答案是B。

例3、(2002年09月考题)在窗体上画一个命令按钮,名称为Command1。程序运行后,如果单击命令按钮,则显示一个输入对话框,在该对话框中输入一个整数,并用这个整数作为实参调用函数过程F1。在F1中判断所输入的整数是否是奇数,如果是奇数,过程F1返回1,否则返回0。能够正确实现上述功能的代码是
A) Private Sub Command1_Click()
x=InputBox(“请输入整数”)
a=F1(Val(x))
Print a
End Sub
Function F1(ByRef b As Integer)
If b Mod 2=0 Then
Return 0
Else
Return 1
End If
End Function
B) Private Sub Command1_Click()
x=InputBox(“请输入整数”)
a=F1(Val(x))
Print a
End Sub
Function F1(ByRef b As Integer)
If b Mod 2=0 Then
F1=0
Else
F1=1
End If
End Function
C) Private Sub Command1_Click()
x=InputBox(“请输入整数”)
F1(Val(x))
Print a
End Sub
Function F1(ByRef b As Integer)
If b Mod 2=0 Then
F1=1
Else
F1=0
End If
End Function
D) Private Sub Command1_Click()
x=InputBox(“请输入整数”)
F1(Val(x))
Print a
End Sub
Function F1(ByRef b As Integer)
If b Mod 2=0 Then
Return 0
Else
Return 1
End If
End Function
【答案】B
【分析】从四个选项中的已标记为灰色背景的四条语句可以看出,除选项C最先返回值1外,其它都返回0,所以C错。一般情况下,错误的选项中也会包含正确的信息,从中我们发现这四行文本主要考查函数返回值的基本写法,并据此可以马上得以答案B。

例4、(2004年04月考题)在窗体上画一个名称为Listl的列表框,为了对列表框中的每个项目都能进行处理,应使用的循环语句为
A) For I=0 to Listl.ListCount-l
……….
Next
B) For I=0 to Listl.Count-l
……….
Next
C)For I=1 to Listl.ListCount
……….
Next
D) For I=0 to Listl.Count
……….
Next
【答案】A
【分析】从每个选项的第一行我们可以发现只有选项C的循环初值是从1开始,其它都从0开始,所以C错,由于错误的题目中一般会包含正确的信息,从中我们可以推理得到正确的答案是A。

B、填空题解题方法:

除部分填空题考查识记知识点外,对于理解性的编程类填空题,我们有时可以用推理的方法初步得到解题思路,在此基础上进行相关的验证后最终得到正确答案。

例1、(2004年04月考题)在窗体上画两个组合框,其名称分别为Combo1、Combo2,然后画两个标签,名称分别为label1、label2,如图所示。程序运行后,如果在某个组合框中选择一个项目,则把所选中的项目在其下面的标签中显示出来。请填空。
Private Sub Combo1_Click()
Call showitem(Combo1, Label1)
End Sub
Private Sub Combo2_Click()
Call showitem(Combo2, Label2)
End Sub
Public Sub showitem(tmpcombo As ComboBox, tmplabel As Label)
【1】 .Caption = 【2】 .Text
End Sub
【分析】此题考查Sub过程的参数传递问题,由于本题参数传递值有两个:tmpcombo和tmplabel,而Sub参数传递一般一定要用到,考虑到参数变量名“tmplabel”的字母组合中“label”意为标签,故从题意中马上推定第一个空格应填“tmplabel”,推定第二个应填“tmpcombo”。

二、以教科书为本,以历年考题为纲:

很多考生喜欢在课后做各种各样的模拟题、冲剌题等,这样做的结果是即费时又费力,综合分析历年考题我们发现,历次考试知识点基本不变,许多题目经常重复考到,部分考题直接源于书后的练习题。所以“以教科书为本,以历年考题为纲”进行复习是广大考生顺利过级的制胜法宝。

A、部分考题在多次考试中重复出现,以下特举几例请考生注意比较,更多例子大家可以从历年试卷中进行总结。
例1、 将C盘根目录下的图形文件moon.jpg装入图片框Picturel的语句是 ___ 。(2004年04月填空第5题)
例2、 为了在运行时把d:\pic文件夹下的图形文件a.jpg装入图片框Picturel,所使用的语句为 ______ 。(2003年04月填空第4题)
例3、 为了改变计时器控件的时间间隔,应该修改该控件的 ________ 属性。(2002年09月填空第8题)
例4、 计时器控件能有规律的以一定时间间隔触发___________事件,并执行该事件过程中的程序代码。 (2003年04月填空第5题)
例5、 为了使计时器控件Timerl每隔0.5秒触发一次Timer事件,应将Timerl控件的 _________属性设置为 _____________ 。(2004年04月填空第3题)

B、很多考题与教科书后的题目非常相似或完全一样。
例6、在窗体上画一个命令按钮(其Name属性为Commandl),然后编写如下代码:(2004年04月选择题第21题与教科书P211页第8章选择题第5题一样,只是选项位置不同)
Option Base 1
Private Sub Commandl_click( )
Dim a
S=0
A=arrar(1,2,3,4)
J=1
For I=4 to 1 step –1
S=s+a(i)*j
J=j*10
Next i
PrintS
End Sub
运行上面的程序,单击命令按钮,其输出结果是
A)4321 B)1234 C)34 D) 12

例7、把窗体的KeyPreview属性设置为True,然后编写如下两个事件过程:
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
程序运行后,如果直接按键盘上的"A"键(即不按住Shift键),则在窗体上输出的字符分别是 ________和__________ 。(2003年09月填空题第2题与教科书P289页第10章填空题第1题基本一样)

例9、执行下面的程序段后,i的值为_________ ,s的值为______________ 。(2003年09月填空题第1题与教科书P185页第7章填空题第1题基本一样)
s = 2
For i = 3.2 To 4.9 Step 0.8
s = s + 1
Next i