谁给分析下下面的程序啊 C语言

来源:百度知道 编辑:UC知道 时间:2024/05/08 03:14:47
下面程序的输出结果是_C) 35745___。
#include <stdio.h>
void fun(int *s)
{ static int j=0;
do
{ s[j]+=s[j+1];
}while(++j<2);
}
main()
{ int k,a[10]={1,2,3,4,5};
for(k=1;k<3;k++)
fun(a);
for(k=0;k<5;k++)
printf("%d",a[k]);
}
A) 35756 B) 23445 C) 35745 D) 12345

首先fun的循环是3次。

for(k=1;k<3;k++) 其实没任何意义。循环2次。
然后
fun(a) -->
a[0] += a[1]
a[1] += a[2]
a[2] += a[3]
a[]={3,5,7,4,5}
for(k=0;k<5;k++)
printf("%d",a[k]);
就等于打印出a[0] 到 a[5]就是 C