A
linguagem C traz um recurso bem interessante chamado Operadores
Aritméticos de Atribuição, que permitem em uma única linha fazer uma (ou
mais) operações aritméticas junto a uma operação de atribuição. Sabendo
que o código abaixo irá imprimir o valor 26, qual das opções abaixo NÃO
pode ser utilizada para substituir o código oculto XXXXXXXXXX? Assinale
a alternativa correta:
a)
y += x + 1;








b) y += ++x;








c) y += x++;








d) y = y + x + 1;

1

Respostas

2014-07-07T23:44:47-03:00
A alternativa correta, mesmo, é a C.
y += x++;

Como o x = 10 e  o y = 15. Então a atribuição iria ficar assim:
y += x++ que é a mesma coisa que:
y = y + x  que dará
y = 15 + 10
y = 25
Lembrando que o x++ só será incrementado se estiver dentro de um laço... como ele não está dentro de um laço..logo o valor da variável x ficará com 10.

A alternativa B está incorreta porque a variável x já será incrementa
(++x) mesmo estando fora de um laço de repetição.
Então na B, daria o y receberia 26. Pois,
++x = 11

y += ++x
y = y + 11
y = 15 + 11
y = 26