SóProvas


ID
1333471
Banca
FCC
Órgão
TRT - 13ª Região (PB)
Ano
2014
Provas
Disciplina
Programação
Assuntos

Considere a classe Java abaixo:

public class Principal {
    public static void main(String[ ] args) {
        int r[ ] = new int[8];
        int i = 0;
        int n = 70;
        while (n > 0) {
             r[i] = n % 2;
             n = n / 2;
             i++;
        }
        int cont = (r.length - 1);
        for (;cont >= 0; cont--) {
            System.out.print(r[cont]);
        }
     }
 }

Ao compilar e executar esta classe, em condições ideais, será exibido na tela o valor

Alternativas
Comentários
  • Que peguinha..


    Tem q prestar atencao que na hora de imprimir esta imprimindo de tras pra frente

  • Número Mod: 70
    R[i] : 0
    n/2: 35
    i: 1
    Número Mod: 35
    R[i] : 1
    n/2: 17
    i: 2
    Número Mod: 17
    R[i] : 1
    n/2: 8
    i: 3
    Número Mod: 8
    R[i] : 0
    n/2: 4
    i: 4
    Número Mod: 4
    R[i] : 0
    n/2: 2
    i: 5
    Número Mod: 2
    R[i] : 0
    n/2: 1
    i: 6
    Número Mod: 1
    R[i] : 1
    n/2: 0
    i: 7
    Tamanho do array: 8
    cont: 7
    01000110

  • pegadinha na impressao
  • Explicitando alguns conhecimentos que a questão cobra:

     

    1) Note que a execução sai do loop "while" logo depois de sua iteração (n tem o valor de 0), portanto a última posição do array (que tem 8 elementos) não é preenchida pelo código dentro do while.

    Felizmente, em Java, quando você inicializa um array de inteiros, todos os elementos do array são inicializados com 0, então já havia um 0 na oitava posição.

     

    2) Em Java não é necessário especificar a variável contadora dentro do loop "for", caso ela já tenha sido declarada e inicializada anteriormente no escopo

     

    3) Em Java, quando uma variável de tipo inteiro recebe o resultado de uma divisão que seria um número decimal, ele é truncado (tudo que ficaria depois da vírgula é descartado)

     

    Se uma das alternativas fosse "A tentativa de compilação e execução resulta em erro", esses detalhes poderiam gerar um bocado de incerteza em muita gente.