Questão de Programação — Linguagens de programação — FUNDATEC 2025
- Código
- qg472056
- Banca
- FUNDATEC
- Órgão
- GHC-RS
- Ano
- 2025
- Nível
- Médio
- Cargo
- Programador
- A2 2 2
- B3 2 2
- C3 2 3
- D3 3 2
- E3 3 3
GabaritoB — 3 2 2
Gabarito: letra B. A função calcular recebe os endereços de a, b e c. Dentro dela, ++*x incrementa o valor apontado por x (a vira 3); *++y incrementa o ponteiro y (não o valor) e depois dereferencia, sem efeito sobre b; *z++ usa o valor antigo do ponteiro (aponta para c) e descarta a leitura, sem alterar c. Portanto, após a execução, a=3, b=2, c=2.
Afirma que todas as variáveis permanecem 2. Ignora que ++*x incrementa o valor de a para 3.
a é incrementado para 3; b e c permanecem 2 porque as expressões *++y e *z++ alteram apenas o ponteiro, não o valor apontado.
Sugere a=3, b=2, c=3. Erro: *z++ não altera c; o incremento pós-fixado atua sobre o ponteiro z, não sobre o valor.
Sugere a=3, b=3, c=2. Erro: *++y incrementa o ponteiro, mas o valor de b não é modificado.
Sugere todas as variáveis iguais a 3. Desconsidera que apenas a é alterada.
A banca explora a diferença entre ++*x (incrementa o valor apontado) e *++y / *z++ (incrementam o ponteiro, não o valor). Lembre-se: ++ e * têm mesma precedência e associam da direita para a esquerda; já o pós-fixado tem maior precedência que o unário.
Gabarito: letra B.
Link permanente: /questoes/qg472056