Questão nº 31

Questão de Tecnologia da Informação · FCC TRT-11 2017 (nº 31)

FCC2017Técnico Judiciário – Área Apoio Especializado – Especialidade: Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Ever comentário ↓

Considere o programa Java abaixo.

public class Prova {
  public static void main(String[] args) {
    int a, b, c;
    for (a = 2; a <= 10; a += 2) {
      for (b = a; b <= 2; b++) {
        for (c = 1; c <= a; c += b) {
            System.out.print("" + a + b + c);
        }
      }
    }
  }
}

A saída na tela será

Resposta comentada

Gabarito Alternativa E

Laços aninhados são estruturas de repetição (loops) onde um loop está dentro de outro, e o loop interno executa todas as suas iterações para cada iteração do loop externo.

  • (A) Incorreta: Esta alternativa sugere uma saída parcial, mas não é o resultado completo da única iteração que ocorre.
  • (B) Incorreta: Esta alternativa implica que o loop interno executaria múltiplas vezes, o que não acontece devido à condição do loop intermediário.
  • (C) Incorreta: Similar à alternativa A, é uma saída parcial e não reflete a execução completa.
  • (D) Incorreta: Os valores de a, b e c não correspondem a esta sequência em nenhuma parte da execução.
  • (E) Correta: O programa executa da seguinte forma:
    1. O primeiro loop for (a = 2; a <= 10; a += 2) inicia com a = 2.
    2. O segundo loop for (b = a; b <= 2; b++) inicia com b = a, ou seja, b = 2. A condição b <= 2 (2 <= 2) é verdadeira.
    3. O terceiro loop for (c = 1; c <= a; c += b) inicia com c = 1. A condição c <= a (1 <= 2) é verdadeira.
    4. System.out.print("" + a + b + c) imprime 221.
    5. c é incrementado por b (c = 1 + 2 = 3).
    6. A condição do terceiro loop c <= a (3 <= 2) agora é falsa. O terceiro loop termina.
    7. b é incrementado (b = 2 + 1 = 3).
    8. A condição do segundo loop b <= 2 (3 <= 2) agora é falsa. O segundo loop termina.
    9. a é incrementado por 2 (a = 2 + 2 = 4).
    10. A condição do primeiro loop a <= 10 (4 <= 10) é verdadeira.
    11. O segundo loop for (b = a; b <= 2; b++) inicia com b = a, ou seja, b = 4. A condição b <= 2 (4 <= 2) é falsa. Este é o ponto crucial e a armadilha da questão: o segundo loop não executa nenhuma vez para a = 4 ou para qualquer valor subsequente de a (6, 8, 10), pois b sempre começará com um valor maior que 2.
    12. Assim, o System.out.print só é executado uma única vez, resultando na saída 221.

Fonte: FCC TRT-11 2017 Técnico Judiciário – Área Apoio Especializado – Especialidade: Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho