在窗体中添加一个名称为Commandl的命令按钮,然后编写如下事件代码: Private Sub Command1_Click() Dim x As Integer,y As Integer x=12:y=32

admin2009-08-25  82

问题  在窗体中添加一个名称为Commandl的命令按钮,然后编写如下事件代码:
   Private Sub Command1_Click()
       Dim x As Integer,y As Integer
       x=12:y=32
       Call p(x,y)
       MsgBox x*y
   End Sub
   Public Sub p(n As Integer,By Val m As Integer)
     n=n Mod 10
     m=m Mod 10
   End Sub
   窗体打开运行后,单击命令按钮,则消息框的输出结果为【  】。

选项

答案64

解析 子过程p有两个参数m和n,参数m,n是整型,而通过“ByVal”可知,参数m是按值传递的参数。由于在过程定义时未做参数说明的情况下,默认为传址调用,所以参数n是按址传递。  (按址传递的过程调用是将相应位置实参的地址传送给形参处理,而被调用过程内部对形参的任何操作引起的形参值的变化又会反向影响实参的值。在这个过程中,数据的传递具有双向性。)在命令按钮单击事件过程中,程序通过两个实参x,y为形参m,n赋值,“n=n Mod 10”表示12与10取余,结果为2,由于n是传址调用,所以返回实参的结果:x=2,而形式参数m因为被“ByVal”修饰,所以过程调用只是将实参y的值“单向”传送给形参 m处理,而被调用过程内部对形参m的取余操作引起的形参值的变化均不会反馈、影响实参y的值,也就是说实参y=32,通过语句“MsgBox x*y”,可以得出:x*y=2*32=64,也就是窗体打开运行后,单击命令按钮,则消息框的输出结果为64。
转载请注明原文地址:https://kaotiyun.com/show/obwp777K
0

最新回复(0)