这个问题可以讲一下思路吗

img

这是递归,每次调用x的值就会减半,当x/2等于0的时候,递归结束,然后再一层层回到起点

这里你的答案是 1 1 0 0,因为函数调用顺序是Bin(12) <- Bin(60) <- Bin(3) <- Bin(1)

这是嵌套的知识,类似于下图
输入为:abc.
输出的结果为:.cba

  1. char类型为字符类型,所以cin >> ch,实际上每次只能输入一个字符,而abc.是四个字符,所以其实一共有四次输入
  2. 这是个嵌套函数,也就是说fun实际被调用了四次
  3. 程序的执行肯定是上一步结束了,才能进行下一步的执行,这就意味着fun();后面的cout语句必须等fun执行完毕了才能执行
  4. 执行流程如下图

img

img


把结构写完整,答案就是1,没有else,每一次递归的printf都会运行,所以原题的答案是1 1 0 0