早教吧 育儿知识 作业答案 考试题库 百科 知识分享

函数f定义如下,执行语句“sum=f(4)+f(2);”后,sum的值应为()。为什么不是A,而是Cintf(intm){staticinti=0;ints=0;for(;i

题目详情
函数f定义如下,执行语句“sum=f(4)+f(2);”后,sum的值应为( )。为什么不是A,而是C
int f(int m)
{ static int i=0; int s=0;
for(;i<=m;i++) s+=i; return s;
}
 A、13
 B、16
 C、10
 D、8
▼优质解答
答案和解析
因为i为静态变量,静态变量的值从第一次使用而创建,到程序结束时才释放内存,
因为在调用f(4)后,i已经为5,当在调用f(2)时,由于i<=m的条件已经为假,故不再执行,因此最终为10即C,