getchar()每次只接收1个字符,而你打入了两个字符:一个是A,另一个是\n。当c1=getchar()执行后就把A从缓冲区中删除了并赋给了c1,但\n还留在缓冲区里;接着是c2=getchar();,它就把\n从缓冲区里删除并将其赋给c2。\n是“动作”字符,不是显示字符,所以你的代码输出很正确:c1=A,c2=后跟着个不可显示的动作字符产生了动作“回车”,所以“请……”就显示在了下一行……不信你可以把c2=getchar()改成;c2=‘B’;看看“请……”是不是紧接在c1=A,c2=B后面了?