O que o programa a seguir faz?

Passo 1
Fala Galera!!! Tudo certo? Espero que sim!!! Bora para mais um exercício.
Bora analisar o que está acontecendo no programa do exercício.
#include
/* função main inicia a execução do programa */
int main(void){
int c; /* variável para manter entrada de caractere pelo usuário */
if ( ( c = getchar() ) != EOF ) {
main();
printf( "%c", c );
} /* fim do if */
return 0; /* indica conclusão bem--sucedida */
} /* fim do main */
Dentro da função main(void) é definido uma variável c para manter entrada de caracteres, em seguinte é usado um if que recebe como condição ( ( c = getchar() ) ! EOF ). A função getchar() é usada para ler um único caractere do fluxo de entrada padrão em C.
O comando EOF ou fim de arquivo, é uma condição do sistema operacional de um computador, atingida quando não há mais dados a serem lidos.
Ainda dentro do if a função main() é chamada recursivamente e printado o valor da variável c.
A condição if é finalizada e o programa retorna 0 se a conclusão for bem-sucedida.
Passo 2
Resumindo o programa, ele introduz um caractere e chama repetidamente main() até que o comando EOF seja introduzido. O comando EOF é um valor que depende do sistema, no Windowns esse comando pode ser passado quando pressionadas as teclas Ctrl+ Z, em outros sistemas podem ser pressionadas as teclas Ctrl + D.
Passo 3
Agora precisamos escrever o programa no nosso compilador e ver o que irá ter como saída. A saída então será:

Ao digitar as letras ‘a, b e c’ apertar enter e depois o comando Ctrl + Z, cada letra introduzida é então saída em ordem inversa. Isso ocorre pelo fato da função getchar () armazenar cada caractere na variável c, e a cada vez que um caractere é digitado o primeiro inserido é “empurrado” para o final. O processo pode ser representado da seguinte forma:
Digitado caractere a:
c = [a]
Digitado caractere b:
c = [b] [a]
Digitado caractere c:
c= [c] [b] [a]
Dessa forma quando imprimimos a variável c, os caracteres são exibidos na ordem inversa.
Assim finalizamos mais um exercício Galera!! Por hoje é só, até o próximo exercício.
Resposta
Ei, a resposta está no passo a passo :)