急!高分求高手教解这道VB题!

来源:百度知道 编辑:UC知道 时间:2024/09/22 10:34:26
[程序]
dim a as byte
private sub form_click
'dim a as byte'(1)
a=a+2
call aa(a)
print a;
end sub
sub aa(b as byte)'
b=a+2
end sub
[供选择答案]
1。单击窗体两次后,窗体上显示的内容是什么?
2。其他代码不变,仅将程序语句(1)前面的单引号“’”删除,单击窗体两次后,窗体上显示的内容是什么?
3。其他代码不变,仅将程序语句(2)改为Call aa(a+2),单击窗体两次后,窗体上显示的内容是什么?

4.其他代码不变,仅将程序语句(3)改为sub aa(byval b as byte),单击窗体两次后,窗体上显示的内容是什么?
PS.貌似考了按地址按值传递和局部量全局量的相关知识,我知道了结果,但思考过程仍不清楚,希望各位可以附上较详细的答题说明

第一次是4 8 12 16 ……
第二次是2 2 2 2……
第一次
dim a as byte
private sub form_click
其中a是全局变量
所以对
sub aa(b as byte)'
b=a+2
end sub
有效,a的值会不断增大
第二次
private sub form_click
dim a as byte'(1)
a是局部变量
a只在上一个过程中起作用
在这个过程中
sub aa(b as byte)'
b=a+2
end sub
a被系统重新定义为0

所以b=2