填空题 运行下列程序,窗体中的显示结果是:x=______。
Option Compare Database
Dim x As Integer
Private Sub Form_Load()
x=3
End Sub
Private Sub Command11_C1ick()
Static a As Integer
Dim b As Integer
b=x^2
fun1 x,b
fun1 x,b
MsgBox "X=" &x
End Sub
Sub fun1(ByRef Y As Integer,ByVal Z As Integer)
y=y+z
z=y-Z
End Sub

  • 1、
【正确答案】 1、21    
【答案解析】[解析] 本题考查参数传递的相关知识。ByVal表示参数按值传递,过程调用中只是相应位置实参的值“单向”传递给形参处理,而被调用过程内部对形参的任何操作引起的形参值得变化均不会影响实参的值;ByRef表示参数按地址传递,过程调用中是将相应位置实参的地址传递给形参处理,而被调用过程内部对形参的任何操作引起的形参值得变化又会反向影响实参的值,具有“双向性”。在fun1过程中,y为按地址传递,其值随实参而变;z为按值传递,其对应实参值不变。Form Load() 为变量赋初值为3,在Command11_click() 中,b为9,fun1 x,b执行后,x=12,b=9; 第二条fun1 x,b执行后,x=21,b=9,因此窗体中的显示结果为:x=21。