设有以下函数: f(int i) { int j=0; static int k=3; i++: j++; return(i+j+k); } 如果下面的程序中调用该函

admin2019-05-17  43

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

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

答案A

解析 main()函数三次调用f()函数。每次调用f()函数,j(局部变量)的初值均为0,而k(局部静态变量)则保留前次调用形成的结果。main()函数第一次调用f()函数:当i=0时,f(2)=3+1+3=7;main()函数第二次调用f()函数:当i=1时,f(2)=3+1+3=7;main()函数第三次调用f()函数:当i=2时,f(2)=3+1+3=7。
转载请注明原文地址:https://jikaoti.com/ti/VKf0FFFM
0

最新回复(0)