有以下程序: #include<stdio.h> int fun() { static int x=1: x+=1: return x; } main() int i,s=1; for(i=1;i<=5;i++) s+=fun(); printf("%d\

admin2020-11-27  20

问题 有以下程序:
#include<stdio.h>
int fun()
{
static int x=1:
x+=1:
return x;
}
main()
int i,s=1;
for(i=1;i<=5;i++) s+=fun();
printf("%d\n",s);
}
程序运行后的输出结果是(  )。

选项 A、120
B、1
C、6
D、21

答案D

解析 fun函数中的变量x为静态的局部变量,占用固定的内存单元,下一次调用时仍可以保留上次调用时的值。也就是说,如果多次调用fun函数,x的定义只在第一次调用时有效,从第二次调用开始,x的定义卡相当于不存在,直接使用上次x的值,fun函数被调用了5次,每次调用后的返回值累加到s上,5次调用后,x的值为6,s的值为1+2+3+4+5+6=21,因此D选项正确。
转载请注明原文地址:https://www.kaotiyun.com/show/Bstp777K
0

最新回复(0)