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);