问题 填空题

在窗体中添加一个名称为Command1的命令按钮,然后编写如下程序:
Private Sub S(By Val P As Integer)
P=P*2
End Sub
Private Sub Command1_Click()
Dim i As Integer
i=3
Call s(i)
If i>4 Then i=i^2
MsgBox i
End Sub
窗体打开运行后,单击命令按钮,则消息框的输出结果为______。

答案

参考答案:C

解析: 本题考查的是VBA编程基础、变量的作用域。由于VBA中,传值调用(ByVal选项)为“单向”作用形式,即过程调用只是相应位置实参的值“单向”传送给形参处理,而被调用过程内部对形参的任何操作引起的形参值的变化均不会反馈、影响实参的值。此题中:形参p被说明为ByRef传值形式的整型量,当运行Command1_Click()过程,并调用s()函数,实参i传送其值给形参p,p发生变化p=p*2=3*2=6。但因为使用的是ByVal“单向”传值形式,实参i的值不发生变化,if语句为假,执行MsgBox i语句后输出3。

单项选择题
问答题 简答题