int fun(int m) { static int n=1; ++m; n++; return(m+n); } void main() { int a,b; a=fun(0);b=fun(10); printf("a=%d,b=%d\n",a,b); }
【正确答案】:a=3,b=14
【题目解析】:本题考察静态变量,静态变量只在第一次调用所在函数时进行初始化,以后调用不再进行初始化而是使用上次调用结束时该变量的值。调用fun(0),返回的是m+n=1+2=3,调用fun(10)返回m+n=11+3=14