已知函数f( ),g( )定义如下所示,调用函数f( )时传递给形参x值是5,若g(a)采用引用调用(call by reference)方式传递参数,则函数f( )返回值为( );若g(a)采用值调用(call by value)方式传递参数,则函数f( )返回值(请作答此空)。其中,表达式“x>>1”含义是将x值右移1位,相当于x除以2。

- A.35
- B.32
- C.11
- D.7
正确答案及解析
正确答案
D
解析
传值调用:形参取是实参值,形参改变不会导致调用点所传实参值发生改变。引用(传址)调用:形参取是实参地址,即相当于实参存储单元地址引用,因此其值改变同时就改变了实参值。本题中,a=x>>1,x值为5,则 a=2;采用传值调用时,由于 g(a)对数据x运算不会影响原来x值,所以a+x=5+2=7;采用引用调用时,由于 g(a)对数据x运算会影响原来x值,当执行g(a)后x值为6,所以a+x=5+6=11 。
你可能感兴趣的试题

-
- A.V(S2)和P(S4)
- B.P(S2)和V(S4)
- C.P(S2)和P(S4)
- D.V(S2)和V(S4)
- 查看答案

-
- A.V(S1)P(S2)和V(S3)
- B.P(S1)V(S2)和V(S3)
- C.V(S1)V(S2)和V(S3)
- D.P(S1)P(S2)和V(S3)
- 查看答案

-
- A.P(S4)和V(S4)V(S5)
- B.V(S5)和P(S4)P(S5)
- C.V(S3)和V(S4)V(S5)
- D.P(S3)和P(S4)V(P5)
- 查看答案

-
- A.P(S3)和V(S4)V(S5)
- B.V(S3)和P(S4)P(S5)
- C.P(S3)和P(S4)P(S5)
- D.V(S3)和V(S4)V(S5)
- 查看答案

-
- A.P(S2)和P(S4)
- B.P(S2)和V(S4)
- C.V(S2)和P(S4)
- D.V(S2)和V(S4)
- 查看答案