问题 单项选择题

有如下程序: #include<iostream> using namespace std; void fun(int&x,int y){int t=x;x=y;y=t;} int main() { int a[2]={1,2}; fun(a[1],a[0]); std::cout<<a[0]<<","<<a[1]<<std::end1; return 0; } 执行后的输出结果是( )。

A.2,2

B.1,1

C.1,2

D.2,1

答案

参考答案:B

解析: 程序中的fun函数的功能是实现函数中两个参数的交换。主函数中fun的调用中第一个参数为数组第二个值即2,第二个参数为第一个值即1。在fun的定义中第一个形参引用类型,其改变会改变主函数中实参的值;而第二个形参不是引用类型,其改变不会改变第二个实参,所以2,1的交换结果为1,1,即B。

选择题
单项选择题