函数g和f的定义如下所以,其中a是全局变量.

问题描述:

函数g和f的定义如下所以,其中a是全局变量.
若在函数g中以引用调用(call by reference)方式调用函数f(a),则函数g的返回值为(1),此时变量a的值为 (2)?
(1) A.25 B.12 C.10 D.8
(2) A.2 B.3 C.4 D.5
int g() {
a = 2;
return f(a);
}
int f(int x) {
a = a+1;
x = x+2;
return a*x;
}
1个回答 分类:综合 2014-12-08

问题解答:

我来补答
int g() {
a = 2;
return f(a);//在这里的调用的f(a),相当于为创建了一个新的变量,这个变量的值等于a,
} //而函数f()里调用的都是这个新创建的变量
int f(int x) {//由上可知这个函数里的a和上面f(a)里的a没有丝毫关系,只是全局变量
a = a+1; //在函数g()里a被赋值为2,因而a = a + 1 = 3;
x = x+2; //由于在g()中调用f(a),所以刚开始x = a = 2,然后x = x + 2 = 4;
return a*x;//a * x = 3 * 4 = 12,最后g()也返回12
}
 
 
展开全文阅读
剩余:2000
上一页:100 ,11
下一页:29