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

单选题

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


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

答案:

D

解析:

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

首先分析函数f的语句执行过程。已知函数f中形参x的值为5,当调用函数f时,首先执行表达式"X>>1",即将x的值(二进制形式高位都为0,低八位为00000101)右移一位后赋值给a,使得a的值为2(二进制形式高位都为0,低八位为00000010)。接下来根据题目描述,存在两种情况:

  1. 若g(a)采用引用调用(call by reference)方式传递参数:在函数g执行时,形参x相当于在函数f中a的别名。执行运算“x=x*(x+1)”前,x的值为2,运算后x的值改变为6。返回到函数f后,由于a和x在f中是两个不同的数据对象,所以f结束时返回的是a与x的和,即返回值为11(5+6)。
  2. 若g(a)采用值调用(call by value)方式传递参数:在函数g执行时,形参x是一个独立的数据对象(值为2)。执行运算“x=x*(x+1)”后,x的值改变为6,但这一改变不会影响函数f中的a的值。因此,返回到函数f后,a的值仍然是2。所以f结束时返回的是a与原始的x值的和,即返回值为7(即2+5)。
创作类型:
原创

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

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

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

分享考题
share