若有以下程序 #include int f(int m) { static int n=0; int a=2; n++; a++; return n+m+a; } main() { int k; for (k=0; k

admin2019-04-24  19

问题 若有以下程序
#include
int f(int m)
{ static int n=0;
int a=2;
n++; a++; return n+m+a;
}
main()
{ int k;
for (k=0; k<4; k++) printf("%d,", f(k));
}
则程序的输出结果是( )。

选项 A、4,6,8,10,
B、4,7,10,13,
C、4,5,6,7,
D、3,5,7,9,

答案A

解析 静态变量定义时的初始化只运行一次,并且其值在程序运行过程中一直存在,而局部变量则是用时分配,用完释放。main()函数中调用四次f()函数,f(0)=1+0+3=4,n=1,a=3;f(1)=2+1+3=6,n=2,a=3;f(2)=3+2+3=8,n=3,a=3;f(3)=4+3+3=10,n=4,a=3。所以答案选A。
转载请注明原文地址:https://kaotiyun.com/show/RGRp777K
0

最新回复(0)