
以下程序输出结果是()#include<studio.h>void fun(int x){if(x/2>0) fun(x/2);printf("%d",x}main(){fu
题目没写完以下程序输出结果是()#include<studio.h>voidfun(intx){if(x/2>0)fun(x/2);printf("%d",x}main(...
题目没写完
以下程序输出结果是()#include<studio.h>void fun(int x){if(x/2>0) fun(x/2);printf("%d",x}main(){
fun(3);printf("\n") } 展开
以下程序输出结果是()#include<studio.h>void fun(int x){if(x/2>0) fun(x/2);printf("%d",x}main(){
fun(3);printf("\n") } 展开
3个回答
展开全部
你好。你的程序无法通过编译。错误有一下几点:
1.头文件是:#include<stdio.h>。
2.fun函数是一个递归函数,但是却没有递归出口。
3.应该是printf("%d",x);而不是printf("%d",x}。
建议改成如下:
#include<stdio.h>
void fun(int x)
{
if(x==0) return;
if(x/2>0)
fun(x/2);
printf("%d",x);
}
main()
{
fun(3);
printf("\n");
}
则,最后的输出是:13
1.头文件是:#include<stdio.h>。
2.fun函数是一个递归函数,但是却没有递归出口。
3.应该是printf("%d",x);而不是printf("%d",x}。
建议改成如下:
#include<stdio.h>
void fun(int x)
{
if(x==0) return;
if(x/2>0)
fun(x/2);
printf("%d",x);
}
main()
{
fun(3);
printf("\n");
}
则,最后的输出是:13
展开全部
输出:
13
因为x是int型的
第一次进入fun时
x=x/2>0;
再次调用fun()此时:x=1
因此到if时 x=x/2等于0 因此if不成立
执行printf语句 此时x=1
接着回到
调用fun的地方继续向下走
执行printf语句 此时的x=3
所以执行结果为13
13
因为x是int型的
第一次进入fun时
x=x/2>0;
再次调用fun()此时:x=1
因此到if时 x=x/2等于0 因此if不成立
执行printf语句 此时x=1
接着回到
调用fun的地方继续向下走
执行printf语句 此时的x=3
所以执行结果为13
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是1 3 6吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询