第1个回答 2019-09-29
当第一次进入pr()函数并执行到scanf函数处时,读取一个字符‘a’。此时在此pr()函数中字符变量ch的值即为'a'。
if判断读取的字符是否为'#',并不是,因此进入一个内层函数pr()中。在执行这个pr()函数时,对外层而言只是执行一条语句而已。是在执行完这条语句之前,将不会执行后面的内容的。
在这个内层pr()中,执行scanf(),读取一个字符'b',此时这个pr()函数中的局部变量ch的值为'b'。然后执行if()判断,执行另一个pr()
在这个pr()中,一样的,读取'c',判断if(),执行pr()。
最后,读取到'#',if()判断,结束递归,打印'#',出栈,挑转到上一层pr()。
在这个pr()中,就剩下一句printf()函数,所以打印'c',出栈,跳转到上一层。
重复出栈打印到达栈顶,结束程序。
最后打印结果为 #cba本回答被提问者采纳