小杨正在编写一个“数字交换器”程序,他希望通过函数交换两个变量的值。请问运行以下代码后,屏幕上输出的是( )。
void exchange(int *a, int &b) {
int t = *a;
*a = b;
b = t;
}
int main() {
int x = 100, y = 200;
exchange(&x, y);
cout << x << " " << y;
return 0;
}在纸上逐行模拟程序执行,重点追踪变量值变化和输出语句。按照题目输入代入计算。正确答案B。
关键提醒:C++中的^是异或运算符,不是乘方!2^5=7而非32。这是最高频的错误。
【考点】指针传递|引用传递|函数参数
本题考查《GESP 四级大纲》"函数与指针/引用"模块。命题人专门针对"指针传址 vs 引用传值"这个易混点设题——四级考生普遍能区分传入值/引用,但一旦混用指针和引用,就会在函数内部产生歧义理解。