2005年9月計算機等級考試二級VB考前密卷[1]6

字號:

(27)編寫如下程序:
    Private Sub Form_Click()
    a$="54321":b$="abcde"
    For j=l To 5
    Print Mid$(a$,6-j,1)+Mid$(b$,j,1);
    Next j
    Print
    End Sub
    程序運行后,單擊窗體,其輸出結(jié)果為________。
    A)alb2c3d45e  B)a5b4c3d2el  C)eld2c3b4a5  D)la2b3c4d5e
    答案:D
    評析:For循環(huán)共執(zhí)行了5次,每次用Mid$函數(shù)取出a$和b$的子串輸出,a$是倒序,每次取一個字符,b$是順序,每次取一個字符,連接在一起輸出,輸出表達式用分號結(jié)束,表示下一次接著輸出,故輸出結(jié)果為la2b3c4d5e。
    (28)在窗體上畫一個名稱為Labe11的標(biāo)簽,然后編寫如下事件過程:
    Option Base l
    Private Sub Form_Click()
    Dim a(20)As Integer
    For k=l To 20
    a(k)=k^2
    Next k
    Label1.Caption=a(k)
    End Sub
    程序運行后,單擊窗體,在標(biāo)簽中顯示的內(nèi)容是__________。
    A)400   B)20   C)441   D)出錯信息
    答案:D
    評析:一維數(shù)組a的下標(biāo)在1-20之間。而循環(huán)結(jié)束后k值為21,故產(chǎn)生下標(biāo)越界的錯誤。
    (29)在窗體上畫一個名稱為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£n
    End Sub
    Public Function fl(ByRef x)
    X=x*x
    n=x+x
    End FunctiOn
    Public Function f2(ByVa1 x)
    X=X*X
    f2=x+x+x
    End FunctiOn
    程序運行后,單擊命令按鈕,在窗體上顯示的是_______。
    A)72 36   B)108 36   C)72 6   D)108 6
    答案:A
    評析:在本題中,文本框中輸入的是6,也就是n=6,n\2=n/2條件成立,所以執(zhí)行f=fl(n)語句,調(diào)用f1過程,得到x=x*x=6*6=36,fl=36+36=72。由于函數(shù)f1中,參數(shù)是按地址傳遞的,故參數(shù)的值會返回,所以n的值為36。
    (30)在窗體上畫一個名稱為command1的命令按鈕,然后編寫如下程序:
    Option Base l
    Private Sub Command1_Click()
    Dim a(3,3)
    For i=1To 3
    For j=1 To 3
    If i=j Then a(i,j)=l
    If i    If i>j Then a(i,j)=3
    Next j
    Next i
    For i=1 To 3
    For j=1 To 3
    Print a(i,j);
    Next j
    Print
    Next i
    End Sub
    程序運行后,如果單擊命令按鈕,則在窗體上輸出的內(nèi)容為_________。
    A)l 3 3  B)1 2 2   C)2 3 3   D)2 l l
    2 1 3   3 1 2    l 2 3    3 2 l
    2 2 l   3 3 l    1 l 2    3 3 2
    答案:B
    評析:本題程序在過程中定義了一個二維數(shù)組,該數(shù)組可容納9個元素,在循環(huán)中給數(shù)組元素賦值,在每次循環(huán)中有If i=j Then a(i,j)=1,表示主對角線置1;If ij Then a(i,j)=3,表示主對角線一下元素置3。