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

以下程序的输出

null

#include <stdio.h>
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的最终值是

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

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

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享