【答案解析】解析:本题考查程序语言基础知识。 若函数调用时采用传值方式,则是将实参的值传给形参,再执行被调用的函数,对形参的修改不影响实参。若采用传引用方式,则是将实参的地址传递给形参,本质上是通过间接访问的方式修改实参,也可以简化理解为:在被调用函数中对形参的修改等同于是对实参进行修改。 当函数t和f运行时,其每个形参和局部变量都有各自的存储单元,下面图中矩形框表示存储单元。 如题中所述,调用t时传递给其形参x的值为5。因此函数t被调用而执行时,在执行函数调用f(x,a)之前,其形参x和局部变量a的值如下图(a)所示。 执行函数调用f(x,a)时,t中x的值传给f的形参r、a的地址传给f的形参s,如下图(b)所示。

在f执行时,其局部变量x的值由运算“x=2*s+1”改为33,其中运算时可理解为s提供了t的局部变量a的值(是由间接访问机制实现的)。接下来的运算为“s=x+r”,也就是将x的值(即33)与r的值(即5)相加得到38,然后(通过间接访问)存入t的局部变量a,结果如下图(c)、(d)所示。之后运算“r=x-1”将r的值改为32,结果如下图(e)所示。
