以下程序的输出结果是_______________.#include main() {int k=4,m=1,p; p=func(k,m); printf(以下程序的输出结果是_______________.#include main(){int k=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);}func(a,b)int a,b;{static int m=0,i=2;i+=m+1;m=i+a+b;return(m);} A、8,17B、8,20C、8,16D、8,8A不懂,

问题描述:

以下程序的输出结果是_______________.#include main() {int k=4,m=1,p; p=func(k,m); printf(
以下程序的输出结果是_______________.
#include
main()
{int k=4,m=1,p;
p=func(k,m);
printf("%d,",p);
p=func(k,m);
printf("%d\n",p);
}
func(a,b)
int a,b;
{static int m=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
A、8,17
B、8,20
C、8,16
D、8,8
A
不懂,

第一次func(a,b)函数时,传递过来的两个值是4,1 即在func(a,b)函数中a=4,b=1 static int m=0,i=2,定义了两个静态变量,即一直战用内存,函数调用结束不释放,结果依然是上一次改变后的结果.执行 i+=m+1 →即 i=2+...