考点解析:
函数调用时基本的参数传递方式有传值与传地址两种,在传值方式下是将实参的值传递给形参,因此实参可以是表达式(或常量),也可以是变量(或数组元素),这种信息传递是单方向的,形参不能再将值传回给实参。在传地址方式下,需要将实参的地址传递给形参,因此,实参必须是变量(数组名或数组元素),不能是表达式(或常量)。这种方式下,被调用函数中对形式参数的修改实际上就是对实际参数的修改,因此客观上可以实现数据的双向传递。
试题分析:
函数main()、f()的定义如下所示,调用函数f()时,第一个参数采用传值(call by value)方式,第二个参数采用传引用(call by reference)方式,main函数中“print(x)”执行后输出的值为( )。
A.1
B.6
C.11
D.12
试题解析:
通过题意得知,
右面:f()中x=5为传值,a=x=1为传址。
x=2x+1=2*5+1=11
a=a+x=1+11=12
因为a是传引用,所以左面:x=a=12
此题选:D