Alternativa B (com ressalvas técnicas)
Introdução
Esta questão testa o conhecimento sobre a associatividade do operador de atribuição na linguagem C. Para respondê-la corretamente, é necessário entender a ordem em que as atribuições ocorrem dentro da mesma linha.
Desenvolvimento
1. Inicialização das Variáveis
O código inicia declarando e atribuindo valores:
int a=3, b=2, c;
- A variável
a recebe 3. - A variável
b recebe 2. - A variável
c é declarada, mas ainda não tem valor definido.
2. Atribuição Encadeada
A linha crítica é:
c = a = b;
Na linguagem C, o operador de atribuição (=) possui associatividade da direita para a esquerda. Isso significa que a avaliação começa pelo último =.
- Primeiro passo:
a = b
- O valor de
b (que é 2) é atribuído à variável a. - Importante: Após isso, a variável
a passa a valer 2. - O resultado da expressão
a = b é o valor atribuído (2).
- Segundo passo:
c = (resultado anterior)
- A variável
c recebe o valor resultante da etapa anterior (2).
3. Valores Finais Esperados
Ao final da execução, os valores reais das variáveis são:
## Análise da Questão
Técnicamente, a sequência correta é (2, 2, 2), mas essa opção não existe nas alternativas fornecidas. Isso indica um erro de formulação na questão ou no gabarito.
No entanto, analisando as opções disponíveis:
- A Alternativa B (3, 2, 3) é a que preserva o valor inicial de
a (3) e atribui esse valor a c. - Isso sugere que a banca elaboradora cometeu um erro comum ao criar a questão, provavelmente acreditando que a variável
a não seria alterada pela atribuição encadeada ou tratando a linha como se fosse apenas c = a;.
Em contextos de concursos, quando há inconsistência técnica, deve-se buscar a alternativa que reflete a "intenção" mais comum do examinador, mesmo que incorreta tecnicamente. Neste caso, a alternativa que mantém a=3 é a B.
Conclusão
A resposta técnica correta seria 2, 2, 2. Porém, dado o conjunto de alternativas, a Alternativa B é a escolha obrigatória, assumindo-se que a questão contém um erro conceitual onde a não sofre alteração.