SóProvas


ID
3357013
Banca
IBADE
Órgão
Câmara de Cacoal - RO
Ano
2018
Provas
Disciplina
Programação
Assuntos

Considere o seguinte programa escrito na linguagem C

#include <stdio.h>

main()

{int g=0,i=0,l=0,k=0;
int m,n,o;

while (i<=10)
{ m=g++;
n=+l;

o=++k;
i++;
}
printf (" m=%d n=%d o=%d ", m,n,o);}

Ao executar esse programa, os valores finais de ,e são respectivamente:


Alternativas
Comentários
  • O segredo da questão está no pré (++k) e no pós (g++) incremento, vejamos:

    Na primeira iteração:

    {

    m=g++; // M valerá 0 e somente após isso incrementará + 1 na variável G.

    n=+l; // Observe que é IGUAL + ou seja, somente irá mudar o sinal da variável l para positivo,como l vale 0 NADA ACONTECE!

    o=++k; // Pré incremento: a variável k será incrementada em 1 e após isto será atribuído o valor a variável o

    i++;

    }

    Ou seja, após a primeira iteração:

    m=0

    n=0

    o=1

    ....

    Na décima iteração:

    m=10

    n=0

    0=11

    Portanto, GABARITO ALTERNATIVA A

  • Essa questão é bem interessante, quando pegamos o padrão que é seguindo e entendemos a ordem de precedência dos operandos, não precisamos fazer todas as iterações.

    Padrão: M sempre terá 1 a menos do que O e N sempre será 0! Ficamos apenas com a alternativa A!!