求助一题简单的c语言。。。

来源:百度知道 编辑:UC知道 时间:2024/06/08 07:36:16
以下程序的输出结果是 【13】 。
#include <stdio.h>
void fun(int x)
二级C语言程序设计试卷 第 9 页(共9页)

{
if(x/2>0) fun(x/2);
printf("%d",x);
}
main()
{
fun(3);printf("\n");
}

请问怎么做呢?
最好有步骤,谢谢!

是程序的格式令你误解了,应该1和3
这个题这几天有很多人问,是递归调用函数问题
主函数中先运行fun(3),由于递归调用,在运行fun(3)中,运行fun(3/2)即fun(1),fun(1)输出1,接着运行外层没有运行完的fun(3),输出3.
所以是先输出1,中间没有换行,再输出3,你可以改一下,在fun()函数定义中,把printf()函数改一下为printf("%d\n",x);就明白了

。。。要填空吗?还是别的

修改后得13?