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。