当前位置:首页计算机类软件水平考试初级程序员->已知函数f132、f232定义如下图所示。设调用函数f1时传

已知函数f132、f232定义如下图所示。设调用函数f1时传递给形参x值是1,若函数调用f2(a)采用引用调用(call by reference)方式传递信息,则函数f1返回值为( );若函数调用f2(a)以值调用(call by value)方式传递信息,则函数f1返回值为(请作答此空)。

初级程序员,章节练习,基础复习,初级程序员练习

  • A.-5
  • B.6
  • C.12
  • D.15
答案: A
本题解析:

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

函数f1被调用而运行时,其局部变量值变化情况如下:在调用f2(a)之前,x值为1,a值为5。在以引用调用方式调用f2(a)时,形参x是实参a引用,在函数f2中x就是函数f1中a别名(或者说此时x与a所对应存储单元是同一个,只是角度不同而已),因此执行函数f2时,条件表达式x>1即等同于a>1,a值是5所以该条件表达式成立,从而执行了"x=x*x",就将x所对应存储单元内容改为了25,然后结束f2执行并将所返回-10赋值给f1中x,因此在f1结束时返回值为a+x=25-10=15。

在值调用方式下调用f2(a)时,是将实参a值5传递给f2形参x,a和x所对应存储单元是不同,此后执行f2时,由于x值是5,所以条件表达式x>1即等同于5>1,是成立,从而执行了"x=x*x",此时是将f2中x修改为25,与f1中a和x都无关,在结束f2执行并将返回值-10赋值给f1中x后,f1结束时进行计算为a+x=5-10=-5。

更新时间:2022-08-04 04:57
纠错

你可能感兴趣的试题

单选题

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

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

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

  • A.V(S1)、P(S1)和V(S2)V(S3)
  • B.P(S1)、V (S1)和V(S2)V(S3)
  • C.V(S1)、V(S2)和P(S1)V(S3)
  • D.P(S1)、V(S2)和V(S1)V(S3)
查看答案
单选题

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

  • A.序列图
  • B.状态图
  • C.通信图
  • D.活动图
查看答案
单选题

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

  • A.合并分叉
  • B.分支
  • C.合并汇合
  • D.流
查看答案
单选题

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

  • A.产甲2套,乙3套
  • B.生产甲1套,乙4套
  • C.生产甲3套,乙4套
  • D.生产甲4套,乙2套
查看答案
单选题

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

  • A.见图A
  • B.见图B
  • C.见图C
  • D.见图D
查看答案