Considere o seguinte programa escrito em C: ...
int main()
{
int x = 25, y = 5, z;
for (z = 0; x >= y; x = x - y, z++);
printf("x=%d, y=%d, z=%d\n", x, y, z);
return 0;
}
Após a execução do programa, o que aparecerá na tela será
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: D - x=0, y=5, z=5.
O tema desta questão é a compreensão de como funciona a estrutura de repetição for na linguagem de programação C. A questão testa a habilidade do candidato de entender o controle de fluxo e como a variável é atualizada dentro do loop.
Para resolver a questão, são necessários os seguintes conhecimentos:
- Estrutura de controle de loop for.
- Operações aritméticas e atribuições múltiplas dentro da expressão de um loop.
- Entendimento sobre os operadores de comparação e incremento.
- Conhecimento básico de saída de dados com a função printf.
No programa apresentado, temos um loop for que inicia com a variável z igual a zero. O loop irá continuar a executar enquanto o valor de x for maior ou igual a y. A cada iteração do loop, o valor de x é decrementado pelo valor de y (ou seja, x = x - y), e a variável z é incrementada em 1 (z++):
for (z = 0; x >= y; x = x - y, z++);
Com os valores iniciais de x=25 e y=5, o loop será executado enquanto x seja pelo menos 5. A cada iteração, 5 será subtraído de x e z será incrementado em 1. Isso acontecerá 5 vezes, já que 25 dividido por 5 é igual a 5. Portanto, após a execução do loop:
- x, que começa em 25, será decrementado 5 vezes por 5 e se tornará 0.
- y permanecerá inalterado como 5, pois não é modificado pelo loop.
- z será incrementado 5 vezes, começando de 0 e terminando em 5.
Portanto, a saída do programa após a execução do loop será x=0, y=5, z=5, o que corresponde à alternativa D.
É importante notar que o loop for termina com um ponto e vírgula (;), o que significa que ele não tem um corpo e executa apenas as instruções dentro de sua definição.
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
iteracao -> 0 , valor x:25 , valor y:5
iteracao -> 1 , valor x:20 , valor y:5
iteracao -> 2 , valor x:15 , valor y:5
iteracao -> 3 , valor x:10 , valor y:5
iteracao -> 4 , valor x:05 , valor y:5
Resposta certa -> x=0, y=5, z=5
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo