Questão 27 · Informática: Programação e algoritmos
Observe o seguinte trecho de código C##. bool x = true; int m = 0; for (int a = 1; x; a++) { m++; if (m % 10 == 0) { x = false; } } Console.WriteLine(m); O valor apresentado pelo comando Writeline é:
- A) 0
- B) 1
- C) 9
- D) 10
- E) 11
Marque a alternativa correta:
Gabarito: D
Gabarito definitivo divulgado pela banca FGV (DPE/RO 2015).
Comentário
Gabarito: D.
O código começa com m = 0 e x = true. A cada passagem do laço, m aumenta 1. Quando m chega a 10, a condição m % 10 == 0 é verdadeira e x recebe false. Como o laço só continua enquanto x for verdadeiro, ele termina logo após essa passagem. Portanto, m vale 10 ao final, e esse é o valor exibido por Console.WriteLine, alternativa D.
- (A) Errada: 0 é o valor inicial de m, mas o laço incrementa m antes de qualquer teste de parada.
- (B) Errada: 1 seria impresso se o laço parasse na primeira passagem, o que não ocorre, pois m % 10 só é zero quando m vale 10.
- (C) Errada: 9 é o valor antes da última passagem; a parada ocorre quando m chega a 10.
- (E) Errada: 11 exigiria mais uma passagem depois de m = 10, mas x já é false nesse momento.
Dica: acompanhe o valor de cada variável passo a passo e lembre que a condição do laço é verificada antes de cada nova passagem.
Fundamentos: laços for em C# · condição de parada com variável booleana · operador módulo
Comentário gerado pela Cravei IA a partir do enunciado e do gabarito definitivo divulgado pela banca, e conferido por uma verificação automática. A IA pode errar: o gabarito oficial sempre prevalece.
Fonte: prova FGV DPE/RO 2015 (Analista de Redes e Comunicação de Dados), questão 27, com o gabarito definitivo da banca. Comentário: Equipe Cravei · como fazemos e revisamos.