void fun(int x) { if(x/2>1) fun(x/2); printf("%d", x); } main() { fun(10);printf("\n");}

程序运行的结果是多少:把过程写下来,不太理解。... 程序运行的结果是多少:
把过程写下来,不太理解。
展开
 我来答
slatop
推荐于2018-03-04 · TA获得超过1390个赞
知道小有建树答主
回答量:381
采纳率:100%
帮助的人:456万
展开全部
void fun(int x)
{
if(x/2>1) fun(x/2);
printf("%d", x);
}
main()
{
fun(10);printf("\n");
}
//函数fun为递归函数,递归作用是将传递进来的x参数除以2,如果结果比1大继续递归,也就是调用自身,再次将除2以后的值传递进这个函数,直到x除以2后不比1大,那么才将这个值输出出来.在main中调用函数fun为他传递参数值为10.第一次调用fun此时x为10,除2是5,比1大,继续调用自身,将5传入新的fun函数.5除2是2.5(这里x是int形只能保存整数,所以2.5被强制截去小数部分,变成2)还是比1大,继续调用自身,此时传递2进第三个fun函数.2除2就是1了,不比1大了,递归结束,开始返回,
先返回第三个fun函数,输出此时的x值是2.再回返第二个函数func.输出值5最后是第一个输出是10.
所以程序运行的结果应该是.2510
dayinspring
高粉答主

推荐于2016-01-01 · 繁杂信息太多,你要学会辨别
知道大有可为答主
回答量:2.3万
采纳率:92%
帮助的人:4305万
展开全部
有以下程序 #include<stdio.h> void fun(int x)
{if(x/2>1)fun(x/2); printf(”%d”,x); } main()
{fun(7);printf(”\n”);}
程序运行后的输出结果是3 7 。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式