vb问题帮帮忙

来源:百度知道 编辑:UC知道 时间:2024/06/18 16:17:50
Dim x As Integer
Private Sub Form_click()
x = x + 2
Call proc1(x) '(1)
Print x;
End Sub
Sub proc1(a As Integer) '(2)
Dim x As Integer '(3)
a = x + 2
End Sub
【供选择的答案】
B(1)单击窗体两次后,窗体上显示的内容是什么?
A、0 0 B、2 2 C、2 4 D、4 8
C(2)其它代码不变,仅将程序中的语句(2)改成sub proc1(byval a as integer),单击窗体两次后,窗体上显示的内容是什么?
A、0 0 B、2 2 C、2 4 D、4 8
D(3)其它代码不变,仅将程序中的语句(3)删除,单击窗体两次后,窗体上显示的内容是什么?
A、0 0 B、2 2 C、2 4 D、4 8
C(4)其它代码不变,仅将程序中的语句(1)改为call proc1(x+2),单击窗体两次后,窗体上显示的内容是什么?
A、0 0 B、2 2 C、2 4 D、4 8

为什么会是这样,请详细点

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Print x; ~~~~~~~~~~~~~~~~~'因为这是输出是x所以子函数不会影响最后的输出
所以,这程序就剩下:
Dim x As Integer
Private Sub Form_click()
x = x + 2
Print x;
End Sub
当X变量没附值时,X默认为0
B
C
D
C

B
C
D
C

1、b
(1)句的x相当于返回值地址,所以每次都是2,因为在过程里a=0+2=2.
2、c
(1)句的x相当于输入值,所以没有影响,在本过程中每点一次加2,所以为c
3、d
每次本过程加2,在调用过程里又加2,所以每次加4
4、c
(1)句的x+2相当于返回值地址,所以对x没有影响,那么每次加本过程的2,

你机器上有VB吗!?》 自己写上代码 然后两次单击,看看输出的内容是什么!