Questão de Programação — Tipos de dados — INSTITUTO AOCP 2024
- Código
- qg261769
- Banca
- INSTITUTO AOCP
- Órgão
- SANEPAR
- Ano
- 2024
- Nível
- Superior
- Cargo
- Profissional - Analista de Informática
- ABoolean.
- BRecord.
- CArray.
- DStruct.
- EEnum.
GabaritoD — Struct.
Gabarito: letra D. A struct é o tipo de dado estruturado em C que permite agrupar variáveis de diferentes tipos sob um único nome, criando um novo tipo de dado definido pelo usuário. As demais alternativas não correspondem a essa definição: Boolean e Enum são tipos elementares, Array agrupa elementos do mesmo tipo e Record não é uma palavra-chave da linguagem C.
Na linguagem C, os tipos de dados são classificados em duas grandes categorias: elementares (ou primitivos) e estruturados (ou compostos). Os tipos elementares são aqueles fornecidos diretamente pela linguagem, como int, float, double, char e void. Já os tipos estruturados são construídos a partir dos elementares, permitindo agrupar e organizar dados de forma mais complexa. A struct é o principal mecanismo da linguagem C para criar um tipo de dado que agrupa variáveis de tipos diferentes sob um único nome, sendo fundamental para a modelagem de entidades do mundo real, como um registro de aluno com nome, idade e notas.
A struct é um tipo de dado heterogêneo, pois pode conter membros de tipos distintos. Por exemplo, podemos definir uma estrutura para representar um ponto em um plano cartesiano, com coordenadas x e y do tipo int, ou uma estrutura para representar um livro, com título (char[]), autor (char[]) e ano de publicação (int). Essa capacidade de agrupar dados relacionados é o que a torna um tipo estruturado, em contraste com o array, que é uma estrutura homogênea, pois todos os seus elementos devem ser do mesmo tipo.
A distinção entre tipos elementares e estruturados é central para a questão. Enquanto os tipos elementares representam um único valor, os tipos estruturados representam uma coleção de valores, que podem ser de tipos diferentes. A struct é o tipo estruturado que atende exatamente à definição apresentada no enunciado: agrupar variáveis de diferentes tipos sob um único nome. É importante notar que a linguagem C não possui um tipo Boolean nativo (embora seja possível simular com int ou stdbool.h), e Enum é um tipo elementar que define um conjunto de constantes inteiras nomeadas. O Record é um conceito presente em outras linguagens, como Pascal, mas não é uma palavra-chave da linguagem C.
A pegadinha da questão está em confundir struct com array. O array também é um tipo estruturado, mas agrupa elementos do mesmo tipo, enquanto a struct agrupa elementos de tipos diferentes. A banca explora exatamente essa confusão, apresentando o array como uma alternativa plausível, mas incorreta para a definição dada. Guarde essa fronteira: array = homogêneo, struct = heterogêneo.
Tipo de Dado | Classificação | Agrupa elementos de tipos diferentes? | Palavra-chave em C? |
|---|---|---|---|
| Estruturado | Sim (heterogêneo) | Sim |
| Estruturado | Não (homogêneo) | Sim |
| Elementar | Não | Sim |
| Elementar | Não | Não (nativo) |
| — | — | Não |
Boolean não é um tipo de dado estruturado em C. Na verdade, a linguagem C não possui um tipo Boolean nativo; valores booleanos são representados por inteiros (0 para falso e qualquer valor diferente de zero para verdadeiro). É um tipo elementar, não estruturado.
Record não é uma palavra-chave da linguagem C. O conceito de registro existe em outras linguagens, como Pascal, mas em C o equivalente é a struct. A alternativa tenta confundir o candidato com um termo de outra linguagem.
Array é um tipo de dado estruturado, mas agrupa elementos do mesmo tipo (homogêneo). A definição do enunciado exige agrupar variáveis de diferentes tipos, o que é característica da struct. O array é uma estrutura homogênea, enquanto a struct é heterogênea.
A struct é o tipo de dado estruturado em C que permite agrupar variáveis de diferentes tipos sob um único nome. Ela é definida com a palavra-chave struct e pode conter membros de tipos elementares ou de outras estruturas, criando um novo tipo de dado definido pelo usuário. É a ferramenta ideal para modelar entidades com múltiplos atributos de naturezas distintas.
Enum (enumeração) é um tipo de dado elementar em C, usado para definir um conjunto de constantes inteiras nomeadas. Ele não agrupa variáveis de tipos diferentes, mas sim um conjunto de valores inteiros com nomes simbólicos, como enum dias {DOM, SEG, TER}.
Gabarito: letra D — a struct é o tipo de dado estruturado em C que agrupa variáveis de diferentes tipos sob um único nome.
Link permanente: /questoes/qg261769