壹、單項選擇題(***10分)
1.在代碼中引用壹個控件時,應使用控件的( )屬性。
A.Caption B.Name C.Text D.Index
2.設變量x = 4,y = -1,a = 7,b = -8,下面表達式( )的值為“假”。
A.x+a <= b-y B. x > 0 AND y < 0
C.a = b OR x>y D. x+y > a+b AND NOT (y < b)
3.表達式Int(Rnd*71)+10產生的隨機整數範圍是( )。
A.(10,80) B.(10,81) C.[10,80] D.[10,81]
4.函數Sgn(3.1416)的返回值是( )。
A.-1 B.0 C.1 D.以上都不對
5.67890屬於( )類型數據。
A.整型 B.單精度浮點數 C.貨幣型 D.長整型
6.下列變量名中正確的是( )。
A.3S B.Print C.Select My Name D.Select_1
7.下列賦值語句( )是有效的。
A.sum = sum -sum B.x+2 = x + 2 C.x + y = sum D.last = y / 0
8.以下的控件或方法具有輸入和輸出雙重功能的為( )。
A.Print B.Textbox C.Optionbutton D.Checkbox
9.若要獲得列表框中被選中的列表項的內容,可以通過訪問( )屬性來實現。
A.Name B.ListIndex C.ListCount D.Text
10.下列代碼的運行結果為( )。
Private Sub command1_click()
Dim m(10)
For k = 1 To 10
m(k) = 11 - k
Next k
x = 5
Print m(2 + m(x))
End Sub
A.2 B.3 C.4 D.5
二、填空題(10分)
1.寫出整數n能同時被13和17整除的Basic表達式 。
2.代碼窗口中有兩個下拉列表框:左側是 列表框,右側是過程列表框。
3.寫出在字符串 ”Visual Basic 6.0” 中截取 ”Visual” 的Basic表達式 。
4.函數Len(“abcdef”)的返回值是 。
5.設a = 2,b = 5,c = -2,d = 100,則a > b >= c AND a < b >= d的值為 。
6.要使標簽的大小自動與所顯示的文本相適應,可以通過設置 屬性為True來實現。
7.若要在壹行書寫多條語句,則各語句間應加分隔符,Visual Basic的語句分隔符為 。
8.要強制顯式聲明變量,使用__________語句完成。
9.在VB中,用戶定義常量使用 語句,聲明變量使用 語句。
三、將下列數學表達式轉換為VB表達式。(6分)
1.a2+2ab+b2 __________________________
2. __________________________
3.8exln10 __________________________
4.2sin(450)cos(450) _______________________________
5. ___________________________________________
6. ___________________________________________
四、判斷題,正確打“√”,錯誤打“×”(10分)
1.在VB中,控件的事件只能通過用戶的操作觸發。( )
2.字符型數據以雙引號作為定界符,輸出時雙引號本身不會顯示在屏幕上。( )
3.保存工程時,窗體文件和工程文件的文件名不能相同。( )
4.改變控件的大小,可以使用鼠標和鍵盤,還可以通過修改代碼。( )
5.同壹過程中,數組和簡單變量可以同名。( )
6.VB函數中的參數可以是常量、變量、表達式,還可以是另壹個函數。( )
7.代碼Const Number1=15:Number1=10合法。( )
8.允許將塊If-Then語句結構中的所有語句都寫在壹行上( )
9.定義數組語句Dim a(b) As Integer 是正確的( )
10.在過程調用中,“實參表”和“形參表”中對應的變量名不必相同,但是變量的個數必須相等,而且實際參數的類型必須與相應形式參數的類型相符。( )
五、根據題意,將下列程序補充完整。(16分)
1. 產生20個[10,100] 之間的隨機整數,每行輸出10個數據。
Private Sub command1_click()
Dim a(1 To 20) As Integer
Randomize
i = 0
Do While i < 20
i = i + 1
a(i) = ( )
If ( )Then
Print a(i);
End If
If i = 10 Then Print a(i)
If i > 10 Then Print a(i);
Loop
End Sub
2.打印九九乘法表
Private Sub command1_click()
For i = 1 To 9
For j = 1 To 9
Print ( )
Next j
( )
End Sub
3.判斷壹個數是否素數
Private Sub command1_click()
x = InputBox("請輸入壹個整數")
flag = 1
For i = 2 To ( )
If x Mod i = 0 Then
flag = 0
End If
Next i
If ( )Then Print x; "是素數" Else Print x; "不是素數"
End Sub
4.利用數組輸出Fibonacci數列的前15項。
該數列的第1項和第2項為1,其余各項均為其前兩項之和。
Private Sub Command1_Click()
( )
f(1) = 1 : f(2) = 1
List1.AddItem f(1) : List1.AddItem f(2)
For i = 3 To 15
f(i) = ( )
List1.AddItem f(i)
Next i
End Sub
六、寫出下面程序的輸出結果。(每題3分,***18分)
1. Private Sub command1_click()
x = InputBox("enter x") ' x 的輸入值為-8
Select Case Sgn(x) + 2
Case 1
Print "y="; x ^ 2 + 1
Case 2
Print "y="; x - 4
Case 3
Print "y="; x ^ 3 + 100
End Select
End Sub
2. Private Sub command1_click()
Dim a, b, c, d, e As String
a = "Zheng Zhou"
b = "Zhong Yuan Gong Xue Yuan"
c = a + " " + b
d = Left(a, 1) + Mid(a, 7, 1)
e = Left(b, 1) + Mid(b, 12, 1)
Print c
Print d; e
End Sub
3.設有Sub過程:
Private Sub p1(x As Integer, ByVal y As Integer)
x = 4 :y = 5 :z = 6
End Sub
則如下程序段的運行結果是:
Private Sub Command1_Click()
Dim x As Integer, y As Integer
x = 1: y = 2: z = 3
Print x, y, z
Call p1(x, y)
Print x, y, z
End Sub
4. Private Sub command1_click()
k = 0
For i = 1 To 3
k = k + 1
a = i * i * k
Print a;
Next i
End Sub
5. Private Sub command1_click()
Dim a(5, 5) As Integer
For i = 1 To 5
For j = 1 To 5
a(i, j) = i * 2 + j
Print a(i, j);
Next j
Next i
End Sub
6.設有Function過程:
Private Function f1(b, a)
a = a * a: b = b * b
f1 = a - b
End Function
則如下程序段的運行結果是什麽?
Private Sub command1_click()
a = 4: b = 3
a = f1(a, b)
Print a
End Sub
七.編程題(***30分)
註意:藝術類學生(環藝、裝潢、表演、服設)做第1、2、5、6小題;
其他學生做 第1、2、3、4 小題。
1.給出壹個百分制的成績,要求輸出成績的相應等級。(7分)
90分以上為“A”,80~89分為“B”,70~79分為“C”,60~69分為“D”,60分以下為“E”。
2.求n!,n由鍵盤輸入。(7分)
3.產生20個 [0,99] 之間的隨機整數,並按從小到大的順序輸出。(8分)
4.產生並輸出壹個6×6的二維數組A:(8分)
(1)兩條對角線上元素的值為1,其余元素為小於30的隨機整數。
(2)計算各行元素的平均值,輸出平均值最大和平均值最小的行號。
5.輸出1+2+……+100的和,並求出1~100 之間能被17整除的數據的個數(8分)
6.從鍵盤輸入10個數,求出其中的最大數,最小數和平均值。(8分)
VB試題答案及評分標準
壹、 單項選擇題(每題1分,***10分)
1.B 2.A 3.C 4.C 5.D
6.D 7.A 8.B 9.D 10.B
二、 填空題(每空1分,***10分)
1.n Mod 13=0 And n Mod 17=0
1、 對象
3.LEFT(“Visual Basic 6.0”,6)
4.6
5.False
6.Autosize
7. : 8.Option Explict 9.Const Dim
三、 將下列數學表達式轉換成VB表達式(每題1分,***6分)
1、 a^2+2*a*b+b^2
2、 x^(1/3)*y^(1/4)
3、 8*exp(x)*log(10)
4、 2*sin(3.1416/4)*cos(3.1416/4)
5、 (x+y+z)/sqr(x^2+y^2+z^2)
6、 log(1+abs((a+b)/(a-b)))
四、 判斷題(每題1分,***10分)
1.× 2.√ 3.× 4.√ 5.×
6.√ 7.× 8.× 9.× 10.√
五、 根據題意,將下列程序補充完整(每空1分,***10分)
1.(1) int(rnd*91)+10 (2) I<10
2.(1) i*j (2) next i
3.(1)int(sqr(x))或者x-1 (2) flag=1
4.(1)dim f(15) as integer (2)f(I-1)+f(I-2)
六、 寫出下面程序的輸出結果(每題4分,***24分)
1、 y=65
2、 Zheng Zhou Zhong Yuan Gong Xue Yuan 2分
ZZZG 2分
3.1 2 3
4 2 3
4.1 8 27
5.3 4 5 6 7
5 6 7 8 9
7 8 9 10 11
9 10 11 12 13
11 12 13 14 15
6.-7
七、 編寫程序
1. private sub command1_click()
dim x as integer,grade as string 1分
x=text1.text 1分
select case x 4分
case 90 to 100
grade=”A”
case 80 to 89
grade=”B”
case 70 to 79
grade=”C”
case 60 to 69
grade=”D”
case is<60
grade=”E”
case else
msgbox “請重新輸入”
end select
print “該學生成績為”+grade 1分
end sub
2.Private Sub command1_click()
Dim n as integer,f as long 1分
n=text1.text 1分
f=1
for I=1 to n 3分
f=f*I
next I
text2.text=f 2分
end sub
3. Private Sub Command1_Click()
Dim a(1 To 20) As Integer ' 1分
Randomize
For i = 1 To 20 2分
a(i) = Int(Rnd * 100)
Print a(i);
Next
For i = 1 To 19 3分
For j = i + 1 To 20
If a(i) > a(j) Then
t = a(i): a(i) = a(j): a(j) = t
End If
Next j
Next i
For i = 1 To 20 2分
Print a(i);
Next i
End Sub
4. Private Sub Command1_Click()
Dim a(1 To 6, 1 To 6) As Integer ' 1分
Dim aver As Single
Randomize
For i = 1 To 6 3分
For j = 1 To 6
If i = j Or i + j = 7 Then
a(i, j) = 1
Else
a(i, j) = Int(Rnd * 30)
End If
Print a(i, j);
Next j
Next i
Max = 0: Min = 30 4分
For i = 1 To 6
s = 0
For j = 1 To 6
s = s + a(i, j)
Next j
aver = s / 6
If aver > Max Then Max = aver: row_max = I
If aver < Min Then Min = aver: row_min = i
Next i
Print row_max, row_min
End Sub
5. Private Sub Command1_Click()
Dim i As Integer, c As Integer
Dim s As Integer
For i = 1 To 100 4分
s = s + i
If i Mod 17 = 0 Then c = c + 1
Next i
Print "1+2+...+100="; s 2分
Print "能被17整數的數據有"; c; "個" 2分
End Sub
6. Private Sub Command1_Click()
Dim x As Integer
x = InputBox("x=") 1分
Print x;
Max = x: Min = x: s = x 2分
For i = 2 To 10 3分
x = InputBox("x=") :Print x;
s = s + x
If x > Max Then Max = x
If x < Min Then Min = x
Next i
Print s / 10 1分
Print Max, Min 1分
End Sub