问题 单项选择题

标准模块中有如下程序代码:
Public x As Integer,Y As Integer
Sub TempSub()
x=10:y=20
End Sub
在窗体上有1个命令按钮,并有如下事件过程:
Private Sub Command1 Click()
Dim x As Integer
Call TempSub
x=x+100:y=y+100
Print x;y
End Sub
运行程序后单击命令按钮,窗体上显示的是( )。

A.110 100

B.100 100

C.100 120

D.110 120

答案

参考答案:C

解析: 在标准模块用Public关键字声明的全局变量,其作用域最大,可以在工程的每个模块、每个过程中使用。但当不同作用范围的变量重名时,有效范围小的变量会屏蔽有效范围大的变量。当一个全局变量与一个过程级变量重名时,当在本过程中直接使用这个变量名时,被认为是指局部变量。如果要在这个过程中使用同名的全局变量,要使用模块名来修饰变量名。
在本题的事件过程中,由于变量x被声明为过程级变量,其初始值为0,调用过程TempSub不会改变其值,而变量y为标准模块中声明的全局变量,调用过程TempSub后其值为20。故最后输出结果为100和120。

单项选择题
判断题