為大家收集整理了《2004年9月全國計(jì)算機(jī)等級(jí)考試二級(jí)VB語言試題及答案》供大家參考,希望對(duì)大家有所幫助?。?!
一、選擇題((1)—(20)每小題2分,(21)—(30)每小題3分,共70分)
下列各題 A) 、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。
(1) 在窗體上畫一個(gè)名稱為Command1的命令按鈕,然后編寫如下事件過程:
Private Sub Command1_Click()
Move 500,500
End Sub
程序運(yùn)行后,單擊命令按鈕,執(zhí)行的操作為
A) 命令按鈕移動(dòng)到距窗體左邊界、上邊界各500的位置
B) 窗體移動(dòng)到距屏幕左邊界、上邊界各500的位置
C) 命令按鈕向左、上方向各移動(dòng)500
D) 窗體向左、上方向各移動(dòng)500
(2) 在窗體上有若干控件,其中有一個(gè)名稱為Text1的文本框。影響Text1的Tab順序的屬性是
A) TabStop B)Enabled
C) Visible D)TabIndex
(3) 以下定義數(shù)組或給數(shù)組元素賦值的語句中,正確的是
(4) 在窗體上畫一個(gè)名稱為L(zhǎng)ist1的列表框,為了對(duì)列表框中的每個(gè)項(xiàng)目都能進(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語句中錯(cuò)誤的是
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)于圖片框控件的說法中,錯(cuò)誤的是
A) 可以通過Print方法在圖片框中輸出文本
B) 清空?qǐng)D片框控件中圖形的方法之一是加載一個(gè)空?qǐng)D形
C) 圖片框控件可以作為容器使用
D) 用Stretch屬性可以自動(dòng)調(diào)整圖片框中圖形的大小
(7) 執(zhí)行語句s=Len(Mid("VisualBasic",1,6))后,s的值是
A) Visual B) Basic C) 6 D) 11
(8) 以下敘述中錯(cuò)誤的是
A) 下拉式菜單和彈出式菜單都用菜單編輯器建立
B) 在多窗體程序中,每個(gè)窗體都可以建立自己的菜單系統(tǒng)
C) 除分隔線外,所有菜單項(xiàng)都能接收Click事件
D) 如果把一個(gè)菜單項(xiàng)的Enabled屬性設(shè)置為False,則該菜單項(xiàng)不可見
(9) 在窗體上畫一個(gè)命令按鈕,其名稱為Command1,然后編寫如下事件過程:
Private Sub Command1_Click()
a = 12345
Print Format$(a, "000.00")
End Sub
程序運(yùn)行后,單擊命令按鈕,窗體上顯示的是
A) 123.45 B) 12345.00 C) 12345 D)00123.45
(10) 以下敘述中錯(cuò)誤的是
A) 一個(gè)工程可以包括多種類型的文件
B) Visual Basic應(yīng)用程序既能以編譯方式執(zhí)行,也能以解釋方式執(zhí)行
C) 程序運(yùn)行后,在內(nèi)存中只能駐留一個(gè)窗體
D) 對(duì)于事件驅(qū)動(dòng)型應(yīng)用程序,每次運(yùn)行時(shí)的執(zhí)行順序可以不一樣
(11) 以下關(guān)于函數(shù)過程的敘述中,正確的是
A) 函數(shù)過程形參的類型與函數(shù)返回值的類型沒有關(guān)系
B) 在函數(shù)過程中,過程的返回值可以有多個(gè)
C) 當(dāng)數(shù)組作為函數(shù)過程的參數(shù)時(shí),既能以傳值方式傳遞,也能以傳址方式傳遞
D) 如果不指明函數(shù)過程參數(shù)的類型,則該參數(shù)沒有數(shù)據(jù)類型
(12) 以下關(guān)于變量作用域的敘述中,正確的是
A) 窗體中凡被聲明為Private的變量只能在某個(gè)指定的過程中使用
B) 全局變量必須在標(biāo)準(zhǔn)模塊中聲明
C) 模塊級(jí)變量只能用Private關(guān)鍵字聲明
D) Static類型變量的作用域是它所在的窗體或模塊文件
(13) 確定一個(gè)控件在窗體上的位置的屬性是
A) Width和Height B) Width或Height
C) Top和Left D) Top或Left
(14) 在窗體上畫一個(gè)名稱為Text1的文本框和一個(gè)名稱為Command1的命令按鈕,然后編寫如下事件過程
Private Sub Command1_Click()
Text1.Text = "Visual"
Me.Text1 = "Basic"
Text1 = "Program"
End Sub
程序運(yùn)行后,如果單擊命令按鈕,則在文本框中顯示的是
A) Visual B) Basic C) Program D) 出錯(cuò)
(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) 在窗體上畫一個(gè)文本框、一個(gè)標(biāo)簽和一個(gè)命令按鈕,其名稱分別為Text1、Label1和Command1,然后編寫如下兩個(gè)事件過程:
Private Sub Command1_Click()
strText = InputBox("請(qǐng)輸入")
Text1.Text = strText
End Sub
Private Sub Text1_Change()
Label1.Caption = Right(Trim(Text1.Text), 3)
End Sub
程序運(yùn)行后,單擊命令按鈕,如果在輸入對(duì)話框中輸入abcdef,則在標(biāo)簽中顯示的內(nèi)容是
A)空 B) abcdef C) abc D) def
(18) 在窗體上畫一個(gè)名稱為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
程序運(yùn)行后,單擊命令按鈕,窗體上顯示的是
A) -5 B) 25 C) 1 D) -1
(19) 一個(gè)工程中含有窗體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) 在窗體上畫一個(gè)名稱為Drive1的驅(qū)動(dòng)器列表框,一個(gè)名稱為Dir1的目錄列表框。當(dāng)改變當(dāng)前驅(qū)動(dòng)器時(shí),目錄列表框應(yīng)該與之同步改變。設(shè)置兩個(gè)控件同步的命令放在一個(gè)事件過程中,這個(gè)事件過程是
A)Drive1_Change B) Drive1_Click
C) Dir1_Click D) Dir1_Change
(21) 在窗體上畫一個(gè)命令按鈕(其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
運(yùn)行上面的程序,單擊命令按鈕,其輸出結(jié)果是
A) 4321 B) 1234 C) 34 D) 12
(22) 在窗體上畫一個(gè)名稱為Text1的文本框,要求文本框只能接收大寫字母的輸入。以下能實(shí)現(xiàn)該操作的事件過程是
A) Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 65 Or KeyAscii > 90 Then
MsgBox "請(qǐng)輸入大寫字母"
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 "請(qǐng)輸入大寫字母"
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 "請(qǐng)輸入大寫字母"
End If
End Sub
D) Private Sub Text1_Change()
If Asc(Text1.Text) > 64 And Asc(Text1.Text) < 91 Then
MsgBox "請(qǐng)輸入大寫字母"
End If
End Sub
(23) 假定在窗體(名稱為Form1)的代碼窗口中定義如下記錄類型:
Private Type animal
AnimalName As String*20
AColor As String*10
End Type
在窗體上畫一個(gè)名稱為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命令中沒有指明記錄號(hào),因此每次都把記錄寫到文件的末尾
D) 語句“Put #1, , rec”將animal類型的兩個(gè)數(shù)據(jù)元素寫到文件中
(24) 在窗體上畫一個(gè)名稱為Text1的文本框,一個(gè)名稱為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
程序運(yùn)行后,在文本框中輸入6,然后單擊命令按鈕,窗體上顯示的是
A) 72 36 B) 108 36 C) 72 6 D) 108 6
(25) 在窗體上畫一個(gè)名稱為Command1的命令按鈕,然后編寫如下事件過程:
Private Sub Command1_Click()
c = 1234
c1 = Trim(Str(c))
For i = 1 To 4
Print
Next
End Sub
程序運(yùn)行后,單擊命令按鈕,要求在窗體上顯示如下內(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) 在窗體上畫一個(gè)名稱為Command1的命令按鈕和一個(gè)名稱為Text1的文本框,然后編寫如下事件過程:
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)的素?cái)?shù) D) 輸出n以內(nèi)能被j整除的數(shù)
(27) 在以下描述中正確的是
A) 標(biāo)準(zhǔn)模塊中的任何過程都可以在整個(gè)工程范圍內(nèi)被調(diào)用
B) 在一個(gè)窗體模塊中可以調(diào)用在其他窗體中被定義為Public的通用過程
C) 如果工程中包含Sub Main過程,則程序?qū)⑹紫葓?zhí)行該過程
D) 如果工程中不包含Sub Main過程,則程序一定首先執(zhí)行第一個(gè)建立的窗體
(28) 在窗體上畫一個(gè)名稱為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
程序運(yùn)行后,單擊命令按鈕,在窗體上顯示的是
A) 11 B) 10 C) 9 D) 8
(29) 在窗體上畫一個(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) 15 B) 14 C) 13 D) 12
(30) 在窗體上畫四個(gè)文本框(如圖所示),并用這四個(gè)文本框建立一個(gè)控件數(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
程序運(yùn)行后,單擊命令按鈕,四個(gè)文本框中顯示的內(nèi)容分別為
A) 0 1 2 3 B) 1 2 3 4
C) 0 1 3 2 D) 出錯(cuò)信息
二、填空題(每空2分,共30分)
請(qǐng)將每空的正確答案寫在答題卡【1】~【15】序號(hào)的橫線上,答在試卷上不得分。
(1) Visual Basic應(yīng)用程序中標(biāo)準(zhǔn)模塊文件的擴(kuò)展名是【1】 。
(2) 在菜單編輯器中建立一個(gè)菜單,其主菜單項(xiàng)的名稱為mnuEdit,Visible屬性為False,程序運(yùn)行后,如果用鼠標(biāo)右鍵單擊窗體,則彈出與mnuEdit相應(yīng)的菜單。以下是實(shí)現(xiàn)上述功能的程序,請(qǐng)?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) 為了使計(jì)時(shí)器控件Timer1每隔0.5秒觸發(fā)一次Timer事件,應(yīng)將Timer1控件的【4】屬性設(shè)置為【5】 。
(4) 與數(shù)學(xué)表達(dá)式 對(duì)應(yīng)的Visual Basic表達(dá)式是【6】 。
(5) 將C盤根目錄下的圖形文件moon.jpg裝入圖片框Picture1的語句是【7】 。
(6) 在窗體上畫一個(gè)名稱為Text1的文本框,然后畫三個(gè)單選按鈕,并用這三個(gè)單選按鈕建立一個(gè)控件數(shù)組,名稱為Option1,程序運(yùn)行后,如果單擊某個(gè)單選按鈕,則文本框中的字體將根據(jù)所選擇的單選按鈕切換,如圖所示,請(qǐng)?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) 在窗體上畫兩個(gè)組合框,其名稱分別為Combo1、Combo2,然后畫兩個(gè)標(biāo)簽,名稱分別為L(zhǎng)abel1、Label2,如圖所示,程序運(yùn)行后,如果在某個(gè)組合框中選擇一個(gè)項(xiàng)目,則把所選中的項(xiàng)目在其下面的標(biāo)簽中顯示出來。請(qǐng)?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)在窗體上畫一個(gè)名稱為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
該事件過程的功能是計(jì)算的值。請(qǐng)?zhí)羁铡?BR> (9)在窗體上畫一個(gè)名稱為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】?。?BR> 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)的值互換。請(qǐng)?zhí)羁铡?BR> 參考答案
一、選擇題((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
一、選擇題((1)—(20)每小題2分,(21)—(30)每小題3分,共70分)
下列各題 A) 、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。
(1) 在窗體上畫一個(gè)名稱為Command1的命令按鈕,然后編寫如下事件過程:
Private Sub Command1_Click()
Move 500,500
End Sub
程序運(yùn)行后,單擊命令按鈕,執(zhí)行的操作為
A) 命令按鈕移動(dòng)到距窗體左邊界、上邊界各500的位置
B) 窗體移動(dòng)到距屏幕左邊界、上邊界各500的位置
C) 命令按鈕向左、上方向各移動(dòng)500
D) 窗體向左、上方向各移動(dòng)500
(2) 在窗體上有若干控件,其中有一個(gè)名稱為Text1的文本框。影響Text1的Tab順序的屬性是
A) TabStop B)Enabled
C) Visible D)TabIndex
(3) 以下定義數(shù)組或給數(shù)組元素賦值的語句中,正確的是
(4) 在窗體上畫一個(gè)名稱為L(zhǎng)ist1的列表框,為了對(duì)列表框中的每個(gè)項(xiàng)目都能進(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語句中錯(cuò)誤的是
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)于圖片框控件的說法中,錯(cuò)誤的是
A) 可以通過Print方法在圖片框中輸出文本
B) 清空?qǐng)D片框控件中圖形的方法之一是加載一個(gè)空?qǐng)D形
C) 圖片框控件可以作為容器使用
D) 用Stretch屬性可以自動(dòng)調(diào)整圖片框中圖形的大小
(7) 執(zhí)行語句s=Len(Mid("VisualBasic",1,6))后,s的值是
A) Visual B) Basic C) 6 D) 11
(8) 以下敘述中錯(cuò)誤的是
A) 下拉式菜單和彈出式菜單都用菜單編輯器建立
B) 在多窗體程序中,每個(gè)窗體都可以建立自己的菜單系統(tǒng)
C) 除分隔線外,所有菜單項(xiàng)都能接收Click事件
D) 如果把一個(gè)菜單項(xiàng)的Enabled屬性設(shè)置為False,則該菜單項(xiàng)不可見
(9) 在窗體上畫一個(gè)命令按鈕,其名稱為Command1,然后編寫如下事件過程:
Private Sub Command1_Click()
a = 12345
Print Format$(a, "000.00")
End Sub
程序運(yùn)行后,單擊命令按鈕,窗體上顯示的是
A) 123.45 B) 12345.00 C) 12345 D)00123.45
(10) 以下敘述中錯(cuò)誤的是
A) 一個(gè)工程可以包括多種類型的文件
B) Visual Basic應(yīng)用程序既能以編譯方式執(zhí)行,也能以解釋方式執(zhí)行
C) 程序運(yùn)行后,在內(nèi)存中只能駐留一個(gè)窗體
D) 對(duì)于事件驅(qū)動(dòng)型應(yīng)用程序,每次運(yùn)行時(shí)的執(zhí)行順序可以不一樣
(11) 以下關(guān)于函數(shù)過程的敘述中,正確的是
A) 函數(shù)過程形參的類型與函數(shù)返回值的類型沒有關(guān)系
B) 在函數(shù)過程中,過程的返回值可以有多個(gè)
C) 當(dāng)數(shù)組作為函數(shù)過程的參數(shù)時(shí),既能以傳值方式傳遞,也能以傳址方式傳遞
D) 如果不指明函數(shù)過程參數(shù)的類型,則該參數(shù)沒有數(shù)據(jù)類型
(12) 以下關(guān)于變量作用域的敘述中,正確的是
A) 窗體中凡被聲明為Private的變量只能在某個(gè)指定的過程中使用
B) 全局變量必須在標(biāo)準(zhǔn)模塊中聲明
C) 模塊級(jí)變量只能用Private關(guān)鍵字聲明
D) Static類型變量的作用域是它所在的窗體或模塊文件
(13) 確定一個(gè)控件在窗體上的位置的屬性是
A) Width和Height B) Width或Height
C) Top和Left D) Top或Left
(14) 在窗體上畫一個(gè)名稱為Text1的文本框和一個(gè)名稱為Command1的命令按鈕,然后編寫如下事件過程
Private Sub Command1_Click()
Text1.Text = "Visual"
Me.Text1 = "Basic"
Text1 = "Program"
End Sub
程序運(yùn)行后,如果單擊命令按鈕,則在文本框中顯示的是
A) Visual B) Basic C) Program D) 出錯(cuò)
(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) 在窗體上畫一個(gè)文本框、一個(gè)標(biāo)簽和一個(gè)命令按鈕,其名稱分別為Text1、Label1和Command1,然后編寫如下兩個(gè)事件過程:
Private Sub Command1_Click()
strText = InputBox("請(qǐng)輸入")
Text1.Text = strText
End Sub
Private Sub Text1_Change()
Label1.Caption = Right(Trim(Text1.Text), 3)
End Sub
程序運(yùn)行后,單擊命令按鈕,如果在輸入對(duì)話框中輸入abcdef,則在標(biāo)簽中顯示的內(nèi)容是
A)空 B) abcdef C) abc D) def
(18) 在窗體上畫一個(gè)名稱為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
程序運(yùn)行后,單擊命令按鈕,窗體上顯示的是
A) -5 B) 25 C) 1 D) -1
(19) 一個(gè)工程中含有窗體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) 在窗體上畫一個(gè)名稱為Drive1的驅(qū)動(dòng)器列表框,一個(gè)名稱為Dir1的目錄列表框。當(dāng)改變當(dāng)前驅(qū)動(dòng)器時(shí),目錄列表框應(yīng)該與之同步改變。設(shè)置兩個(gè)控件同步的命令放在一個(gè)事件過程中,這個(gè)事件過程是
A)Drive1_Change B) Drive1_Click
C) Dir1_Click D) Dir1_Change
(21) 在窗體上畫一個(gè)命令按鈕(其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
運(yùn)行上面的程序,單擊命令按鈕,其輸出結(jié)果是
A) 4321 B) 1234 C) 34 D) 12
(22) 在窗體上畫一個(gè)名稱為Text1的文本框,要求文本框只能接收大寫字母的輸入。以下能實(shí)現(xiàn)該操作的事件過程是
A) Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 65 Or KeyAscii > 90 Then
MsgBox "請(qǐng)輸入大寫字母"
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 "請(qǐng)輸入大寫字母"
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 "請(qǐng)輸入大寫字母"
End If
End Sub
D) Private Sub Text1_Change()
If Asc(Text1.Text) > 64 And Asc(Text1.Text) < 91 Then
MsgBox "請(qǐng)輸入大寫字母"
End If
End Sub
(23) 假定在窗體(名稱為Form1)的代碼窗口中定義如下記錄類型:
Private Type animal
AnimalName As String*20
AColor As String*10
End Type
在窗體上畫一個(gè)名稱為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命令中沒有指明記錄號(hào),因此每次都把記錄寫到文件的末尾
D) 語句“Put #1, , rec”將animal類型的兩個(gè)數(shù)據(jù)元素寫到文件中
(24) 在窗體上畫一個(gè)名稱為Text1的文本框,一個(gè)名稱為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
程序運(yùn)行后,在文本框中輸入6,然后單擊命令按鈕,窗體上顯示的是
A) 72 36 B) 108 36 C) 72 6 D) 108 6
(25) 在窗體上畫一個(gè)名稱為Command1的命令按鈕,然后編寫如下事件過程:
Private Sub Command1_Click()
c = 1234
c1 = Trim(Str(c))
For i = 1 To 4
Next
End Sub
程序運(yùn)行后,單擊命令按鈕,要求在窗體上顯示如下內(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) 在窗體上畫一個(gè)名稱為Command1的命令按鈕和一個(gè)名稱為Text1的文本框,然后編寫如下事件過程:
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)的素?cái)?shù) D) 輸出n以內(nèi)能被j整除的數(shù)
(27) 在以下描述中正確的是
A) 標(biāo)準(zhǔn)模塊中的任何過程都可以在整個(gè)工程范圍內(nèi)被調(diào)用
B) 在一個(gè)窗體模塊中可以調(diào)用在其他窗體中被定義為Public的通用過程
C) 如果工程中包含Sub Main過程,則程序?qū)⑹紫葓?zhí)行該過程
D) 如果工程中不包含Sub Main過程,則程序一定首先執(zhí)行第一個(gè)建立的窗體
(28) 在窗體上畫一個(gè)名稱為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
程序運(yùn)行后,單擊命令按鈕,在窗體上顯示的是
A) 11 B) 10 C) 9 D) 8
(29) 在窗體上畫一個(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) 15 B) 14 C) 13 D) 12
(30) 在窗體上畫四個(gè)文本框(如圖所示),并用這四個(gè)文本框建立一個(gè)控件數(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
程序運(yùn)行后,單擊命令按鈕,四個(gè)文本框中顯示的內(nèi)容分別為
A) 0 1 2 3 B) 1 2 3 4
C) 0 1 3 2 D) 出錯(cuò)信息
二、填空題(每空2分,共30分)
請(qǐng)將每空的正確答案寫在答題卡【1】~【15】序號(hào)的橫線上,答在試卷上不得分。
(1) Visual Basic應(yīng)用程序中標(biāo)準(zhǔn)模塊文件的擴(kuò)展名是【1】 。
(2) 在菜單編輯器中建立一個(gè)菜單,其主菜單項(xiàng)的名稱為mnuEdit,Visible屬性為False,程序運(yùn)行后,如果用鼠標(biāo)右鍵單擊窗體,則彈出與mnuEdit相應(yīng)的菜單。以下是實(shí)現(xiàn)上述功能的程序,請(qǐng)?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) 為了使計(jì)時(shí)器控件Timer1每隔0.5秒觸發(fā)一次Timer事件,應(yīng)將Timer1控件的【4】屬性設(shè)置為【5】 。
(4) 與數(shù)學(xué)表達(dá)式 對(duì)應(yīng)的Visual Basic表達(dá)式是【6】 。
(5) 將C盤根目錄下的圖形文件moon.jpg裝入圖片框Picture1的語句是【7】 。
(6) 在窗體上畫一個(gè)名稱為Text1的文本框,然后畫三個(gè)單選按鈕,并用這三個(gè)單選按鈕建立一個(gè)控件數(shù)組,名稱為Option1,程序運(yùn)行后,如果單擊某個(gè)單選按鈕,則文本框中的字體將根據(jù)所選擇的單選按鈕切換,如圖所示,請(qǐng)?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) 在窗體上畫兩個(gè)組合框,其名稱分別為Combo1、Combo2,然后畫兩個(gè)標(biāo)簽,名稱分別為L(zhǎng)abel1、Label2,如圖所示,程序運(yùn)行后,如果在某個(gè)組合框中選擇一個(gè)項(xiàng)目,則把所選中的項(xiàng)目在其下面的標(biāo)簽中顯示出來。請(qǐng)?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)在窗體上畫一個(gè)名稱為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
該事件過程的功能是計(jì)算的值。請(qǐng)?zhí)羁铡?BR> (9)在窗體上畫一個(gè)名稱為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】?。?BR> 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)的值互換。請(qǐng)?zhí)羁铡?BR> 參考答案
一、選擇題((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