A estrutura permite agregar diversas informações, que podem ser de diferentes tipos. Possibilita gerar novos tipos de dados, além dos definidos pelas linguagens de programação.
LEAL, G. C. P. Algoritmos e Lógica de Programação II. Maringá: Unicesumar, 2016.
Analise o código a seguir:
1 #include
2 typedef struct {
3 char nome[30];
4 char telefone[15];
5 } contato;
6
7 contato agenda[20];
8
9 int main() {
(...)
26 return 0;
27 }
Considerando o código apresentado, assinale a alternativa correta:
Alternativas
Alternativa 1:
As estruturas, na linguagem C, são elementos que permitem diferentes dados que são acessados por índices numéricos iniciados em 0.
Alternativa 2:
A estrutura no código apresentado não pode ser considerada como uma estrutura heterogênea, pois possui dados do mesmo tipo apenas.
Alternativa 3:
O comando typedef é utilizado para a criação de estruturas na linguagem C. A criação de estruturas é sempre feita após as palavras "typedef struct".
Alternativa 4:
O uso do typedef permite a criação de um novo tipo de dado. Com isso, a declaração da variável pode ser feita indicando o nome da estrutura, como o tipo de dado da variável.
Alternativa 5:
No código apresentado, o nome "contato" é apenas um identificador temporário. É por isso que ele fica ao final da estrutura. Após a atribuição da variável, o nome "contato" é desassociado da estrutura.
Soluções para a tarefa
Alternativa 2, como na afirmação se fala que a estrutura NO CÓDIGO, então avaliamos apenas o código, e realmente na estrutura temos apenas dados do tipo char, mas se pegamos struct é considerada uma estrutura heterogênea, entretanto neste código ela está homogênea.
A afirmação 1, está incorreta pois ela fala no geral das estruturas, e para acessamos qualquer dado na estrutura temos que utilizar um operador de seleção, que seria o "ponto".
A afirmação 3 está incorreta pois, ela é usada apenas typedef e não "typedef struct".
Na afirmação 4, fala que permite a criação de novo dado, entretanto isso está incorreto, ela não cria novos dados e sim renomeá um tipo de dado.
Na 5 afirmação, ela nos diz sobre identificador temporário, na verdade não existe identificador temporário, e sim identificar na struc, no código a estrutura struc está incorreta, pois o identificador vai logo apos o nome struc, ele é o nome da estrutura, logo não pode ser desassociado da estrutura.
Espero ter ajudado, bons estudos!
Resposta:
Alternativa 1.
Explicação:
Bem, seja um set, uma árvore binária, uma struct, um vetor, uma matriz, uma fila, uma pilha ou qualquer outra estrutura de dado, o seu índice primário sempre será 0.
Alternativa 2) Falsa, apesar de ter sido utilizado apenas um tipo, a função struct consegue armazenar diferentes tipos.
Alternativa 3) Falso, o comando typedef serve apenas para encurtar algum comando. Por exemplo,
typedef pair<int, int> pii;
Depois de ter dado esse comando, ao invés de precisar escrever pair<int,int> a todo instante, basta eu escrever pii.
4) Falso, como explicado anteriormente.
5) Não, ele é o nome da estrutura, o nome do endereço de memória em que ela está armazenada.
Espero ter ajudado, bons estudos.