c语言函数调用题,最后这个结果怎么得出的

img


这个程序阅读题,前2个5和6知道,后面的5和10不知道,写过程推断过程。

温馨提示:若问题解决了,望给个采纳,谢谢!若有其他疑问随时咨询
1、这道题主要考查的是静态变量的知识点
2、关键点
1)static int y=0;
2)这里的意思就是,当第一次调用进入方式时,首次会将静态变量保存到内存里,并且会把值5保存到内存里
3)当第二次调用方式时,首次会判断当前静态变量是否已经存在于内存,存在则取出之前的值5,再加上传进来的值5
所以,答案就是10,此时静态变量就是10了,可以第三次调用方法,传z=5值进来,结果就是15

3、效果如下

img

第一个 y =f(z):

static y = 0n = z = 5;
y = 0 + 5;
输出5
return ++n =6

调用返回后y = 6,z=5

输出6 5

第二个 y=f(5):

static y = 5, n = z = 5;
y = 5 + 5;
输出10;
return ++n = 6

所以输出的5 6 5 10