Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FGV 2024

ProgramaçãoLinguagens de programação
Código
fg085506
Banca
FGV
Órgão
INPE
Ano
2024
Nível
Superior
Cargo
Tecnologista Júnior I - Desenvolvimento de Software Embarcado
Um sistema gera um vetor fixo de dados para efetuar o controle de um processo usando o código em C abaixo, em um compilador que trabalha com inteiros de 32 bits:int matriz[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; int *v,final; v = &matriz[1]; final = v[3]; Após a execução desse trecho de código, o valor de final é:
  1. A6
  2. B5
  3. C4
  4. D3
  5. E2
Revelar gabarito e comentário

GabaritoB — 5

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Ponteiros e indexação de arrays em C

Gabarito: letra B. O ponteiro v é inicializado com o endereço do segundo elemento do array (matriz[1] = 2). Ao acessar v[3], estamos na prática acessando matriz[1+3] = matriz[4], cujo valor é 5. Portanto, final = 5.

NÃO CAIA NESSA!

Cuidado! Muitos candidatos esquecem que v não aponta para o início do array, mas para o segundo elemento. Assim, v[3] não é o quarto elemento do array original (matriz[3]=4), e sim o quinto (matriz[4]=5). A confusão clássica é calcular v[3] como se v apontasse para matriz[0].

Alternativa A — ❌ Incorreta

O valor 6 resultaria se acessássemos v[4] (que seria matriz[5]=6). Como o índice é 3, não é o resultado correto.

Alternativa B — ✅ Correta ⟵ GABARITO

Conforme explicado, v[3] acessa o elemento no índice 4 do array original, que é 5.

Alternativa C — ❌ Incorreta

O valor 4 seria obtido se acessássemos v[2] (matriz[3]=4). Mas o índice usado é 3.

Alternativa D — ❌ Incorreta

O valor 3 seria obtido se acessássemos v[1] (matriz[2]=3). Mas o índice é 3.

Alternativa E — ❌ Incorreta

O valor 2 é o próprio matriz[1], que é o valor apontado por v (ou seja, v[0]=2). O acesso v[3] está três posições adiante.

Link permanente: /questoes/fg085506