问题
单项选择题
下列程序的运行结果是( )。
#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。