(考試時間 90 分鐘,滿分 100 分)
一、選擇題(每小題2分,共70分)
下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項填涂在答題卡相應(yīng)位置上,答在試卷上不得分。
(1)下列選項中不屬于結(jié)構(gòu)化程序設(shè)計方法的是。
A) 自頂向下B) 逐步求精
C) 模塊化D) 可復(fù)用
(2)兩個或兩個以上模塊之間關(guān)聯(lián)的緊密程度稱為。
A) 耦合度B) 內(nèi)聚度
C) 復(fù)雜度 D) 數(shù)據(jù)傳輸特性
(3)下列敘述中正確的是。
A) 軟件測試應(yīng)該由程序開發(fā)者來完成
B) 程序經(jīng)調(diào)試后一般不需要再測試
C) 軟件維護(hù)只包括對程序代碼的維護(hù)
D) 以上三種說法都不對
(4)按照“后進(jìn)先出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是。
A) 隊列B) 棧
C) 雙向鏈表D) 二叉樹
(5)下列敘述中正確的是。
A) 線性鏈表是線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)
B) 棧與隊列是非線性結(jié)構(gòu)
C) 雙向鏈表是非線性結(jié)構(gòu)
D) 只有根結(jié)點(diǎn)的二叉樹是線性結(jié)構(gòu)
(6)對如下二叉樹
ABDECF
進(jìn)行后序遍歷的結(jié)果為。
A) ABCDEFB) DBEAFC
C) ABDECFD) DEBFCA
(7)在深度為7的滿二叉樹中,葉子結(jié)點(diǎn)的個數(shù)為。
A) 32B) 31C) 64 D) 63
(8)“商品”與“顧客”兩個實(shí)體集之間的聯(lián)系一般是。
A) 一對一B) 一對多
C) 多對一D) 多對多
(9)在E-R圖中,用來表示實(shí)體的圖形是。
A) 矩形B) 橢圓形
C) 菱形D) 三角形
(10)數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是。
A) DB包含DBS和DBMSB) DBMS包含DB和DBS
C) DBS包含DB和DBMS D) 沒有任何關(guān)系
(11)以下關(guān)于Visual Basic特點(diǎn)的敘述中,錯誤的是。
A) Visual Basic是采用事件驅(qū)動編程機(jī)制的語言
B) Visual Basic程序既可以編譯運(yùn)行,也可以解釋運(yùn)行
C) 構(gòu)成Visual Basic程序的多個過程沒有固定的執(zhí)行順序
D) Visual Basic程序不是結(jié)構(gòu)化程序,不具備結(jié)構(gòu)化程序的三種基本結(jié)構(gòu)
(12)以下敘述中,錯誤的是。
A) 一個Visual Basic應(yīng)用程序可以含有多個標(biāo)準(zhǔn)模塊文件
B) 一個Visual Basic工程可以含有多個窗體文件
C) 標(biāo)準(zhǔn)模塊文件可以屬于某個指定的窗體文件
D) 標(biāo)準(zhǔn)模塊文件的擴(kuò)展名是.bas
(13)以下敘述中,錯誤的是。
A) 在Visual Basic中,對象所能響應(yīng)的事件是由系統(tǒng)定義的
B) 對象的任何屬性既可以通過屬性窗口設(shè)定,也可以通過程序語句設(shè)定
C) Visual Basic中允許不同對象使用相同名稱的方法
D) Visual Basic中的對象具有自己的屬性和方法
(14)設(shè)有如下語句:
Dim a,b As Integer
c="VisualBasic"
d=#7/20/2005#
以下關(guān)于這段代碼的敘述中,錯誤的是。
A) a被定義為Integer類型變量
B) b被定義為Integer類型變量
C) c中的數(shù)據(jù)是字符串
D) d中的數(shù)據(jù)是日期類型
(15)以下能從字符串"VisualBasic"中直接取出子字符串"Basic"的函數(shù)是。
A) LeftB) Mid
C) String D) Instr
(16)設(shè)a=4,b=3,c=2,d=1,下列表達(dá)式的值是。
a>b+1 Or c A) TrueB) 1
C) -1D) 0
(17)以下可以作為Visual Basic變量名的是。
A) A#AB) counstA
C) 3AD) ?AA
(18)設(shè)x=4,y=6,則以下不能在窗體上顯示出“A=10”的語句是。
A) Print A=x+yB) Print"A=";x+y
C) Print "A="+Str(x+y) D) Print"A="&x+y
(19)假定有如下的命令按鈕(名稱為Command1)事件過程:
Private Sub Command1_Click()
x=InputBox("輸入:","輸入整數(shù)")
MsgBox"輸入的數(shù)據(jù)是:”,,”輸入數(shù)據(jù):"+x
End Sub
程序運(yùn)行后,單擊命令按鈕,如果從鍵盤上輸入整數(shù)10,則以下敘述中錯誤的是。
A) x的值是數(shù)值10
B) 輸入對話框的標(biāo)題是“輸入整數(shù)”
C) 信息框的標(biāo)題是“輸入數(shù)據(jù):10”
D) 信息框中顯示的是“輸入的數(shù)據(jù)是:”
(20)在窗體上畫1個命令按鈕(名稱為Command1)和1個文本框(名稱為Text1),然
后編寫如下事件過程:
Private Sub Command1_Click()
x=Val(Text1.Text)
Select Case x
Case 1,3
y=x*x
Case Is>=10,Is<=-10
y=x
Case -10 To 10
y=-x
End Select
End Sub
程序運(yùn)行后,在文本框中輸入3,然后單擊命令按鈕,則以下敘述中正確的是。
A) 執(zhí)行y=x*xB) 執(zhí)行y=-x
C) 先執(zhí)行y=x*x,再執(zhí)行y=-xD) 程序出錯
(21)設(shè)有命令按鈕Command1的單擊事件過程,代碼如下:
Private Sub Command1_Click()
Dim a(30)As Integer
For i=1 To 30
a(i)=Int(Rnd*100)
Next
For Each arrItem In a
If arrItem Mod 7=0 Then Print arrItem;
If arrItem>90 Then Exit For
Next
End Sub
對于該事件過程,以下敘述中錯誤的是。
A) a數(shù)組中的數(shù)據(jù)是30個100以內(nèi)的整數(shù)
B) 語句For Each arrItem In a有語法錯誤
C) If arrItem Mod 7=0……語句的功能是輸出數(shù)組中能夠被7整除的數(shù)
D) If arrItem>90……語句的作用是當(dāng)數(shù)組元素的值大于90時退出For循環(huán)
2006年4月筆試試卷第3頁(共12頁)2006年4月筆試試卷第4頁(共12頁)(22)設(shè)有命令按鈕Command1的單擊事件過程,代碼如下:
Private Sub Command1_Click()
Dim a(3,3)As Integer
For i=1 To 3
For j=1 To 3
a(i,j)=i*j+i
Next j
Next i
Sum=0
For i=1 To 3
Sum=Sum+a(i,4-i)
Next i
Print Sum
End Sub
運(yùn)行程序,單擊命令按鈕,輸出結(jié)果是。
A) 20B) 7
C) 16 D) 17
(23)在窗體上畫1個名稱為Command1的命令按鈕,然后編寫如下事件過程:
Private Sub Command1_Click()
a=0
For i=1 To 2
For j=1 To 4
If j Mod 2<>0 Then
a=a-1
End If
a=a+1
Next j
Next i
Print a
End Sub
程序運(yùn)行后,單擊命令按鈕,輸出結(jié)果是。
A) 0B) 2
C) 3 D) 4
(24)窗體上有名稱分別為Text1、Text2的2個文本框,有一個由3個單選按鈕構(gòu)成的控件數(shù)組Option1,如圖1所示。程序運(yùn)行后,如果單擊某個單選按鈕,則執(zhí)行Text1中的數(shù)值與該單選按鈕所對應(yīng)的運(yùn)算(乘以1、10或100),并將結(jié)果顯示在Text2中,如圖2所示。為了實(shí)現(xiàn)上述功能,在程序中的問號(?)處應(yīng)填入的內(nèi)容是。
圖1圖2 Private Sub Option1_Click(Index As Integer)
If Text1.Text<>""Then
Select Case ?
Case 0
Text2.Text=Val(Text1.Text)
Case 1
Text2.Text=Val(Text1.Text)*10
Case 2
Text2.Text=Val(Text1.Text)*100
End Select
End If
End Sub
A) IndexB) Option1.Index
C) Option1(Index) D) Option1(Index).value
(25)在窗體上畫1個命令按鈕,其名稱為Command1,然后編寫如下程序:
Private Sub Command1_Click()
Dim a(10)As Integer
Dim x As Integer
For i=1 To 10
a(i)=8+i
Next
x=2
Print a(f(x)+x)
End Sub
Function f(x As Integer)
x=x+3
f=x
End Function
程序運(yùn)行后,單擊命令按鈕,輸出結(jié)果為。
A) 12B) 15
C) 17D) 18
2006年4月筆試試卷第5頁(共12頁)2006年4月筆試試卷第6頁(共12頁)(26)以下關(guān)于過程的敘述中,錯誤的是。
A) 事件過程是由某個事件觸發(fā)而執(zhí)行的過程
B) 函數(shù)過程的返回值可以有多個
C) 可以在事件過程中調(diào)用通用過程
D) 不能在事件過程中定義函數(shù)過程
(27)在窗體上畫3個標(biāo)簽、3個文本框(名稱分別為Text1、Text2和Text3)和1個命令按鈕(名稱為Command1),外觀如圖所示。
編寫如下程序:
Private Sub Form_Load()
Text1.Text=""
Text2.Text=""
Text3.Text=""
End Sub
Private Sub Command1_Click()
x=Val(Text1.Text)
y=Val(Text2.Text)
Text3.Text=f(x,y)
End Sub
Function f(ByVal x As Integer,ByVal y As Integer)
Do While y<>0
tmp=x Mod y
x=y
y=tmp
Loop
f=x
End Function
運(yùn)行程序,在Text1文本框中輸入36,在Text2文本框中輸入24,然后單擊命令按鈕,則在Text3文本框中顯示的內(nèi)容是。
A) 4B) 6
C) 8 D) 12
(28)窗體上有名稱分別為Text1、Text2的2個文本框,要求文本框Text1中輸入的數(shù)據(jù)小于500,文本框Text2中輸入的數(shù)據(jù)小于1000,否則重新輸入。為了實(shí)現(xiàn)上述功能,在以下程序中問號(?)處應(yīng)填入的內(nèi)容是。
Private Sub Text1_LostFocus()
Call CheckInput(Text1,500)
End Sub
Private Sub Text2_LostFocus()
Call CheckInput(Text2,1000)
End Sub
Sub CheckInput(t As ?,x As Integer)
If Val(t.Text)>x Then
MsgBox"請重新輸入!"
End If
End Sub
A) TextB) SelText
C) ControlD) Form
(29)在窗體上畫1個文本框,其名稱為Text1,然后編寫如下過程:
Private Sub Text1_KeyDown(KeyCode As Integer,Shift As Integer)
Print Chr(KeyCode)
End Sub
Private Sub Text1_KeyUp(KeyCode As Integer,Shift As Integer)
Print Chr(KeyCode+2)
End Sub
程序運(yùn)行后,把焦點(diǎn)移到文本框中,此時如果敲擊“A”鍵,則輸出結(jié)果為。
A)A
AB)A
BC)A
CD)A
D
(30)為了使列表框中的項目呈多列顯示,需要設(shè)置的屬性為。
A) ColumnsB) Style
C) ListD) MultiSelect
(31)在窗體上畫1個命令按鈕,名稱為Command1,然后編寫如下程序:
Dim Flag As Boolean
Private Sub Command1_Click()
Dim intNum As Integer
intNum=InputBox("請輸入:")
If Flag Then
Print f(intNum)
End If
End Sub
Function f(X As Integer)As Integer
If X<10 Then
Y=X
Else
Y=X+10
End If
f=Y
End Function
Private Sub Form_MouseUp(Button As Integer,Shift As Integer,X As Single,Y As Single)
Flag=True
End Sub
運(yùn)行程序,首先單擊窗體,然后單擊命令按鈕,在輸入對話框中輸入5,則程序的輸出結(jié)果為。
A) 0B) 5
C) 15D) 無任何輸出
(32)在菜單編輯器中建立1個名稱為Menu0的菜單項,將其“可見”屬性設(shè)置為False,并建立其若干子菜單,然后編寫如下過程:
Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)
If Button=1 Then
PopupMenu Menu0
End If
End Sub
則以下敘述中錯誤的是。
A) 該過程的作用是彈出一個菜單
B) 單擊鼠標(biāo)右鍵時彈出菜單
C) Menu0是在菜單編輯器中定義的彈出菜單的名稱
D) 參數(shù)X、Y指明鼠標(biāo)當(dāng)前位置的坐標(biāo)
(33)窗體上有1個名稱為CD1的通用對話框,1個名稱為Command1的命令按鈕。命令按鈕的單擊事件過程如下:
Private Sub Command1_Click()
CD1.FileName=""
CD1.Filter="All Files|*.*|(*.DoC)|*.Doc|(*.Txt)|*.txt"
CD1.FilterIndex=2
CD1.Action=1
End Sub
關(guān)于以上代碼,錯誤的敘述是。
A) 執(zhí)行以上事件過程,通用對話框被設(shè)置為“打開”文件對話框
B) 通用對話框的初始路徑為當(dāng)前路徑
C) 通用對話框的默認(rèn)文件類型為*.Txt
D) 以上代碼不對文件執(zhí)行讀寫操作
(34)以下敘述中錯誤的是。
A) 用Shell函數(shù)可以執(zhí)行擴(kuò)展名為.exe的應(yīng)用程序
B) 若用Static定義通用過程,則該過程中的局部變量都被默認(rèn)為Static類型
C) Static類型的變量可以在標(biāo)準(zhǔn)模塊的聲明部分定義
D) 全局變量必須在標(biāo)準(zhǔn)模塊中用Public或Global聲明
(35)以下關(guān)于文件的敘述中,錯誤的是。
A) 使用Append方式打開文件時,文件指針被定位于文件尾
B) 當(dāng)以輸入方式(Input)打開文件時,如果文件不存在,則建立一個新文件
C) 順序文件各記錄的長度可以不同
D) 隨機(jī)文件打開后,既可以進(jìn)行讀操作,也可以進(jìn)行寫操作
二、填空題(每空2分,共30分)
請將每空的正確答案寫在答題卡【1】~【15】序號的橫線上,答在試卷上不得分。
(1)對長度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為【1】。
(2)在面向?qū)ο蠓椒ㄖ?,?】描述的是具有相似屬性與操作的一組對象。
(3)在關(guān)系模型中,把數(shù)據(jù)看成是二維表,每一個二維表稱為一個【3】。
(4)程序測試分為靜態(tài)分析和動態(tài)測試。其中【4】是指不執(zhí)行程序,而只是對程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。
(5)數(shù)據(jù)獨(dú)立性分為邏輯獨(dú)立性與物理獨(dú)立性。當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為【5】。
(6)下列語句的輸出結(jié)果是【6】。
Print Format(Int(12345.6789*100+0.5)/100,"0000,0.00")
(7)在窗體上畫1個命令按鈕,其名稱為Command1,然后編寫如下事件過程:
Private Sub Command1_Click()
Dim arr(1 To 100)As Integer
For i=1 To 100
arr(i)=Int(Rnd*1000)
Next i
Max=arr(1)
Min=arr(1)
For i=1 To 100
If【7】Then
Max=arr(i)
End If
If【8】Then
Min=arr(i)
End If
Next i
Print"Max=";Max,"Min=";Min
End Sub
程序運(yùn)行后,單擊命令按鈕,將產(chǎn)生100個1000以內(nèi)的隨機(jī)整數(shù),放入數(shù)組arr中,然后查找并輸出這100個數(shù)中的值Max和最小值Min,請?zhí)羁铡?BR> 2006年4月筆試試卷 第9頁(共12頁)2006年4月筆試試卷第10頁(共12頁)(8)在窗體上畫1個名稱為Command1的命令按鈕和2個名稱分別為Text1、Text2的文本框,如圖所示,然后編寫如下程序:
Function Fun(x As Integer,ByVal y As Integer)As Integer
x=x+y
If x<0 Then
Fun=x
Else
Fun=y
End If
End Function
Private Sub Command1_Click()
Dim a As Integer,b As Integer
a=-10:b=5
Text1.Text=Fun(a,b)
Text2.Text=Fun(a,b)
End Sub
程序運(yùn)行后,單擊命令按鈕,Text1和Text2文本框顯示的內(nèi)容分別是【9】和【10】。
(9)在窗體上畫1個命令按鈕和1個文本框,其名稱分別為Command1和Text1,然后編
寫如下代碼:
Dim SaveAll As String
Private Sub Command1_Click()
Text1.Text=Left(UCase(SaveAll),4)
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
SaveAll=SaveAll+Chr(KeyAscii)
End Sub
程序運(yùn)行后,在文本框中輸入abcdefg,單擊命令按鈕,則文本框中顯示的內(nèi)容是【11】。
2006年4月筆試試卷 第11頁(共12頁)2006年4月筆試試卷第12頁(共12頁)(10)在窗體上畫1個命令按鈕和1個通用對話框,其名稱分別為Command1和CommonDialog1,然后編寫如下事件過程:
Private Sub Command1_Click()
CommonDialog1.【12】="打開文件"
CommonDialog1.Filter="All Files(*.*)|*.*"
CommonDialog1.InitDir="C:\"
CommonDialog1.ShowOpen
End Sub
該程序的功能是,程序運(yùn)行后,單擊命令按鈕,將顯示“打開”文件對話框,其標(biāo)題是“打開文件”,在“文件類型”欄內(nèi)顯示“AIl Files(*.*)”,并顯示C盤根目錄下
的所有文件,請?zhí)羁铡?BR> (11)在窗體上畫1個文本框,名稱為Text1,然后編寫如下程序:
Private Sub Form_Load()
Open"d:\temp\dat.txt"For Output As#1
Text1.Text=""
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
lf【13】=13 Then
If UCase(Text1.Text)=【14】Then
Close 1
End
Else
Write#1,【15】
Text1.Text=""
End If
End If
End Sub
以上程序的功能是,在D盤temp目錄下建立1個名為dat.txt的文件,在文本框中輸入字符,每次按回車鍵(回車符的ASCII
2006年4月二級VB參考答案
一、選擇題
?。?)【答案】D)
?。?)【答案】A)
?。?)【答案】D)
(4)【答案】B)
?。?)【答案】A)
(6)【答案】D)
?。?)【答案】C)
?。?)【答案】D)
(9)【答案】A)
?。?0)【答案】C)
(11)【答案】D)
?。?2)【答案】C)
?。?3)【答案】B)
(14)【答案】A)
?。?5)【答案】B)
?。?6)【答案】D)
?。?7)【答案】B)
?。?8)【答案】A)
(19)【答案】A)
?。?0)【答案】A)
(21)【答案】B)
?。?2)【答案】C)
?。?3)【答案】D)
?。?4)【答案】A)
?。?5)【答案】D)
?。?6)【答案】B)
?。?7)【答案】D)
(28)【答案】C)
?。?9)【答案】C)
?。?0)【答案】A)
(31)【答案】B)
?。?2)【答案】B)
?。?3)【答案】C)
?。?4)【答案】C)
?。?5)【答案】B)
二、 填空題
?。?)【答案】【1】45
(2)【答案】【2】類
?。?)【答案】【3】關(guān)系
?。?)【答案】【4】靜態(tài)分析(靜態(tài)測試)
(5)【答案】【5】物理獨(dú)立性
?。?)【答案】【6】12,345.68
?。?)【答案】【7】Max
【答案】【8】Min>arr(i)
?。?)【答案】【9】-5
【10】5
?。?)【答案】【11】ABCD
(10)【答案】【12】DialogTitle
?。?1)【答案】【13】Keyascii
【14】"END"
【15】Text1.text
一、選擇題(每小題2分,共70分)
下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項填涂在答題卡相應(yīng)位置上,答在試卷上不得分。
(1)下列選項中不屬于結(jié)構(gòu)化程序設(shè)計方法的是。
A) 自頂向下B) 逐步求精
C) 模塊化D) 可復(fù)用
(2)兩個或兩個以上模塊之間關(guān)聯(lián)的緊密程度稱為。
A) 耦合度B) 內(nèi)聚度
C) 復(fù)雜度 D) 數(shù)據(jù)傳輸特性
(3)下列敘述中正確的是。
A) 軟件測試應(yīng)該由程序開發(fā)者來完成
B) 程序經(jīng)調(diào)試后一般不需要再測試
C) 軟件維護(hù)只包括對程序代碼的維護(hù)
D) 以上三種說法都不對
(4)按照“后進(jìn)先出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是。
A) 隊列B) 棧
C) 雙向鏈表D) 二叉樹
(5)下列敘述中正確的是。
A) 線性鏈表是線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)
B) 棧與隊列是非線性結(jié)構(gòu)
C) 雙向鏈表是非線性結(jié)構(gòu)
D) 只有根結(jié)點(diǎn)的二叉樹是線性結(jié)構(gòu)
(6)對如下二叉樹
ABDECF
進(jìn)行后序遍歷的結(jié)果為。
A) ABCDEFB) DBEAFC
C) ABDECFD) DEBFCA
(7)在深度為7的滿二叉樹中,葉子結(jié)點(diǎn)的個數(shù)為。
A) 32B) 31C) 64 D) 63
(8)“商品”與“顧客”兩個實(shí)體集之間的聯(lián)系一般是。
A) 一對一B) 一對多
C) 多對一D) 多對多
(9)在E-R圖中,用來表示實(shí)體的圖形是。
A) 矩形B) 橢圓形
C) 菱形D) 三角形
(10)數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是。
A) DB包含DBS和DBMSB) DBMS包含DB和DBS
C) DBS包含DB和DBMS D) 沒有任何關(guān)系
(11)以下關(guān)于Visual Basic特點(diǎn)的敘述中,錯誤的是。
A) Visual Basic是采用事件驅(qū)動編程機(jī)制的語言
B) Visual Basic程序既可以編譯運(yùn)行,也可以解釋運(yùn)行
C) 構(gòu)成Visual Basic程序的多個過程沒有固定的執(zhí)行順序
D) Visual Basic程序不是結(jié)構(gòu)化程序,不具備結(jié)構(gòu)化程序的三種基本結(jié)構(gòu)
(12)以下敘述中,錯誤的是。
A) 一個Visual Basic應(yīng)用程序可以含有多個標(biāo)準(zhǔn)模塊文件
B) 一個Visual Basic工程可以含有多個窗體文件
C) 標(biāo)準(zhǔn)模塊文件可以屬于某個指定的窗體文件
D) 標(biāo)準(zhǔn)模塊文件的擴(kuò)展名是.bas
(13)以下敘述中,錯誤的是。
A) 在Visual Basic中,對象所能響應(yīng)的事件是由系統(tǒng)定義的
B) 對象的任何屬性既可以通過屬性窗口設(shè)定,也可以通過程序語句設(shè)定
C) Visual Basic中允許不同對象使用相同名稱的方法
D) Visual Basic中的對象具有自己的屬性和方法
(14)設(shè)有如下語句:
Dim a,b As Integer
c="VisualBasic"
d=#7/20/2005#
以下關(guān)于這段代碼的敘述中,錯誤的是。
A) a被定義為Integer類型變量
B) b被定義為Integer類型變量
C) c中的數(shù)據(jù)是字符串
D) d中的數(shù)據(jù)是日期類型
(15)以下能從字符串"VisualBasic"中直接取出子字符串"Basic"的函數(shù)是。
A) LeftB) Mid
C) String D) Instr
(16)設(shè)a=4,b=3,c=2,d=1,下列表達(dá)式的值是。
a>b+1 Or c
C) -1D) 0
(17)以下可以作為Visual Basic變量名的是。
A) A#AB) counstA
C) 3AD) ?AA
(18)設(shè)x=4,y=6,則以下不能在窗體上顯示出“A=10”的語句是。
A) Print A=x+yB) Print"A=";x+y
C) Print "A="+Str(x+y) D) Print"A="&x+y
(19)假定有如下的命令按鈕(名稱為Command1)事件過程:
Private Sub Command1_Click()
x=InputBox("輸入:","輸入整數(shù)")
MsgBox"輸入的數(shù)據(jù)是:”,,”輸入數(shù)據(jù):"+x
End Sub
程序運(yùn)行后,單擊命令按鈕,如果從鍵盤上輸入整數(shù)10,則以下敘述中錯誤的是。
A) x的值是數(shù)值10
B) 輸入對話框的標(biāo)題是“輸入整數(shù)”
C) 信息框的標(biāo)題是“輸入數(shù)據(jù):10”
D) 信息框中顯示的是“輸入的數(shù)據(jù)是:”
(20)在窗體上畫1個命令按鈕(名稱為Command1)和1個文本框(名稱為Text1),然
后編寫如下事件過程:
Private Sub Command1_Click()
x=Val(Text1.Text)
Select Case x
Case 1,3
y=x*x
Case Is>=10,Is<=-10
y=x
Case -10 To 10
y=-x
End Select
End Sub
程序運(yùn)行后,在文本框中輸入3,然后單擊命令按鈕,則以下敘述中正確的是。
A) 執(zhí)行y=x*xB) 執(zhí)行y=-x
C) 先執(zhí)行y=x*x,再執(zhí)行y=-xD) 程序出錯
(21)設(shè)有命令按鈕Command1的單擊事件過程,代碼如下:
Private Sub Command1_Click()
Dim a(30)As Integer
For i=1 To 30
a(i)=Int(Rnd*100)
Next
For Each arrItem In a
If arrItem Mod 7=0 Then Print arrItem;
If arrItem>90 Then Exit For
Next
End Sub
對于該事件過程,以下敘述中錯誤的是。
A) a數(shù)組中的數(shù)據(jù)是30個100以內(nèi)的整數(shù)
B) 語句For Each arrItem In a有語法錯誤
C) If arrItem Mod 7=0……語句的功能是輸出數(shù)組中能夠被7整除的數(shù)
D) If arrItem>90……語句的作用是當(dāng)數(shù)組元素的值大于90時退出For循環(huán)
2006年4月筆試試卷第3頁(共12頁)2006年4月筆試試卷第4頁(共12頁)(22)設(shè)有命令按鈕Command1的單擊事件過程,代碼如下:
Private Sub Command1_Click()
Dim a(3,3)As Integer
For i=1 To 3
For j=1 To 3
a(i,j)=i*j+i
Next j
Next i
Sum=0
For i=1 To 3
Sum=Sum+a(i,4-i)
Next i
Print Sum
End Sub
運(yùn)行程序,單擊命令按鈕,輸出結(jié)果是。
A) 20B) 7
C) 16 D) 17
(23)在窗體上畫1個名稱為Command1的命令按鈕,然后編寫如下事件過程:
Private Sub Command1_Click()
a=0
For i=1 To 2
For j=1 To 4
If j Mod 2<>0 Then
a=a-1
End If
a=a+1
Next j
Next i
Print a
End Sub
程序運(yùn)行后,單擊命令按鈕,輸出結(jié)果是。
A) 0B) 2
C) 3 D) 4
(24)窗體上有名稱分別為Text1、Text2的2個文本框,有一個由3個單選按鈕構(gòu)成的控件數(shù)組Option1,如圖1所示。程序運(yùn)行后,如果單擊某個單選按鈕,則執(zhí)行Text1中的數(shù)值與該單選按鈕所對應(yīng)的運(yùn)算(乘以1、10或100),并將結(jié)果顯示在Text2中,如圖2所示。為了實(shí)現(xiàn)上述功能,在程序中的問號(?)處應(yīng)填入的內(nèi)容是。
圖1圖2 Private Sub Option1_Click(Index As Integer)
If Text1.Text<>""Then
Select Case ?
Case 0
Text2.Text=Val(Text1.Text)
Case 1
Text2.Text=Val(Text1.Text)*10
Case 2
Text2.Text=Val(Text1.Text)*100
End Select
End If
End Sub
A) IndexB) Option1.Index
C) Option1(Index) D) Option1(Index).value
(25)在窗體上畫1個命令按鈕,其名稱為Command1,然后編寫如下程序:
Private Sub Command1_Click()
Dim a(10)As Integer
Dim x As Integer
For i=1 To 10
a(i)=8+i
Next
x=2
Print a(f(x)+x)
End Sub
Function f(x As Integer)
x=x+3
f=x
End Function
程序運(yùn)行后,單擊命令按鈕,輸出結(jié)果為。
A) 12B) 15
C) 17D) 18
2006年4月筆試試卷第5頁(共12頁)2006年4月筆試試卷第6頁(共12頁)(26)以下關(guān)于過程的敘述中,錯誤的是。
A) 事件過程是由某個事件觸發(fā)而執(zhí)行的過程
B) 函數(shù)過程的返回值可以有多個
C) 可以在事件過程中調(diào)用通用過程
D) 不能在事件過程中定義函數(shù)過程
(27)在窗體上畫3個標(biāo)簽、3個文本框(名稱分別為Text1、Text2和Text3)和1個命令按鈕(名稱為Command1),外觀如圖所示。
編寫如下程序:
Private Sub Form_Load()
Text1.Text=""
Text2.Text=""
Text3.Text=""
End Sub
Private Sub Command1_Click()
x=Val(Text1.Text)
y=Val(Text2.Text)
Text3.Text=f(x,y)
End Sub
Function f(ByVal x As Integer,ByVal y As Integer)
Do While y<>0
tmp=x Mod y
x=y
y=tmp
Loop
f=x
End Function
運(yùn)行程序,在Text1文本框中輸入36,在Text2文本框中輸入24,然后單擊命令按鈕,則在Text3文本框中顯示的內(nèi)容是。
A) 4B) 6
C) 8 D) 12
(28)窗體上有名稱分別為Text1、Text2的2個文本框,要求文本框Text1中輸入的數(shù)據(jù)小于500,文本框Text2中輸入的數(shù)據(jù)小于1000,否則重新輸入。為了實(shí)現(xiàn)上述功能,在以下程序中問號(?)處應(yīng)填入的內(nèi)容是。
Private Sub Text1_LostFocus()
Call CheckInput(Text1,500)
End Sub
Private Sub Text2_LostFocus()
Call CheckInput(Text2,1000)
End Sub
Sub CheckInput(t As ?,x As Integer)
If Val(t.Text)>x Then
MsgBox"請重新輸入!"
End If
End Sub
A) TextB) SelText
C) ControlD) Form
(29)在窗體上畫1個文本框,其名稱為Text1,然后編寫如下過程:
Private Sub Text1_KeyDown(KeyCode As Integer,Shift As Integer)
Print Chr(KeyCode)
End Sub
Private Sub Text1_KeyUp(KeyCode As Integer,Shift As Integer)
Print Chr(KeyCode+2)
End Sub
程序運(yùn)行后,把焦點(diǎn)移到文本框中,此時如果敲擊“A”鍵,則輸出結(jié)果為。
A)A
AB)A
BC)A
CD)A
D
(30)為了使列表框中的項目呈多列顯示,需要設(shè)置的屬性為。
A) ColumnsB) Style
C) ListD) MultiSelect
(31)在窗體上畫1個命令按鈕,名稱為Command1,然后編寫如下程序:
Dim Flag As Boolean
Private Sub Command1_Click()
Dim intNum As Integer
intNum=InputBox("請輸入:")
If Flag Then
Print f(intNum)
End If
End Sub
Function f(X As Integer)As Integer
If X<10 Then
Y=X
Else
Y=X+10
End If
f=Y
End Function
Private Sub Form_MouseUp(Button As Integer,Shift As Integer,X As Single,Y As Single)
Flag=True
End Sub
運(yùn)行程序,首先單擊窗體,然后單擊命令按鈕,在輸入對話框中輸入5,則程序的輸出結(jié)果為。
A) 0B) 5
C) 15D) 無任何輸出
(32)在菜單編輯器中建立1個名稱為Menu0的菜單項,將其“可見”屬性設(shè)置為False,并建立其若干子菜單,然后編寫如下過程:
Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)
If Button=1 Then
PopupMenu Menu0
End If
End Sub
則以下敘述中錯誤的是。
A) 該過程的作用是彈出一個菜單
B) 單擊鼠標(biāo)右鍵時彈出菜單
C) Menu0是在菜單編輯器中定義的彈出菜單的名稱
D) 參數(shù)X、Y指明鼠標(biāo)當(dāng)前位置的坐標(biāo)
(33)窗體上有1個名稱為CD1的通用對話框,1個名稱為Command1的命令按鈕。命令按鈕的單擊事件過程如下:
Private Sub Command1_Click()
CD1.FileName=""
CD1.Filter="All Files|*.*|(*.DoC)|*.Doc|(*.Txt)|*.txt"
CD1.FilterIndex=2
CD1.Action=1
End Sub
關(guān)于以上代碼,錯誤的敘述是。
A) 執(zhí)行以上事件過程,通用對話框被設(shè)置為“打開”文件對話框
B) 通用對話框的初始路徑為當(dāng)前路徑
C) 通用對話框的默認(rèn)文件類型為*.Txt
D) 以上代碼不對文件執(zhí)行讀寫操作
(34)以下敘述中錯誤的是。
A) 用Shell函數(shù)可以執(zhí)行擴(kuò)展名為.exe的應(yīng)用程序
B) 若用Static定義通用過程,則該過程中的局部變量都被默認(rèn)為Static類型
C) Static類型的變量可以在標(biāo)準(zhǔn)模塊的聲明部分定義
D) 全局變量必須在標(biāo)準(zhǔn)模塊中用Public或Global聲明
(35)以下關(guān)于文件的敘述中,錯誤的是。
A) 使用Append方式打開文件時,文件指針被定位于文件尾
B) 當(dāng)以輸入方式(Input)打開文件時,如果文件不存在,則建立一個新文件
C) 順序文件各記錄的長度可以不同
D) 隨機(jī)文件打開后,既可以進(jìn)行讀操作,也可以進(jìn)行寫操作
二、填空題(每空2分,共30分)
請將每空的正確答案寫在答題卡【1】~【15】序號的橫線上,答在試卷上不得分。
(1)對長度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為【1】。
(2)在面向?qū)ο蠓椒ㄖ?,?】描述的是具有相似屬性與操作的一組對象。
(3)在關(guān)系模型中,把數(shù)據(jù)看成是二維表,每一個二維表稱為一個【3】。
(4)程序測試分為靜態(tài)分析和動態(tài)測試。其中【4】是指不執(zhí)行程序,而只是對程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。
(5)數(shù)據(jù)獨(dú)立性分為邏輯獨(dú)立性與物理獨(dú)立性。當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為【5】。
(6)下列語句的輸出結(jié)果是【6】。
Print Format(Int(12345.6789*100+0.5)/100,"0000,0.00")
(7)在窗體上畫1個命令按鈕,其名稱為Command1,然后編寫如下事件過程:
Private Sub Command1_Click()
Dim arr(1 To 100)As Integer
For i=1 To 100
arr(i)=Int(Rnd*1000)
Next i
Max=arr(1)
Min=arr(1)
For i=1 To 100
If【7】Then
Max=arr(i)
End If
If【8】Then
Min=arr(i)
End If
Next i
Print"Max=";Max,"Min=";Min
End Sub
程序運(yùn)行后,單擊命令按鈕,將產(chǎn)生100個1000以內(nèi)的隨機(jī)整數(shù),放入數(shù)組arr中,然后查找并輸出這100個數(shù)中的值Max和最小值Min,請?zhí)羁铡?BR> 2006年4月筆試試卷 第9頁(共12頁)2006年4月筆試試卷第10頁(共12頁)(8)在窗體上畫1個名稱為Command1的命令按鈕和2個名稱分別為Text1、Text2的文本框,如圖所示,然后編寫如下程序:
Function Fun(x As Integer,ByVal y As Integer)As Integer
x=x+y
If x<0 Then
Fun=x
Else
Fun=y
End If
End Function
Private Sub Command1_Click()
Dim a As Integer,b As Integer
a=-10:b=5
Text1.Text=Fun(a,b)
Text2.Text=Fun(a,b)
End Sub
程序運(yùn)行后,單擊命令按鈕,Text1和Text2文本框顯示的內(nèi)容分別是【9】和【10】。
(9)在窗體上畫1個命令按鈕和1個文本框,其名稱分別為Command1和Text1,然后編
寫如下代碼:
Dim SaveAll As String
Private Sub Command1_Click()
Text1.Text=Left(UCase(SaveAll),4)
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
SaveAll=SaveAll+Chr(KeyAscii)
End Sub
程序運(yùn)行后,在文本框中輸入abcdefg,單擊命令按鈕,則文本框中顯示的內(nèi)容是【11】。
2006年4月筆試試卷 第11頁(共12頁)2006年4月筆試試卷第12頁(共12頁)(10)在窗體上畫1個命令按鈕和1個通用對話框,其名稱分別為Command1和CommonDialog1,然后編寫如下事件過程:
Private Sub Command1_Click()
CommonDialog1.【12】="打開文件"
CommonDialog1.Filter="All Files(*.*)|*.*"
CommonDialog1.InitDir="C:\"
CommonDialog1.ShowOpen
End Sub
該程序的功能是,程序運(yùn)行后,單擊命令按鈕,將顯示“打開”文件對話框,其標(biāo)題是“打開文件”,在“文件類型”欄內(nèi)顯示“AIl Files(*.*)”,并顯示C盤根目錄下
的所有文件,請?zhí)羁铡?BR> (11)在窗體上畫1個文本框,名稱為Text1,然后編寫如下程序:
Private Sub Form_Load()
Open"d:\temp\dat.txt"For Output As#1
Text1.Text=""
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
lf【13】=13 Then
If UCase(Text1.Text)=【14】Then
Close 1
End
Else
Write#1,【15】
Text1.Text=""
End If
End If
End Sub
以上程序的功能是,在D盤temp目錄下建立1個名為dat.txt的文件,在文本框中輸入字符,每次按回車鍵(回車符的ASCII
2006年4月二級VB參考答案
一、選擇題
?。?)【答案】D)
?。?)【答案】A)
?。?)【答案】D)
(4)【答案】B)
?。?)【答案】A)
(6)【答案】D)
?。?)【答案】C)
?。?)【答案】D)
(9)【答案】A)
?。?0)【答案】C)
(11)【答案】D)
?。?2)【答案】C)
?。?3)【答案】B)
(14)【答案】A)
?。?5)【答案】B)
?。?6)【答案】D)
?。?7)【答案】B)
?。?8)【答案】A)
(19)【答案】A)
?。?0)【答案】A)
(21)【答案】B)
?。?2)【答案】C)
?。?3)【答案】D)
?。?4)【答案】A)
?。?5)【答案】D)
?。?6)【答案】B)
?。?7)【答案】D)
(28)【答案】C)
?。?9)【答案】C)
?。?0)【答案】A)
(31)【答案】B)
?。?2)【答案】B)
?。?3)【答案】C)
?。?4)【答案】C)
?。?5)【答案】B)
二、 填空題
?。?)【答案】【1】45
(2)【答案】【2】類
?。?)【答案】【3】關(guān)系
?。?)【答案】【4】靜態(tài)分析(靜態(tài)測試)
(5)【答案】【5】物理獨(dú)立性
?。?)【答案】【6】12,345.68
?。?)【答案】【7】Max
【答案】【8】Min>arr(i)
?。?)【答案】【9】-5
【10】5
?。?)【答案】【11】ABCD
(10)【答案】【12】DialogTitle
?。?1)【答案】【13】Keyascii
【14】"END"
【15】Text1.text