单选题
下列程序的运行结果是( )。
#include<iostream.h>
void fun(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;
【正确答案】
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。