单选题 以下程序执行后的输出结果是
fun(int x,int y)
static int m=0,1=2;
i+=m+1;m=i+x+y;return m;

main()
int j=1,m=1,k;
k= fun(j,m);printf("%d,",k);
k= fun(j,m);printf("%d/n",k);

A) 5,5 B) 5,11 C) 11,11 D) 11,5

【正确答案】 B
【答案解析】[解析] main函数中的局部变量m与fun函数{中的静态局部变量m同名,因此main访问的是其局部变量m,所以mam中的两次函数调用,实际上都是调用fun(1,1)。第一次调用时,i=i+(m+1)=2+(0+1)=3,m=i+x+y=3+1+1=5。第二次调用时,i=i+(m+1)=3+(5+1)=9,m=i+x+y=9+1+1=11。所以程序输出5,11。