📜  C |存储类和类型限定符|问题18

📅  最后修改于: 2021-05-25 22:21:58             🧑  作者: Mango

以下程序的输出

#include 
int fun(int n)
{
    static int s = 0;
    s = s + n;
    return (s);
}
  
int main()
{
    int i = 10, x;
    while (i > 0)
    {
        x = fun(i);
        i--;
    }
    printf ("%d ", x);
    return 0;
}

(A) 0
(B) 100
(C) 110
(D) 55答案: (D)
说明:由于s是静态的,因此将i的不同值一一添加。

所以s的最终值为

s = i +(i-1)+(i-2)+…3 + 2 + 1。

s的值为i *(i + 1)/ 2。对于i = 10,s为55。
这个问题的测验

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。