问题
单项选择题
在下面的程序代码中,a是全局变量。若以引用调用(call by reference)方式调用函数 f,则输出结果为 (1) ;若以值调用(call by value)方式调用函数f,输出结果为 (2) 。 |
(2)
A.3
B.4
C.5
D.7
答案
参考答案:C
解析: 调用函数f时传递给形参a的值为1,若采用传值的方式调用g(c),那么,因为c=a+1,所以,局部变量c的初始值为2。执行g(c)调用时,在g(c)函数中,只是更改了x和b的值,不会影响c值,所以,return a+c,会返回3。第1个空的正确答案为选项D。 如果采用引用调用,那么,对b进行运算时,实际上也同时对c作了修改。所以,在g()函数中,x变量的结果为2*2=4,b=x/2+b=4/2+2=4。在此函数调用结束后,c值为4,所以,在f()函数中,return a+c的结果就是5。综上所述,第2空的正确答案为选项C。