9、有以下程序 #include <stdio.h> int fun(int a[],int k) { if(k==0) return (a[0]); retu

发布网友 发布时间:2022-04-24 14:42

我来回答

2个回答

热心网友 时间:2023-10-16 22:54

本程序对fun函数递归调用。
在主函数中调用函数fun(a,3),将a数组的首地址传递给fun函数的形参a,将3传递给形参k;在fun函数中,if语句的条件表达式为真,返回值为a[0]+fun(a+1,2); fun(a+1,2)的返回值为a[1]+fun(a+2,1); fun(a+2,1)的返回值为a[2]+fun(a+3,0); fun(a+3,0)的返回值为a[3];回推后,fun(a,3)的返回值为a[0]+a[1]+a[2]+a[3],经计算,即1+2+3+4故值为10。
值得注意的是,fun(int a[],int k)函数中的a[0]第一次调用是数组a[]中的第一个元素,二次三次四次每次调用应该是上一次存留的值,会随之变化,直到该次运行结束。
//当然楼主早已解决,刚搜其他知识点发现这个题百度里面就这一条,虽已隔好久,但还是留存以备以后的有缘人细思量

热心网友 时间:2023-10-16 22:54

10 上机给你运行答案了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com