刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

单选题

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

A
35
B
32
C
11
D
7
使用微信搜索喵呜刷题,轻松应对考试!

答案:

C

解析:

本题考查程序语言基础知识。

首先分析函数f的语句执行过程。形参x的值为5,将x的值(二进制形式高位都为0,低八位为00000101)右移1位后赋值给a,使得a的值为2(二进制形式高位都为0,低八位为00000010),然后执行函数调用g(a)。

若以引用调用方式调用g(a),则在函数g执行时,其形参x相当于函数f中a的别名。对于运算“x=x*(x+1)”,在运算前x的值为2,运算后x的值改变为6。返回到函数f后,由于a的值被改变,所以函数f结束时返回a+x的值为11(即5+6)。

若以值调用方式调用g(a),则在函数g执行时,其形参x是一个独立的数据对象(值为2)。接下来进行运算“x=x*(x+1)”,运算前x的值为2,运算后x的值改变为6。但由于函数g以值传递方式调用,这个改变不会影响到函数f中的变量a,所以函数f结束时返回a+x的值为7(即2+5)。因此,当g(a)采用引用调用时,函数f的返回值为11;当g(a)采用值调用时,函数f的返回值为7。选项C正确。

创作类型:
原创

本文链接:已知函数f().G()的定义如下所示,调用函数f时传递给形参x的值是5。若g(a)采用引用调用(ca

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share