有以下程序 #include int a=2; int f() { static int n=0; int m=0; n++; a++; m++; return n+m+a; } main() { int k; for (k=0; k

admin2019-06-09  22

问题 有以下程序
#include
int a=2;
int f()
{ static int n=0;
int m=0;
n++; a++; m++;
return n+m+a;
}
main()
{ int k;
for (k=0; k<3; k++)
printf("%d,", f( ));
printf("\n");
}
程序的运行结果是( )。

选项 A、5,7,9,
B、5,6,7,
C、5,8,11,
D、5,5,5,

答案A

解析 静态变量定义时的初始化只运行一次,并且其值在程序运行过程中一直存在,而局部变量则是用时分配,用完释放。全局变量在当前文件内也是一直存在的。main()函数中调用三次f()函数,f(0)=1+1+3=5,n=1,m=1,a=3;f(1)=2+1+4=7,n=2,m=1,a=4;f(2)=3+1+5=9,n=3,m=1,a=5。所以答案选A。
转载请注明原文地址:https://kaotiyun.com/show/cRRp777K
0

最新回复(0)