(考試時(shí)間 90 分鐘,滿分 100 分)
一、選擇題(每小題2分,共70分)
下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的。請(qǐng)將正確選項(xiàng)填涂在答題卡相應(yīng)位置上,答在試卷上不得分。
(1)下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是。
A) 自頂向下B) 逐步求精
C) 模塊化D) 可復(fù)用
(2)兩個(gè)或兩個(gè)以上模塊之間關(guān)聯(lián)的緊密程度稱為。
A) 耦合度B) 內(nèi)聚度
C) 復(fù)雜度 D) 數(shù)據(jù)傳輸特性
(3)下列敘述中正確的是。
A) 軟件測(cè)試應(yīng)該由程序開發(fā)者來完成
B) 程序經(jīng)調(diào)試后一般不需要再測(cè)試
C) 軟件維護(hù)只包括對(duì)程序代碼的維護(hù)
D) 以上三種說法都不對(duì)
(4)按照“后進(jìn)先出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是。
A) 隊(duì)列B) 棧
C) 雙向鏈表D) 二叉樹
(5)下列敘述中正確的是。
A) 線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
B) 棧與隊(duì)列是非線性結(jié)構(gòu)
C) 雙向鏈表是非線性結(jié)構(gòu)
D) 只有根結(jié)點(diǎn)的二叉樹是線性結(jié)構(gòu)
(6)對(duì)如下二叉樹
ABDECF
進(jìn)行后序遍歷的結(jié)果為。
A) ABCDEFB) DBEAFC
C) ABDECFD) DEBFCA
(7)在深度為7的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為。
A) 32B) 31C) 64 D) 63
(8)“商品”與“顧客”兩個(gè)實(shí)體集之間的聯(lián)系一般是。
A) 一對(duì)一B) 一對(duì)多
C) 多對(duì)一D) 多對(duì)多
(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)的敘述中,錯(cuò)誤的是。
A) Visual Basic是采用事件驅(qū)動(dòng)編程機(jī)制的語言
B) Visual Basic程序既可以編譯運(yùn)行,也可以解釋運(yùn)行
C) 構(gòu)成Visual Basic程序的多個(gè)過程沒有固定的執(zhí)行順序
D) Visual Basic程序不是結(jié)構(gòu)化程序,不具備結(jié)構(gòu)化程序的三種基本結(jié)構(gòu)
(12)以下敘述中,錯(cuò)誤的是。
A) 一個(gè)Visual Basic應(yīng)用程序可以含有多個(gè)標(biāo)準(zhǔn)模塊文件
B) 一個(gè)Visual Basic工程可以含有多個(gè)窗體文件
C) 標(biāo)準(zhǔn)模塊文件可以屬于某個(gè)指定的窗體文件
D) 標(biāo)準(zhǔn)模塊文件的擴(kuò)展名是.bas
(13)以下敘述中,錯(cuò)誤的是。
A) 在Visual Basic中,對(duì)象所能響應(yīng)的事件是由系統(tǒng)定義的
B) 對(duì)象的任何屬性既可以通過屬性窗口設(shè)定,也可以通過程序語句設(shè)定
C) Visual Basic中允許不同對(duì)象使用相同名稱的方法
D) Visual Basic中的對(duì)象具有自己的屬性和方法
(14)設(shè)有如下語句:
Dim a,b As Integer
c="VisualBasic"
d=#7/20/2005#
以下關(guān)于這段代碼的敘述中,錯(cuò)誤的是。
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,則以下敘述中錯(cuò)誤的是。
A) x的值是數(shù)值10
B) 輸入對(duì)話框的標(biāo)題是“輸入整數(shù)”
C) 信息框的標(biāo)題是“輸入數(shù)據(jù):10”
D) 信息框中顯示的是“輸入的數(shù)據(jù)是:”
(20)在窗體上畫1個(gè)命令按鈕(名稱為Command1)和1個(gè)文本框(名稱為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) 程序出錯(cuò)
(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
對(duì)于該事件過程,以下敘述中錯(cuò)誤的是。
A) a數(shù)組中的數(shù)據(jù)是30個(gè)100以內(nèi)的整數(shù)
B) 語句For Each arrItem In a有語法錯(cuò)誤
C) If arrItem Mod 7=0……語句的功能是輸出數(shù)組中能夠被7整除的數(shù)
D) If arrItem>90……語句的作用是當(dāng)數(shù)組元素的值大于90時(shí)退出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個(gè)名稱為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個(gè)文本框,有一個(gè)由3個(gè)單選按鈕構(gòu)成的控件數(shù)組Option1,如圖1所示。程序運(yùn)行后,如果單擊某個(gè)單選按鈕,則執(zhí)行Text1中的數(shù)值與該單選按鈕所對(duì)應(yīng)的運(yùn)算(乘以1、10或100),并將結(jié)果顯示在Text2中,如圖2所示。為了實(shí)現(xiàn)上述功能,在程序中的問號(hào)(?)處應(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個(gè)命令按鈕,其名稱為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)于過程的敘述中,錯(cuò)誤的是。
A) 事件過程是由某個(gè)事件觸發(fā)而執(zhí)行的過程
B) 函數(shù)過程的返回值可以有多個(gè)
C) 可以在事件過程中調(diào)用通用過程
D) 不能在事件過程中定義函數(shù)過程
(27)在窗體上畫3個(gè)標(biāo)簽、3個(gè)文本框(名稱分別為Text1、Text2和Text3)和1個(gè)命令按鈕(名稱為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個(gè)文本框,要求文本框Text1中輸入的數(shù)據(jù)小于500,文本框Text2中輸入的數(shù)據(jù)小于1000,否則重新輸入。為了實(shí)現(xiàn)上述功能,在以下程序中問號(hào)(?)處應(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"請(qǐng)重新輸入!"
End If
End Sub
A) TextB) SelText
C) ControlD) Form
(29)在窗體上畫1個(gè)文本框,其名稱為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)移到文本框中,此時(shí)如果敲擊“A”鍵,則輸出結(jié)果為。
A)A
AB)A
BC)A
CD)A
D
(30)為了使列表框中的項(xiàng)目呈多列顯示,需要設(shè)置的屬性為。
A) ColumnsB) Style
C) ListD) MultiSelect
(31)在窗體上畫1個(gè)命令按鈕,名稱為Command1,然后編寫如下程序:
Dim Flag As Boolean
Private Sub Command1_Click()
Dim intNum As Integer
intNum=InputBox("請(qǐng)輸入:")
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)行程序,首先單擊窗體,然后單擊命令按鈕,在輸入對(duì)話框中輸入5,則程序的輸出結(jié)果為。
A) 0B) 5
C) 15D) 無任何輸出
(32)在菜單編輯器中建立1個(gè)名稱為Menu0的菜單項(xiàng),將其“可見”屬性設(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
則以下敘述中錯(cuò)誤的是。
A) 該過程的作用是彈出一個(gè)菜單
B) 單擊鼠標(biāo)右鍵時(shí)彈出菜單
C) Menu0是在菜單編輯器中定義的彈出菜單的名稱
D) 參數(shù)X、Y指明鼠標(biāo)當(dāng)前位置的坐標(biāo)
(33)窗體上有1個(gè)名稱為CD1的通用對(duì)話框,1個(gè)名稱為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)于以上代碼,錯(cuò)誤的敘述是。
A) 執(zhí)行以上事件過程,通用對(duì)話框被設(shè)置為“打開”文件對(duì)話框
B) 通用對(duì)話框的初始路徑為當(dāng)前路徑
C) 通用對(duì)話框的默認(rèn)文件類型為*.Txt
D) 以上代碼不對(duì)文件執(zhí)行讀寫操作
(34)以下敘述中錯(cuò)誤的是。
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)于文件的敘述中,錯(cuò)誤的是。
A) 使用Append方式打開文件時(shí),文件指針被定位于文件尾
B) 當(dāng)以輸入方式(Input)打開文件時(shí),如果文件不存在,則建立一個(gè)新文件
C) 順序文件各記錄的長(zhǎng)度可以不同
D) 隨機(jī)文件打開后,既可以進(jìn)行讀操作,也可以進(jìn)行寫操作
二、填空題(每空2分,共30分)
請(qǐng)將每空的正確答案寫在答題卡【1】~【15】序號(hào)的橫線上,答在試卷上不得分。
(1)對(duì)長(zhǎng)度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為【1】。
(2)在面向?qū)ο蠓椒ㄖ?,?】描述的是具有相似屬性與操作的一組對(duì)象。
(3)在關(guān)系模型中,把數(shù)據(jù)看成是二維表,每一個(gè)二維表稱為一個(gè)【3】。
(4)程序測(cè)試分為靜態(tài)分析和動(dòng)態(tài)測(cè)試。其中【4】是指不執(zhí)行程序,而只是對(duì)程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯(cuò)誤。
(5)數(shù)據(jù)獨(dú)立性分為邏輯獨(dú)立性與物理獨(dú)立性。當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),其邏輯結(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個(gè)命令按鈕,其名稱為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個(gè)1000以內(nèi)的隨機(jī)整數(shù),放入數(shù)組arr中,然后查找并輸出這100個(gè)數(shù)中的值Max和最小值Min,請(qǐng)?zhí)羁铡?BR> 2006年4月筆試試卷 第9頁(共12頁)2006年4月筆試試卷第10頁(共12頁)(8)在窗體上畫1個(gè)名稱為Command1的命令按鈕和2個(gè)名稱分別為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個(gè)命令按鈕和1個(gè)文本框,其名稱分別為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個(gè)命令按鈕和1個(gè)通用對(duì)話框,其名稱分別為Command1和CommonDialog1,然后編寫如下事件過程:
Private Sub Command1_Click()
CommonDialog1.【12】="打開文件"
CommonDialog1.Filter="All Files(*.*)|*.*"
CommonDialog1.InitDir="C:\"
CommonDialog1.ShowOpen
End Sub
該程序的功能是,程序運(yùn)行后,單擊命令按鈕,將顯示“打開”文件對(duì)話框,其標(biāo)題是“打開文件”,在“文件類型”欄內(nèi)顯示“AIl Files(*.*)”,并顯示C盤根目錄下
的所有文件,請(qǐng)?zhí)羁铡?BR> (11)在窗體上畫1個(gè)文本框,名稱為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個(gè)名為dat.txt的文件,在文本框中輸入字符,每次按回車鍵(回車符的ASCII
2006年4月二級(jí)VB參考答案
一、選擇題
?。?)【答案】D)
?。?)【答案】A)
?。?)【答案】D)
?。?)【答案】B)
(5)【答案】A)
?。?)【答案】D)
(7)【答案】C)
?。?)【答案】D)
(9)【答案】A)
?。?0)【答案】C)
?。?1)【答案】D)
?。?2)【答案】C)
?。?3)【答案】B)
?。?4)【答案】A)
?。?5)【答案】B)
(16)【答案】D)
?。?7)【答案】B)
?。?8)【答案】A)
(19)【答案】A)
?。?0)【答案】A)
?。?1)【答案】B)
(22)【答案】C)
?。?3)【答案】D)
?。?4)【答案】A)
(25)【答案】D)
?。?6)【答案】B)
?。?7)【答案】D)
?。?8)【答案】C)
?。?9)【答案】C)
?。?0)【答案】A)
?。?1)【答案】B)
(32)【答案】B)
?。?3)【答案】C)
?。?4)【答案】C)
?。?5)【答案】B)
二、 填空題
?。?)【答案】【1】45
?。?)【答案】【2】類
(3)【答案】【3】關(guān)系
?。?)【答案】【4】靜態(tài)分析(靜態(tài)測(cè)試)
?。?)【答案】【5】物理獨(dú)立性
?。?)【答案】【6】12,345.68
(7)【答案】【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)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的。請(qǐng)將正確選項(xiàng)填涂在答題卡相應(yīng)位置上,答在試卷上不得分。
(1)下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是。
A) 自頂向下B) 逐步求精
C) 模塊化D) 可復(fù)用
(2)兩個(gè)或兩個(gè)以上模塊之間關(guān)聯(lián)的緊密程度稱為。
A) 耦合度B) 內(nèi)聚度
C) 復(fù)雜度 D) 數(shù)據(jù)傳輸特性
(3)下列敘述中正確的是。
A) 軟件測(cè)試應(yīng)該由程序開發(fā)者來完成
B) 程序經(jīng)調(diào)試后一般不需要再測(cè)試
C) 軟件維護(hù)只包括對(duì)程序代碼的維護(hù)
D) 以上三種說法都不對(duì)
(4)按照“后進(jìn)先出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是。
A) 隊(duì)列B) 棧
C) 雙向鏈表D) 二叉樹
(5)下列敘述中正確的是。
A) 線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
B) 棧與隊(duì)列是非線性結(jié)構(gòu)
C) 雙向鏈表是非線性結(jié)構(gòu)
D) 只有根結(jié)點(diǎn)的二叉樹是線性結(jié)構(gòu)
(6)對(duì)如下二叉樹
ABDECF
進(jìn)行后序遍歷的結(jié)果為。
A) ABCDEFB) DBEAFC
C) ABDECFD) DEBFCA
(7)在深度為7的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為。
A) 32B) 31C) 64 D) 63
(8)“商品”與“顧客”兩個(gè)實(shí)體集之間的聯(lián)系一般是。
A) 一對(duì)一B) 一對(duì)多
C) 多對(duì)一D) 多對(duì)多
(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)的敘述中,錯(cuò)誤的是。
A) Visual Basic是采用事件驅(qū)動(dòng)編程機(jī)制的語言
B) Visual Basic程序既可以編譯運(yùn)行,也可以解釋運(yùn)行
C) 構(gòu)成Visual Basic程序的多個(gè)過程沒有固定的執(zhí)行順序
D) Visual Basic程序不是結(jié)構(gòu)化程序,不具備結(jié)構(gòu)化程序的三種基本結(jié)構(gòu)
(12)以下敘述中,錯(cuò)誤的是。
A) 一個(gè)Visual Basic應(yīng)用程序可以含有多個(gè)標(biāo)準(zhǔn)模塊文件
B) 一個(gè)Visual Basic工程可以含有多個(gè)窗體文件
C) 標(biāo)準(zhǔn)模塊文件可以屬于某個(gè)指定的窗體文件
D) 標(biāo)準(zhǔn)模塊文件的擴(kuò)展名是.bas
(13)以下敘述中,錯(cuò)誤的是。
A) 在Visual Basic中,對(duì)象所能響應(yīng)的事件是由系統(tǒng)定義的
B) 對(duì)象的任何屬性既可以通過屬性窗口設(shè)定,也可以通過程序語句設(shè)定
C) Visual Basic中允許不同對(duì)象使用相同名稱的方法
D) Visual Basic中的對(duì)象具有自己的屬性和方法
(14)設(shè)有如下語句:
Dim a,b As Integer
c="VisualBasic"
d=#7/20/2005#
以下關(guān)于這段代碼的敘述中,錯(cuò)誤的是。
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,則以下敘述中錯(cuò)誤的是。
A) x的值是數(shù)值10
B) 輸入對(duì)話框的標(biāo)題是“輸入整數(shù)”
C) 信息框的標(biāo)題是“輸入數(shù)據(jù):10”
D) 信息框中顯示的是“輸入的數(shù)據(jù)是:”
(20)在窗體上畫1個(gè)命令按鈕(名稱為Command1)和1個(gè)文本框(名稱為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) 程序出錯(cuò)
(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
對(duì)于該事件過程,以下敘述中錯(cuò)誤的是。
A) a數(shù)組中的數(shù)據(jù)是30個(gè)100以內(nèi)的整數(shù)
B) 語句For Each arrItem In a有語法錯(cuò)誤
C) If arrItem Mod 7=0……語句的功能是輸出數(shù)組中能夠被7整除的數(shù)
D) If arrItem>90……語句的作用是當(dāng)數(shù)組元素的值大于90時(shí)退出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個(gè)名稱為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個(gè)文本框,有一個(gè)由3個(gè)單選按鈕構(gòu)成的控件數(shù)組Option1,如圖1所示。程序運(yùn)行后,如果單擊某個(gè)單選按鈕,則執(zhí)行Text1中的數(shù)值與該單選按鈕所對(duì)應(yīng)的運(yùn)算(乘以1、10或100),并將結(jié)果顯示在Text2中,如圖2所示。為了實(shí)現(xiàn)上述功能,在程序中的問號(hào)(?)處應(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個(gè)命令按鈕,其名稱為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)于過程的敘述中,錯(cuò)誤的是。
A) 事件過程是由某個(gè)事件觸發(fā)而執(zhí)行的過程
B) 函數(shù)過程的返回值可以有多個(gè)
C) 可以在事件過程中調(diào)用通用過程
D) 不能在事件過程中定義函數(shù)過程
(27)在窗體上畫3個(gè)標(biāo)簽、3個(gè)文本框(名稱分別為Text1、Text2和Text3)和1個(gè)命令按鈕(名稱為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個(gè)文本框,要求文本框Text1中輸入的數(shù)據(jù)小于500,文本框Text2中輸入的數(shù)據(jù)小于1000,否則重新輸入。為了實(shí)現(xiàn)上述功能,在以下程序中問號(hào)(?)處應(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"請(qǐng)重新輸入!"
End If
End Sub
A) TextB) SelText
C) ControlD) Form
(29)在窗體上畫1個(gè)文本框,其名稱為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)移到文本框中,此時(shí)如果敲擊“A”鍵,則輸出結(jié)果為。
A)A
AB)A
BC)A
CD)A
D
(30)為了使列表框中的項(xiàng)目呈多列顯示,需要設(shè)置的屬性為。
A) ColumnsB) Style
C) ListD) MultiSelect
(31)在窗體上畫1個(gè)命令按鈕,名稱為Command1,然后編寫如下程序:
Dim Flag As Boolean
Private Sub Command1_Click()
Dim intNum As Integer
intNum=InputBox("請(qǐng)輸入:")
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)行程序,首先單擊窗體,然后單擊命令按鈕,在輸入對(duì)話框中輸入5,則程序的輸出結(jié)果為。
A) 0B) 5
C) 15D) 無任何輸出
(32)在菜單編輯器中建立1個(gè)名稱為Menu0的菜單項(xiàng),將其“可見”屬性設(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
則以下敘述中錯(cuò)誤的是。
A) 該過程的作用是彈出一個(gè)菜單
B) 單擊鼠標(biāo)右鍵時(shí)彈出菜單
C) Menu0是在菜單編輯器中定義的彈出菜單的名稱
D) 參數(shù)X、Y指明鼠標(biāo)當(dāng)前位置的坐標(biāo)
(33)窗體上有1個(gè)名稱為CD1的通用對(duì)話框,1個(gè)名稱為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)于以上代碼,錯(cuò)誤的敘述是。
A) 執(zhí)行以上事件過程,通用對(duì)話框被設(shè)置為“打開”文件對(duì)話框
B) 通用對(duì)話框的初始路徑為當(dāng)前路徑
C) 通用對(duì)話框的默認(rèn)文件類型為*.Txt
D) 以上代碼不對(duì)文件執(zhí)行讀寫操作
(34)以下敘述中錯(cuò)誤的是。
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)于文件的敘述中,錯(cuò)誤的是。
A) 使用Append方式打開文件時(shí),文件指針被定位于文件尾
B) 當(dāng)以輸入方式(Input)打開文件時(shí),如果文件不存在,則建立一個(gè)新文件
C) 順序文件各記錄的長(zhǎng)度可以不同
D) 隨機(jī)文件打開后,既可以進(jìn)行讀操作,也可以進(jìn)行寫操作
二、填空題(每空2分,共30分)
請(qǐng)將每空的正確答案寫在答題卡【1】~【15】序號(hào)的橫線上,答在試卷上不得分。
(1)對(duì)長(zhǎng)度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為【1】。
(2)在面向?qū)ο蠓椒ㄖ?,?】描述的是具有相似屬性與操作的一組對(duì)象。
(3)在關(guān)系模型中,把數(shù)據(jù)看成是二維表,每一個(gè)二維表稱為一個(gè)【3】。
(4)程序測(cè)試分為靜態(tài)分析和動(dòng)態(tài)測(cè)試。其中【4】是指不執(zhí)行程序,而只是對(duì)程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯(cuò)誤。
(5)數(shù)據(jù)獨(dú)立性分為邏輯獨(dú)立性與物理獨(dú)立性。當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),其邏輯結(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個(gè)命令按鈕,其名稱為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個(gè)1000以內(nèi)的隨機(jī)整數(shù),放入數(shù)組arr中,然后查找并輸出這100個(gè)數(shù)中的值Max和最小值Min,請(qǐng)?zhí)羁铡?BR> 2006年4月筆試試卷 第9頁(共12頁)2006年4月筆試試卷第10頁(共12頁)(8)在窗體上畫1個(gè)名稱為Command1的命令按鈕和2個(gè)名稱分別為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個(gè)命令按鈕和1個(gè)文本框,其名稱分別為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個(gè)命令按鈕和1個(gè)通用對(duì)話框,其名稱分別為Command1和CommonDialog1,然后編寫如下事件過程:
Private Sub Command1_Click()
CommonDialog1.【12】="打開文件"
CommonDialog1.Filter="All Files(*.*)|*.*"
CommonDialog1.InitDir="C:\"
CommonDialog1.ShowOpen
End Sub
該程序的功能是,程序運(yùn)行后,單擊命令按鈕,將顯示“打開”文件對(duì)話框,其標(biāo)題是“打開文件”,在“文件類型”欄內(nèi)顯示“AIl Files(*.*)”,并顯示C盤根目錄下
的所有文件,請(qǐng)?zhí)羁铡?BR> (11)在窗體上畫1個(gè)文本框,名稱為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個(gè)名為dat.txt的文件,在文本框中輸入字符,每次按回車鍵(回車符的ASCII
2006年4月二級(jí)VB參考答案
一、選擇題
?。?)【答案】D)
?。?)【答案】A)
?。?)【答案】D)
?。?)【答案】B)
(5)【答案】A)
?。?)【答案】D)
(7)【答案】C)
?。?)【答案】D)
(9)【答案】A)
?。?0)【答案】C)
?。?1)【答案】D)
?。?2)【答案】C)
?。?3)【答案】B)
?。?4)【答案】A)
?。?5)【答案】B)
(16)【答案】D)
?。?7)【答案】B)
?。?8)【答案】A)
(19)【答案】A)
?。?0)【答案】A)
?。?1)【答案】B)
(22)【答案】C)
?。?3)【答案】D)
?。?4)【答案】A)
(25)【答案】D)
?。?6)【答案】B)
?。?7)【答案】D)
?。?8)【答案】C)
?。?9)【答案】C)
?。?0)【答案】A)
?。?1)【答案】B)
(32)【答案】B)
?。?3)【答案】C)
?。?4)【答案】C)
?。?5)【答案】B)
二、 填空題
?。?)【答案】【1】45
?。?)【答案】【2】類
(3)【答案】【3】關(guān)系
?。?)【答案】【4】靜態(tài)分析(靜態(tài)測(cè)試)
?。?)【答案】【5】物理獨(dú)立性
?。?)【答案】【6】12,345.68
(7)【答案】【7】Max
【答案】【8】Min>arr(i)
?。?)【答案】【9】-5
【10】5
?。?)【答案】【11】ABCD
(10)【答案】【12】DialogTitle
?。?1)【答案】【13】Keyascii
【14】"END"
【15】Text1.text