正在载入在线练习界面,本页内容可直接阅读…

AK CSP › CSP-J 2025 第一轮真题 › 第 10 题

CSP-J 2025 第一轮 第 10 题:solve(x,y) 调用后 x 和 y 的值

单项选择 · 结构体、指针与引用 · 难度 中等 · 答案 C

题目

考虑以下 C++ 函数:

void solve(int &a, int b) {
    a = a + b;
    b = a - b;
    a = a - b;
}
int main() {
    int x = 5, y = 10;
    solve(x, y);
}

在 main 函数调用 solve 后,$x$ 和 $y$ 的值分别是?
CSP-J 2025 第一轮 第 10 题 原题
原题扫描(页面加载后可直接在线作答)

选项

  • A. $5,10$
  • B. $10,5$
  • C. $10,10$
  • D. $5,5$

答案

C

题解

答案是 C:\(x=10,\ y=10\)。

关键在于参数的传递方式:

  • int &a 是引用参数,a 就是 x 的别名,修改 a 会修改 x。
  • int b 是值参数,b 只是 y 的副本,修改 b 不会影响 y。

进入函数时,a = 5,b = 10,逐步执行:

语句a(即 x)by
a = a + b;151010
b = a - b;15510
a = a - b;10510

所以函数结束后,x 变成 10,y 仍然是 10。

真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1 京公网安备11010502062986号