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

admin2019-02-19  40

问题 在窗体中有一个名称为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对变量x的修改会带回到Click事件。在Click事件中,调用函数f的同时将参数x以传址的方式传给了函数f。在函数f中x被重新赋值为20,并与函数f的局部变量y相乘得结果40,并通过函数f传回了Click事件。在Click事件中该结果被赋值给该事件的局部变量y,所以调用的结果是Click事件中的局部变量x和y分别变成了20和40。所以此正确答案为选项D。
转载请注明原文地址:https://kaotiyun.com/show/ZL0p777K
0

最新回复(0)