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

题库2022-08-02  40

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

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

答案 C

解析 传值调用:形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变。
引用(传址)调用:形参取的是实参的地址,即相当于实参存储单元的地址引用,因此其值的改变同时就改变了实参的值。
本题中,a=x>>1,x值为5,右移操作相当于除以2,如果结果出现小数部分,则自动向下取整,所以 a=2;采用传值调用时,由于 g(a)对数据x的运算不会影响原来x的值,所以a+x=5+2=7;采用引用调用时,由于 g(a)对数据x的运算会影响原来x的值,当执行g(a)后x的值为6,所以a+x=5+6=11 。
转载请注明原文地址:https://tihaiku.com/congyezige/2415854.html

最新回复(0)