Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — VUNESP 2013

ProgramaçãoLinguagens de programação
Código
vu002062
Banca
VUNESP
Órgão
DCTA
Ano
2013
Nível
Superior
Cargo
Tecnologista Pleno - Computação
Considere o seguinte código em linguagem C:imagem-022.jpgEsse código foi compilado por meio do GCC 3.4.4 e produziu o resultado “20” ao ser executado. Isso aconteceu porque
  1. Aexiste um bug conhecido nessa versão do GCC que faz algumas expressões serem calculadas incorretamente.
  2. Bsegundo a especificação da linguagem C, a precedência dos operadores é diferente quando estes são invocados para determinar parâmetros de funções.
  3. Csegundo a especificação da linguagem C, o resultado de uma expressão que atualiza mais de uma vez o valor de uma mesma variável é indefinido.
  4. Da variável “x” utiliza o operador de pré-incremento, que produz o valor dois; enquanto a variável “y” utiliza o operador de pós-incremento, que produz o valor zero.
  5. Eé um comportamento esperado da linguagem, pois, de acordo a especificação, todos os operadores devem ser aplicados após a execução completa da expressão. Assim, o valor atribuído à variável “x” é sobrescrito pelos operadores de pós-incremento.
Revelar gabarito e comentário

GabaritoC — segundo a especificação da linguagem C, o resultado de uma expressão que atualiza mais de uma vez o valor de uma mesma variável é indefinido.

Link permanente: /questoes/vu002062