Olá Diogo, tudo bem?
Na realidade o programa não pula os números 33 e 37, apenas não escreve eles na tela.
Quando a variável contador é igual a 33, não foi usado a função mostra para escrevê-la na tela:
if( contador == 33 ) {
contador = contador + 1;
} //Verifica se o número é o 33, se for o número não é escrito na tela, apenas soma 1 ao número para continuar a contagem.
A mesma ideia aconteceu para o número 37:
else if(contador == 37) {
contador = contador + 1;
} //Verifica se o número é o 37, se for o número não é escrito na tela, apenas soma 1 ao número para continuar a contagem.
Verificando o fim do código:
else {
mostra(contador);
contador = contador + 1;
} //Não sendo o número nem 33 nem 37, o programa escreve o número na tela com a função *mostra* e soma 1 para continuar a contagem.
Espero ter ajudado, bons estudos!