题目详情

已知函数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语句执行过程。形参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值被改变为是6,在f中a和x是两个数据对象,所以f结束时返回a+x值为11(5+6)。

若以值调用方式调用g(a),则在函数g执行时,其形参x是一个独立数据对象(值为2),接下来进行运算“x=x*(x+1)”,运算前x值为2,运算后x值改变为6,最后返回到函数f,a值不改变,仍然是2,所以f结束时返回a+x值为7(即2+5)

你可能感兴趣的试题

单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • 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)
查看答案

相关题库更多 +