Dado o seguinte trecho de programa em C++, int x = 1; while...
Dado o seguinte trecho de programa em C++,
int x = 1;
while ( x < 10 ) ;
- -x;
Pode-se afirmar que o valor de x em qualquer momento da
execução será:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é: B - 1.
Essa questão aborda conceitos fundamentais da linguagem de programação C++, especificamente relacionados ao uso de loops e controle de fluxo. Vamos analisar o código apresentado:
int x = 1;
Esta linha declara uma variável x e a inicializa com o valor 1.
while ( x < 10 );
Aqui temos um laço while que verifica se x é menor que 10. Porém, observe que há um ponto e vírgula ; logo após a condição do while. Este ponto e vírgula representa um laço vazio, ou seja, o bloco de código do while não contém instruções.
Isso significa que, enquanto x for menor que 10, o programa ficará preso nesse laço vazio, sem executar qualquer outra instrução. Portanto, o código --x;
jamais será alcançado, pois a condição do while é sempre verdadeira inicialmente e não há instruções em seu corpo para modificar x.
Assim, o valor de x nunca muda de 1, que é o valor inicial. Por isso, a resposta correta é a alternativa B - 1.
Vamos comentar as outras alternativas:
- A - 0: Esta alternativa está incorreta porque x nunca é decrementado ou modificado.
- C - 9: Também está incorreta. O valor de x não chega a 9, pois o decremento
--x;
nunca é executado. - D - 10: Não é possível, pois o loop while não permite que x se modifique para atingir 10.
- E - 11: Errada, pelo mesmo motivo das anteriores: x permanece constante.
Essa é uma boa oportunidade para lembrar a importância de entender a semântica dos controladores de fluxo em linguagens de programação como C++. Testar o código em um compilador pode ajudar a visualizar e compreender melhor o comportamento real.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
int x = 1; A variável x do tipo inteiro é declarada e inicializada com valor 1
while ( x < 10 )...; Programa entra no while e não tem argumentos (pontilhado vermelho)looping eterno com o x =1)
- -x; Programa nunca executa essa intrução.
Gabarito B
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo