全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)筆試樣卷Visual Basic語(yǔ)言程序設(shè)計(jì)

字號(hào):

 
    選擇題(每小題2分,共70分)
        下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的。請(qǐng)將正確選項(xiàng)填涂在答題卡相應(yīng)位置上,答在試卷上不得分。
     
    (1)下列選項(xiàng)中不符合良好程序設(shè)計(jì)風(fēng)格的是
    A) 源程序要文檔化      B) 數(shù)據(jù)說(shuō)明的次序要規(guī)范化
    C) 避免濫用goto語(yǔ)句   D) 模塊設(shè)計(jì)要保證高耦合、高內(nèi)聚
     
    (2)從工程管理角度,軟件設(shè)計(jì)一般分為兩步完成,它們是
    A) 概要設(shè)計(jì)與詳細(xì)設(shè)計(jì)  B) 數(shù)據(jù)設(shè)計(jì)與接口設(shè)計(jì)
    C) 軟件結(jié)構(gòu)設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)  D) 過(guò)程設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)
     
    (3)下列選項(xiàng)中不屬于軟件生命周期開(kāi)發(fā)階段任務(wù)的是
        A)軟件測(cè)試     B)概要設(shè)計(jì) C)軟件維護(hù) D)詳細(xì)設(shè)計(jì)
     
    (4)在數(shù)據(jù)庫(kù)系統(tǒng)中,用戶所見(jiàn)的數(shù)據(jù)模式為
        A) 概念模式    B)外模式  C)內(nèi)模式   D)物理模式
     
    (5)數(shù)據(jù)庫(kù)設(shè)計(jì)的四個(gè)階段是:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和
    A) 編碼設(shè)計(jì)    B) 測(cè)試階段    C)運(yùn)行階段 D)物理設(shè)計(jì)
     
    (6)設(shè)有如下三個(gè)關(guān)系表
    

      
    

    R
    

     
    

    S
    

     
    

     
    

    T
    

     
    

     
    

     
    

    A
    

     
    

    B
    

    C
    

     
    

    A
    

    B
    

    C
    

     
    

     
    

    m
    

     
    

    1
    

    3
    

     
    

    m
    

    1
    

    3
    

     
    

     
    

    n
    

     
    

     
    

     
    

     
    

    n
    

    1
    

    3
    

     
    

     
    

     
    

     
    

     
    

     
    

     
    

     
    

     
    

     
    

     
    

    下列操作中正確的是
    A)T=R∩S      B)T=R∪S
    C)T=R×S      D)T=R/S
     
    (7)下列敘述中正確的是
        A)一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度也必定大
        B)一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小
        C)一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小
    D)上述三種說(shuō)法都不對(duì)
     
    (8)在長(zhǎng)度為64的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)為
    A)63   B)64   C)6    D)7
     
    (9)數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的
    A)存儲(chǔ)問(wèn)題 B)共享問(wèn)題 C)安全問(wèn)題        D)保護(hù)問(wèn)題
     
    (10)對(duì)下列二叉樹(shù)
    

F
    

C
    

D
    

E
    

A
    

G
    

B
    

 
     進(jìn)行中序遍歷的結(jié)果是
    A)ACBDFEG  B)ACBDFGE  C)ABDCGEF  D)FCADBEG
     
    (11)以下敘述中正確的是
    A)窗體的Name 屬性指定窗體的名稱,用來(lái)標(biāo)識(shí)一個(gè)窗體
    B)窗體的Name 屬性值是顯示在窗體標(biāo)題欄中的文本
    C)可以在運(yùn)行期間改變窗體的Name 屬性的值
    D)窗體的Name 屬性值可以為空
     
    (12)以下敘述中錯(cuò)誤的是
        A)打開(kāi)一個(gè)工程文件時(shí),系統(tǒng)自動(dòng)裝入與該工程有關(guān)的窗體文件
        B)保存Visual Basic程序時(shí),應(yīng)分別保存窗體文件及工程文件
        C)Visual Basic應(yīng)用程序只能以解釋方式執(zhí)行
        D)窗體文件包含該窗體及其控件的屬性
     
    (13)設(shè)a = 2, b = 3, c = 4, 下列表達(dá)式的值是
           Not a <= c Or 4*c = b^2 And b <> a + c
        A)-1   B)1    C)True D)False
    (14)設(shè)有如下的用戶定義類(lèi)型:
         Type Student
        number As String
        name As String
        age As Integer
    End Type
    則以下正確引用該類(lèi)型成員的代碼是
        A)Student.name = "李明"    B)Dim s As Student
                                    s.name = "李明"
        C)Dim s As Type Student    D)Dim s As Type
        s.name = "李明"             s.name = "李明"
     
    (15)設(shè)a = 5,b = 6,c = 7,d = 8,執(zhí)行下列語(yǔ)句后,x的值為
         x = IIf((a > b) And (c > d), 10, 20)
        A)10   B)20   C)True D)False
     
    (16)執(zhí)行以下程序段后,變量c$的值為
    a$ = "Visual Basic Programming"
    b$ = "Quick"
    c$ = b$ & UCase(Mid$(a$, 7, 6)) & Right$(a$, 12)
    A)Visual BASIC Programming B)Quick Basic Programming
    C)QUICK Basic Programming D)Quick BASIC Programming
     
    (17)在窗體上畫(huà)一個(gè)文本框(其名稱為T(mén)ext1)和一個(gè)標(biāo)簽(其名稱為L(zhǎng)abel1),程序運(yùn)行后,如果在文本框中輸入指定的信息,則立即在標(biāo)簽中顯示相同的內(nèi)容。以下可以實(shí)現(xiàn)上述操作的事件過(guò)程是
         A)Private Sub Text1_Click()   B)Private Sub Text1_Change()
               Label1.Caption = Text1.Text        Label1.Caption = Text1.Text
            End Sub        End Sub
         C)Private Sub Label1_Change() D)Private Sub Label1_Click()
               Label1.Caption = Text1.Text        Label1.Caption = Text1.Text
            End Sub        End Sub
     
    (18)在窗體上畫(huà)一個(gè)命令按鈕和一個(gè)標(biāo)簽,其名稱分別為Command1和Label1,然后編寫(xiě)如下事件過(guò)程:
    Private Sub Command1_Click()
        Counter = 0
        For i = 1 To 4
            For j = 6 To 1 Step -2
                Counter = Counter + 1
            Next j
        Next i
        Label1.Caption = Str(Counter)
    End Sub
    程序運(yùn)行后,單擊命令按鈕,標(biāo)簽中顯示的內(nèi)容是
        A) 11  B)12   C) 16  D)20
     
    (19)在窗體上畫(huà)一個(gè)名稱為T(mén)ext1的文本框和一個(gè)名稱為Command1的命令按鈕,然后編寫(xiě)如下事件過(guò)程:
    Private Sub Command1_Click()
        Dim i As Integer, n As Integer
        For i = 0 To 50
            i = i + 3
            n = n + 1
            If i > 10 Then Exit For
        Next
        Text1.Text = Str(n)
    End Sub
    程序運(yùn)行后,單擊命令按鈕,在文本框中顯示的值是
        A)5    B)4    C)3    D)2
     
    (20)在窗體上畫(huà)一個(gè)命令按鈕和兩個(gè)標(biāo)簽,其名稱分別為Command1、Label1和Label2,然后編寫(xiě)如下事件過(guò)程:
    Private Sub Command1_Click()
        a = 0
        For i = 1 To 10
            a = a + 1
            b = 0
            For j = 1 To 10
                a = a + 1
                b = b + 2
            Next j
        Next i
        Label1.Caption = Str(a)
        Label2.Caption = Str(b)
    End Sub
        程序運(yùn)行后,單擊命令按鈕,在標(biāo)簽Label1和Label2中顯示的內(nèi)容分別是
        A)10和20  B)20和110 C)200和110    D)110和20
     
    (21)在窗體上畫(huà)一個(gè)名稱為L(zhǎng)ist1的列表框,一個(gè)名稱為L(zhǎng)abel1的標(biāo)簽,列表框中顯示若干城市的名稱。當(dāng)單擊列表框中的某個(gè)城市名時(shí),該城市名從列表框中消失,并在標(biāo)簽中顯示出來(lái)。下列能正確實(shí)現(xiàn)上述操作的程序是
        A)Private Sub List1_Click()    B)Private Sub List1_Click()
               Label1.Caption = List1.ListIndex        Label1. Name = List1. ListIndex
               List1.RemoveItem List1.Text         List1.RemoveItem List1.Text
           End Sub         End Sub
        C)Private Sub List1_Click()    D)Private Sub List1_Click()
               Label1.Caption = List1.Text         Label1.Name = List1.Text
               List1.RemoveItem List1.ListIndex        List1.RemoveItem List1.ListIndex
            End Sub         End Sub
     
    (22)在窗體上畫(huà)一個(gè)名稱為Command1的命令按鈕,然后編寫(xiě)如下程序:
    Private Sub Command1_Click()
        Dim i As Integer, j As Integer
        Dim a(10, 10) As Integer
        For i = 1 To 3
            For j = 1 To 3
                a(i, j) = (i - 1) * 3 + j
                Print a(i, j);
            Next j
            Print
        Next i
    End Sub
    程序運(yùn)行后,單擊命令按鈕,窗體上顯示的是
     
    

                     
    

    A)
    

    1  2  3
    

    B)
    

    2  3  4
    

    C)
    

    1  4  7
    

    D)
    

    1  2  3
    

     
    

     
    

     
    

    2  4  6
    

     
    

    3  4  5
    

     
    

    2  5  8
    

     
    

    4  5  6
    

     
    

     
    

     
    

    3  6  9
    

     
    

    4  5  6
    

     
    

    3  6  9
    

     
    

    7  8  9
    

     
    

     
    (23)在窗體上畫(huà)一個(gè)命令按鈕,名稱為Command1,然后編寫(xiě)如下代碼:
    Option Base 0
    Private Sub Command1_Click()
        Dim A(4) As Integer,B(4) As Integer
        For k = 0 To 2
            A(k + 1) = InputBox("請(qǐng)輸入一個(gè)整數(shù)")
            B(3 - k) = A(k + 1)
        Next k
        Print B(k)
    End Sub
       程序運(yùn)行后,單擊命令按鈕,在輸入對(duì)話框中分別輸入2、4、6,輸出結(jié)果為
        A)0    B)2    C)3    D)4
     
    (24)有以下程序:
    Option Base 1
    Dim arr() As Integer
    Private Sub Form_Click()
        Dim i As Integer, j As Integer
        ReDim arr(3, 2)
        For i = 1 To 3
            For j = 1 To 2
                arr(i, j) = i * 2 + j
            Next j
        Next i
        ReDim Preserve arr(3, 4)
        For j = 3 To 4
            arr(3, j) = j + 9
        Next j
        Print arr(3, 2); arr(3, 4)
    End Sub
        程序運(yùn)行后,單擊窗體,輸出結(jié)果為
        A)8  13    B)0  13    C)7  12    D)0  0
    (25)以下敘述中正確的是
    A)一個(gè)Sub過(guò)程至少要有一個(gè)Exit Sub語(yǔ)句
    B)一個(gè)Sub過(guò)程必須有一個(gè)End Sub語(yǔ)句
    C)可以在Sub過(guò)程中定義一個(gè)Function過(guò)程,但不能定義Sub過(guò)程
    D)調(diào)用一個(gè)Function過(guò)程可以獲得多個(gè)返回值
     
    (26)有以下程序:
        Sub subP(b() As Integer)
            For i = 1 To 4
                b(i) = 2 * i
            Next i
        End Sub
     
        Private Sub Command1_Click()
            Dim a(1 To 4) As Integer
            a(1) = 5
            a(2) = 6
            a(3) = 7
            a(4) = 8
            subP a()
            For i = 1 To 4
                Print a(i)
            Next i
        End Sub
        運(yùn)行上面的程序,單擊命令按鈕,輸出結(jié)果為      
    

    A)
    

    2
    

    B)
    

    5
    

    C)
    

    10
    

    D)
    

    出錯(cuò)
    

     
    

    4
    

     
    

    6
    

     
    

    12
    

     
    

     
    

     
    

    6
    

     
    

    7
    

     
    

    14
    

     
    

     
    

     
    

    8
    

     
    

    8
    

     
    

    16
    

     
    

     
    

     
    (27)設(shè)有如下通用過(guò)程:
    Public Function Fun(xStr As String) As String
        Dim tStr As String, strL As Integer
        tStr = ""
        strL = Len(xStr)
        i = 1
        Do While i <= strL / 2
            tStr = tStr & Mid(xStr, i, 1) & Mid(xStr, strL - i + 1, 1)
            i = i + 1
        Loop
        Fun = tStr
    End Function
        在窗體上畫(huà)一個(gè)名稱為T(mén)ext1的文本框和一個(gè)名稱為Command1的命令按鈕。然后編寫(xiě)如下的事件過(guò)程:
    Private Sub Command1_Click()
        Dim S1 As String
        S1 = "abcdef"
        Text1.Text = UCase(Fun(S1))
    End Sub
        程序運(yùn)行后,單擊命令按鈕,則Text1中顯示的是
        A)ABCDEF   B)abcdef   C)AFBECD   D)DEFABC
     
    (28)在窗體上畫(huà)一個(gè)名稱為T(mén)xtA的文本框,然后編寫(xiě)如下的事件過(guò)程:
        Private Sub TxtA_KeyPress(KeyAscii As Integer)
            ......
        End Sub
    假定焦點(diǎn)已經(jīng)位于文本框中,則能夠觸發(fā)KeyPress事件的操作是
        A)單擊鼠標(biāo)     B)雙擊文本框
        C)鼠標(biāo)滑過(guò)文本框       D)按下鍵盤(pán)上的某個(gè)鍵
     
    (29)在窗體上畫(huà)一個(gè)命令按鈕和兩個(gè)文本框,其名稱分別為Command1、Text1和Text2,然后編寫(xiě)如下程序:
    Dim S1 As String, S2 As String
    Private Sub Form_Load()
        Text1.Text = ""
        Text2.Text = ""
    End Sub
    Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
        S2 = S2 & Chr(KeyCode)
    End Sub
    Private Sub Text1_KeyPress(KeyAscii As Integer)
        S1 = S1 & Chr(KeyAscii)
    End Sub
    Private Sub Command1_Click()
        Text1.Text = S2
        Text2.Text = S1
        S1 = ""
        S2 = ""
    End Sub
        程序運(yùn)行后,在Text1中輸入“abc”,然后單擊命令按鈕,在文本框Text1和Text2中顯示的內(nèi)容分別為
        A)abc和ABC    B)abc和abc    C)ABC和abc    D)ABC和ABC
     
    (30)以下說(shuō)法中正確的是
        A)任何時(shí)候都可以通過(guò)執(zhí)行“工具”菜單中的“菜單編輯器”命令打開(kāi)菜單編輯器
        B)只有當(dāng)某個(gè)窗體為當(dāng)前活動(dòng)窗體時(shí),才能打開(kāi)菜單編輯器
        C)任何時(shí)候都可以通過(guò)單擊標(biāo)準(zhǔn)工具欄上的“菜單編輯器”按鈕打開(kāi)菜單編輯器
        D)只有當(dāng)代碼窗口為當(dāng)前活動(dòng)窗口時(shí),才能打開(kāi)菜單編輯器
     
    (31)在窗體上畫(huà)一個(gè)通用對(duì)話框,其名稱為CommonDialog1,然后畫(huà)一個(gè)命令按鈕,并編寫(xiě)如下事件過(guò)程:
    Private Sub Command1_Click()
        CommonDialog1.Filter = "All Files (*.*)|*.*|Text Files" & _
                         "(*.txt)|*.txt| Executable Files(*.exe)|*.exe"
        CommonDialog1.FilterIndex = 3
        CommonDialog1.ShowOpen
        MsgBox CommonDialog1.FileName
    End Sub
    程序運(yùn)行后,單擊命令按鈕,將顯示一個(gè)“打開(kāi)”對(duì)話框,此時(shí)在“文件類(lèi)型”框中顯示的是
        A)All Files(*.*)       B)Text Files(*.txt)
        C)Executable Files(*.exe)  D)不確定
     
    (32)以下敘述中錯(cuò)誤的是
         A)一個(gè)工程中可以包含多個(gè)窗體文件
         B)在一個(gè)窗體文件中用Public定義的通用過(guò)程不能被其他窗體調(diào)用
         C)窗體和標(biāo)準(zhǔn)模塊需要分別保存為不同類(lèi)型的磁盤(pán)文件
         D)用Dim定義的窗體層變量只能在該窗體中使用
     
    (33)以下敘述中錯(cuò)誤的是
        A)語(yǔ)句“Dim a, b As Integer”聲明了兩個(gè)整型變量
        B)不能在標(biāo)準(zhǔn)模塊中定義Static型變量
        C)窗體層變量必須先聲明,后使用
        D)在事件過(guò)程或通用過(guò)程內(nèi)定義的變量是局部變量
     
    (34)設(shè)有語(yǔ)句:Open "d:\Test.txt" For Output  As #1 ,以下敘述中錯(cuò)誤的是
       A)若d盤(pán)根目錄下無(wú)Test.txt文件,則該語(yǔ)句創(chuàng)建此文件
       B)用該語(yǔ)句建立的文件的文件號(hào)為1
       C)該語(yǔ)句打開(kāi)d盤(pán)根目錄下一個(gè)已存在的文件Test.txt,之后就可以從文件中讀取信息
       D)執(zhí)行該語(yǔ)句后,就可以通過(guò)Print #語(yǔ)句向文件Test.txt中寫(xiě)入信息
     
    (35)以下敘述中錯(cuò)誤的是
        A)順序文件中的數(shù)據(jù)只能按順序讀寫(xiě)
        B)對(duì)同一個(gè)文件,可以用不同的方式和不同的文件號(hào)打開(kāi)
        C)執(zhí)行Close語(yǔ)句,可將文件緩沖區(qū)中的數(shù)據(jù)寫(xiě)到文件中
        D)隨機(jī)文件中各記錄的長(zhǎng)度是隨機(jī)的
     
     
    二、填空題(每空2分,共30分)
        請(qǐng)將每空的正確答案寫(xiě)在答題卡【1】~【15】序號(hào)的橫線上,答在試卷上不得分。
     
    (1)下列軟件系統(tǒng)結(jié)構(gòu)圖
    的寬度為  【1】  。
     
    (2)  【2】  的任務(wù)是診斷和改正程序中的錯(cuò)誤。
     
    (3)一個(gè)關(guān)系表的行稱為   【3】   。
     
    (4)按“先進(jìn)后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是  【4】    。
     
    (5)數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊(duì)列屬于  【5】   。
     
    (6)描述“X是小于100的非負(fù)整數(shù)”的Visual Basic表達(dá)式是 6  。
     
    (7)在窗體上有一個(gè)名稱為Command1的命令按鈕和一個(gè)名稱為T(mén)ext1的文本框。程序運(yùn)行后,Command1為禁用(灰色),此時(shí)如果在文本框中輸入字符,則命令按鈕Command1變?yōu)榭捎谩U?qǐng)?zhí)羁铡?BR>    Private Sub Form_Load()
        Command1.Enabled = False
    End Sub
    Private Sub Text1_  【7】 ()   
        Command1.Enabled = True
    End Sub
     
    (8)在窗體上畫(huà)一個(gè)名稱為“Command1”的命令按鈕,然后編寫(xiě)如下事件過(guò)程:
    Private Sub Command1_Click()
        Dim a As String
        a = "123456789"
        For i = 1 To 5
            Print Space(6 - i); Mid$(a,  【8】 , 2 * i - 1)
        Next i
    End Sub
        程序運(yùn)行后,單擊命令按鈕,窗體上的輸出結(jié)果是
         5
        456
       34567
      2345678
     123456789
    請(qǐng)?zhí)羁铡?BR>     
    (9)以下程序的功能是:將一維數(shù)組A中的100個(gè)元素分別賦給二維數(shù)組B的每個(gè)元素并打印出來(lái),要求把A(1)到A(10)依次賦給B(1,1)到B(1,10),把A(11)到A(20)依次賦給B(2,1)到B(2,10),……,把A(91)到A(100)依次賦給B(10,1)到B(10,10)。請(qǐng)?zhí)羁铡?BR>    Option Base 1
    Private Sub Form_Click()
        Dim i As Integer, j As Integer
        Dim A(1 To 100) As Integer
        Dim B(1 To 10, 1 To 10) As Integer
        For i = 1 To 100
            A(i) = Int(Rnd * 100)
        Next i
        For i = 1 To   【9】
            For j = 1 To  【10】
                B(i, j) =  【11】
                Print B(i, j);
            Next j
            Print
        Next i
    End Sub
       
     
    (10)在窗體上畫(huà)一個(gè)名稱為Combo1的組合框,然后畫(huà)兩個(gè)名稱分別為L(zhǎng)abel1、Label2,標(biāo)題分別為“城市名稱”和空白的標(biāo)簽。程序運(yùn)行后,在組合框中輸入一個(gè)新項(xiàng)目并按回車(chē)鍵,如果輸入的項(xiàng)目在組合框的列表中不存在,則自動(dòng)將其添加到組合框的列表中,并在Label2中給出提示“已成功添加新輸入項(xiàng)。”,如圖所示。如果輸入的項(xiàng)目已存在,則在Label2中給出提示“輸入項(xiàng)已在組合框中。”。請(qǐng)?zhí)羁铡?BR>    Private Sub Combo1_KeyPress(KeyAscii As Integer)
        If KeyAscii = 13 Then
            For i = 0 To Combo1.ListCount - 1
                If Combo1.Text =  【12】  Then
                    Label2.Caption = "輸入項(xiàng)已在組合框中。"
                    Exit Sub
                End If
            Next i
            Label2.Caption = "已成功添加新輸入項(xiàng)。"
            Combo1. 【13】  Combo1.Text
        End If
    End Sub
     
    (11)在窗體上畫(huà)一個(gè)命令按鈕和一個(gè)文本框,其名稱分別為Command1和Text1,然后編寫(xiě)如下事件過(guò)程:
    Private Sub Command1_Click()
        Dim inData As String
        Text1.Text = ""
        Open "d:\myfile.txt" For  【14】  As #1
        Do While  【15】  
            Input #1, inData
            Text1.Text = Text1.Text + inData
        Loop
        Close  #1
    End Sub
        程序的功能是,打開(kāi)D盤(pán)根目錄下的文本文件myfile.txt,讀取它的全部?jī)?nèi)容并顯示在文本框中。請(qǐng)?zhí)羁铡?BR>