设有以下函数: f(int a) { int b=0; static int c=3; b++; c++; return(a+b+c); } 如果在下面的程序中调用该函数,则输出结果是______。

admin2013-06-11  25

问题 设有以下函数:       f(int a)    {  int b=0;    static int c=3;    b++; c++;    return(a+b+c);    }    如果在下面的程序中调用该函数,则输出结果是______。         main()    {  int a=2, i;       for(i=0; i<3; i++)printf("% d\n", f(a));    }

选项 A、7    8    9
B、7    9    11
C、7    10    13
D、7    7    7

答案A

解析 本题考查静态变量的问题。函数f中c是静态变量存放在静态存储区,在程序的整个运行期间都不释放占据的存储单元。函数f被调用3次,调用过程如下。
   第1次调用;a=2、b=0、c=3,执行b++和c++后b=1、c=4,f(a)=a+b+c=2+1+4=7
   第2次调用:a=2、b=0、c=4.执行b++和c++后b=1、c=5,f(a)=a+b+c=2+1+5=8
   第3次调用:a=2、b=0、c=5,执行b++和c++后b=1、c=6,f(a)=a+b+c=2+1+6=9
   所以输出结果为选项A。
转载请注明原文地址:https://kaotiyun.com/show/fCJp777K
0

最新回复(0)