A-A+
下列程序的运行结果是()。 #include<iostream.h> voidfun(int
问题详情
下列程序的运行结果是()。 #include<iostream.h> voidfun(int &a,int b=3) { static int i=2; a=a+b+i; i=i+a; } void main() { int x=5,y=2; fun(x,y); cout<<x<<","; fun(x); cout<<x<<endl; }
A.5,2
B.7,11
C.11,23
D.9,23请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:D
解析:由程序中的主函数main入手,定义了变量x=5,y=2。然后调用fun函数,其中a为引用地址,其改变会影响实参的改变。fun函数中的i=2定义为静态变量,有效到文件结束。所以主函数中第一个输出x值为函数fun中的a值,即9。而i=11。第二次调用fun函数时,x=9,i=11,所以a=9+11+3=23。