我的C语言程序问题啊 急急急啊

来源:百度知道 编辑:UC知道 时间:2024/09/28 15:54:32
哎 这个程序快把我搞郁闷死了啊 我老是想不通啊 望高手帮我解决一下 啊 谢谢
是个选择题
14 执行下面程序是,输入xyz<CR>(其中<CR> 代表回车)则输出结果为(D)
#include<stdio.h>
main()
{int reverse();
reverse();
printf("\n");
}
inr reverse()
{char c;
if((c=getchar())!='\n')
revese();
putchar(c);
return;
}
A z B y C x D zyx
它的结果居然是D
让 我想不通啊
真是郁闷死了啊 爱

if((c=getchar())!='\n')
revese();
putchar(c);

是递归调用。IF后面的语句,如果读取的不是回车(也就是说还没读到最后一个字符),哪么就执行IF后面的语句 revese();再次调用自身。然后就这样反过来输出。

兄弟:你们学了C语言你难道还不回递归啊
郁闷;多看看别人的程序,reverse(); 这是在递归调用

getchar()每次接收一个字符,先接收x然后输出,再接收y,输出。再z。不是什么递归调用。

不知所云.......
你那个A z B y C x D zyx 的回车在哪儿??

int reverse(); 是什么???

revese();
你这个地方写错了吧,要不就会出错误的.
输出结果不是你那样子的.
假如输入XYZ
输出就是ZYX...