一道VB二级考试题
- 提问者网友:兔牙战士
- 2021-05-19 11:37
Private Sub Command1_Click()
Dim m As Integer, I As Integer, x(10) As Integer
For I=0 To 4: x(I) =I + 1: Next I
For I=1 To 2: Call Prioc(x) : Next I
For I=0 To 3: Print x(I) ;: Next I
End Sub
Private Sub Prioc(a() As Integer)
Static I As Integer
Do
a(I) =a(I) + a(I + 1)
I=I + 1
Loop While I < 2
End Sub
A) 3 4 7 5
B) 3 5 7 4
C) 1 2 3 4
D) 1 2 3 5
答案为什么是B???求高手讲解详细过程!最好通俗易懂!谢谢!
- 五星知识达人网友:低音帝王
- 2021-05-19 12:39
Private Sub Command1_Click()
Dim m As Integer, I As Integer, x(10) As Integer '定义变量,相信你都已经知道了吧
For I = 0 To 4: x(I) = I + 1: Next I '为刚才定义的变量数组赋值,x(0)=1,x(1)=2,x(2)=3,x(3)=4,x(4)=5;相信这样的变量赋值,不很太难懂吧,也不用解释这么多了吧
For I = 1 To 2: Call Prioc(x): Next I '调用子过程,使数组变量值产生变化,怎样产生变化,下面会详细告诉你,这里由于调用过程,而且循环的关系,数组变量的值发生改变,此时x(0)=3,x(1)=5,x(2)=7,x(3)=4,x(4)=5
For I = 0 To 3: Print x(I);: Next I '这里,也不用特定告诉了吧,只是输出变量值而已
End Sub
Private Sub Prioc(a() As Integer)
Static I As Integer '定义局部静态变量
Do '不用说了,循环开始
a(I) = a(I) + a(I + 1) '为刚才存入的变量数组进行数值添加
I = I + 1 '也不用说了
Loop While I < 2 '如果小于2的话,退出变量
End Sub
'在刚才的按钮单击过程的第二条代码进行解释:首先传入整个数组变量到子过程进行数值修改,从FOR循环可以看出,循环了2次,那就是说明,总调用过程2次,那么第一次数组值为x(0)=3,x(1)=5,x(2)=7,x(3)=4,x(4)=5,第二次的值都为x(0)=3,x(1)=5,x(2)=7,x(3)=4,x(4)=5,为什么会出现这样的情况,就是先前定义了局部变量的关系,I值没有返回到0,且值不小于2,所以,第二次调用过程等于没有调用
- 1楼网友:往事埋风中
- 2021-05-19 13:38
Static与DIM不同 Static定义的是静态变量 只要整个项目不关闭,每次调用它所在事件,它都会保留值!
相当于一个公有变量哟