大学c语言,这道题还要输出一个7吗,不是printf(换行)吗

2024-11-25 14:42:14
推荐回答(2个)
回答1:

函数fun一共有两句,第一句是if语句,第二句是输出n的值,注意不管第一句if是否成立,都要执行第二句。
第一次调用fun函数fun(7),第一句if语句n/2=7/2=3>1成立,去调用自身。而第二句的打印7需要等到第一句的调用结束后才能执行;
第二次调用fun函数fun(3),也要运行两句,第一句不成立,运行第二句,打印出3。返回调用处继续运行。
返回的地方是第一次调用的第二句,即打印出7。
程序结束。

回答2:

你仔细看看,fun是递归调用的。fun(7)调用fun(3)。fun(3)输出3,然后返回。接着fun(7)继续执行,输出7。所以是3和7。