c语言求解?
4个回答
展开全部
当第一次进入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
if判断读取的字符是否为'#',并不是,因此进入一个内层函数pr()中。在执行这个pr()函数时,对外层而言只是执行一条语句而已。是在执行完这条语句之前,将不会执行后面的内容的。
在这个内层pr()中,执行scanf(),读取一个字符'b',此时这个pr()函数中的局部变量ch的值为'b'。然后执行if()判断,执行另一个pr()
在这个pr()中,一样的,读取'c',判断if(),执行pr()。
最后,读取到'#',if()判断,结束递归,打印'#',出栈,挑转到上一层pr()。
在这个pr()中,就剩下一句printf()函数,所以打印'c',出栈,跳转到上一层。
重复出栈打印到达栈顶,结束程序。
最后打印结果为 #cba
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输出为#cba。就是函数的递归调用。
追问
不懂,有详细过程吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询