请问这道程序是如何运行的,fun函数是怎样调用的?

2024-12-03 09:33:05
推荐回答(2个)
回答(1):

应该是D吧,for(i=1;i<3;i++)fun(a),这样fun(a)会执行两次,但是fun函数里面的 s[j]+=s[j+1]语句只能执行3次,而不是4次,因为j的定义是static为静态变量,只执行一次初始化,所以第二次执行fun(a)的时候,j=2,只执行一次s[j]+=s[j+1];所以,第一次执行时,为 3,2,3,4,5,第二次为3,5,3,4,5第三次为3,5,7,4,5所以答案是D,没明白再问我

回答(2):

D
两个问题吧,一个是static,一个是do while
static就是每次调用会使用上次保留的值,do while就是不检查先执行
所以

i=1
s[0]+=s[1]; 3 2 3 4 5 j=0
s[1]+=s[2]; 3 5 3 4 5 j=1;
j=2;返回
i=2
s[2]+=s[3]; 3 5 7 4 5 j=3;返回

结束