Olá, Izaias! Tudo bem?
Sua solução está bem interessante. 
Para que nem o 33 e nem o 37 sejam mostrados, podemos fazer a seguinte mudança no seu código:
    while(numeroInicial <= 40) {
        if(numeroInicial == 33 || numeroInicial == 37) {
            numeroInicial = numeroInicial + 1;
        } else {
            mostra(numeroInicial);
            numeroInicial = numeroInicial + 1;
        }
    }
A diferença ,nesse caso, é que o operador utilizado é o or e não o and. Isso porque o valor do numeroInicial será ou 33 ou 37. Nunca teremos os dois valores para essa mesma variável.
Continue praticando e qualquer dúvida estou à disposição. 
Abraços e bons estudos :D