有以下程序: #include int f(int k) { static int n=0; int m=0; n++;m++;k++; return 11+m+k: } main()

admin2019-01-11  17

问题 有以下程序:
    #include
    int f(int k)
    {  static int n=0;
    int m=0;
    n++;m++;k++;
    return 11+m+k:
    }
    main()   
    {  int k;
    for(k=0;k<2;k++)printf("%d,",f(k));
    pnnff("\n");  
    }
    程序运行后的输出结果是(    )。

选项 A、3,5,
B、3,6,
C、3,7,
D、0,3,

答案A

解析 static静态变量只在声明时初始化一次。因此,第一次调用函数f(k=0),此时n=m=k=0,经过自增操作n=1,m=1,k=1,返回值为3。第二次调用函数f(k=1),此时n=1,k=1,m=0,经过自增操作,n=2,k=2,m=1,返回值为5。故最终结果为3,5。故答案为A选项。
转载请注明原文地址:https://jikaoti.com/ti/B0a0FFFM
0

最新回复(0)