55问答网
所有问题
(12)以下程序的输出结果是 【】 。 #include <stdio.h> void fun(int x)
{
if(x/2>0) fun(x/2);
printf("%d",x);
}
main()
{
fun(3);printf("\n");
}
答案是13,求解释
举报该问题
推荐答案 2011-07-31
这是递归调用,13是打印了二次。
第一次,打印1
第二次,打印3
第一次调用 fun(int x)
x为3 条件满足:if(x/2>0) fun(x/2);
第二次进入fun(int x)
x为1 这时不再满足 if(x/2>0)
执行:printf("%d",x); 这时打印1
退出第二次进入的fun(int x)
执行第一次进入fun(int x)的printf("%d",x); 这时打印3
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://55.wendadaohang.com/zd/e44II8QQR.html
其他回答
第1个回答 2011-07-31
递归调用。fun(3)调用fun(1),fun(1)执行时输出1,fun(1)执行完成后返回fun(3)执行,输出3。因此总的输出:13。
第2个回答 2011-07-31
答案是1,3!第一次调用fun时x=3则x/2=1,if条件为真,再次调用fun,这时参数为x/2=1即fun(1);
则x/2=0;if条件不成立执行printf语句,即输出1,然后返回,再执行第一次调用的fun的下一条语句即使printf,输出3;所以结果为13
相似回答
...
输出结果是()#include
<studio.
h
>
void
fun(int
x)
{if(x/2>0) fun...
答:
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
...<
stdio.h
> int
fun(int
x,int y){return
(x
+y
);
} main
()
{int a=...
答:
:8
...
结果是(
)。
#include
<
stdio.h
>
void
fun(int
x)
不是先执行main吗...
答:
先执行main()函数,但是main()函数里面先调用了
fun()
函数,因为a=5,所以fun(5)会输出6,接着回到main()继续输出5,所以答案是先6后5。请采纳,谢谢
以下程序的输出结果是
__
答:
参数是1,1/2=0,此时if不成立,输出之前的x,【就是1】!!!此时,不再进行深入的嵌套,而是从嵌套中出来 再出来的过程中,又输出了一次,就是之前的3,【就是3】!!!【验证
程序】include
<
stdio.h
>
void
fun(int
x){ if(x/2>0)fun(x/2);printf("%d==",
x);
} void main(){ f...
12)以下程序的输出结果是【
13】。
答:
第一次调用中 参数是3 (第二次调用是只是复制X/2的值作为参数传入函数,并不会改变原x值)第一次调用
fun
结束 打印回车 程序结束 结果:13\N fun函数会将一个数x不停的处以2 直到
结果为
1 然后将全部除法结果反过来从小到大排列输出 例如 输入20 结果:1 2 5 10 20 ...
大家正在搜
以下程序的输出结果是main
下列程序的输出结果是main()
以下程序段输出的结果是
以下程序代码的输出结果是
以下程序执行后的输出结果是
写出以下程序段的输出结果
以下程序运行后输出结果是
下列程序段的输出结果是
下面程序输出的结果是
相关问题
以下程序的输出结果是( )。 #include <stdio...
以下程序的运行结果是( )。 #include<stdio....
以下程序运行后的输出结果是 #include<stdio.h...
有以下程序 #include <stdio.h> void ...
以下程序段的输出结果是 #include <stdio.h>...
C++,急急急求。分析下列程序的输出结果。 #include...
下列程序段的输出结果是( )。#include <stdio...
以下程序的输出结果是________. #include <...