Scusa, ma ho il dubbio di non aver capito a fondo la domanda ...

In che senso

"Per quale motivo a e' prima stampata e poi incremetata?"

... proprio perche' gli dici di fare cosi'! ...

Ovvero, nella riga

printf("%d\n",a++);

l'operatore di incremento ++ e', in questo caso, di postincremento (ovvero opera dopo il trattamento della variabile, in questo caso, nella printf) ...

Se avessi voluto un preincremento, avresti dovuto scrivere

printf("%d\n",++a);