Computação Múltipla Escolha

Considere a seguinte estrutura criada para representar alunos de uma universidade: Qual comando apresenta a sintaxe correta para atribuir o valor 8.5 à segunda nota do quinto aluno da turma?

Considere a seguinte estrutura criada para representar alunos de uma universidade:

typedef struct {
  int matricula;
  float notas[3];
} Aluno;

Aluno turma[40];

Qual comando apresenta a sintaxe correta para atribuir o valor 8.5 à segunda nota do quinto aluno da turma?

  1. aluno[4].notas[2] = 8.5;
  2. turma[4].notas[1] = 8.5;
  3. turma[4]->notas[1] = 8.5;
  4. turma[5].notas[2] = 8.5;
  5. turma.notas[4][1] = 8.5;

Resolução completa

Explicação passo a passo

B
Alternativa B

Alternativa B

Para resolver esta questão de programação em C, é necessário entender como funcionam estruturas (structs), arrays e a indexação baseada em zero.

Análise Detalhada

A estrutura definida no código é a seguinte:

  • typedef struct { ... } Aluno;: Define um tipo chamado Aluno.
  • Aluno turma[40];: Cria um array chamado turma capaz de armazenar 40 objetos do tipo Aluno.

Cada objeto Aluno possui um campo notas, que é um array de 3 floats.

Passo 1: Identificando os Índices

Em C, a contagem de posições em arrays começa sempre em zero. Portanto:

  • Para acessar o quinto aluno, precisamos usar o índice 4 ($5 - 1 = 4$).
  • Para acessar a segunda nota, precisamos usar o índice 1 ($2 - 1 = 1$).

Passo 2: Operadores de Acesso

  • O operador . (ponto) é utilizado para acessar membros de uma estrutura quando temos a instância direta dela.
  • O operador -> (seta) é utilizado apenas quando estamos acessando membros através de um ponteiro para a estrutura. Como turma é um array direto e não um ponteiro, usamos o ponto.

Passo 3: Montando a Expressão

  1. Acessamos o quinto aluno: turma[4]
  2. Acessamos o membro notas desse aluno: turma[4].notas
  3. Acessamos a segunda posição do array de notas: turma[4].notas[1]
  4. Realizamos a atribuição: turma[4].notas[1] = 8.5;

Comparativo das Alternativas

AlternativaAnáliseStatus
AUsa o nome do tipo Aluno ao invés da variável turma. Índice errado (3ª nota).Incorreta
BUso correto do índice 4 (5º aluno), operador . e índice 1 (2ª nota).Correta
CUsa o operador -> incorretamente (não é um ponteiro).Incorreta
DÍndice 5 refere-se ao 6º aluno. Índice 2 refere-se à 3ª nota.Incorreta
ETenta acessar notas diretamente em turma sem passar pelo índice do aluno.Incorreta

Conclusão

A sintaxe correta para manipular dados dentro de um array de estruturas segue a lógica de Array [Índice Estrutura].Membro [Índice Membro]. A alternativa B aplica exatamente essa lógica com os índices corretos para "quinto aluno" e "segunda nota".

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Computação

Ver mais Computação resolvidas

Tem outra questão de Computação?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.