在窗体上有一个命令按钮Commandl,编写事件代码如下:Private Sub Command1_Click()Dim x As Integer,y As Integerx = 12:y = 32Call Proc(x,y)Debug.Print x; yEnd SubPublic Sub Proc(n As Integer,ByVal m As Integer)n = n Mod 10m = m Mod 10End Sub打开窗体运行后,单击命令按钮,立即窗口上输出的结果是A)2 32 B)12 3 C)2 2 D)12 32
问题描述:
在窗体上有一个命令按钮Commandl,编写事件代码如下:
Private Sub Command1_Click()
Dim x As Integer,y As Integer
x = 12:y = 32
Call Proc(x,y)
Debug.Print x; y
End Sub
Public Sub Proc(n As Integer,ByVal m As Integer)
n = n Mod 10
m = m Mod 10
End Sub
打开窗体运行后,单击命令按钮,立即窗口上输出的结果是
A)2 32 B)12 3 C)2 2 D)12 32
答
程序运行后,显示2 32.所以应选择A
本题的主要考点是传值与传址.
子过程proc()中,n默认的是传址格式,即x的地址赋予n后,n变为12,在子过程中n运算后值为2,过程结束后,将n的地址再传回x,故x显示为2;
子过程proc()中,m前加了Byval,即定义其为传值格式.虽然将y的值赋予了m,m变为32,在子过程中m运算后值为2,过程结束后,m的值不对y值构成影响,故y仍为其初始值32.
回答完毕!