C语言程序运行结果选择题:这道题知道怎么算出答案,算了很久都对不上一个答案?

问题描述:

C语言程序运行结果选择题:这道题知道怎么算出答案,算了很久都对不上一个答案?
fun(int x)
{ if(x/2>0) fun(x/2-2);
printf("%d" ,x);
}
main()
{ fun(20);
printf("\n");
}
A 20 8 2 -1 B 2 8 20 C 8 D -1 2 8 20

D,20传过去,x/2=10>0,所以运行fun(x/2-2)=8,8>0,所以运行4-2=2,即fun(2),2>0,所以运行fun(2/2-2)=fun(-1),-1