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

字號(hào):

一、 選擇題(每小題2分,共70分)
    下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的。請(qǐng)將正確選項(xiàng)填涂在答題卡相應(yīng)位置上,答在試卷上不得分。
    (1)下列敘述中正確的是
    A.程序設(shè)計(jì)就是編制程序
    B.程序的測試必須由程序員自己去完成
    C.程序經(jīng)調(diào)試改錯(cuò)后還應(yīng)進(jìn)行再測試
    D.程序經(jīng)調(diào)試改錯(cuò)后不必進(jìn)行再測試
    (2)下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是
    A.順序存儲(chǔ)的有序線性表
    B.線性鏈表
    C.二叉鏈表
    D.有序線性鏈表
    (3)下列關(guān)于棧的描述正確的是
    A.在棧中只能插入元素而不能刪除元素
    B.在棧中只能刪除元素而不能插入元素
    C.棧是特殊的線性表,只能在一端插入或刪除元素
    D.棧是特殊的線性表,只能在一端插入元素,而在另一端刪除元素
    (4)下列敘述中正確的是
    A.一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲(chǔ)結(jié)構(gòu)
    B.?dāng)?shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)屬于非線性結(jié)構(gòu)
    C.一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)不影響數(shù)據(jù)處理的效率
    D.一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)影響數(shù)據(jù)處理的效率
    (5)下列描述中正確的是
    A.軟件工程只是解決軟件項(xiàng)目的管理問題
    B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題
    C.軟件工程的主要思想是強(qiáng)調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則
    D.軟件工程只是解決軟件開發(fā)中的技術(shù)問題
    (6)在軟件設(shè)計(jì)中,不屬于過程設(shè)計(jì)工具的是
    A.PDL(過程設(shè)計(jì)語言)
    B.PAD圖
    C.N-S圖
    D.DFD圖
    (7)下列敘述中正確的是
    A.軟件交付使用后還需要進(jìn)行維護(hù)
    B.軟件一旦交付使用就不需要再進(jìn)行維護(hù)
    C.軟件交付使用后其生命周期就結(jié)束
    D.軟件維護(hù)是指修復(fù)程序中被破壞的指令
    (8)數(shù)據(jù)庫設(shè)計(jì)的根本目標(biāo)是要解決
    A.?dāng)?shù)據(jù)共享問題
    B.?dāng)?shù)據(jù)安全問題
    C.大量數(shù)據(jù)存儲(chǔ)問題
    D.簡化數(shù)據(jù)維護(hù)
    (9)設(shè)有如下關(guān)系表:
    R S T
    A B C A B C A B C
    1 1 2 3 1 3 1 1 2
    2 2 3 2 2 3
    3 1 3
    則下列操作中正確的是
    A.T=R∩S
    B.T=R∪S
    C.T=R×S
    D.T=R/S
    (10)數(shù)據(jù)庫系統(tǒng)的核心是
    A.?dāng)?shù)據(jù)模型
    B.?dāng)?shù)據(jù)庫管理系統(tǒng)
    C.?dāng)?shù)據(jù)庫
    D.?dāng)?shù)據(jù)庫管理員
    (11)假定一個(gè)Visual Basic應(yīng)用程序由一個(gè)窗體模塊和一個(gè)標(biāo)準(zhǔn)模塊構(gòu)成。為了保存該應(yīng)用程序,以下正確的操作是
    A.只保存窗體模塊文件
    B.分別保存窗體模塊、標(biāo)準(zhǔn)模塊和工程文件
    C.只保存窗體模塊和標(biāo)準(zhǔn)模塊文件
    D.只保存工程文件
    (12)為了清除窗體上的一個(gè)控件,下列正確的操作是
    A.按回車鍵
    B.按Esc鍵
    C.選擇(單擊)要清除的控件,然后按Del鍵
    D.選擇(單擊)要清除的控件,然后按回車鍵
    (13)以下敘述中錯(cuò)誤的是
    A.打開一個(gè)工程文件時(shí),系統(tǒng)自動(dòng)裝入與該工程有關(guān)的窗體、標(biāo)準(zhǔn)模塊等文件
    B.當(dāng)程序運(yùn)行時(shí),雙擊一個(gè)窗體,則觸發(fā)該窗體的DblClick事件
    C.Visual Basic應(yīng)用程序只能以解釋方式執(zhí)行
    D.事件可以由用戶引發(fā),也可以由系統(tǒng)引發(fā)
    (14)設(shè)a=2, b=3, c=4, d=5, 下列表達(dá)式的值是
    Not a<=c Or 4*c=b^2 And b<>a+c
    A.-1
    B.1
    C.True
    D.False
    (15)設(shè)a = 5,b = 10,則執(zhí)行
    c = Int((b - a) * Rnd + a) + 1
    后,c值的范圍為
    A.5~10
    B.6~9
    C.6~10
    D.5~9
    (16)在窗體上畫一個(gè)命令按鈕,名稱為Command1,然后編寫如下事件過程:
    Private Sub Command1_Click()
    a$ = "software and hardware"
    b$ = Right(a$, 8)
    c$ = Mid(a$, 1, 8)
    MsgBox a$, , b$, c$, 1
    End Sub
    運(yùn)行程序,單擊命令按鈕,則在彈出的信息框的標(biāo)題欄中顯示的是
    A.software and hardware
    B.software
    C.hardware
    D.1
    (17)在窗體上畫一個(gè)命令按鈕和一個(gè)文本框,其名稱分別為Command1和Text1,把文本框的Text屬性設(shè)置為空白,然后編寫如下事件過程:
    Private Sub Command1_Click()
    a = InputBox("Enter an integer")
    b = InputBox("Enter an integer")
    Text1.Text = b + a
    End Sub
    程序運(yùn)行后,單擊命令按鈕,如果在輸入對(duì)話框中分別輸入8和10,則文本框中顯示的內(nèi)容是
    A.108
    B.18
    C.810
    D.出錯(cuò)
    (18)在窗體上畫兩個(gè)文本框,其名稱分別為Text1和Text2,然后編寫如下程序:
    Private Sub Form_Load()
    Show
    Text1.Text = ""
    Text2.Text = ""
    Text1.SetFocus
    End Sub
    Private Sub Text1_Change()
    Text2.Text = Mid(Text1.Text, 8)
    End Sub
    程序運(yùn)行后,如果在文本框Text1中輸入BeijingChina,則在文本框Text2中顯示的內(nèi)容是
    A.BeijingChina
    B.China
    C.Beijing
    D.BeijingC
    (19)在窗體上畫一個(gè)列表框和一個(gè)命令按鈕,其名稱分別為List1和Command1,然后編寫如下事件過程:
    Private Sub Form_Load()
    List1.AddItem "Item 1"
    List1.AddItem "Item 2"
    List1.AddItem "Item 3"
    End Sub
    Private Sub Command1_Click()
    List1.List(List1.ListCount) = "AAAA"
    End Sub
    程序運(yùn)行后,單擊命令按鈕,其結(jié)果為
    A.把字符串“AAAA”添加到列表框中,但位置不能確定
    B.把字符串“AAAA”添加到列表框的最后(即“Item 3”的后面)
    C.把列表框中原有的最后一項(xiàng)改為“AAAA”
    D.把字符串“AAAA”插入到列表框的最前面(即“Item 1”的前面)
    (20)假定有如下事件過程:
    Private Sub Form_Click()
    Dim x As Integer, n As Integer
    x = 1
    n = 0
    Do While x < 28
    x = x * 3
    n = n + 1
    Loop
    Print x, n
    End Sub
    程序運(yùn)行后,單擊窗體,輸出結(jié)果是
    A.81 4
    B.56 3
    C.28 1
    D.243 5 (21)有如下程序:
    Private Sub Form_Click()
    Dim Check, Counter
    Check = True
    Counter = 0
    Do
    Do While Counter < 20
    Counter = Counter + 1
    If Counter = 10 Then
    Check = False
    Exit Do
    End If
    Loop
    Loop Until Check = False
    Print Counter, Check
    End Sub
    程序運(yùn)行后,單擊窗體,輸出結(jié)果為
    A.15 0
    B.20 -1
    C.10 True
    D.10 False
    (22)有如下程序:
    Private Sub Form_Click()
    Dim i As Integer, sum As Integer
    sum = 0
    For i = 2 To 10
    If i Mod 2 <> 0 And i Mod 3 = 0 Then
    sum = sum + i
    End If
    Next i
    Print sum
    End Sub
    程序運(yùn)行后,單擊窗體,輸出結(jié)果為
    A.12
    B.30
    C.24
    D.18
    (23)在窗體上畫一個(gè)名稱為Text1的文本框和一個(gè)名稱為Command1的命令按鈕,然后編寫如下事件過程:
    Private Sub Command1_Click()
    Dim array1(10, 10) As Integer
    Dim i As Integer, j As Integer
    For i = 1 To 3
    For j = 2 To 4
    array1(i, j) = i + j
    Next j
    Next i
    Text1.Text = array1(2, 3) + array1(3, 4)
    End Sub
    程序運(yùn)行后,單擊命令按鈕,在文本框中顯示的值是
    A.12
    B.13
    C.14
    D.15
    (24)在窗體上畫一個(gè)命令按鈕,其名稱為Command1,然后編寫如下事件過程:
    Private Sub Command1_Click()
    Dim a1(4, 4), a2(4, 4)
    For i = 1 To 4
    For j = 1 To 4
    a1(i, j) = i + j
    a2(i, j) = a1(i, j) + i + j
    Next j
    Next i
    Print a1(3, 3); a2(3, 3)
    End Sub
    程序運(yùn)行后,單擊命令按鈕,在窗體上輸出的是
    A.6 6
    B.10 5
    C.7 21
    D.6 12
    (25)有如下程序:
    Option Base 1
    Private Sub Form_Click()
    Dim arr, Sum
    Sum = 0
    arr = Array(1, 3, 5, 7, 9, 11, 13, 15, 17, 19)
    For i = 1 To 10
    If arr(i) / 3 = arr(i) \ 3 Then
    Sum = Sum + arr(i)
    End If
    Next i
    Print Sum
    End Sub
    程序運(yùn)行后,單擊窗體,輸出結(jié)果為
    A.25
    B.26
    C.27
    D.28
    (26)在窗體上畫一個(gè)命令按鈕,然后編寫如下事件過程:
    Private Sub Command1_Click()
    Dim a(5) As String
    For i = 1 To 5
    a(i) = Chr(Asc("A") + (i - 1))
    Next i
    For Each b In a
    Print b;
    Next
    End Sub
    程序運(yùn)行后,單擊命令按鈕,輸出結(jié)果是
    A.ABCDE
    B.1 2 3 4 5
    C.a(chǎn)bcde
    D.出錯(cuò)信息
    (27)以下關(guān)于函數(shù)過程的敘述中,正確的是
    A.如果不指明函數(shù)過程參數(shù)的類型,則該參數(shù)沒有數(shù)據(jù)類型
    B.函數(shù)過程的返回值可以有多個(gè)
    C.當(dāng)數(shù)組作為函數(shù)過程的參數(shù)時(shí),既能以傳值方式傳遞,也能以引用方式傳遞
    D.函數(shù)過程形參的類型與函數(shù)返回值的類型沒有關(guān)系
    (28)函數(shù)過程F1的功能是:如果參數(shù)b為奇數(shù),則返回值為1,否則返回值為0。以下能正確實(shí)現(xiàn)上述功能的代碼是
    A.Function F1(b As Integer)
    If b Mod 2 = 0 Then
    Return 0
    Else
    Return 1
    End If
    End Function
    B.Function F1(b As Integer)
    If b Mod 2 = 0 Then
    F1 = 0
    Else
    F1 = 1
    End If
    End Function
    C.Function F1(b As Integer)
    If b Mod 2 = 0 Then
    F1 = 1
    Else
    F1 = 0
    End If
    End Function
    D.Function F1(b As Integer)
    If b Mod 2 <> 0 Then
    Return 0
    Else
    Return 1
    End If
    End Function
    (29)以下關(guān)于KeyPress事件過程中參數(shù)KeyAscii的敘述中正確的是
    A.KeyAscii參數(shù)是所按鍵的ASCII碼
    B.KeyAscii參數(shù)的數(shù)據(jù)類型為字符串
    C.KeyAscii參數(shù)可以省略
    D.KeyAscii參數(shù)是所按鍵上標(biāo)注的字符
    (30)設(shè)窗體上有一個(gè)名為Text1的文本框,并編寫如下程序:
    Private Sub Form_Load()
    Show
    Text1.Text = ""
    Text1.SetFocus
    End Sub
    Private Sub Form_MouseUp(Button As Integer, _
    Shift As Integer, X As Single, Y As Single)
    Print "程序設(shè)計(jì)"
    End Sub
    Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
    Print "Visual Basic";
    End Sub
    程序運(yùn)行后,如果在文本框中輸入字母“a”,然后單擊窗體,則在窗體上顯示的內(nèi)容是
    A.Visual Basic
    B.程序設(shè)計(jì)
    C.Visual Basic程序設(shè)計(jì)
    D.a(chǎn)程序設(shè)計(jì) (31)假定有下表所列的菜單結(jié)構(gòu):
    ━━━━━━━━━━━━━━━━━━━━
    標(biāo)題 名稱 層次
    ────────────────────
    顯示 appear 1(主菜單)
    大圖標(biāo) bigicon 2(子菜單)
    小圖標(biāo) smallicon 2(子菜單)
    ━━━━━━━━━━━━━━━━━━━━
    要求程序運(yùn)行后,如果單擊菜單項(xiàng)“大圖標(biāo)”,則在該菜單項(xiàng)前添加一個(gè)“Ö”。以下正確的事件過程是
    A.Private Sub bigicon_Click()
    bigicon.Checked = False
    End Sub
    B.Private Sub bigicon_Click()
    Me. appear.bigicon.Checked = True
    End Sub
    C.Private Sub bigicon_Click()
    bigicon.Checked = True
    End Sub
    D.Private Sub bigicon_Click()
    appear.bigicon.Checked = True
    End Sub
    (32)假定通用對(duì)話框的名稱為CommonDialog1,命令按鈕的名稱為Command1,則單擊命令按鈕后,能使打開的對(duì)話框的標(biāo)題為“New Title”的事件過程是
    A.Private Sub Command1_Click()
    CommonDialog1.DialogTitle = "New Title"
    CommonDialog1.ShowPrinter
    End Sub
    B.Private Sub Command1_Click()
    CommonDialog1.DialogTitle = "New Title"
    CommonDialog1.ShowFont
    End Sub
    C.Private Sub Command1_Click()
    CommonDialog1.DialogTitle = "New Title"
    CommonDialog1.ShowOpen
    End Sub
    D.Private Sub Command1_Click()
    CommonDialog1.DialogTitle = "New Title"
    CommonDialog1.ShowColor
    End Sub
    (33)如果一個(gè)工程含有多個(gè)窗體及標(biāo)準(zhǔn)模塊,則以下敘述中錯(cuò)誤的是
    A.任何時(shí)刻最多只有一個(gè)窗體是活動(dòng)窗體
    B.不能把標(biāo)準(zhǔn)模塊設(shè)置為啟動(dòng)模塊
    C.用Hide方法只是隱藏一個(gè)窗體,不能從內(nèi)存中清除該窗體
    D.如果工程中含有Sub Main過程,則程序一定首先執(zhí)行該過程
    (34)假定在工程文件中有一個(gè)標(biāo)準(zhǔn)模塊,其中定義了如下記錄類型
    Type Books
    Name As String * 10
    TelNum As String * 20
    End Type
    要求當(dāng)執(zhí)行事件過程Command1_Click時(shí),在順序文件Person.txt中寫入一條記錄。下列能夠完成該操作的事件過程是
    A.Private Sub Command1_Click()
    Dim B As Books
    Open "c:\Person.txt" For Output As #1
    B.Name = InputBox("輸入姓名")
    B.TelNum = InputBox("輸入電話號(hào)碼")
    Write #1, B.Name, B.TelNum
    Close #1
    End Sub
    B.Private Sub Command1_Click()
    Dim B As Books
    Open "c:\Person.txt" For Input As #1
    B.Name = InputBox("輸入姓名")
    B.TelNum = InputBox("輸入電話號(hào)碼")
    Print #1, B.Name, B.TelNum
    Close #1
    End Sub
    C.Private Sub Command1_Click()
    Dim B As Books
    Open "c:\Person.txt" For Output As #1
    Name = InputBox("輸入姓名")
    TelNum = InputBox("輸入電話號(hào)碼")
    Write #1, B
    Close #1
    End Sub
    D.Private Sub Command1_Click()
    Dim B As Book
    Open "c:\Person.txt" For Input As #1
    Name = InputBox("輸入姓名")
    TelNum = InputBox("輸入電話號(hào)碼")
    Print #1, B.Name, B.TelNum
    Close #1
    End Sub
    (35)目錄列表框的Path屬性的作用是
    A.顯示當(dāng)前驅(qū)動(dòng)器或指定驅(qū)動(dòng)器上的某目錄下的文件名
    B.顯示當(dāng)前驅(qū)動(dòng)器或指定驅(qū)動(dòng)器上的目錄結(jié)構(gòu)
    C.顯示根目錄下的文件名
    D.顯示指定路徑下的文件 二、填空題(每空2分,共30分)
     請(qǐng)將每空的正確答案寫在答題卡【1】~【15】序號(hào)的橫線上,答在試卷上不得分。
    (1)數(shù)據(jù)管理技術(shù)發(fā)展過程經(jīng)過人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)三個(gè)階段,其中數(shù)據(jù)獨(dú)立性的階段是 【1】 。
    (2)算法復(fù)雜度主要包括時(shí)間復(fù)雜度和 【2】 復(fù)雜度。
    (3)在進(jìn)行模塊測試時(shí),要為每個(gè)被測試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊(樁模塊)。其中 【3】 的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。
    (4)一棵二叉樹第六層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)數(shù)最多為 【4】 個(gè)。
    (5)數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),循環(huán)隊(duì)列屬于 【5】 結(jié)構(gòu)。
    (6)設(shè)有以下函數(shù)過程:
    Function fun(m As Integer) As Integer
     Dim k As Integer, sum As Integer
     sum = 0
     For k = m To 1 Step -2
     sum = sum + k
     Next k
     fun = sum
    End Function
    若在程序中用語句 s = fun(10) 調(diào)用此函數(shù),則s的值為 【6】 。
    (7)在窗體上畫一個(gè)命令按鈕和一個(gè)文本框,然后編寫命令按鈕的Click事件過程。程序運(yùn)行后,在文本框中輸入一串英文字母(不區(qū)分大小寫),單擊命令按鈕,程序可找出未在文本框中輸入的其他所有英文字母,并以大寫方式降序顯示到Text1中。例如,若在Text1中輸入的是abDfdb,則單擊Command1按鈕后Text1中顯示的字符串是ZYXWVUTSRQPONMLKJIHGEC。請(qǐng)?zhí)羁铡?BR>    Private Sub Command1_Click( )
     Dim str As String, s As String, c As String
     str = UCase(Text1)
     s = ""
     c = "Z"
     While c >= "A"
     If InStr(str, c) = 0 Then
     s = 【7】
     End If
     c = Chr$(Asc(c) 【8】 )
     Wend
     If s <> "" Then
     Text1 = s
     End If
    End Sub ?。?) 在n個(gè)運(yùn)動(dòng)員中選出任意r個(gè)人參加比賽,有很多種不同的選法,選法的個(gè)數(shù)可以用公式 計(jì)算。下圖窗體中3個(gè)文本框的名稱依次是Text1、Text2、Text3。程序運(yùn)行時(shí)在Text1、Text2中分別輸入n和r的值,單擊Command1按鈕即可求出選法的個(gè)數(shù),并顯示在Text3文本框中(見下圖)。請(qǐng)?zhí)羁铡?BR>    Private Sub Command1_Click( )
     Dim r As Integer, n As Integer
     n = Text1
     r = Text2
     Text3 = fun(n) / fun(【9】 ) / fun(r)
    End Sub
    Function fun(n As Integer) as long
     Dim t As Long
     【10】
     For k = 1 To n
     t = t * k
     Next
     fun = t
    End Function
    (9)以下是一個(gè)比賽評(píng)分程序。在窗體上建立一個(gè)名為Text1的文本框數(shù)組,然后畫一個(gè)名為Text2的文本框和名為Command1的命令按鈕。運(yùn)行時(shí)在文本框數(shù)組中輸入7個(gè)分?jǐn)?shù),單擊“計(jì)算得分”命令按鈕,則最后得分顯示在Text2文本框中(去掉一個(gè)分和一個(gè)最低分后的平均分即為最后得分),如圖所示。請(qǐng)?zhí)羁铡?BR>    Private Sub Command1_Click( )
     Dim k As Integer
     Dim sum As Single, max As Single, min As Single
     sum = Text1(0)
     max = Text1(0)
     min = 【11】
     For k = 【12】 To 6
     If max < Text1(k) Then
     max = Text1(k)
     End If
     If min > Text1(k) Then
     min = Text1(k)
     End If
     sum = sum + Text1(k)
     Next k
     Text2 = (【13】 ) / 5
    (10)如圖所示,在列表框List1中已經(jīng)有若干人的簡單信息,運(yùn)行時(shí)在Text1文本框(即“查找對(duì)象”右邊的文本框)輸入一個(gè)姓或姓名,單擊“查找”按鈕,則在列表框中進(jìn)行查找,若找到,則把該人的信息顯示在Text2文本框中。若有多個(gè)匹配的列表項(xiàng),則只顯示第1個(gè)匹配項(xiàng);若未找到,則在Text2中顯示“查無此人”。請(qǐng)?zhí)羁铡?BR>    Private Sub Command1_Click()
     Dim k As Integer, n As Integer, found As Boolean
     found = False
     n = Len(【14】 )
     k = 0
     While k < List1.ListCount And Not found
     If Text1 = Left$(List1.List(k), n) Then
     Text2 = 【15】
     found = True
     End If
     k = k + 1
     Wend
     If Not found Then
     Text2 = "查無此人"
     End If
    End Sub2005年9月全國計(jì)算機(jī)等級(jí)考試二級(jí)VB筆試試卷(含參考答案)
    選擇題
    【 1- 5】 CACDC 【 6-10】 DAABB
    【11-15】 BCCDC 【16-20】 CABBA
    【21-25】 DAADC 【26-30】 ADBAC
    【31-35】 CCDAB
     填空題
    【1】數(shù)據(jù)庫系統(tǒng) 【2】空間 【3】驅(qū)動(dòng)模塊
    【4】32 【5】存儲(chǔ)結(jié)構(gòu) 【6】30
    【7】s&c 【8】-1 【9】n-r
    【10】t=1 【11】text1(0) 【12】1
    【13】(sum-max-min) 【14】text1.text 【15】list1.list(k)