单选题 在窗体中有一个名称为Command1的按钮,该模块内还有一个函数过程: Public Function f(x As Integer)As Integer Dim y As Integer x=20:y=2:f=x*y End Function Private Sub Command1_Click() Dim y As Integer Static x As Integer x=10 y=5 y=f(x) Debug.Print x;y End Sub 打开窗体运行后,如果单击按钮,则在立即窗口上显示的内容是
【正确答案】 D
【答案解析】解析:本题主要考查局部变量的使用和函数调用过程中的参数传递。参数传递的方式有传值和传址两种形式,其中默认的方式是传址。本题中Click事件和函数f都有变量y,但都是各自的局部变量,只是同名而已。同样Click事件和函数f中的x也是局部变量(形式参数也属于局部变量),但此处的参数传递是传址,因此函数f对变量x的修改会带回到Click事件。在Click事件中,调用函数f的同时将参数x以传址的方式传给了函数f。在函数f中x被重新赋值为20,并与函数f的局部变量y相乘得结果40,并通过函数f传回了Click事件。在Click事件中该结果被赋值给该事件的局部变量y,所以调用的结果是Click事件中的局部变量x和y分别变成了20和40。所以此正确答案为选项D。