Considere o seguinte programa escrito em C:                ...

Próximas questões
Com base no mesmo assunto
Q508547 Programação
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á
Alternativas

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

Acertei pela lógica, mas que a pergunta está mal feita está!

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo