vb数组题

来源:百度知道 编辑:UC知道 时间:2024/06/22 15:22:49
第一个:
Option Base 1
Private Sub Command1_Click()
Dim a(10) As Integer, p(3) As Integer
k = 5
For i = 1 To 10
a(i) = i
Next i
For i = 1 To 3
p(i) = a(i * i)
Next i
For i = 1 To 3
k = k + p(i) * 2
Next i
Print k
End Sub
为什么输出结果是33啊!看了F8了。。没大看懂。。。各位帮忙给解释一下……
第二个:
Option Base 1
Private Sub Command2_Click()
Dim a
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 输出结果是1234.。为什么啊?
第三个:
Private Sub Command3_Click()
Dim a(5)
For i = 0 To 4
a(i) = i + 1
t = i + 1
If t = 3 Then
Print a(i);
a(t - 1) = a(i - 2)
Else
a(t) = a(i)
End If
If i = 3 Then a(i + 1) = a(t - 4)
a(4) = 1
Print a(i)
Next i
End Sub
vb里根本就运行不了。说下标越界。

第一题:
p(i)=a(i*i)
p(1)=a(1)=1
p(2)=a(4)=4
p(3)=a(9)=9
k=k+p(i)*2=5+1*2+4*2+9*2=33
第二题:s=s+a(i)*j=4*1+3*10+2*100+1*1000
第三题我这调试和你答案一样

1、第一次k=5+1*2=7,第二次k=7+4*2=15,第三次k=15+9*2=33.
2、s=4,s=4+3*10=34,s=34+2*100=234,s=234+1*1000=1234
3、你跟踪调试一下就知道哪里越界了,