单选题

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

单选题
【正确答案】 A
【答案解析】
单选题
【正确答案】 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。