n=4 s=5 n=10 s=15 n=20 s=35
12.编写VB程序,计算S=2+(2+4)+(2+4+6)+?+(2+4+6+8+?+50)之值。 Private Sub Form_DblClick() Dim n%, i%, s%
For i = 2 To 50 Step 2 s = s + i n = n + s Next Print n
End Sub
13.用循环结构编写VB程序,输出下述五阶方阵:
1 2 3 4 5 2 3 4 5 1 3 4 5 1 2 4 5 1 2 3 5 1 2 3 4
Private Sub Form_DblClick() Dim i, j, k, n As Integer
n = InputBox(\请输入有多少行\ For i = 1 To n
For j = i To 5 j = Format(j, \ Print \ Next j
For k = 1 To i-1 k = Format(k, \ Print \ Next k Print Next i End Sub
第 6 页 共 15 页
第9章 数组
补充作业题
1.Dim B120(10 T0 20) 所定义的数组元素个数是 A 。 A.11 B.20 C.30 D.10 2.Dim Abc(5) 所定义的数组元素个数是__B_____。
A.5 B.6 C.4 D.10 3.有如下程序: Option Base 1
Private Sub form_click() Dim a(3, 3) For j = 1 To 3 For k = 1 To 3
If j = k Then a(j, k) = 1 If j < k Then a(j, k) = 2 If j > k Then a(j, k) = 3 Next k Next j
For I = 1 To 3 For j = 1 To 3 Print a(I, j); Next j Print Next I End Sub
程序运行时输出的结果是___B____。 A.1 3 3 B.1 2 2
2 1 3 3 1 2 2 2 1 3 3 1 C.2 3 3 D. 2 1 1 1 2 3 3 2 1 1 1 2 3 3 2 4.有如下程序: Option Explicit Option Base 1
Dim a() As Integer
Private Sub form_click()
Dim I As Integer, j As Integer ReDim a(3, 2) For I = 1 To 3 For j = 1 To 2
a(I, j) = I * 2 + j
Print \
第 7 页 共 15 页
Next j Print Next I End Sub
该程序的输出结果是__D_____。
A.a(0,0)=3 a(0,1)=4 B.a(1,1)=2 a(1,2)=3
a(1,0)=5 a(1,1)=6 a(2,1)=3 a(2,2)=4 a(2,0)=7 a(2,1)=8 a(3,1)=4 a(3,2)=5 C.a(1,1)=3 a(1,2)=5 D.a(1,1)=3 a(1,2)=4
a(2,1)=4 a(2,2)=6 a(2,1)=5 a(2,2)=6 a(3,1)=5 a(3,2)=7 a(3,1)=7 a(3,2)=8
5.有如下程序: Option Base 1
Private Sub form_click() Dim A(10)
For K = 1 To 10 A(K) = K ^ 2
Next K
Print A(K) End Sub
程序运行后输出的结果是__错误__。
6.在给定程序的功能是建立并输出除主、副对角线上的元素为0外,其余元素都为1的方阵,在画线处填入适当内容,将程序补充完整。 Private Sub command1_click() Dim a(10, 10) For I = 1 To 10
For j=_1 To 10____
If _I<>j or_I+j<>11___then
a(I,j)=0 else
a(I,j)=1
_End if____ Next j
Next I
For I = 1 To 10 For j = 1 To 10 Print a(I, j); Next j Print Next I End Sub 7.下面程序的功能是分别计算给定的10个数中正数之各与负数之和,最后输出这两个和数的绝对值之商。请在画线处填入适当的内容,将程序补充完整。 Option Base 1
第 8 页 共 15 页
Private Sub command1_click() Dim A
A = Array(23, -5, 17, 38, -31, 46, 11, 8, 5, -4) S1 = 0 S2 = 0
For k = 1 To 10
If (A(k) > 0) Then S1=__S1+A(k)__ Else
S2=__S2 +A(k)__ End If Next k
x = Abs(S1) / Abs(S2) Print x End Sub
8.下面的程序是用选择交换法将10个数排成升序,请在画线处填入适当内容,将程序补充完整。 Option Base 1
Private Sub command1_click() Dim arr
arr = Array(123, 96, 42, 39, 22, 14, 7, 4, 0, -7) Print “data before sorting:” For I = 1 To 10 Print arr(I);
Next I Print
For I= 1_To 10_______ k = I
For j=_ I+1 To 10__________
If arr(k)>arr(j) then a=arr(k)_ arr(k) =arr(j)_ arr(j)=a____ Next j
If k <> I Then w = arr(k)
arr(k) = arr(I) arr(I) = w End If
Next I
Print “data after sorting;” For I = 1 To 10 Print arr(I);
Next I Print End Sub
第 9 页 共 15 页
9.写出下列程序的计算机运行结果: Private Sub Command1_Click() Dim a(5, 5) As Integer For i = 1 To 5 For j = 1 To 5
a(i, j) = i + j - 1 Next j Next i
For i = 1 To 5 Print Tab(8);
For j = 5 To i Step -1 Print \ Next j
For k = 6 - i To 5 Print \ Next k Print Next i End Sub
5 5 6 5 6 7 5 6 7 8 5 6 7 8 9
10.编写VB程序,计算五阶方阵的两条主对角线元素之和。 Private Sub Form_DblClick()
Dim a(5, 5), s% For i = 1 To 5 For j = 1 To 5
a(i, j) = InputBox(\请输入元素值\ Print a(i, j) & \ Next j Print Next i
For i = 1 To 5 For j = 1 To 5
If i = j Or i + j = 6 Then s = s + a(i, j) End If Next j Next i Print s End Sub
第 10 页 共 15 页