2004年4月全國計算機(jī)等級考試二級Visual Basic筆試試卷含答案

字號:

一、選擇題((1)—(20)每小題2分,(21)—(30)每小題3分,共70分)
    下列各題 A) 、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。
    (1) 在窗體上畫一個名稱為Command1的命令按鈕,然后編寫如下事件過程:
     Private Sub Command1_Click()
     Move 500,500
     End Sub
     程序運行后,單擊命令按鈕,執(zhí)行的操作為
    A) 命令按鈕移動到距窗體左邊界、上邊界各500的位置
    B) 窗體移動到距屏幕左邊界、上邊界各500的位置
    C) 命令按鈕向左、上方向各移動500
    D) 窗體向左、上方向各移動500
    (2) 在窗體上有若干控件,其中有一個名稱為Text1的文本框。影響Text1的Tab順序的屬性是
    A) TabStop B)Enabled
    C) Visible D)TabIndex
    (4) 在窗體上畫一個名稱為List1的列表框,為了對列表框中的每個項目都能進(jìn)行處理,應(yīng)使用的循環(huán)語句為
    A) For i=0 To List1.ListCount-1
    ……
    Next
    B) For i=0 To ListCount-1
    ……
    Next
    C) For i=1 To List1.listCount
    ……
    Next
    D) For i=1 To ListCount
    ……
    Next
    (5) 以下Case語句中錯誤的是
    A) Case 0 To 10 B) Case Is>10
    C) Case Is>10 And Is<50 D) Case 3,5,Is>10
    (6) 以下關(guān)于圖片框控件的說法中,錯誤的是
    A) 可以通過Print方法在圖片框中輸出文本
    B) 清空圖片框控件中圖形的方法之一是加載一個空圖形
    C) 圖片框控件可以作為容器使用
    D) 用Stretch屬性可以自動調(diào)整圖片框中圖形的大小
    (7) 執(zhí)行語句s=Len(Mid("VisualBasic",1,6))后,s的值是
    A) Visual B) Basic C) 6 D) 11
    (8) 以下敘述中錯誤的是
    A) 下拉式菜單和彈出式菜單都用菜單編輯器建立
    B) 在多窗體程序中,每個窗體都可以建立自己的菜單系統(tǒng)
    C) 除分隔線外,所有菜單項都能接收Click事件
    D) 如果把一個菜單項的Enabled屬性設(shè)置為False,則該菜單項不可見
    (9) 在窗體上畫一個命令按鈕,其名稱為Command1,然后編寫如下事件過程:
     Private Sub Command1_Click()
     a = 12345
    Print Format$(a, "000.00")
    End Sub
    程序運行后,單擊命令按鈕,窗體上顯示的是
    A) 123.45 B) 12345.00 C) 12345 D)00123.45
    (10) 以下敘述中錯誤的是
    A) 一個工程可以包括多種類型的文件
    B) Visual Basic應(yīng)用程序既能以編譯方式執(zhí)行,也能以解釋方式執(zhí)行
    C) 程序運行后,在內(nèi)存中只能駐留一個窗體
    D) 對于事件驅(qū)動型應(yīng)用程序,每次運行時的執(zhí)行順序可以不一樣
    (11) 以下關(guān)于函數(shù)過程的敘述中,正確的是
    A) 函數(shù)過程形參的類型與函數(shù)返回值的類型沒有關(guān)系
    B) 在函數(shù)過程中,過程的返回值可以有多個
    C) 當(dāng)數(shù)組作為函數(shù)過程的參數(shù)時,既能以傳值方式傳遞,也能以傳址方式傳遞
    D) 如果不指明函數(shù)過程參數(shù)的類型,則該參數(shù)沒有數(shù)據(jù)類型
    (12) 以下關(guān)于變量作用域的敘述中,正確的是
    A) 窗體中凡被聲明為Private的變量只能在某個指定的過程中使用
    B) 全局變量必須在標(biāo)準(zhǔn)模塊中聲明
    C) 模塊級變量只能用Private關(guān)鍵字聲明
    D) Static類型變量的作用域是它所在的窗體或模塊文件
    (13) 確定一個控件在窗體上的位置的屬性是
    A) Width和Height B) Width或Height
    C) Top和Left D) Top或Left
    (14) 在窗體上畫一個名稱為Text1的文本框和一個名稱為Command1的命令按鈕,然后編寫如下事件過程
     Private Sub Command1_Click()
     Text1.Text = "Visual"
     Me.Text1 = "Basic"
     Text1 = "Program"
    End Sub
    程序運行后,如果單擊命令按鈕,則在文本框中顯示的是
    A) Visual B) Basic C) Program D) 出錯
    (15) 以下關(guān)系表達(dá)式中,其值為False的是
    A) "ABC">"AbC" B) "the"<>"they"
    C) "VISUAL"=UCase("Visual") D) "Integer">"Int"
    (16) 語句Print 5/4*6\5 Mod 2的輸出結(jié)果是
    A) 0 B) 1 C) 2 D) 3
    (17) 在窗體上畫一個文本框、一個標(biāo)簽和一個命令按鈕,其名稱分別為Text1、Label1和Command1,然后編寫如下兩個事件過程:
    Private Sub Command1_Click()
        strText = InputBox("請輸入")
        Text1.Text = strText
    End Sub
    Private Sub Text1_Change()
        Label1.Caption = Right(Trim(Text1.Text), 3)
    End Sub
    東方教育網(wǎng)提供 Http://www.eastedu.com.cn
    程序運行后,單擊命令按鈕,如果在輸入對話框中輸入abcdef,則在標(biāo)簽中顯示的內(nèi)容是
    A)空 B) abcdef C) abc D) def
    (18) 在窗體上畫一個名稱為Command1的命令按鈕,然后編寫如下事件過程:
    Private Sub Command1_Click()
    x = -5
    If Sgn(x) Then
        y = Sgn(x ^ 2)
    Else
       y = Sgn(x)
    End If
    Print y
    End Sub
    程序運行后,單擊命令按鈕,窗體上顯示的是
    A) -5 B) 25 C) 1 D) -1
    (19) 一個工程中含有窗體Form1、Form2和標(biāo)準(zhǔn)模塊Model1,如果在Form1中有語句Pubilc X As Integer,在Model1中有語句Pubilc Y As Integer,則以下敘述中正確的是
    A) 變量X、Y的作用域相同 B) Y的作用域是Model1
    C) 在Form1中可以直接使用X D) 在Form2中可以直接使用X和Y
    (20) 在窗體上畫一個名稱為Drive1的驅(qū)動器列表框,一個名稱為Dir1的目錄列表框。當(dāng)改變當(dāng)前驅(qū)動器時,目錄列表框應(yīng)該與之同步改變。設(shè)置兩個控件同步的命令放在一個事件過程中,這個事件過程是
    A)Drive1_Change B) Drive1_Click
    C) Dir1_Click D) Dir1_Change
    (21) 在窗體上畫一個命令按鈕(其NAME屬性為Command1),然后編寫如下代碼:
    Option Base 1
    Private Sub Command1_Click()
     Dim a
     s = 0
     a = Array(1,2,3,4)
     j = 1
     For i = 4 To 1 Step -1
     s = s + a(i) * j
     j = j * 10
     Next i
     Print s
    End Sub
    運行上面的程序,單擊命令按鈕,其輸出結(jié)果是
    A) 4321 B) 1234 C) 34 D) 12
    (22) 在窗體上畫一個名稱為Text1的文本框,要求文本框只能接收大寫字母的輸入。以下能實現(xiàn)該操作的事件過程是
    A) Private Sub Text1_KeyPress(KeyAscii As Integer)
     If KeyAscii < 65 Or KeyAscii > 90 Then
     MsgBox "請輸入大寫字母"
     KeyAscii = 0
     End If
    End Sub
    B) Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
     If KeyCode < 65 Or KeyCode > 90 Then
     MsgBox "請輸入大寫字母"
     KeyCode = 0
     End If
    End Sub
    C) Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
     If Asc(Text1.Text) < 65 Or Asc(Text1.Text) > 90 Then
     MsgBox "請輸入大寫字母"
     End If
    End Sub
    D) Private Sub Text1_Change()
     If Asc(Text1.Text) > 64 And Asc(Text1.Text) < 91 Then
     MsgBox "請輸入大寫字母"
     End If
    End Sub
    (23) 假定在窗體(名稱為Form1)的代碼窗口中定義如下記錄類型:
    Private Type animal
     AnimalName As String*20
     AColor As String*10
    End Type
    在窗體上畫一個名稱為Command1的命令按鈕,然后編寫如下事件過程:
    Private Sub Command1_Click()
     Dim rec As animal
     Open "c:\vbTest.dat" For Random As #1 Len = Len(rec)
     rec.animalName = "Cat"
     rec.aColor = "White"
     Put #1, , rec
     Close #1
    End Sub
    則以下敘述中正確的是
    A) 記錄類型animal不能在Form1中定義,必須在標(biāo)準(zhǔn)模塊中定義
    B) 如果文件c:\vbTest.dat不存在,則Open命令執(zhí)行失敗
    C) 由于Put命令中沒有指明記錄號,因此每次都把記錄寫到文件的末尾
    D) 語句“Put #1, , rec”將animal類型的兩個數(shù)據(jù)元素寫到文件中
    (24) 在窗體上畫一個名稱為Text1的文本框,一個名稱為Command1的命令按鈕,然后編寫如下事件過程和通用過程:
    Private Sub Command1_Click()
     n = Val(Text1.Text)
     If n\2 = n/2 Then
     f = f1(n)
     Else
     f = f2(n)
     End If
     Print f; n
    End Sub
    Public Function f1(ByRef x)
     x=x*x
     f1=x+x
    End Function
    Public Function f2(ByVal x)
     x=x*x
     f2=x+x+x
    End Function
    程序運行后,在文本框中輸入6,然后單擊命令按鈕,窗體上顯示的是
    A) 72 36 B) 108 36 C) 72 6 D) 108 6
    (25) 在窗體上畫一個名稱為Command1的命令按鈕,然后編寫如下事件過程:
    Private Sub Command1_Click()
     c = 1234
     c1 = Trim(Str(c))
     For i = 1 To 4
     Print 
     Next
    End Sub
    程序運行后,單擊命令按鈕,要求在窗體上顯示如下內(nèi)容
    1
    12
    123
    1234
    則在下劃線處應(yīng)填入的內(nèi)容為
    A) Right(c1,i) B) Left(c1,i) C) Mid(c1,i,1) D) Mid(c1,i,i)
    (26) 在窗體上畫一個名稱為Command1的命令按鈕和一個名稱為Text1的文本框,然后編寫如下事件過程:東方教育網(wǎng)提供 Http://www.eastedu.com.cn
    Private Sub Command1_Click()
     n = Val(Text1.Text)
     For i = 2 To n
     For j = 2 To sqr(i)
     If i Mod j = 0 Then Exit For
     Next j
     If j > Sqr(i) Then Print i
     Next i
    End Sub
    該事件過程的功能是
    A) 輸出n以內(nèi)的奇數(shù) B) 輸出n以內(nèi)的偶數(shù)
    C) 輸出n以內(nèi)的素數(shù) D) 輸出n以內(nèi)能被j整除的數(shù)
    (27) 在以下描述中正確的是
    A) 標(biāo)準(zhǔn)模塊中的任何過程都可以在整個工程范圍內(nèi)被調(diào)用
    B) 在一個窗體模塊中可以調(diào)用在其他窗體中被定義為Public的通用過程
    C) 如果工程中包含Sub Main過程,則程序?qū)⑹紫葓?zhí)行該過程
    D) 如果工程中不包含Sub Main過程,則程序一定首先執(zhí)行第一個建立的窗體
    (28) 在窗體上畫一個名稱為Command1的命令按鈕,然后編寫如下通用過程和命令按鈕的事件過程:
    Private Function f(m As Integer)
     If m Mod 2 = 0 Then
     f = m
     Else
     f = 1
     End If
    End Function
    Private Sub Command1_Click()
     Dim i As Integer
     s = 0
     For i = 1 To 5
     s = s + f(i)
     Next
     Print s
    End Sub
    程序運行后,單擊命令按鈕,在窗體上顯示的是
    A) 11 B) 10 C) 9 D) 8
    (29) 在窗體上畫一個名稱為Text1的文本框和一個名稱為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
    程序運行后,單擊命令按鈕,在文本框中顯示的值是
    A) 15 B) 14 C) 13 D) 12
    (30) 在窗體上畫四個文本框(如圖所示),并用這四個文本框建立一個控件數(shù)組,名稱為Text1(下標(biāo)從0開始,自左至右順序增大),然后編寫如下事件過程:
    Private Sub Command1_Click()
     For Each TextBox In Text1
     Text1(i) = Text1(i).Index
     i = i + 1
     Next
    End Sub
    程序運行后,單擊命令按鈕,四個文本框中顯示的內(nèi)容分別為
    A) 0 1 2 3 B) 1 2 3 4
    C) 0 1 3 2 D) 出錯信息
    二、填空題(每空2分,共30分)
    請將每空的正確答案寫在答題卡【1】~【15】序號的橫線上,答在試卷上不得分。
    (1) Visual Basic應(yīng)用程序中標(biāo)準(zhǔn)模塊文件的擴(kuò)展名是【1】 。
    (2) 在菜單編輯器中建立一個菜單,其主菜單項的名稱為mnuEdit,Visible屬性為False,程序運行后,如果用鼠標(biāo)右鍵單擊窗體,則彈出與mnuEdit相應(yīng)的菜單。以下是實現(xiàn)上述功能的程序,請?zhí)羁铡?BR>    Private Sub Form 【2】 (Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button=2 Then
     【3】 mnuEdit
    End If
    End Sub
    (3) 為了使計時器控件Timer1每隔0.5秒觸發(fā)一次Timer事件,應(yīng)將Timer1控件的【4】屬性設(shè)置為【5】 。
    (4) 與數(shù)學(xué)表達(dá)式 對應(yīng)的Visual Basic表達(dá)式是【6】 。
    (5) 將C盤根目錄下的圖形文件moon.jpg裝入圖片框Picture1的語句是【7】 。
    (6) 在窗體上畫一個名稱為Text1的文本框,然后畫三個單選按鈕,并用這三個單選按鈕建立一個控件數(shù)組,名稱為Option1,程序運行后,如果單擊某個單選按鈕,則文本框中的字體將根據(jù)所選擇的單選按鈕切換,如圖所示,請?zhí)羁铡?BR>    Private Sub Option1_Click(Index As Integer)
     Select Case 【8】
     Case 0
     a = "微軟雅黑"
     Case 1
     a = "黑體"
     Case 2
     a = "楷體_GB2312"
     End Select
     text1. 【9】 =a
    End Sub
     (7) 在窗體上畫兩個組合框,其名稱分別為Combo1、Combo2,然后畫兩個標(biāo)簽,名稱分別為Label1、Label2,如圖所示,程序運行后,如果在某個組合框中選擇一個項目,則把所選中的項目在其下面的標(biāo)簽中顯示出來。請?zhí)羁铡?BR>    Private Sub Combo1_Click()
     Call ShowItem(Combo1, Label1)
    End Sub
    Private Sub Combo2_Click()
     Call ShowItem(Combo2, Label2)
    End Sub
    Public Sub ShowItem(tmpCombo As ComboBox, tmpLabel As Label)
     【10】.Caption =【11】.Text
    End Sub
    (8)在窗體上畫一個名稱為Command1的命令按鈕,然后編寫如下事件過程:
    Private Sub Command1_Click()
     n = 5
     f = 1
     s = 0
     For i = 1 To n
     f = f【12】
     s = s + f
     Next
     Print s
    End Sub
    該事件過程的功能是計算
    的值。請?zhí)羁铡?BR>    (9)在窗體上畫一個名稱為Command1的命令按鈕,然后編寫如下程序:
    Option Base 1
    Private Sub Command1_Click()
     Dim a(10) As Integer
     For i = 1 To 10
     a(i) = i
     Next
     Call swap( 【13】 )
     For i = 1 To 10
     Print a(i);
     Next
    End Sub
    Sub swap(b() As Integer)
     n = 【14】
     For i = 1 To n / 2
     t = b(i)
     b(i) = b(n)
     b(n) = t
     【15】
     Next
    End Sub
    上述程序的功能是,通過調(diào)用過程swap,調(diào)換數(shù)組中數(shù)值的存放位置,即a(1)與a(10)的值互換,a(2)與a(9)的值互換,……,a(5)與a(6)的值互換。
    參考答案
    一、選擇題((1)—(20)每小題2分,(21)—(30)每小題2分,共70分)
    (1) B (2) D (3) A (4) A (5) C
    (6) D (7) C (8) D (9) B (10) C
    (11) A (12) B (13) C (14) D (15) A
    (16) B (17) D (18) C (19) C (20) A
    (21) B (22) A (23) C (24) A (25) B
    (26) C (27) A (28) C (29) D (30) A
    二、填空題(每空2分,共30分)
    (1) 〖1〗 .bas
    (2) 〖2〗 mousedown
     〖3〗 popupmenu
    (3) 〖4〗 interval
     〖5〗 500
    (4) 〖6〗 (cos(a+b))^2/(3*x)+5
    (5) 〖7〗 Picture1.picture=loadpicture(“c:\moon.jpg”)
    (6) 〖8〗 index
     〖9〗 font
    (7) 〖10〗 tmplabel
     〖11〗 tmpCombo
    (8) 〖12〗 *(1/i )
    (9) 〖13〗a()
     〖14〗ubound(b)
     〖15〗 n=n-1