top
Loading...
計算機等級考試釋疑VB應試心得

VB因簡單易學、功能強大和微軟的支持而成為主流,于是越來越多參加全國計算機等級考試的人選擇了它。不過請大家注意:二級VB考試筆試與上機時間均為90分鐘,千萬不要與其它語言的考試時間發生混淆。

VB與QB的區別與聯系

VB與QB在數據類型、語法和程序結構等方面有很多相同之處,VB仍采用基本的BASIC語言,但它們的區別卻是根本性的:

1.QB只是一門程序設計語言,而VB不但是一門程序設計語言,更重要的還是在Windows操作系統界面下的軟件開發工具,它主要用來開發可視化軟件。

2.QB中的程序是一個完整的程序系統,是不可以分割的,程序執行時從頭執行到尾,編寫程序時一定要精確地寫出每一個步驟;而VB程序采用的是事件驅動編程機制,用戶編寫程序時不必寫出很長的程序,只要寫出簡短的程序片斷就可以了。

比如這樣一個例子,要求編程實現:輸入兩個數,輸出它們的和。如果用QB,程序如下:

INPUT ab
c=a+b
PRINT c
END

而用VB程序則如下:

Private Sub Command1_Click
A=InputBox“a=”
B=InputBox“b=”
C=vala+valb
Print C
End Sub

這個例子中QB程序與VB程序在程序代碼和語法規則上基本相似,但執行時就不一樣了:QB只要運行,就可以得出結果;而VB程序則必須用鼠標單擊Command1對象才能執行其代碼,得出結果。如果單擊窗體則操作對象錯誤;如果對Command1不單擊而進行其它操作,則對象響應事件錯誤。這兩者都不能執行VB下面的程序代碼。因而在VB應試學習過程中,既要學會分析BASIC程序的執行流程,又要熟悉和掌握VB的操作界面、面向對象程序設計的特點。

重視VB的基本概念

VB的基本概念中,要特別重視數據類型的定義、表達式、函數及常用控件的屬性、功能和使用。這是掌握面向對象程序設計、學會編寫事件代碼的基礎,考試的內容涉及面很廣,大家要多加記憶與理解。

在前面的例子中,如果將其中的“C=vala+valb”改為“C=A+B”,那么從鍵盤輸入A=1,B=2,結果還是3嗎?答案是否定的。因為InputBox函數是輸入語句,它只能接收文本,所以變量A與B內存放的并非是數字1與2而是字符“1”與“2”,而語句C=A+B中的“+”號的含義對于文本來講并不是加而是連接的意思,因而答案為12。這個問題的理解充分地說明了掌握基本概念的重要性。

2002年秋季筆試中有一選擇題:在窗體上畫一個名稱為Commandl的命令按鈕,然后編寫如下程序:

Private Sub Command1_Click
Static X As Integer
Static Y As Integer
Cls
Y=1
Y=Y+5
X=5+X
Print XY
End Sub

程序運行時,三次單擊命令按鈕Commandl后,窗體上顯示的結果為:

A) 15 16 B) 15 6

C) 15 15 D) 5 6

解析:本題主要考查對數據的定義,用Dim和用Static定義的變量在程序中的結果是完全不同的。用Dim定義的變量,在過程運行結束后,變量的值不會保留;用Static定義的變量,其值只被初始化一次,其后的值將繼續保留。題目中x定義為Static類型,x第一次運行時初值為0,第二次運行前其值變為5,第三次運行前其值變為10,而y雖然也定義為Static,但每次都要執行一個“y=1”這個賦值語句,所以第三次執行完,其結果應為:x=15,y=6。

掌握VB中的控件

在VB中,控件是非常重要的內容,考試中常常應用在程序分析和上機操作中。考生們要多記憶、多運用、多對比、多總結,舉一反三,才能掌握好各個控件。

2002年春季筆試中有一選擇題:在窗體上畫兩個單選按鈕,名稱分別為Option1、Option2,標題分別為“宋體”、“黑體”;一個復選框,名稱為Check1,標題為“粗體”;一個文本框,名稱為Text1,Text屬性為“改變文字字體”。要求程序運行時,“宋體”單選按鈕和“粗體”復選框被選中(窗體外觀如圖1),則能夠實現上述要求的語句序列是:

A Option1.value=True B Option1.Value=True
Check1.Value=False Check1.Value=True
C Option2.Value=False D Option1.Value=True
Check1.Value=True Check1.Value=1

解析:本題主要考核VB的兩個控件,單選按鈕控件與復選框控件的Value屬性,雖然它們屬性名是一樣的,但取值卻不同。單選按鈕Value屬性值為True表示選中,而復選框選中其值應為1,所以正確答案應為D。許多考生由于學習過程中不注重對比,沒有真正理解和掌握,常錯選為B。

2002年秋季考試中有一填空題:在窗體上畫兩個標簽,其名稱分別為Label1和Label2,Caption屬性分別為“數值”及空白;然后畫一個名稱為HScroll1的水平滾動條,其Min的值為0,Max的值為100。程序運行后,如果單擊滾動條兩端的箭頭,則在標簽Lable2中顯示滾動條的值,如圖2所示。請在 1 和 2 處填入適當的內容,將程序補充完整。

Private Sub HScroll1_1
Labl2.Caption=HScroll1.2
End Sub

解析:本題主要考查考生對于滾動條控件事件及屬性的掌握,因為滾動條支持兩個事件,即跟蹤滾動條中的動態變化的Scroll事件和得到滾動條最后位置的Change事件,題中要求單擊滾動條兩端的箭頭所能觸發的事件應為Change事件,可以顯示當前滾動位置(即數值)的應為Value屬性,故應填入Change和Value。
抓住程序“要害”進行分析程序的“要害”就是算法和過程,重點在于抓住算法的使用和過程的執行,所以要花時間進行認真的分析,不要放過每一個細節。否則一不小心就容易得出錯誤分析,與正確結果大相徑庭。

2002年秋季筆試中有一程序分析題:在窗體上畫一個名稱為Text1的文本框和一個名稱為Command1的命令按鈕,然后編寫如下事件過程:

Private Sub Command1_Click
Dim array11010 As Integer
Dim ij As Integer
For i=1 To 3
For j=2 To 4
array1ij=i+j
Next j
Next i
Text1.Text=array123+array134
End Sub

程序運行后,單擊命令按鈕,在文本框中顯示的值是:

A)12 B)13 C)14 D)15

解析:本題中我們應將分析重點放在text1的賦值上面,由于程序已知其算法為:text1.text=array123+array134,因而只要求array123 與array134的值而沒有必要去求其它數組元素的值,根據數組通項的算法array1ij=i+j可知array123=5、array134=7,故正確答案應為A。

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗