Informática, perguntado por duduvsilvaoy04k3, 1 ano atrás

A partir do trecho de código abaixo, assinale a alternativa que corresponda ao que deve ser exibido quando o trecho for executado:

int numX=-5, numY=10, numZ=13, aux;
numX++;
numY-=2;
numZ*=numX+1;
aux = numY++;
printf ("aux = %d, numX = %d, numY = %d, numZ = %d", aux, numX, numY, numZ);


alternativas:

a) aux = -9, numX = 4, numY = -9, numZ = 39
b)aux = 3, numX = -6, numY = -8, numZ = 26
c)aux = 9, numX = 5, numY = 8, numZ = -26
d)aux = 8, numX = -4, numY = 9, numZ = -39

Soluções para a tarefa

Respondido por bokomoko
1
int numX=-5, numY=10, numZ=13, aux;

na linha acima, declaramos 4 variáveis damos valores a 3 delas
numX fica com -5
numY fica com 10
numZ fica com 13
aux fica sem valor definido


numX++;
aqui o valor de numX é acrescido de 1, no caso -5 +1 = -4
portanto, o valor de numX passa a ser -4

numY-=2;
aqui o valor de numY é subtraido em 2. Como era 10, passa a ser 8

numZ*=numX+1;

Aqui o valor de numZ é multiplicado pelo valor de numX+1. numX é -4 e +1 fica -3. Como numZ é 13 então mutiplicado por -3 = -39, numZ passa a ser -39

aux = numY++;
Aqui o valor de aux passa a ser o valor de numY que em seguida incrementado em 1, numY passa de 8 para 9. aux fica com o valor ANTES do incremento portanto 8

printf ("aux = %d, numX = %d, numY = %d, numZ = %d", aux, numX, numY, numZ);
Aqui os valores das variáveis é exibido no console do usuário.

aux = 8, numX = -4, numY = 9, numZ = -39

a pegadinha está em utilizar os operadores +=, ++ e *=

Observe que os operadores ++ quando colocados DEPOIS da variável mudam o valor DEPOIS dela ser acessada. Por isso que quando fazemos 
aux = numY++; o valor 8 é atribuido a aux e depois é que o numY é incrementado.


Perguntas interessantes