VB中的fun问题

option explicitprivate sub command1_click() dim a as integer, b sa integer, c as integer a=5: b=10: c=15 print fun(a,b,c)+fun(a,b,c)end subprivate function fun(x as integer, y as integer, z as integer ) as integer z=x x=x+y y=y+z fun=x+yend function 程序运行后abc值变为什么呀,其中的fun(a,b,c)+fun(a,b,c)如何计算呢,最好详细点啊

运行后a,b,c的值变成了 30 30 15 最后输出的是90 计算 fun(a,b,c)可以看下面:第一次private function fun(x as integer, y as integer, z as integer ) as integer '传进来后 x=a=5 y=b=10 z=c=15 z=x '此时z变成 5 x=x+y '此时x变成5+10=15 y=y+z '此时y变成 10+5=15 fun=x+y '返回x+y即 30 (此时a,b,c变为15 15 5,这里很重要!!!)end function 第二次依此类推private function fun(x as integer, y as integer, z as integer ) as integer '传进来后 x=a=15 y=b=15 z=c=5 z=x '此时z变成 15 x=x+y '此时x变成15+15=30 y=y+z '此时y变成 15+15=30 fun=x+y '返回x+y即 60 (此时a,b,c变为30 30 15!!!)end function 所以返回二次函数调用的结果为 30+60 即 输出 90 传址的时候默认是会修改传进去的参数的,即a 传给 x,而程序中x改变,a也会跟着改变..所以一般不采用在函数中改变参数值的做法,可以在fun里写上 i=x :j=y: k=z 再用i,j,k来进行你需要的计算,这样就不会出现非预期的问题了.像你这样使用函数明显会出问题的,你们老师应该强调这一点吧.如果不想参数跟着修改的话,可以用()把参数括起来,比如 print fun((a),(b),(c)) 这样的方式 ,那么在函数fun中如何修改x,y,z的值,a,b,c都不会跟着变的!!
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-20
输出60,类型参数默认都是值传参,也就是不影响原来参数的值,所以第一次fun(x, y, z) = fun(a, b, c) = fun(5, 10, 15):x = 5,y = 10,z = 15z = x,这里z变为x的值5,但是c的值没改变还是15x = x + y = 5 + 10 = 15,a的值没变化y = y + z = 10 + 5 = 15,b的值没变化返回x + y = 15 + 15 = 30 也就是第一次掉用fun()函数后结果是30,第二次调用fun()还是传入参数a,b,c,因为执行函数对a,b,c没有影响,所以还是传入5,10,15,结果还是30,30+30=60,最后打印出60。
第2个回答  2013-09-20
fun(a,b,c) + fun(a,b,c)z=5 + z=15x=5+10=15 x=15+15=30y=10+5=15 y=15+15=30fun=15+15=30 fun=30+30=60a=15,b=15,c=5 a=30,b=30,c=15结论为30+60=90,a=30,b=30,c=15

vb中fun的计算
其中实参(4,11)参数传递给形参(X,Y)在这个函数中X=4 Y=11 这时候X=X+Y后X=15 Y=Y+K好因为这个fun函数里面K=0(没有参数)所以Y=11 接下来K虽然没有申明变量,但是编译器自动申明了,K=0+15+11=26 fun=26 所以输出的是26 15 11 ...

VB中的fun问题
即a 传给 x,而程序中x改变,a也会跟着改变..所以一般不采用在函数中改变参数值的做法,可以在fun里写上 i=x :j=y: k=z 再用i,j,k来进行你需要的计算,这样就不会出现非预期的问题了.像你这样使用函数明显会出问题的,

vb中fun和fun()有什么区别
function xxx() 这是个函数的格式,fun()后面这个括号和function(中文函数)有关,与fun无关 fun是这个函数的名字,你可以定义很多的function xxx()这个xxx可以是fun fun1 fun2..Fun = s 是说当调用这个函数的时候,函数返回的值是s,比如在别的地方你定义了k=fun() 那么k=fun()=s 这里functi...

求助:一道VB题,请大家帮忙,谢谢
准确的说fun返回的是a除以n所得值的整数部分,就是 fun=int(a\/n)原因是当a>=n时。进行循环(while a>=n)第一次,a值减掉一个N,M为1(M初始为0),你可以这样理解:当a\/n时,为了使=号成立,可以写成这样,a\/n=m 余(a-n) 照这样看来第一次就是这样:a\/n=1 余a-n,同理,如...

VB中有sub和function过程的这道题为什么答案是 7 11 15
a=a+2=3+2=5 b=b+2=0+2=2 c=c+2=2+2=4 fun1=a+b+c=11 所以输出11 第三次运行fun1时:a=a+2=5+2=7 b=b+2=0+2=2 c=c+2=4+2=6 fun1=a+b+c=15 所以输出15 这道题的重点如下:1、fun1的形参a是传址调用,所以fun1内对a的修改会直接改变实参k的值,所以三次...

vb中 关于fun过程的一些问题,谢谢了,抱歉只有5分了,那里我用大括号标...
在定义fun过程里,t=1, t=t*i,那在调用f(i)里面应该计算的是 i! 。所以,For i = m To n t = f(i)s = s + t Next 计算的就是m!+...+n!了。如果想要得到1 +2!+3!+...m!的话,应该使用 For i = 1 To m t = f(i)s = s + t Next lblResult.Caption = ...

VB中的fun问题
30+60 即 输出 90 传址的时候默认是会修改传进去的参数的,即a 传给 x,而程序中x改变,a也会跟着改变..所以一般不采用在函数中改变参数值的做法,可以在fun里写上 i=x :j=y: k=z 再用i,j,k来进行你需要的计算,这样就不会出现非预期的问题了.像你这样使用函数明显会出问题的,...

vb中的fun是什么意思
1. 在VB中,"fun"通常不是标准的函数名,它可能是某个自定义函数或者程序员为了简化代码而采用的缩写。2. 在VB中定义函数时,会使用标准的函数声明方式,如`Function fun(x As Integer, y As Integer) As Integer`,并在函数体中实现具体的逻辑。3. 函数在VB中是用来执行特定任务的代码块,它...

vb中的fun是什么意思
fun函数是自定义的C\/C++语言函数,函数功能多样。该函数名为“函数”英文function的简写,一般在示例和试题中使用,通常在主函数中被调用。比如int fun(int x,int y),void fun(char* a,char* b) 等等。有先前的定义,就可以在主函数里调用它,比如ans=fun(3,7);或者fun(p1,p2);。

vb FUN 这咋做求解释
递归调用 i=1时,fun(1)=1,打印1 i=2时,fun(2)=fun(1)+fun(0)=1+1=2,打印2 i=3时,fun(3)=fun(2)+fun(1)=2+1=3,打印3 i=4时,fun(4)=fun(3)+fun(2)=3+2=5,打印5

相似回答