计算机二级C语言试题

计算机二级C语言试题

fun(6)运行过程中,由于6/2=3>0,所以调用fun(3)

fun(3)运行过程中,由于3/2=1>0,所以调用fun(1)

fun(1)运行过程中,由于1/2=0,所以不会继续往下调用此时,继续运行,

printf("%d",x),此时x=1,输出1,然后返回

上一步返回后,处于fun(3)的运行过程,在fun(3)中继续运行,

printf("%d",x),此时x=3,输出3,然后返回

返回至fun(6),继续运行,输出6,然后回到主函数

因此输出为136

请注意fun是个递归函数,是先做判断3次,再倒着输出x

即,6-3-1-打印1-打印3-打印6

输出结果是:136,这三个数字,不是一百三十六,这段代码一共调用了3次这个函数fun(int x),第一次是6,执行完if后,在执行fun(3)函数,这时不会进行打印语句,第二次是3,执行完if后,再执行fun(1)函数,第三次是if(1/2>0),这时不满足if的条件,转而执行打印语句,由于一共执行了三次这个fun函数,所以要跳出函数体,就执行了三次打印语句,然后fun(6)执行完成,最后打印一个换行,所以就出现了136.

不知道这样解释LZ是否明白。