C语言 程序分析题 阅读下面程序,描述程序功能并写出程序执行结果 c语言阅读下面的程序,写出程序运行输出结果

作者&投稿:菜栋 (若有异议请与网页底部的电邮联系)
程序功能是将数组b[5]中的值按照从小到大排列并输出;
程序结果是:12348

请问这个C语言程序阅读题是怎么分析得到结果的,谢谢~

fun(5)=5+fun(4)
fun(4)=4+fun(3)
fun(3)=3+fun(2)
fun(2)=2+fun(1)
fun(1)=1
所以,fun(5)=5+4+3+2+1=15

for循环循环3次,依次调用三次f(1),而f中的z和y是static静态变量,只初始化一次,而且在退出函数的时候还会保持它们的值。知道这个就可以走一次循环了:比如k=1,即f(1)开始x=1;z=3,y=0;y++;z++;//这行结束后y为1,z为4x+y+z=1+1+4=6;k=2,f(1)第二次调用x=1;z=4,y=1(上一次调用结束时的值)y++;z++;//这行结束后y为2,z为5x+y+z=1+2+5=8;第三次一样的x+y+z=1+3+6=10