Buscar

Simulado 1 - Aula 3

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1a Questão 
 
Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, 
agrupados sob uma lógica e associados por um nome. 
Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição 
de uma estrutura como: 
 
 struct aluno { 
 string nome; 
 float nota; 
}; 
 
Suponha ainda que exista um vetor desta estrutura, definido como: 
 aluno vet [ 100]; 
 
Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo primeiro 
elemento deste vetor. 
 
 
vet[10].aluno.nota=5.7 ; 
 aluno.vet[10]=5.7; 
 
aluno.vet[10].nota=5.7; 
 
vet[10]=aluno.5.7; 
 vet[10].nota=5.7; 
 
 
 
 
 
 2a Questão 
 
 
Com relação à struct, é correto afirmar que : 
 
 Cada elemento da struct é chamado componente. 
 Não é possível criar um vetor de structs, pois o vetor trabalha apenas 
com dados do mesmo tipo. 
 Cada elemento da struct é chamado campo e cada campo deve ser, 
obrigatoriamente, de um tipo de dados distinto de outro campo. 
 A struct é sempre definida dentro da main. 
 Cada elemento da struct é denominado membro ou campo, sendo que 
a struct pode armazenar elementos de tipos diferentes ou não. 
 
 
 
 
 
 
 3a Questão 
 
 
Marque a afirmativa correta para a "Inserção em lista linear sequencial ordenada". 
 
 
Consiste em adicionar um valor no vetor, alterando a ordem existente e ajustando o total de 
elementos. 
 
Consiste em fazer uma busca em um vetor já ordenado, dividindo o espaço de busca ao meio e 
verificando se o dado está no meio ou, antes do meio ou depois do meio. 
 É o processo pelo qual um conjunto de dados é colocado em uma ordem crescente ou decrescente. 
 
Consiste em fazer uma busca em um vetor desordenado, dividindo o espaço de busca ao meio e 
verificando se o dado está no meio ou, antes do meio ou depois do meio. 
 Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de 
elementos. 
 
 
 
Explicação: 
Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos. 
Só pode ocorrer, no entanto, se a lista não estiver cheia. 
 
 
 
 
 4a Questão 
 
 
Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, agrupados 
sob uma lógica e associados por um nome. Esses elementos podem ser variáveis simples, matrizes ou 
ainda outras estruturas. Seja a definição de uma estrutura como: struct aluno { string nome; float media; 
}; Suponha ainda que exista um vetor desta estrutura, definido como: aluno vet [ 10]; Marque a 
alternativa em que é atribuída de forma correta a media 6.0 para o quarto elemento deste vetor. 
 
 vet[3].media=6.0; 
 
aluno[10]=6.0; 
 aluno[3].10=6.0; 
 
vet[3].aluno=6.0; 
 
aluno[3].media=6.0; 
 
 
 
 
 
 5a Questão 
 
 
Marque a opção correta, considerando 
 
struct Livro { 
int codigo; 
float preco; 
} liv; 
 
 
Livro.codigo = 12345; 
 
Livro->liv.codigo = 12345; 
 
liv->preco = 30.70; 
 liv.preco = 30.70; 
 Livro.liv.codigo = 12345; 
 
 
 
 
 
 6a Questão 
 
 
Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, agrupados 
sob uma lógica e associados por um nome. 
Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição de uma 
estrutura como: 
struct aluno { 
string nome; 
float nota; 
}; 
 
Suponha ainda que exista um vetor desta estrutura, definido como: 
 
aluno vet [100]; 
 
Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo primeiro elemento 
deste vetor. 
 
 aluno.vet[10]=5.7; 
 
vet[10]=aluno.5.7; 
 
aluno.vet[10].nota=5.7; 
 vet[10].nota=5.7; 
 
vet[10].aluno.nota=5.7 ; 
 
 
 
 
 
 7a Questão 
 
 
Dadas as afirmativas abaixo, identifique as corretas e marque a alternativa verdadeira. 
I- Vetores e matrizes servem apenas para construir agregados de dados heterogêneos. 
II- Registros em C++ são tipos de dados compostos formados por mais de um tipo de dados. 
III- Na Linguagem C++, "struct" é uma palavra reservada que serve para definir registros. 
IV- Registros são tipos de dados heterogêneos. 
 
 estão corretas apenas as afirmativas I, II e IV. 
 
estão corretas apenas as afirmativas I, II e III. 
 
estão corretas apenas as afirmativas I, III e IV. 
 estão corretas apenas as afirmativas II, III e IV. 
 
todas as afirmativas estão corretas. 
 
 
 
Explicação: 
Analisando as afirmativas, temos : 
Afirmativa I : Falso. Vetores e matrizes são agregados homogêneos. 
Afirmativas II, III e IV : Estão corretas. Basicamente, structs são agregados heterogêneos. 
Logo, a opção correta é estão corretas apenas as afirmativas II, III e IV. 
 
 
 
 
 8a Questão 
 
 
o programa de computador necessita preencher uma lista de alunos (nome e nota) até que a lista esteja cheia. 
Sabe-se que a lista tem capacidade para 25 alunos. Utilizando agregados heterogêneos, qual o trecho de 
código que exibe a melhor forma de solucionar este problema? 
 
 
for (int i = 0; i <= 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; } 
 
int i = 0; while( i < 25) { cin >> lista[i].nome; cin >> lista[i].cargo; i ++; } 
 
for (int i = 0; i < 25; i++) { cin >> lista[i]->nome; cin >> lista[i]->nota; } 
 for (int i = 0; i < 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; } 
 for (int i = 0; i < 25; i++) { cin >> lista->nome; cin >> lista->nota; } 
 
 
 
Explicação: 
Analisando cada item : 
for (int i = 0; i <= 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; } 
>> Falso. Veja que se há 25 itens, os índices começarão de 0 e irao até 24 e não 25. 
 
for (int i = 0; i < 25; i++) { cin >> lista[i]->nome; cin >> lista[i]->nota; } 
>> Falso. Para acessar o campo de struct é ponto e não seta. lista[i] é uma struct e não um ponteiro. 
 
for (int i = 0; i < 25; i++) { cin >> lista->nome; cin >> lista->nota; } 
 >> Falso. Para acessar o campo de struct é ponto e não seta. lista é um vetor e lista[i] é um componente de 
lista. Usamos o operador seta quando temos ponteiro para struct. 
 
for (int i = 0; i < 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; } 
 
>> Verdadeiro. 
 
int i = 0; while( i < 25) { cin >> lista[i].nome; cin >> lista[i].cargo; i 
++; } 
 
>> Falso, porque foi pedido nome e nota e não cargo.

Outros materiais