函数main( )、f( )的定义如下所示,调用函数f( )时,第一个参数采用传值(call by value)方式,第二个参数采用传引用(call by reference)方式,main函数中“print(x)”执行后输出的值为( )。

- A.1
- B.6
- C.11
- D.12
正确答案及解析
正确答案
D
解析
本题考查传址与传值的相关知识,传值调用中,形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变;而引用(传址)调用中,形参取的是实参的地址,即相当于实参存储单元的地址引用,因此其值的改变同时就改变了实参的值。
可以使用手动执行程序的方式来进行。在主函数中,调用f(5,x)之后:
f()函数中的x=5,a=1。
x=2*x+1,则x=11。
a=a+x,则a=12。由于a是以传址的方式传入的参数,所以主函数中的x与其值相同,也为12。打印结果应为12。





