有以下程序 #include int f(int n); 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++; re

admin2019-04-24  51

问题 有以下程序
#include
int f(int n);
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;
}
程序运行后的输出结果是( )。

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

答案A

解析 静态变量是在编译时就被分配存储空间,所占用存储单元直到程序结束时才释放,其初始化只进行一次。所以第一次调用f()函数,计算的结果为n=4,a=2,s=4;第二次调用f()函数时,函数f()内的a初值为2,n=5,s=4+5=9,答案选A。
转载请注明原文地址:https://jikaoti.com/ti/Emf0FFFM
0

最新回复(0)