函数f、g的定义如下,执行表达式
函数f、g的定义如下,执行表达式<y= (2)》的运 算时,函数调用g(a分别采用引用调用(call by” reference)方式和值调用(call by value)方式,则该表达式求值结束后y的值分别为()(2019年软件设计师上半年)
A.9、6
B.20、6
C.20、9
D.30、9
参考答案:B
参考解析:执行y=f(2),即传参x=2至f()。首先la=x+1=2+1=3。(1) 9(a采用引用调用时,在g(a)函数中, 将x记为 x"以区分函数,x'=x'*x'+1=a"la+1=10, 由于是引|用调用,会影响形参la的取值,此时la=10, 接下来计算la*x=10*2=20。(2)g(a)采用值调用,在g(a)函数中,将x记为x'以区分函数,x'=x'*>x'+1=la*la+1=10,由于是值调用,不会影响形参la的取值,此时la仍然为3,接下来计算la*x=3*2=6