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); }

题目类型: 问答题

题目内容

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

题目纠错