That's because getchar doesn't return as soon as the user presses a key: it reads a character from the standard input stream, and that data is only available when the user presses ENTER to indicate he is happy with what he typed. If it didn't, then he would be unable to to backspace to change what he typed.
So what is happening is that the first call to getchar does not return until the user has finished the line, at which point it "echoes" (or "pastes" in your terms) all teh characters up to the ENTER.
Change the loop, and you'll see what I mean:
while(ch!='1')
{
printf("\nThe character was: ");
putchar(ch);
ch=getchar();
}