以下是某个窗体的模块代码,请分析单击窗体后程序运行至"*"号位置时变量X、Y和Z的值分别是【 】。 DIM X AS INTEGER DIM Y AS INTEGER PRIVATE SUB FO

admin2010-03-22  25

问题 以下是某个窗体的模块代码,请分析单击窗体后程序运行至"*"号位置时变量X、Y和Z的值分别是【  】。
         DIM X AS INTEGER
         DIM Y AS INTEGER
         PRIVATE  SUB  FORM_CLICK()
               DIM X AS INTEGER
               X=1
               Y=1
               CALL AA(Y+1)
               Z=BB(X)
               ’* * * * * * *
               MSGBOX "X="&X&"/Y="&Y&"/Z="&Z
         END SUB
         PRIVATE SUB AA(BYVAL Z AS INTEGER)
               Y=Z+X
               Z=X+Y
         END SUB
         PRIVATE FUNCTION BB(BYREF Y AS INTEGER
               Y=Y+1
               BB=X+Y
         END FUNCTION

选项

答案2,2,2

解析 调用AA过程后,全局变量Y的值为2。这时形参为局部变量Y,而实参为局部变量 X,传递采用“传址”调用,即形参Y与实参X占用同一内存地址,并且形参Y会获得实参X的传递值1。当执行BB过程中的Y=Y+1语句时,形参Y与实参x的值均为1+1=2,此时,函数的返回值为BB=X+Y,是全局变量X与形参Y相加,值为0+2=2。综合判断,得出答案为2, 2,2。
转载请注明原文地址:https://kaotiyun.com/show/XOwp777K
0

最新回复(0)