问题 单项选择题

在下面的程序代码中,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。

单项选择题
单项选择题