有以下程序: #include float sf(int n) { static float f=1; f*=n; return f; } main() { int i; float s=0; for(i=l;i<6;i++) s+=sf(i); p

admin2020-01-10  15

问题 有以下程序:
#include
float sf(int n)
{  static float f=1;
f*=n;
return f;
}
main()
{ int i;
float s=0;  
for(i=l;i<6;i++)
s+=sf(i);
printf’’%f\n’’,s);
}
程序计算的结果是(  )。

选项 A、153
B、15
C、120
D、105

答案A

解析 静态变量只在初次定义时赋初值,且子函数的静态变量一直在内存中,当下次调用该函数时,静态变量还具有上次调用结束时的值,且不会被再次赋值,所以本题多次调用函数时,计算的内容是1!+2!+3!+4!+5!,结果是153。
转载请注明原文地址:https://jikaoti.com/ti/TSG0FFFM
0

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