有以下程序: #include int g(int n); main() {int a=1,s; s=g(a);s=s+g(a);printf(’’%d\n’’,s); } int g(int n) {static int x=1; n+=x++: ret

admin2022-11-11  16

问题 有以下程序:
#include
int g(int n);
main()
{int a=1,s;
s=g(a);s=s+g(a);printf(’’%d\n’’,s);
}
int g(int n)
{static int x=1;
n+=x++:
return n;
}
程序运行后的输出结果是(  )。

选项 A、3
B、4
C、5
D、6

答案C

解析 静态变量只在第一次初始化时赋初值,且常驻内存中,第1次调用函数g时,x的初值是1,并将其加上实参的值返回(n=2),自身也再加1,此时x=2,当第2次调用g时,x=2,n=1+2=3,所以主函数中的s=2+3=5。
转载请注明原文地址:https://kaotiyun.com/show/rX0D777K
0

相关试题推荐
最新回复(0)