单选题 设有一个窗体,内有一个名称为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程序运行后,如果单击命令按钮,则在立即窗口上显示的内容是(    )。
   A.10 5    B.20 5    C.20 40 D.10 40
【正确答案】 C
【答案解析】本题主要考查局部变量的使用和函数调用过程中的参数传递。参数传递的方式有传值和传址两种形式,其中默认的方式是传址。本题中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。因此正确答案为C。