在函数调用中,值调用方式将(32)。下面所定义的函数foo为值调用方式, 函数g的第一个参数采用值调用、第二个参数采用引用调用方式传递数据。若有表达式 y=foo(2),则foo调用执行之后,y被赋值为(33)。 (33)

admin2020-08-10  34

问题 在函数调用中,值调用方式将(32)。下面所定义的函数foo为值调用方式, 函数g的第一个参数采用值调用、第二个参数采用引用调用方式传递数据。若有表达式 y=foo(2),则foo调用执行之后,y被赋值为(33)。

(33)

选项 A、8
B、7
C、5
D、3

答案B

解析 传值调用:形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变。
引用(传址)调用:形参取的是实参的地址,即相当于实参存储单元的地址引用,因此其值的改变同时就改变了实参的值。
在本题中,首先在foo函数中,传入给x的值为2,然后b的使为1,接下来调用g函数,x的值为2,所以g函数b的值为2(值传递),b的值为1,所以g函数x的值为1(地址传递,故x的值变化,会引起foo函数中b值的变化)。经过g函数的一系列语句,b=3,x=5。则foo中b值变成5,最终foo函数的返回值为5+2=7。
转载请注明原文地址:https://kaotiyun.com/show/CpVZ777K
0

最新回复(0)