永发信息网

一道VB二级考试题

答案:2  悬赏:60  手机版
解决时间 2021-05-20 01:38
  • 提问者网友:兔牙战士
  • 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定义的是静态变量 只要整个项目不关闭,每次调用它所在事件,它都会保留值!

相当于一个公有变量哟

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯