void consol1(void)
{
char ch;
do {
ch = getchar();
printf("%c",ch);
putchar('.');
printf("%c",ch);
} while (ch != '\n');
printf("%c\n",ch);
}

このプログラムの実行結果、仮に「a」と入力すると次のようになった。
a.a
.

最後のprintf()で「.」が表示される仕組みがよく分からない。「a」と表示されると思ったのに。
putchar()って渡した値を出力するだけじゃないの?chに代入が行われているように見える・・・。
試しにdo〜whileを外してみたら、こっちは最後のprintf()でちゃんと「a」と表示されるんだけどなぁ・・・。