下列程序的运行结果是( )。#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;}
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。