搜索

c语言答案怎么来的

发布网友 发布时间:2022-03-01 09:09

我来回答

3个回答

热心网友 时间:2022-03-01 10:38

a=5起作用,看清作用域,分支结构里面重新定义的a,和if外面的a没有关系的:
第一次调用:条件为假,t=0+7--->t=7+5=12
第二次调用:条件为假,t=0+7--->t=7+5=12

所以答案为24

热心网友 时间:2022-03-01 11:56

我怎么觉得应该是28。
第一次调用:条件为假,t=0+7--->t=7+8=15
第二次调用:条件为真,t=0+6--->t=6+7=13
所以结果为15+13=28.
int a=5根本不起任何作用。

热心网友 时间:2022-03-01 13:31

24正确。来历——
第一次调用时由于n/2=0/2=0,所以执行else后面的语句:由a=7;t+=a++;两语句使t=7。后面由return t+a++;返回7+5=12——这里要特别注意:else后面{}中的int a=7;只被*在{}内,在外是不可见的,所以return t+a++;中的a是函数开头定义的int a=5;中的那个a,其值是5。
第二次调用时n/2=1/2还是为0,所以过程和第一次调用完全一样,最后返回12。
主函数中s+=f(i);由i=0和i=1调用两次f,每次都返回12,所以s的值由初值0增至24。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top