资源描述
数组测试题
(一):选择题(8小题)
1.下列数组声明语句, 是正确的。
(a) Dim a[3,4] As Integer (b) Dim a(3,4) As Integer
(c) Dim a(n,n) As Integer (d) Dim a(3 4) As Integer
2.以下程序输出的结果是 。
Dim a: A=Array(1,2,3,4,5,6,7)
For I=Lbound(a) To Ubound(a)
A(i)=a(i)*a(i)
Next I
Print a(i)
(a) 49 (b) 0 (c) 不确定 (d) 程序出错
3.下面程序段的运行结果是 。( Option Base 1 )
Private Sub Form_Click()
Dim a: b$ = "": c$ = ""
a = Array("effort", "run", "lucky")
For i = 1 To UBound(a)
b$ = b$ + Left$(a(i), 1): c$ = c$ + Right$(a(i), 1)
Next I
Print c$ + b$
End Sub
(A)effort (B)tnyerl (C)erltny (D)c$+b$
4.以下程序输出的结果是 。(Option Base 1)
Private Sub Command1_Click( )
Dim a%(3,3)
For I=1 to 3
For j=1 to 3
If j>1 And I>1 Then
A(I,j)=a(a(I-1,j-1),a(I,j-1))+1
Else
A(I,j)=I*j
End If
Print a(I,j);” ”;
Next j
Print
Next I
End Sub
(a) 1 2 3 (b) 1 2 3
2 3 1 1 2 3
3 2 3 1 2 3
(c ) 1 2 3 (d) 1 1 1
2 4 6 2 2 2
3 6 9 3 3 3
5.如下数组声明语句中,数组a包含元素的个数为
Dim a(3,-2 to 2,5)
(a) 120 (b)75 (c) 60 (d) 13
6.下面程序输出的结果是 。(Option Base 1)
Private Sub Command1_Click( )
Dim a,b(3,3)
A=Array(1,2,3,4,5,6,7,8,9)
For I=1 to 3
For j=1 to 3
B(I,j)=a(I*j)
If (j>=I) Then
Print Tab(j*3);Format(b(I,j),”###”);
End if
Next j
Print
Next I
End Sub
(a) 1 2 3 (b) 1 (c) 1 4 7 (d) 1 2 3
4 5 6 4 5 2 4 6 4 6
7 8 9 7 8 9 3 6 9 9
1 4 7
2 5 8
3 6 9
7.有如下程序,运行输出结果如下:请选择正确内容,将 处补充完整。
Private Sub Form_Click()
Dim a(1 To 3, 1 To 3) As Integer
For j = 1 To 3
For k = 1 To 3
a(j, k) =
Print a(j, k);
Next k
Print
Next j
End Sub
(A)j + k (B)(j + 1) * 3 + k
(C)j + (k - 1) * 3 (D)j * k
8.下面程序,当从键盘输入1,2,4,4,4,-1时,输出的结果是 。
Private Sub Form_Click()
Dim s(1 To 5) As Integer
x = Val(InputBox("请输入x的值:"))
Do While x <> -1
s(x) = s(x) + x
x = Val(InputBox("请输入x的值:"))
Loop
For i = 1 To 5
If s(i) >= 3 Then Print i; s(i)
Next I
End Sub
(A)1 3 (B)3 4 (C)4 4 (D)4 12
(二):填空题(5小题)
1.随机产生6位学生的分数(分数范围1~100),存放在数组a中,以每2分显示一个”*”(分数-1后除以2),并输出学生的分数。结果显示如下图所示。
Private Sub Command1_Click( )
Dim a(1 to 6)
For I=1 to 6
A(i)= ①
Print ②
Next I
End Sub
2.以下程序用于产生20个(0,99)之间的随机整数,并将其中偶数输出。
Private Sub Command1_Click( )
Randomize
For j=1 To 20
x=Int(Rnd*【 ③ 】)
If x/2=【 ④ 】 Then Print x
Next j
End Sub
3.下面的程序用于求3个数中的最大数,补充完整程序。
Private Sub Command1_Click( )
a=Val(InputBox("请输入第一个数"))
b=Val(InputBox("请输入第二个数"))
c=Val(InputBox("请输入第三个数"))
max=a : min=a
If b>【 ⑤ 】 Then max=b
If b<【 ⑥ 】 Then min=b
If 【 ⑦ 】 Then max=c
If 【 ⑧ 】 Then min=c
Print "最大值为:";max
Print "最小值为:";min
End Sub
4.程序代码实现:单击命令按钮Command1时形成并输出一个主对角线上元素值为-1,其它元素值为0的6×6阶方阵。
Private Sub Command1_Click( )
Dim a(6,6)
For k=1 To 6
For j=1 To 6
If k=j Then
【 ⑨ 】
Else
【 ⑩ 】
Endif
Print 【 ⑾ 】
Next j
Print
Next k
End Sub
5.下面是用选择排序法对n个数由小到大排序的程序,请在 处添上正确答案。(Option Base 1)
Dim a()
Private Sub Form_Click()
Randomize Timer
n = InputBox("请输入需要排序的数的个数:")
⑿
For i = 1 To n
a(i) = 200 * Rnd
Next I
For i = 1 To n – 1
k = I
For j = (13)
If (14) Then k = j
Next j
If k <> i Then
t = a(k): a(k) = a(i): a(i) = t
End If
Next I
For i = 1 To n
Print a(i);
Next I:End Sub
(三)、编写程序
编写完整的窗体Form1的单击事件代码,要求实现:
随机产生49个 [10,99]范围内的整数,并将它们按照从小到大的顺序(以每行7个数据)输出。
数组测试题答案
一)选择题
1
2
3
4
5
6
7
8
9
10
11
12
B
D
B
A
A
D
C
D
二) 填空题
1) INT(RND*100+1)
2) STRING(a(i)\2,”*”);”a(“;I;”)”;”=”;a(i)
3) 98+1
4) x\2 或者int(x\2)
5) max或者a
6) min 或者a
7) c>max 或者c>b
8) c<min 或者c<b
9) a(k,j)=-1
10) a(k,j)=0
11) print a(k,j)
12) redim a(n)
13) j=I+1 to n
14) a(k)>a(j)
三) 程序题
【说明:声明数组和输入数组元素,输出数组元素】
Private sub form_click()
Dim x(1 to 49) as integer
For I=1 to 49
X(i)=int(rnd*90+10)
Print x(i);
If I mod 7=0 then print
Next I
【说明:冒泡法排序,输出排序后的结果】
For I=1 to 48
T=I
For j=I+1 to 49
If a(j)>a(t) then t=j
Next j
If t<>I then
Temp=a(i)
A(i)=a(t)
A(t)=temp
Next i
For I=1 to 48
For j=I+1 to 49
If x(i)>x(j) then
T=x(i):x(i)=x(j);x(j)=t
End if
Next j
Next I
For I=1 to 49
Print x(i);
If I mod 7=0 then print
Next I
End sub
展开阅读全文