C语言 读程序 运行结果是什么,并请写出原因 谢谢!!!

一. 读程序
要求:读懂程序,写出分析结果;上机运行程序,得到运行结果,比较之。
1、 void func1(int i);
void func2(int i);
char st[]="welcome,friend!";
void func1(int i)
{ printf("%c",st[i]);
if(i<3)
{ i+=2;func2(i);
}
}
void func2(int i)
{ printf("%c",st[i]);
if(i<3)
{ i+=2;func1(i);
}
}
main()
{ int i=0;
func1(i);
printf("\n");
}

2、
int f(int b[ ][4])
{ int i,j,s=0;
for(j=0;j<4;j++)
{ i=j;
if(i>2) i=3-j;
s+=b[i][j];
}
return s;
}
main( )
{ int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
printf(“%d\n”,f(a) );
}

1.运行结果:wlo
分析如下:由main()
{ int i=0;
func1(i);
printf("\n");
}
i=0;
执行fun(i);
printf("%c",st[i]);输出w;
又:
i+=2;
则i=2
执行func2(i);
输出:l;
接着: i+=2;
i=4;
执行:func1(i);
输出:o;
最后输出:wlo
2.运行结果:22;
main函数执行f(a);
j=0;
则i=0;
执行s+=b[i][j];
s=1;
接着j=1;
i=1;
s=+=b[i][j];
s=1+6=7;
i=3;
s=7+11=18;
接着j=3;
i=3;
执行i=3-j;
i=0;
s=18+4;
s=22;
分析完毕:
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-05-12
第1个的是:wlo
因为 st[0] = 'w'
st[0+2] = 'l'
st[0+2+2] = 'o'

第二个是:22

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

a[0][0] + a[1][1] +a[2][2] +a[3][0]
也就是:1+6+11+4 = 22
相似回答