以下程序的运行结果是20 28还是20 18?求过程
Dim x As Integer,y as integer,z as integer
Subs1(a as integer,b as integer)
Dim c as integer
a=2*a:b=b+2:c=a+b
End sub
Sub s2(a As integer,ByVal b as integer)
Dim c as integer
a=2*a
b=b+2
c=a+b
End sub
private sub command1_click()
x=4:y=4:z=6
call s2(x,y)
print x+y+z
End sub
以下程序的运行结果是20 28还是20 18?求过程 Dim x As Integer,y as
答案:2 悬赏:0
解决时间 2021-12-30 10:55
- 提问者网友:虛偽丶靜
- 2021-12-30 04:04
最佳答案
- 二级知识专家网友:滚刀废物浮浪人
- 2021-12-30 05:28
'程序执行后x=4:y=4:z=6,调用子过程s1,执行a=2*a后a为8,执行b=b+2后b为6,执行c=a+b后c为14
'结束s1子过程,由于是传址,x,y的值相应的变为a,b的值,也就是此时x=8,y=6
'执行print x+y+z ,x+y+z=8+6+6=20,所以输出20
'调用子过程s2,执行a=2*a后a为16,执行b=b+2后b为8,执行c=a+b后c为24
'结束s2子过程,由于a是传址,x的值相应的变为a的值,也就是此时x=16,由于b是传值,y的值不变,依然是6
'执行print x+y+z ,x+y+z=16+6+6=28,所以输出28
'最后结果为20 28
Dim x As Integer, y As Integer, z As Integer
Sub s1(a As Integer, b As Integer)
Dim c As Integer
a = 2 * a
b = b + 2
c = a + b
End Sub
Sub s2(a As Integer, ByVal b As Integer)
Dim c As Integer
a = 2 * a
b = b + 2
c = a + b
End Sub
Private Sub Command1_Click()
x = 4: y = 4: z = 6
Call s1(x, y)
Print x + y + z
Call s2(x, y)
Print x + y + z
End Sub
'结束s1子过程,由于是传址,x,y的值相应的变为a,b的值,也就是此时x=8,y=6
'执行print x+y+z ,x+y+z=8+6+6=20,所以输出20
'调用子过程s2,执行a=2*a后a为16,执行b=b+2后b为8,执行c=a+b后c为24
'结束s2子过程,由于a是传址,x的值相应的变为a的值,也就是此时x=16,由于b是传值,y的值不变,依然是6
'执行print x+y+z ,x+y+z=16+6+6=28,所以输出28
'最后结果为20 28
Dim x As Integer, y As Integer, z As Integer
Sub s1(a As Integer, b As Integer)
Dim c As Integer
a = 2 * a
b = b + 2
c = a + b
End Sub
Sub s2(a As Integer, ByVal b As Integer)
Dim c As Integer
a = 2 * a
b = b + 2
c = a + b
End Sub
Private Sub Command1_Click()
x = 4: y = 4: z = 6
Call s1(x, y)
Print x + y + z
Call s2(x, y)
Print x + y + z
End Sub
全部回答
- 1楼网友:我叫很个性
- 2021-12-30 06:31
应该是变量调用的问题 你可以先把程序发出来,我帮你参考,修改一下
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯