在窗体中添加一个名称为Coml的命令按钮,然后编写如下程序: Private Sub s(ByVal P As Integer) p=p*2 End Sub Private Sub Coml_Click()

admin2012-09-03  34

问题 在窗体中添加一个名称为Coml的命令按钮,然后编写如下程序:
    Private Sub s(ByVal P As Integer)
         p=p*2
    End Sub
    Private Sub Coml_Click()
    Dim i As Integer
         i=3
         Call s(i)
         Ifi>4Then i=i^2
         MsgBoxi
    End Sub
    窗体打开运行后,单击命令按钮,则消息框的输出结果为__________。

选项

答案3

解析 本题考查VBA程序的知识。在VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用ByVal声明,说明此参数为传值调用,此时形参的变化不会返回到实参;若用ByRef声明,蜕明此参数为传址调用,此时形参的变化将会返回到实参;没有说明传递类型,则默认为传址传递。此题中形参p被说明为ByVal传值形式的整型量,当运行Coml_Click()过程时凋用s()函数,实参i传送其值给形参p,p发生变化p=p*2=3*2=6。但因为使用的是ByVal传值传递,所以实参i的值不发生变化,if语句中的判断条件为假,所以会直接执行MsgBox i语句后输出3。
转载请注明原文地址:https://kaotiyun.com/show/6Jup777K
0

最新回复(0)