第5题 执行下述代码,将输出( )。

别灰心,再试一次!

💡 真题解析

【答案】A

【考纲知识点】 函数参数传递方式、函数调用与变量作用域

【解析】

代码分析

函数swap的参数传递方式:

函数swap有两个参数,第一个参数a是值传递,第二个参数b是引用传递。

值传递是将实参的值复制一份传递给形参,在函数内部对形参的修改不会影响到实参。引用传递是将实参的引用(即别名)传递给形参,在函数内部对形参的修改会直接影响到实参。

函数调用过程:

在main函数中,定义了两个整型变量x = 1 和y = 2。

调用swap(x, y) 时,x的值被复制给swap函数的形参a,y的引用被传递给swap函数的形参b。

在swap函数内部,执行int temp = a; a = b; b = temp; 语句,交换了a和b的值。由于a是值传递,a的改变不会影响到x;而b是引用传递,b的改变会影响到y,此时y的值变为1。

输出结果:

在main函数中,调用swap函数后,x的值仍然是1,y的值变为1,所以std::cout << x << y; 输出的结果是11。

综上,答案选A。