设有如下程序: Private Sub Form_Click() Dim a As Integer,b As Intger a=20:b=50 p1 a,b p2 a,b p3 a

admin2010-03-30  29

问题 设有如下程序:
   Private Sub Form_Click()
       Dim a As Integer,b As Intger
       a=20:b=50
       p1 a,b
       p2 a,b
       p3 a,b
       Print"a=";a,"b=";b
   End Sub
   Sub p1(x As Integer,ByVal y As Integer)
       x=x+10
       y=y+20
   End Sub
   Sub p2(ByVal x As Integer,y As Integer)
       x=x+10
       y=y+20
   End Sub
   Sub p3(ByVal x As Integer,ByVal y As Integer)
       x=x+10
       y=y+20
   End Sub
   该程序运行后,单击窗体,则在窗体上显示的内容是:a=【  】和b=【  】。

选项

答案30, 70

解析 本题考查了参数的虚实结合的传送方式。用虚实结合的方式,实现调用程序和被调用过程之间的数据传送。传送方式有两种:按值传送和按址传送。按值传送:Call语句中的实际参数是常量或表达式时表示按值传送。若要求变量按值传送,可以把变量用括号括起来,使之成为一个表达式。例如,实际参数写成(a),则(a)表示一个表达式,表示按值传送。在过程的定义语句中使用ByVal关键字指定形式(虚拟)参数,也表示按值传送参数。 按址传送:Call语句中的实际参数是变量时,表示是按地址传送参数。  理解了以上知识点后我们再来分析本题。题中的三个过程p1中x为传址方式,y为传值方式;p2中x为传值方式,y为传址方式;p3中x和y都为传值方式。特别要注意的是在传值调用时不影响实际参数,传址调用时影响实际参数。故在调用了三个过程后,a只在p1过程中受到了影响b只在p2过程中受到了影响。在p1中执行的语句a=a+10使a的值变为30。在p2中执行的语句b=b+20使b的值变为70。
转载请注明原文地址:https://kaotiyun.com/show/31mp777K
0

最新回复(0)