有以下程序 #include int fun(int n) { static int t=1; int i=1; for( ; i

admin2020-05-19  9

问题 有以下程序
#include
int fun(int n)
{ static int t=1; int i=1;
for( ; i<=n; i++) t*=i;
return t;
}
main()
{ int t=1,i;
for(i=2;i<4; i++)
t+=fun(i);
printf("%d\n",t);
}
程序的运行结果是( )。

选项 A、15
B、11
C、8
D、4

答案A

解析 函数fun()调用两次,fun(2)中计算出的结果为2,由于函数fun()中有一个静态变量t,静态变量在定义时的初始化只运行一次,并且其值在程序运行过程中一直存在,所以第二次调用fun(3)时t=3,计算结果为12。主函数main()用局部变量t累加两次调用结果,t初始值为1,所以最终t=15,答案选A。
转载请注明原文地址:https://kaotiyun.com/show/yyCp777K
0

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