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

admin2020-06-16  3

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

选项 A、17
B、8
C、9
D、26

答案C

解析 静态局部变量只在第一次调用函数时初始化一次,其他调用都会保留上一次调用结束时的值。第一次调用时将fun(a)的返回值赋给s,静态局部变量初始化为1,所以n=4并返回,a自增为2:第二次调用时静态局部变量a取上一次调用结束时的值2,所以n=5并返回,a自增为3。所以s=4+5=9。
转载请注明原文地址:https://jikaoti.com/ti/qFG0FFFM
0

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