有以下程序: #include<stdio.h> int f(int n); void main() { int a=3,s; s=f(a);s=s+f(a); printf("%d\n",s);

admin2013-10-14  25

问题 有以下程序:
#include<stdio.h>
    int f(int n);
    void main()
    {
      int a=3,s;
      s=f(a);s=s+f(a);
      printf("%d\n",s);
    }
    int f(int n)
    {
      static int a=1;
      n+=a++;
      return n:
    }
    程序运行后的输出结果是(    )。【09年9月】

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

答案C

解析 在主函数中第一次调用f(a)时,得到变量s的值等于4,在第二次调用f(a)时,在子函数f中由于变量a是一个局部静态变量,所以这次其值等于2,因而在主函数中第二次调用f(a)后,其返回值等于5,最后变量s的值等于9。
转载请注明原文地址:https://kaotiyun.com/show/e0Jp777K
0

最新回复(0)