函数f30、g30定义如下所示,已知调用f时传递给其形参x值是10。若在f中以传值方式调用g,则函数f返回值为( );若以引用方式调用g,则函数f返回值为(请作答此空)。
本题考查程序语言基础知识。
若实现函数调用时,将实参值传递给对应形参,则称为是传值调用。这种方式下形式参数不能向实参传递信息。引用调用本质是将实参地址传给形参,函数中对形参访问和修改实际上就是针对相应实际参数变量所作访问和改变。
根据题目说明,当调用函数f时,形参x首先得到10,接下来以传值方式调用函数g,也就是将f中x值传给g参数x。在这种情况下,系统为f中x与g中x分别分配存储单元。执行g中"x=x+5"运算后,g中x值变为15,返回值15存入f变量y(即y值变为10),而f中x值没有变,因此函数f返回值为25(x=10,y=15)。
在引用方式调用g时,g中对其形参x修改可视为是对调用g时实参修改,因此调用g之后,f中y得到返回值15,f中x也被修改为15,所以f返回值为30。