有如下程序: Private Sub command1_Click()   a=1:b=1   Print"a=";a;",b=";b   Call mult((a),b)   Print"a=";a;";b=";b 语句

admin2012-03-22  27

问题 有如下程序:
   Private Sub command1_Click()
     a=1:b=1
     Print"a=";a;",b=";b
     Call mult((a),b)
     Print"a=";a;";b=";b  语句
   End Sub
   Sub mult(x,y)
     x=2*k
     y=3*k
     Print"x=";x;",y=";y
   End Sub
   运行后,标有“语句”的Print语句的输出结果是______。

选项

答案a=1,b=3

解析 考查考生对参数传递的掌握情况。
   [解题要点] 在Visual Basic语言中,虚实结合有值传递方式和地址传递方式,实参为常量或表达式,是值传递方式,这种传递是单向的。实参为变量,是地址传递方式,这种传递是双向的,在调用子程序时,形参的值如果改变了,会通过实参带回主程序。本题中,第1个实参变量a用括弧括起来,采用的是值传递方式;第2个实参数变量b没用括弧括起来,采用的是地址传递方式。在调用子程序后,第1个实参a的值为1,不管在子程序中是否被重新赋值,返回调用程序,保留调用前的值仍为1;第2个实参数b的值为1,在子程序中被重新赋值为3,返回调用程序就不再保留调用前的值,而是带回了形参的值3。因此,在标有“语句”的Print语句中的输出项为a=1,b=3。
   [错解分析] 参数的传值方式和传址方式的区别。
   [考点链接] 函数调用和参数传递。
转载请注明原文地址:https://kaotiyun.com/show/H1hp777K
0

最新回复(0)