在窗体中有一个名称为Command1的按钮,该模块内还有一个函数过程: Public Function f(x As Integer)As Integer Dim y As Integer x=20:y=2:f=x*y End Function Priva

admin2018-12-05  35

问题 在窗体中有一个名称为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、105
B、1040
C、205
D、2040

答案D

解析 本题主要考查局部变量的使用和函数调用过程中的参数传递。参数传递的方式有传值和传址两种形式,其中默认的方式是传址。本题中Click事件和函数f都有变量y,但都是各自的局部变量,只是同名而已。同样Click事件和函数f中的x也是局部变量(形式参数也属于局部变量),但此处的参数传递是传址,因此函数f对变量×的修改会带回到Click事件。在Click事件中,调用函数f的同时将参数×以传址的方式传给了函数f。在函数f中×被重新赋值为20,并与函数f的局部变量y相乘得结果40,并通过函数f传回了Click事件。在Click事件中该结果被赋值给该事件的局部变量y,所以调用的结果是Click事件中的局部变量x和y分别变成了20和40。所以此正确答案为选项D。
转载请注明原文地址:https://kaotiyun.com/show/EMMp777K
0

最新回复(0)