全國計算機等級考試二級筆試樣卷Visual Basic語言程序設計

字號:

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

      
    

    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)一個算法的空間復雜度大,則其時間復雜度也必定大
        B)一個算法的空間復雜度大,則其時間復雜度必定小
        C)一個算法的時間復雜度大,則其空間復雜度必定小
    D)上述三種說法都不對
     
    (8)在長度為64的有序線性表中進行順序查找,最壞情況下需要比較的次數(shù)為
    A)63   B)64   C)6    D)7
     
    (9)數(shù)據(jù)庫技術的根本目標是要解決數(shù)據(jù)的
    A)存儲問題 B)共享問題 C)安全問題        D)保護問題
     
    (10)對下列二叉樹
    

F
    

C
    

D
    

E
    

A
    

G
    

B
    

 
     進行中序遍歷的結果是
    A)ACBDFEG  B)ACBDFGE  C)ABDCGEF  D)FCADBEG
     
    (11)以下敘述中正確的是
    A)窗體的Name 屬性指定窗體的名稱,用來標識一個窗體
    B)窗體的Name 屬性值是顯示在窗體標題欄中的文本
    C)可以在運行期間改變窗體的Name 屬性的值
    D)窗體的Name 屬性值可以為空
     
    (12)以下敘述中錯誤的是
        A)打開一個工程文件時,系統(tǒng)自動裝入與該工程有關的窗體文件
        B)保存Visual Basic程序時,應分別保存窗體文件及工程文件
        C)Visual Basic應用程序只能以解釋方式執(zhí)行
        D)窗體文件包含該窗體及其控件的屬性
     
    (13)設a = 2, b = 3, c = 4, 下列表達式的值是
           Not a <= c Or 4*c = b^2 And b <> a + c
        A)-1   B)1    C)True D)False
    (14)設有如下的用戶定義類型:
         Type Student
        number As String
        name As String
        age As Integer
    End Type
    則以下正確引用該類型成員的代碼是
        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)設a = 5,b = 6,c = 7,d = 8,執(zhí)行下列語句后,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)在窗體上畫一個文本框(其名稱為Text1)和一個標簽(其名稱為Label1),程序運行后,如果在文本框中輸入指定的信息,則立即在標簽中顯示相同的內(nèi)容。以下可以實現(xiàn)上述操作的事件過程是
         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)在窗體上畫一個命令按鈕和一個標簽,其名稱分別為Command1和Label1,然后編寫如下事件過程:
    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
    程序運行后,單擊命令按鈕,標簽中顯示的內(nèi)容是
        A) 11  B)12   C) 16  D)20
     
    (19)在窗體上畫一個名稱為Text1的文本框和一個名稱為Command1的命令按鈕,然后編寫如下事件過程:
    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
    程序運行后,單擊命令按鈕,在文本框中顯示的值是
        A)5    B)4    C)3    D)2
     
    (20)在窗體上畫一個命令按鈕和兩個標簽,其名稱分別為Command1、Label1和Label2,然后編寫如下事件過程:
    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
        程序運行后,單擊命令按鈕,在標簽Label1和Label2中顯示的內(nèi)容分別是
        A)10和20  B)20和110 C)200和110    D)110和20
     
    (21)在窗體上畫一個名稱為List1的列表框,一個名稱為Label1的標簽,列表框中顯示若干城市的名稱。當單擊列表框中的某個城市名時,該城市名從列表框中消失,并在標簽中顯示出來。下列能正確實現(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)在窗體上畫一個名稱為Command1的命令按鈕,然后編寫如下程序:
    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
    程序運行后,單擊命令按鈕,窗體上顯示的是
     
    

                     
    

    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)在窗體上畫一個命令按鈕,名稱為Command1,然后編寫如下代碼:
    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("請輸入一個整數(shù)")
            B(3 - k) = A(k + 1)
        Next k
        Print B(k)
    End Sub
       程序運行后,單擊命令按鈕,在輸入對話框中分別輸入2、4、6,輸出結果為
        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
        程序運行后,單擊窗體,輸出結果為
        A)8  13    B)0  13    C)7  12    D)0  0
    (25)以下敘述中正確的是
    A)一個Sub過程至少要有一個Exit Sub語句
    B)一個Sub過程必須有一個End Sub語句
    C)可以在Sub過程中定義一個Function過程,但不能定義Sub過程
    D)調(diào)用一個Function過程可以獲得多個返回值
     
    (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
        運行上面的程序,單擊命令按鈕,輸出結果為      
    

    A)
    

    2
    

    B)
    

    5
    

    C)
    

    10
    

    D)
    

    出錯
    

     
    

    4
    

     
    

    6
    

     
    

    12
    

     
    

     
    

     
    

    6
    

     
    

    7
    

     
    

    14
    

     
    

     
    

     
    

    8
    

     
    

    8
    

     
    

    16
    

     
    

     
    

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