设有如下程序代码: Dim a% Public b%, c% Private Sub Form_Click() Dim b% Print a; b; c End Sub Private Sub Form_Load() Dim a%

admin2019-03-08  22

问题 设有如下程序代码:
Dim a%
Public b%, c%
Private Sub Form_Click()
    Dim b%
    Print a; b; c
End Sub
Private Sub Form_Load()
    Dim a%
    a = 5
    b = 8
    c = 10
End Sub
运行程序时单击窗体,则在窗体上显示的是(    )。

选项 A、0  0  10
B、0  8  10
C、5  8  10
D、5  0  10

答案A

解析 程序开头位置定义了一个模块级变量a和两个全局变量b和c,在默认情况下,模块级变量对该模块的所有过程都是可见的,但是对其他模块中的代码不可见;全局变量的作用于最大,可以在工程的每个模块、每隔过程中使用。本题中,程序先执行Form_Load()再执行Form_Click() 函数。当程序加载时先为变量赋初值,在Form_Load事件中,又定义了局部变量a,局部变量的作用于仅限于本过程,出了过程就不复存在了。当局部变量和模块级变量同名,且作用域发生重叠,局部变量会"屏蔽"模块级变量,所以在Form_Load过程中,给变量a赋值为5,此处的变量a是局部变量,而不是模块级变量;b和c也分别赋了值,此时赋的值就是全局变量的值,b=8、c=10。当单击窗体时,程序执行Form_Click过程,也定义了一个局部变量b,b的初始值为0,与全局变量b同名且作用域发生重叠,局部变量会"屏蔽"全局变量,也就是说在Form_Click过程中,输出的变量b是局部变量,而变量a和变量c都是全局变量,全局变量a的值为其初始值0,全局变量c的值为10,所以最终输出的结果为 0 0 10,故选项A正确。
转载请注明原文地址:https://kaotiyun.com/show/jqFp777K
0

最新回复(0)