Print fun1(a, b) End Sub
Private Function fun1(x As Integer, y As Integer) As Integer Dim r As Integer r = x Mod y Do While r <> 0 x = y: y = r r = x Mod y Loop fun1 = y End Function
8.下列程序运行时,单击Command1命令按钮,在窗体上打印结果的第一行、第二行和第三行分别是 (8) 、 (9) 和 (10) 。
Private Sub Command1_Click() a = 2 b = 3 Do
a = a + b Print a b = b + 1
If a >= 10 Then Exit Do End If
Loop While b <= 10 End Sub
9.执行下面的程序后,单击按钮 Command1后,在窗体上显示的结果为 (11) 。当把子函数中A语句和B语句的位置交换以后,则在窗体上显示的结果又为 (12) 。
Option Explicit Dim t As Integer
Private Sub Command1_Click() Dim x As Integer, y As Integer x = 1: y = 1 For t = 1 To 5
If t Mod 2 = 0 Then y = fun(t, x) + x Else
x = fun(t, y) + y End If Next t
Debug.Print t; x; y End Sub
Private Function fun(n As Integer, m As Integer) As Integer m = n - 1 + t n = m + n – t fun = m * n End Function
?A语句 ?B语句
10.下列程序的功能是:由系统产生10个10~99之间的无序数,在图片框Picture1中显示出来。对其去掉一个最大数和最小数,然后求其平均值,在文本框中Text1中显示出来。运行后如图2所示,给定的程序不完整,将程序补充完整。
Option Base 1
Private Sub Form_Click()
Dim i As Integer, Max As Integer, Min As Integer Dim a(10) As Integer, sum As Integer Randomize
For i = 1 To UBound(a) a(i) = (13) Picture1.Print a(i); Next i
Max = a(1): Min = a(1): sum = a(1) For i = 2 To UBound(a)
If Max < a(i) Then Max = a(i) If Min > a(i) Then Min = a(i) sum = sum + a(i) Next i
sum = sum - Max - Min
Text1.Text = \去掉最大数和最小数后的平均值=\ (14) End Sub
图2
11.下列程序的功能是:用对话框分别输入三个正整数后,在图片框Pic1中显示三个由大到小排序的数据。给定的程序不完整,将程序补充完整。
Private Sub Form_Click()
Dim a As Integer, b As Integer, c As Integer a = InputBox(\请输入一个正整数a\ b = InputBox(\请输入一个正整数b\ c = InputBox(\请输入一个正整数c\ If (15) Then t = a a = b b = t End If
If (16) Then t = b b = c c = t End If
If (17) Then t = a a = b b = t End If
Pic1.Print a; b; c End Sub
12.在下列程序中,数组s为某门课程的分数,程序功能是统计各个分数段的人数,统计后结果如图3所示。给定的程序不完整,将程序补充完整。
图3
Option Base 1
Private Sub Command1_Click() Dim age As Integer Dim a(10) As Integer Dim n, s
s = Array(75, 86, 63, 87, 94, 51, 72, 93, 82, 70, 45, 88) For i = 1 To UBound(s)
a(s(i) \\ 10) = (18) Next i
For i = UBound(a) To 1 Step -1
List1.AddItem Str((i - 1) * 10) & \~\& Str(i * 10) & \分的人数为\&
(19)
Next i End Sub
Private Sub Command2_Click() Unload Me End Sub
13.下列程序执行结束后,a(1,1)的值是 (20) ,a(2,2)的值是 (21) ,a(3,3)的值是 (22) 。
Option Base 1
Private Sub Form_Click()
Dim i As Integer, j As Integer Dim a() As Integer, n As Integer n = 3
ReDim a(n, n) For i = 1 To n For j = 1 To n a(i, j) = i + j Next j Next i
Call Sub1(a, n) End Sub
Private Sub Sub1(y() As Integer, n As Integer) Dim i As Integer, j As Integer Dim t As Integer For i = 1 To n For j = 1 To n t = y(i, j)
y(i, j) = y(n + 1 - j, n + 1 - j) y(n + 1 - j, n + 1 - j) = t Next j Next i
End Sub
14.下列程序的功能是,随机产生6×6个具有两位数的矩阵,并找出每行最大数,如图4所示。给定的程序不完整,将程序补充完整。
图4
Private Sub Command1_Click() Dim a(6, 6) As Integer Randomize For i = 1 To 6 For j = 1 To 6
a(i, j) = Int(90 * Rnd) + 10 Next j Next i
For i = 1 To 6
Max = (23) pic1.Print Max; For j = 2 To 6
pic1.Print a(i, j);
If Max < a(i, j) Then (24) Next j
pic1.Print \ Next i End Sub
15.英国大数学家哈代(G.H.Hardy,1877~1947)曾经发现过一种有趣的现象:
153=13+53+33 371=33+73+13 370=33+73+03 407=43+03+73 它们都是三位数且等于各位数字的三次幂之和,被称为3次幂回归数。下列程序是验证改现象的结果,如图5所示。给定的程序不完整,将程序补充完整。
图5
Option Base 1
Private Sub Command1_Click() Dim b(3) As Integer For i = (25) Call fun1(b, i)
s = b(1) ^ 3 + b(2) ^ 3 + b(3) ^ 3 If s = i Then
Pic1.Print i; \ End If Next i End Sub
Public Sub fun1(b, (26) ) For i = 1 To 3 b(i) = 0 Next i k = 1 Do
b(k) = x Mod 10 x = x \\ 10 (27) Loop While x > 0 End Sub
16.下列程序的功能是:找出2~100之间所有的既是素数,又是降序数,并在列表框List1中输出,所谓降序数是指低位数字小于高位数字的数。例如31、41均是降序数,17不是降序数,程序执行后如图6所示。给定的程序不完整,将程序补充完整。
图6
Private Sub Form_Click()
Dim n As Long, m As Long, k As Integer For n = 2 To 100
If fun1(n) = True Then flg = 1
(28) a = m Mod 10 Do While m <> 0 m = m \\ 10 b = m Mod 10
If b < a And m <> 0 Then flg = 0: (29) a = b Loop
If flg = 1 Then List1.AddItem n End If Next n End Sub
Private Function fun1(n As Long) As Boolean Dim m As Integer For m = 2 To Sqr(n)
If n Mod m = 0 Then Exit Function Next m
(30) End Function
二级Visual Basic全真模拟试卷一参考答案