2006年9月全國計(jì)算機(jī)等級(jí)考試二級(jí)VB語言筆試試題及答案

字號(hào):

為大家收集整理了《2006年9月全國計(jì)算機(jī)等級(jí)考試二級(jí)VB語言筆試試題及答案》供大家參考,希望對(duì)大家有所幫助!??!
    一、選擇題(每小題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.?dāng)?shù)據(jù)傳輸特性
    (3)下列敘述中正確的是。
    A.軟件測試應(yīng)該由程序開發(fā)者來完成
    B.程序經(jīng)調(diào)試后一般不需要再測試
    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.ABCDEF
    b.DBEAFC
    C.ABDECF
    D.DEBFCA
    (7)在深度為7的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為。
    A.32
    b.31
    C.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和DBMS
    b.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(chǎn)被定義為Integer類型變量
    B.b被定義為Integer類型變量
    C.c中的數(shù)據(jù)是字符串
    D.d中的數(shù)據(jù)是日期類型
    (15)以下能從字符串"VisualBasic"中直接取出子字符串"Basic"的函數(shù)是。
    A.Left
    b.Mid
    C.String
    D.Instr
    (16)設(shè)a=4,b=3,c=2,d=1,下列表達(dá)式的值是。
    a>b+1 Or c< Mod b And>
    A.True
    B.1
    C.-1
    D.0
    (17)以下可以作為Visual Basic變量名的是。
    A.A#A
    B.counstA
    C.3A
    D.?AA
    (18)設(shè)x=4,y=6,則以下不能在窗體上顯示出“A=10”的語句是。
    A.Print A=x+y
    b.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*x
    b.執(zhí)行y=-x
    C.先執(zhí)行y=x*x,再執(zhí)行y=-x
    D.程序出錯(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(chǎn)數(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)
    (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.20
    B.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.0
    b.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.Index
    b.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.12
    b.15
    C.17
    D.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.4
    b.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.Text
    b.SelText
    C.Control
    D.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.Columns
    b.Style
    C.List
    D.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.0
    b.5
    C.15
    D.無任何輸出
    (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|*.*|(*.Do
    C.|*.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.順序文件各記錄的長度可以不同
    D.隨機(jī)文件打開后,既可以進(jìn)行讀操作,也可以進(jìn)行寫操作
    二、填空題(每空2分,共30分)
    請(qǐng)將每空的正確答案寫在答題卡【1】~【15】序號(hào)的橫線上,答在試卷上不得分。
    (1)對(duì)長度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為【1】。
    (2)在面向?qū)ο蠓椒ㄖ?,?】描述的是具有相似屬性與操作的一組對(duì)象。
    (3)在關(guān)系模型中,把數(shù)據(jù)看成是二維表,每一個(gè)二維表稱為一個(gè)【3】。
    (4)程序測試分為靜態(tài)分析和動(dòng)態(tài)測試。其中【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>    (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】。
    (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碼是13)都把當(dāng)前文本框中的內(nèi)容寫入文件dat.txt,并清除文本框中的內(nèi)容;如果輸入“END”,則結(jié)束程序。請(qǐng)?zhí)羁铡?BR>    一、選擇題
    (1)【答案】 D)
    【解析】結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則是:自頂向下、逐步求精、模塊化及限制使用goto語句??蓮?fù)用性是指軟件元素不加修改和稍加修改可在不同的軟件開發(fā)過程中重復(fù)使用的性質(zhì)。軟件可復(fù)用性是軟件工程追求的目標(biāo)之一,是提高軟件生產(chǎn)效率的最主要方法。面向?qū)ο蟮某绦蛟O(shè)計(jì)具有可復(fù)用性的優(yōu)點(diǎn)。
    (2)【答案】 A)
    【解析】模塊的獨(dú)立程度可以由兩個(gè)定性標(biāo)準(zhǔn)度量:內(nèi)聚性和耦合性。耦合性衡量不同模塊彼此間互相依賴(連接)的緊密程度;內(nèi)聚性衡量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度。一般來說,要求模塊之間的耦合盡可能地弱,而模塊的內(nèi)聚程度要盡可能地高。
    (3)【答案】 D)
    【解析】因?yàn)闇y試的目的在于發(fā)現(xiàn)錯(cuò)誤,由程序的編寫者自己進(jìn)行測試是不合適的,為了達(dá)到好的測試效果,應(yīng)該由獨(dú)立的第三方進(jìn)行測試工作,所以選項(xiàng)A)錯(cuò)誤;程序調(diào)試,修改一個(gè)錯(cuò)誤的同時(shí)可能引入了新的錯(cuò)誤,解決的辦法是在修改了錯(cuò)誤之后,必須進(jìn)行回歸測試,所以選項(xiàng)B)錯(cuò)誤;所謂軟件維護(hù),就是在軟件已經(jīng)交付使用之后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過程,可見選項(xiàng)C)也是錯(cuò)誤的。
    (4)【答案】 B)
    【解析】棧的特點(diǎn)是棧頂元素總是最后被插入的元素,也是最早被刪除的元素;棧底元素總是最早被插入的元素,也是最晚才能被刪除的元素,即棧的修改原則是“后進(jìn)先出”(Last In First Out,簡稱LIFO) 或“先進(jìn)后出”(First In Last Out,簡稱FILO)。
    (5)【答案】 A)
    【解析】所謂線性鏈表,就是指線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),簡稱鏈表。線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的基本單位稱為存儲(chǔ)結(jié)點(diǎn),每個(gè)存儲(chǔ)結(jié)點(diǎn)包括數(shù)據(jù)域和指針域兩個(gè)組成部分。棧、隊(duì)列和雙向鏈表是線性結(jié)構(gòu),二叉樹是非線性結(jié)構(gòu)。線性結(jié)構(gòu)和非線性結(jié)構(gòu)是從數(shù)據(jù)的邏輯結(jié)構(gòu)角度來講的,與該數(shù)據(jù)結(jié)構(gòu)中有多少個(gè)元素沒有關(guān)系,即使是空的二叉樹也是非線性結(jié)構(gòu)。
    (6)【答案】 D)
    【解析】后序遍歷可以描述為:若二叉樹為空,則空操作;否則:
    ①后序遍歷左子樹;
    ②后序遍歷右子樹;
    ③訪問根結(jié)點(diǎn)。
    對(duì)于后序遍歷,第一個(gè)訪問的結(jié)點(diǎn)一定是最左下的結(jié)點(diǎn),最后一個(gè)訪問的結(jié)點(diǎn)一定是根結(jié)點(diǎn),如果知道這個(gè)小技巧,可以迅速確定本題的答案為選項(xiàng)D)。
    (7)【答案】 C)
    【解析】滿二叉樹是指除最后一層外,每一層上的所有結(jié)點(diǎn)都有兩個(gè)子結(jié)點(diǎn)的二叉樹。滿二叉樹在其第i層上有2i-1個(gè)結(jié)點(diǎn),即每一層上的結(jié)點(diǎn)數(shù)都是結(jié)點(diǎn)數(shù)。對(duì)于深度為7的滿二叉樹,葉子結(jié)點(diǎn)所在的是第7層,一共有27-1=64個(gè)葉子結(jié)點(diǎn)。
    (8)【答案】 D)
    【解析】兩個(gè)實(shí)體集之間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,主要有3種:一對(duì)一的聯(lián)系、一對(duì)多的聯(lián)系、多對(duì)多的聯(lián)系。“商品”與“顧客”兩個(gè)實(shí)體集之間的聯(lián)系一般是多對(duì)多,因?yàn)橐环N “商品”可以被多個(gè)“顧客”購買,而一個(gè)“顧客”也可以購買多個(gè)“商品”。
    (9)【答案】 A)
    【解析】在ER圖中,用矩形表示實(shí)體集,用橢圓形表示屬性,用菱形(內(nèi)部寫上聯(lián)系名)表示聯(lián)系。
    (10)【答案】 C)
    【解析】DB即數(shù)據(jù)庫(DataBase),是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合;DBMS即數(shù)據(jù)庫管理系統(tǒng)(DataBase Management System),是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用程序提供訪問DB的方法;DBS即數(shù)據(jù)庫系統(tǒng)(Database System)由如下5部分組成:數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、系統(tǒng)平臺(tái)之一——硬件平臺(tái)(硬件)、系統(tǒng)平臺(tái)之二——軟件平臺(tái)(軟件)。 ‘
    (11)【答案】 D)
    【解析】Visual Basic是在BASIC和Quick BASIC語言中發(fā)展起來的,因此具有高級(jí)程序設(shè)計(jì)語言的語句結(jié)構(gòu),Visual Basic是結(jié)構(gòu)化程序。
    (12)【答案】 C)
    【解析】標(biāo)準(zhǔn)模塊也稱全局模塊或總模塊,由全局變量聲明、模塊層聲明及通用過程等幾部分組成,因此標(biāo)準(zhǔn)模塊不能屬于某個(gè)特定的窗體文件。
    (13)【答案】 B)
    【解析】大部分屬性既可以通過屬性窗口設(shè)置,也可以通過程序代碼來進(jìn)行設(shè)置,而有些屬性只能使用程序代碼或者屬性窗口設(shè)置。如Name屬性只能通過屬性窗口來進(jìn)行設(shè)置。
    (14)【答案】 A)
    【解析】在一個(gè)Dim語句中定義多個(gè)變量時(shí),每個(gè)變量都要用As子句聲明其類型,否則該變量被看作是變體類型,在該語句中,a即被定義為變體類型。
    (15)【答案】 B)
    【解析】通過字符串函數(shù)Mid即可以實(shí)現(xiàn)字符串“Basic”的提取,提取過程如下:c=“VisualBasic”:print Mid(c,7,5)。
    (16)【答案】 D)
    【解析】運(yùn)算符的優(yōu)先順序是:算術(shù)運(yùn)算符>關(guān)系運(yùn)算符>邏輯運(yùn)算符
    算術(shù)運(yùn)算符的優(yōu)先順序是:^>->(*與/)>\>Mod>(+與-)。
    關(guān)系運(yùn)算符的優(yōu)先順序是:=>(<>或><)>(>)>(>=)>(<=)>(<)>Is>Like
    邏輯運(yùn)算符的優(yōu)先順序是:非(Not)>與(And)>或(Or)>異或(Xor)>等價(jià)(Epv)>蘊(yùn)涵(Imp)。
    根據(jù)運(yùn)算符的優(yōu)先級(jí)計(jì)算本題中的表達(dá)式最后結(jié)果為0。
    (17)【答案】 B)
    【解析】在Visual Basic中,變量名只能由字母、數(shù)字和下劃線組成,而且第一個(gè)字符必須是英文字母,而最后一個(gè)字符可以是類型說明符。由此得知counstA可以作為變量名。
    (18)【答案】 A)
    【解析】Print方法沒有賦值功能,因此A選項(xiàng)不能在窗體上顯示“A=10”,該選項(xiàng)的結(jié)果為False。
    (19)【答案】 A)
    【解析】在默認(rèn)情況下,InputBox函數(shù)的返回值是一個(gè)字符串,如果沒有事先聲明返回值變量的類型,則把該函數(shù)的返回值賦給這個(gè)變量時(shí),Visual Basic總是把它作為字符串來處理。因此x 的值是字符串10。
    (20)【答案】 A)
    【解析】該題考查的內(nèi)容為多分支控制結(jié)構(gòu)。在多分支控制結(jié)構(gòu)中,先對(duì)測試表達(dá)式進(jìn)行求值,然后測試該值與哪個(gè)Case子句中的表達(dá)式表列相匹配,如果找到,則執(zhí)行與該Case子句有關(guān)的語句,下面的子句不再執(zhí)行,直接把控制轉(zhuǎn)移到End Select后面的語句。
    (21)【答案】 B)
    【解析】該題考查的是For Each…Next語句。該語句可用于對(duì)數(shù)組元素進(jìn)行處理,重復(fù)執(zhí)行的次數(shù)由數(shù)組中元素的個(gè)數(shù)確定的,因此For Each arrItem In a是沒有語法錯(cuò)誤的,相反,F(xiàn)or Each…Next語句比For…Next語句更方便,因?yàn)樗挥弥该餮h(huán)結(jié)束的條件。
    (22)【答案】 C)
    【解析】經(jīng)賦值后數(shù)組a的元素為(2,3,4,4,6,8,6,9,12),而第三個(gè)For循環(huán)語句的作用是求次對(duì)角線上三個(gè)元素的和,即Sum=a(1,3)+a(2,2)+a(3,1)=4+6+6=16。
    (23)【答案】 D)
    【解析】由if語句知:當(dāng)j為1或者3時(shí),a減1,而j為1、2、3和4的時(shí)候a均加1,因此,實(shí)際上經(jīng)過For j=1 To 4后,a增加了2,而程序的最外部循環(huán)了兩次,因此結(jié)果應(yīng)該為a=4。
    (24)【答案】 A)
    【解析】該程序?qū)嶋H上是通過檢驗(yàn)單選按鈕數(shù)組的索引來確定相應(yīng)的運(yùn)算,當(dāng)Index=1表示選定的是單選按鈕1,當(dāng)Index=2表示選定的是單選按鈕2,當(dāng)Index=3表示選定的是單選按鈕3。
    (25)【答案】 D)
    【解析】Function過程中的x與事件過程Command1_Click中的x使用的是同一地址,因此在Function過程中執(zhí)行x=x+3這一語句時(shí),事件過程Command1_Click中的x也同時(shí)執(zhí)行該語句,因此Print函數(shù)的內(nèi)容是a(f(2)+2+3)=a(10),因而輸出應(yīng)該為18。
    (26)【答案】 B)
    【解析】函數(shù)過程要返回一個(gè)值,而且只能返回一個(gè)值。
    (27)【答案】 D)
    【解析】Visual Basic通過關(guān)鍵字ByVal來實(shí)現(xiàn)傳值。這時(shí)候,Visual Basic為形參分配內(nèi)存,并將相應(yīng)的實(shí)參值復(fù)制給形參。對(duì)于f,其參數(shù)分別為x=36,y=24,這里的x、y與事件過程中的x、y使用的不是同一個(gè)地址。f的返回值為12,因此Text3中的內(nèi)容是12。
    (28)【答案】 C)
    【解析】該題考查內(nèi)容為控件參數(shù)。在一個(gè)通用過程中設(shè)置相同性質(zhì)控件所需要的屬性,然后用不同的控件調(diào)用此過程。
    (29)【答案】 C)
    【解析】KeyDown和KeyUp都有兩個(gè)參數(shù),即KeyCode和Shift,KeyCode是按鍵的實(shí)際ASCII碼,Shift是轉(zhuǎn)換鍵。Chr函數(shù)為求ASCII字符,而ASC(C)=ASC(A)+2。因此輸出結(jié)果應(yīng)該為A與C。
    (30)【答案】 A)
    【解析】Columns屬性為返回一個(gè)值,決定列表框是在一列中垂直滾動(dòng)(這時(shí)值為0)還是多個(gè)列中水平滾動(dòng)(這時(shí)值大于0)。
    (31)【答案】 B)
    【解析】由于窗體MouseUp事件將Flag置為True,因此Print f(intNum)能夠執(zhí)行。Function過程的形參為5,可以得到該過程的返回值為5,因此程序的輸出結(jié)果是5。
    (32)【答案】 B)
    【解析】鼠標(biāo)鍵Button=1時(shí),表示當(dāng)前按下的是左鍵,該事件過程的作用是單擊鼠標(biāo)左鍵的時(shí)候彈出一個(gè)菜單。
    (33)【答案】 C)
    【解析】FilterIndex屬性用于指定默認(rèn)的過濾器。在用Filter屬性設(shè)置多個(gè)過濾器后,每個(gè)過濾器都有一個(gè)值,第一個(gè)為1,第二個(gè)為2,依次類推,當(dāng)前的FilterIndex=2,因此默認(rèn)的文件類型為*.doc。
    (34)【答案】 C)
    【解析】Static類型變量的作用域是它所在的過程,通常用來存放中間結(jié)果或用作臨時(shí)變量,因此,一般在過程中聲明定義該類型的變量。
    (35)【答案】 B)
    【解析】使用Open語句打開文件時(shí),如果為“輸入”打開的文件不存在,則產(chǎn)生“文件未找到”錯(cuò)誤,如果為“輸出”,附加或隨機(jī)訪問方式打開的文件不存在,則建立相應(yīng)的文件。
    二、填空題
    (1)【答案】 【1】45
    【解析】對(duì)長度n為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為n(n-1)/2=5×9=45。
    (2)【答案】 【2】類
    【解析】在面向?qū)ο蠓椒ㄖ? 類(Class)描述的是具有相似屬性與操作的一組對(duì)象,而一個(gè)具體對(duì)象則是其對(duì)應(yīng)類的一個(gè)實(shí)例(Instance)。
    (3)【答案】 【3】關(guān)系
    【解析】在關(guān)系模型中,把數(shù)據(jù)看成是二維表,每一個(gè)二維表稱為一個(gè)關(guān)系 。
    (4)【答案】 【4】靜態(tài)分析(靜態(tài)測試)
    【解析】原則上講,可以將軟件測試方法分為兩大類,即靜態(tài)測試和動(dòng)態(tài)測試。靜態(tài)測試無須執(zhí)行被測代碼,而是借助專用的軟件測試工具評(píng)審軟件文檔或程序,度量程序靜態(tài)復(fù)雜度,檢查軟件是否符合編程標(biāo)準(zhǔn),借以發(fā)現(xiàn)編寫的程序的不足之處,減少錯(cuò)誤出現(xiàn)的概率。動(dòng)態(tài)測試,是使被測代碼在相對(duì)真實(shí)環(huán)境下運(yùn)行,從多角度觀察程序運(yùn)行時(shí)能體現(xiàn)的功能、邏輯、行為、結(jié)構(gòu)等的行為,以發(fā)現(xiàn)其中的錯(cuò)誤現(xiàn)象。程序測試分為靜態(tài)測試和動(dòng)態(tài)測試。靜態(tài)測試一般是指人工評(píng)審軟件文檔或程序,借以發(fā)現(xiàn)其中的錯(cuò)誤。由于被評(píng)審的文檔或程序不必運(yùn)行,所以稱為靜態(tài)測試。
    (31)【答案】 B)
    【解析】由于窗體MouseUp事件將Flag置為True,因此Print f(intNum)能夠執(zhí)行。Function過程的形參為5,可以得到該過程的返回值為5,因此程序的輸出結(jié)果是5。
    (32)【答案】 B)
    【解析】鼠標(biāo)鍵Button=1時(shí),表示當(dāng)前按下的是左鍵,該事件過程的作用是單擊鼠標(biāo)左鍵的時(shí)候彈出一個(gè)菜單。
    (33)【答案】 C)
    【解析】FilterIndex屬性用于指定默認(rèn)的過濾器。在用Filter屬性設(shè)置多個(gè)過濾器后,每個(gè)過濾器都有一個(gè)值,第一個(gè)為1,第二個(gè)為2,依次類推,當(dāng)前的FilterIndex=2,因此默認(rèn)的文件類型為*.doc。
    (34)【答案】 C)
    【解析】Static類型變量的作用域是它所在的過程,通常用來存放中間結(jié)果或用作臨時(shí)變量,因此,一般在過程中聲明定義該類型的變量。
    (35)【答案】 B)
    【解析】使用Open語句打開文件時(shí),如果為“輸入”打開的文件不存在,則產(chǎn)生“文件未找到”錯(cuò)誤,如果為“輸出”,附加或隨機(jī)訪問方式打開的文件不存在,則建立相應(yīng)的文件。
    二、填空題
    (1)【答案】 【1】45
    【解析】對(duì)長度n為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為n(n-1)/2=5×9=45。
    (2)【答案】 【2】類
    【解析】在面向?qū)ο蠓椒ㄖ? 類(Class)描述的是具有相似屬性與操作的一組對(duì)象,而一個(gè)具體對(duì)象則是其對(duì)應(yīng)類的一個(gè)實(shí)例(Instance)。
    (3)【答案】 【3】關(guān)系
    【解析】在關(guān)系模型中,把數(shù)據(jù)看成是二維表,每一個(gè)二維表稱為一個(gè)關(guān)系 。
    (4)【答案】 【4】靜態(tài)分析(靜態(tài)測試)
    【解析】原則上講,可以將軟件測試方法分為兩大類,即靜態(tài)測試和動(dòng)態(tài)測試。靜態(tài)測試無須執(zhí)行被測代碼,而是借助專用的軟件測試工具評(píng)審軟件文檔或程序,度量程序靜態(tài)復(fù)雜度,檢查軟件是否符合編程標(biāo)準(zhǔn),借以發(fā)現(xiàn)編寫的程序的不足之處,減少錯(cuò)誤出現(xiàn)的概率。動(dòng)態(tài)測試,是使被測代碼在相對(duì)真實(shí)環(huán)境下運(yùn)行,從多角度觀察程序運(yùn)行時(shí)能體現(xiàn)的功能、邏輯、行為、結(jié)構(gòu)等的行為,以發(fā)現(xiàn)其中的錯(cuò)誤現(xiàn)象。程序測試分為靜態(tài)測試和動(dòng)態(tài)測試。靜態(tài)測試一般是指人工評(píng)審軟件文檔或程序,借以發(fā)現(xiàn)其中的錯(cuò)誤。由于被評(píng)審的文檔或程序不必運(yùn)行,所以稱為靜態(tài)測試。