VB题请教

来源:百度知道 编辑:UC知道 时间:2024/05/22 20:32:15
有以下程序:
Option Base 1
D) im arr() As Integer
Private Sub Form_Click()
D) im i As Integer,j As Integer
ReDim arr(3,2)
For i=1 To 3
For j=1 To 2
arr (i,j)=i*2+j
Next j
Next i
ReDim Preserve arr(1,4)
For j=3 To 4
A) rr(3,j)=j+9
Next j
Print arr(3,2);arr(3,4)
End Sub
程序运行后,单击窗体,输出结果为( )
A . 8 13
B . 0 0
C . 7 12
D . 0 13
这个题选什么,告诉我为什么

这个题目肯定有问题哈

ReDim Preserve arr(1,4)
这一行,保留原值又重新定义,第一维的上限怎么可以变小?是
ReDim Preserve arr(3,4)吧?
如果是arr(1,4),后面又给arr(3,j)赋值,岂不又乱套了?

答案应该是A

arr(3,2)用了第一组循环的值,arr(i,j)=i*2+j,代入即可获得,它被Preserve后,一直没被改变过,所以值是保留的
arr(1,4)是第二组循环赋值的,就是j=4时,求j+9

preserve,已赋值的元素会被保护,值不会变

选择A。arr(3,2)的值被保护

d,后一个不说了,前一个的话,没保留,重定后即复位

放到VB里运行一下不就出来了?还用拿到这里来问吗?