vb这道题里面的a在第二,三次调用函数是怎么变为了3 谁能解释下?
答案:2 悬赏:40 手机版
解决时间 2021-03-29 16:17
- 提问者网友:最爱你的唇
- 2021-03-29 04:11
vb这道题里面的a在第二,三次调用函数是怎么变为了3 谁能解释下?
最佳答案
- 五星知识达人网友:woshuo
- 2021-03-29 04:56
函数fun_s(a As Integer) 中参数a是默认按地址传递参数值,
VB函数参数有两种传递方式,
一种按值传递Byval,函数中参数值改变不会回传给主调函数或过程,
一种按地址传递Byref,函数中参数值改变会回传给主调函数或过程,
默认按地址传递Byref,如果要按值传递,需要在参数前加Byval。
本题中fun_s(a As Integer),a按地址传递参数,
第一次调用函数,
a = a + 1=2+1=3,
b = b + 1=0+1=1,
c = c + 1=0+1=1,
fun_s = a + b + c=5;
a的值被改变为3。
第二次调用函数,
a = a + 1=3+1=4,
b = b + 1=0+1=1,
c = c + 1=1+1=2,
fun_s = a + b + c=7;
a的值被改变为4。
第三次调用函数,
a = a + 1=4+1=5,
b = b + 1=0+1=1,
c = c + 1=2+1=3,
fun_s = a + b + c=9。
故选择C项
VB函数参数有两种传递方式,
一种按值传递Byval,函数中参数值改变不会回传给主调函数或过程,
一种按地址传递Byref,函数中参数值改变会回传给主调函数或过程,
默认按地址传递Byref,如果要按值传递,需要在参数前加Byval。
本题中fun_s(a As Integer),a按地址传递参数,
第一次调用函数,
a = a + 1=2+1=3,
b = b + 1=0+1=1,
c = c + 1=0+1=1,
fun_s = a + b + c=5;
a的值被改变为3。
第二次调用函数,
a = a + 1=3+1=4,
b = b + 1=0+1=1,
c = c + 1=1+1=2,
fun_s = a + b + c=7;
a的值被改变为4。
第三次调用函数,
a = a + 1=4+1=5,
b = b + 1=0+1=1,
c = c + 1=2+1=3,
fun_s = a + b + c=9。
故选择C项
全部回答
- 1楼网友:渊鱼
- 2021-03-29 05:29
第一次调用函数后 a的值为3
第二次调用函数后 a的值为4
第三次调用函数后 a的值为5
因为vb自定义函数参数默认是传址的,如果你把函数写成
Function fun_s(Byval a As Integer) As Integer
那a的值就会保持为2
第二次调用函数后 a的值为4
第三次调用函数后 a的值为5
因为vb自定义函数参数默认是传址的,如果你把函数写成
Function fun_s(Byval a As Integer) As Integer
那a的值就会保持为2
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯