已知函数f(). G()的定义如下所示,调用函数f时传递给形参x的值是5。若g(

练习题库2022-08-02  44

问题 已知函数f(). G()的定义如下所示,调用函数f时传递给形参x的值是5。若g(a)采用引用调用( call by reference)方式传递参数,则函数f的返回值为(  );若g(a)采用值调用(.call by value)的方式传递参数,则函数f的返回值为(  )。其中,表达式“X>>1”的含义是将x的值右移1位,相当于x除以2。A.35B.32C.11D.7

选项 A.35
B.32
C.11
D.7

答案 C

解析 此题考查程序设计基础,必须搞清楚值传递和引用传递的区别,在F函数中a=2,x=5,F函数调用G函数时采用引用传递,即G(a),将实参a的地址传递给G函数中的形参x,G函数运行后x的值是x=x*(x+1),等于6,形参x的值改变了,意味着实参a的值也改变成了6,即在F函数中a的值是6,x依然是5,所以F函数中的return a+x等于11。
若采用值传递,在G函数中x的值改变不会影响F函数中实参a的值,F函数的值依然是x=5,a=2,返回F函数的值return a+x,等于7,此题是经常考的试题,核心是考查实参与形参的两种传递方式。
转载请注明原文地址:https://tihaiku.com/congyezige/2427217.html

最新回复(0)