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
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.
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
Biologia,
9 meses atrás
Biologia,
1 ano atrás
Português,
1 ano atrás
Sociologia,
1 ano atrás
Geografia,
1 ano atrás