Buscar

ESTRUTURA DE DADOS AV PARCIAL

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 12 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

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 6, do total de 12 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

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 9, do total de 12 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

Prévia do material em texto

ESTRUTURA DE DADOS 
 
Avaliação Parcial: CCT0753_SM_201703163095 V.1 
Aluno(a): DAVI FELIX Matrícula: 
Acertos: 8,0 de 10,0 Data: 17/04/2018 09:51:41 (Finalizada) 
 
 
1a Questão (Ref.:201704054399) Acerto: 1,0 / 1,0 
Qual estrutura de dados é mais adequada para armazenar a estrutura do diretório do sistema 
de arquivos de um sistema operacional? 
 
 
Fila 
 
Lista 
 
Grafo 
 
Pilha 
 Árvore 
 
 
 
2a Questão (Ref.:201704369026) Acerto: 1,0 / 1,0 
É um exemplo de TAD Não Linear: 
 
 
Filas 
 
Pilhas 
 Grafos 
 
Filas de Prioridade 
 
Listas 
 
 
 
3a Questão (Ref.:201704041911) Acerto: 1,0 / 1,0 
Considera a FUNÇÃO abaixo: 
 
void inverte(int &x, int &y) 
{ int aux = x; 
x = y; 
y = aux; } 
Quais valores serão impressos na tela quando o seguinte programa principal for executado? 
int main() 
{ int a = 18, b = 28; 
inverte(a, b); 
cout << a <<" e "<< b; 
return 0; } 
 
 
08 e 18 
 
28 e 08 
 28 e 18 
 
18 e 18 
 
18 e 28 
 
 
 
4a Questão (Ref.:201706015171) Acerto: 0,0 / 1,0 
Diga, para o trecho do programa abaixo, qual a opção que representa a saída em tela. Considere que o programa será 
compilado sem erros, e irá executar também sem problemas. 
void troca (int x, int *y){ 
 int tmp; 
 tmp = *y; 
 *y = x; 
 x = tmp; 
} 
int main() { 
 int a = 13, b = 10; 
 troca( a, &b ); 
 cout<<"Valores: "<< a<<"\t"<< b<< endl; 
 system("pause"); 
} 
 
 
Valores: 31 01 
 
Valores: 10 13 
 Valores: 13 10 
 
Valores: 10 10 
 Valores: 13 13 
 
 
 
5a Questão (Ref.:201703207012) Acerto: 1,0 / 1,0 
Qual das seguintes estruturas de dados é classificada como heterogênea? 
 
 Registro 
 
Loop 
 
Fila 
 
Pilha 
 
Vetor 
 
 
 
 
6a Questão (Ref.:201703846866) Acerto: 1,0 / 1,0 
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.5.7; 
 
aluno.vet[10].nota=5.7; 
 
aluno.vet[10]=5.7; 
 
vet[10].aluno.nota=5.7 ; 
 vet[10].nota=5.7; 
 
 
 
7a Questão (Ref.:201703207337) Acerto: 1,0 / 1,0 
É correto afirmar sobre o funcionamento da busca sequencial. 
 
 
Os elementos são pesquisados aleatoriamente. Pior caso: o elemento está no último 
índice do meu vetor. 
 
Os elementos são pesquisados de acordo com o índice. Melhor caso: o elemento está no 
último índice do meu vetor. 
 Os elementos são pesquisados de acordo com o índice. Pior caso: o elemento está no 
primeiro índice do meu vetor. 
 Os elementos são pesquisados de acordo com o índice. Pior caso: o elemento está no 
último índice do meu vetor. 
 
Os elementos são pesquisados de acordo com o índice. Melhor caso: o elemento está no 
meio do meu vetor. 
 
 
 
 
8a Questão (Ref.:201703207189) Acerto: 1,0 / 1,0 
Marque a afirmativa correta para a "Ordenação em Listas Lineares Sequenciais". 
 
 
Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o 
total de elementos. 
 
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 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 adicionar um valor no vetor, alterando a ordem existente e ajustando o 
total de elementos. 
 
 
 
 
9a Questão (Ref.:201703770608) Acerto: 0,0 / 1,0 
Estude atentamente o código a segir: 
int deciframe(int v[ ], int tam, int e){ 
int i = 0, f = tam -1, m; 
while ( i <= f ){ 
m = ( i + f ) / 2; 
if ( v[m] == e ) { return m; } 
if ( e < v[m] ) { f = m - 1; } 
else { i = m + 1; } 
} 
return -1; 
} 
Sabendo que a chamada da mesma foi feita com os parâmetros recebendo os seguintes 
valores, o que ela retornaria? 
v[10] = {0, 2, 4, 6, 8, 10, 20, 100} 
tam = 8 
e = -6 
 
 
0 
 6 
 
4 
 
3 
 -1 
 
 
 
10a Questão (Ref.:201703206995) Acerto: 1,0 / 1,0 
O que acontece ao se inserir uma informação quando já usamos toda a área disponível do vetor 
(topo = fim)? 
 
 
underflow 
 
ordenação 
 
remoção 
 overflow 
 
inclusão 
 
 
1a Questão (Ref.:201703884489) Acerto: 1,0 / 1,0 
Observe o trecho do programa em C++ abaixo e, após, entrar com os valores sugeridos para 
sua execução assinale a alternativa que representa a resposta final. 
cin >> a; 
cin >> b; 
cin >> c; 
cin >> d; 
 
cout << a; 
cout << b; 
cout << c; 
cout << d; 
 
cout << d; 
cout << c; 
cout << b; 
cout << a; 
 
 
Após a impressão dos valores pela ordem teremos uma fila e um grafo. 
 
Após a impressão dos valores pela ordem teremos uma pilha e uma fila. 
 Após a impressão dos valores pela ordem teremos uma fila e uma pilha. 
 
Após a impressão dos valores pela ordem teremos duas filas. 
 
Após a impressão dos valores pela ordem teremos duas pilhas. 
 
 
 
2a Questão (Ref.:201703207164) Acerto: 1,0 / 1,0 
Estão entre algumas das possíveis formas de se estruturar dados: 
 
 
Grafos, lista ordenada, algoritmos. 
 
Algoritmos, lista ordenada, vetores. 
 Grafos, lista ordenada, vetores. 
 
Grafos, algoritmos, fila. 
 
Lista encadeada, vetores, algoritmos. 
 
 
 
 
3a Questão (Ref.:201704041896) Acerto: 1,0 / 1,0 
Considere a seguinte função: void dobro(int x) { x = 2 * x; } Qual valor será impresso na tela 
quando o seguinte programa principal for executado? int main() { int n = 3; n = n + 2; 
dobro(n); cout << n; return 0; } 
 
 5 
 
3 
 
10 
 
20 
 
0 
 
 
 
4a Questão (Ref.:201704205284) Acerto: 0,0 / 1,0 
Considere as seguintes afirmativas : 
I) Os vetores em C++, quando passados como parâmetros de funções, são obrigatoriamente 
passados "por valor" e não "por referência". 
II) Variáveis globais são um recurso adequado para troca de informações entre funções 
distintas. 
III) Caso uma função necessite retornar mais de um valor ao programa que a chamou, deve 
fazê-lo usando parâmetros passados "por valor". 
As afirmativas corretas são: 
 
 
Apenas I 
 Nenhuma está correta 
 Apenas III 
 
Apenas I e II 
 
Apenas II 
 
 
 
5a Questão (Ref.:201703207519) Acerto: 1,0 / 1,0 
A armazenagem de dados pode ocorrer temporariamente em uma variável, um vetor ou em 
uma estrutura chamada Struct na linguagem C e C++. Como se procede a atribuição de valor a 
um determinado campo de uma estrutura do tipo Struct? 
 
 
Nome da estrutura ponto tipo do campo 
 Nome da estrutura ponto nome do campo 
 
Nome da estrutura vírgula tipo do campo 
 
Nome da estrutura seta tipo do campo 
 
Nome da estrutura seta nome do campo 
 
 
 
 
6a Questão (Ref.:201703207012) Acerto: 1,0 / 1,0 
Qual das seguintes estruturas de dados é classificada como heterogênea? 
 
 
Loop 
 
Vetor 
 Registro 
 
Pilha 
 
Fila 
 
 
 
 
7a Questão (Ref.:201703207191) Acerto: 1,0 / 1,0 
Marque a afirmativa correta paraa "Busca ou pesquisa binária". 
 
 
É o processo pelo qual um conjunto de dados é colocado em uma ordem crescente ou 
decrescente. 
 
Consiste em adicionar um valor no vetor, alterando a ordem existente e ajustando o 
total de elementos. 
 
Consiste em adicionar um valor no vetor, mantendo 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. 
 
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. 
 
 
 
 
8a Questão (Ref.:201703207439) Acerto: 1,0 / 1,0 
O resultado do concurso para o cargo de uma empresa está armazenado em um vetor, que contém em 
cada um de seus elementos o nome e a nota obtida pelo candidato. Deseja-se que este vetor seja 
ordenado pela nota, em ordem decrescente. Sendo o vetor pequeno (poucos elementos), o programador 
responsável por desenvolver este algoritmo, escolheu um método de ordenação que executa os 
seguintes passos: 
 Selecione candidato com maior nota entre todos e troque-o com o candidato que está na 
primeira posição do vetor; 
 Selecione o segundo maior e troque-o com o candidato que está na segunda posição; 
 Os passos descritos anteriormente são seguidos para a terceira nota, quarta nota e assim por 
diante até que reste apenas um candidato. 
O algoritmo utilizado pelo programador trata-se do método de ordenação denominado: 
 
 
Bolha 
 
Heapsort 
 
Inserção 
 
Quicksort 
 Seleção 
 
 
 
 
9a Questão (Ref.:201704060917) Acerto: 1,0 / 1,0 
Considere uma lista sequencial L com n fichas de professores, sendo que cada ficha de 
professor é modelada pela struct : 
struct professor { 
int matricula; 
char titulo[30]; 
}; 
e a lista L é assim declarada : professor L[n]; 
 
Assinale o trecho que corretamente exibe todas as matrículas e titulações de todos os n 
professores de L . 
 
 
for (int i = 0; i < n; i++) 
cout << L.matricula[i] << " " << L.titulo[i] << endl; 
 
for (int i = 0; i < n; i++) 
cout << L[i].matricula << " " << L[i].titulo[30] << endl; 
 
for (int i = 0; i < n; i++) 
cout << L[i] << endl; 
 
for (int i = 0; i < n; i++) 
cout << L.matricula << " " << L.titulo << endl; 
 for (int i = 0; i < n; i++) 
cout << L[i].matricula << " " << L[i].titulo << endl; 
 
 
 
10a Questão (Ref.:201703855061) Acerto: 1,0 / 1,0 
Considere uma lista com n livros, em que cada livro é modelado pela struct : 
 
struct Livro { 
 string titulo, editora, autor; 
 float preco; 
}; 
 
A função X abaixo 
 
void X (Livro v[ ], int &n, Livro L) 
{ 
 v[n] = L; 
 n++; 
 cout << "Operação realizada com sucesso."; 
} 
 
implementa a operação de : 
 
 Busca 
 
Substituição 
 Inserção 
 Inicialização 
 Ordenação por inserção 
 
 
1a Questão (Ref.:201703785122) Acerto: 0,0 / 1,0 
A forma correta para imprimir o valor do último elemento de um vetor v com n posições é: 
 
 
cout << v[ultimo]; 
 cout << v[n-1]; 
 
cin >> v[-1]; 
 cout << v[n+1]; 
 
cout << v[n]; 
 
 
 
2a Questão (Ref.:201703199064) Acerto: 1,0 / 1,0 
Diferentes tipos de estrutura de dados são adequadas a diferentes tipos de aplicação e algumas 
são altamente especializadas, destinando-se a algumas tarefas específicas. Dessa forma a 
definição de Estrutura de Dados está expressa na alternativa: 
 
 
São os nomes dados as variáveis na montagem de uma rotina. 
 
É um modo de utilização de dados nos programas de computador. 
 
É um modo de deleção de dados em um computador. 
 
É um modo de distribuição e organização de dados em uma rede de computador de 
modo que possam ser usados de modo eficiente. 
 É um modo particular de armazenamento e organização de dados em um computador 
de modo que possam ser usados de modo eficiente. 
 
 
 
 
3a Questão (Ref.:201703207551) Acerto: 0,0 / 1,0 
Em programação podemos utilizar um recurso que modulariza o programa chamado função. As 
funções precisam ser ativadas para que possam ser executadas. Para isso, é necessário chamar 
a função pelo seu nome e enviar, quando necessário, os valores respectivos para os parâmetros 
de entrada. Ao enviar os valores para os parâmetros de entrada, o programa pode fazer uma 
cópia deste valor ou trabalhar em um endereço enviado. Quando se envia o endereço estamos 
ativando a função por meio de: 
 
 Ponteiros. 
 
Envio de inteiro. 
 
Registro. 
 Passagem por valor. 
 
Envio de valor. 
 
 
 
 
 
4a Questão (Ref.:201706003577) Acerto: 1,0 / 1,0 
#include < iostream > 
 using namespace std; 
void SOMA(float a, int b) { 
 float result = a+b; 
 cout << "A soma de " << a << " com " << b << " é: " << result; 
} 
int main() 
{ 
int a; 
float b; 
a = 10; b = 12.3; 
SOMA(b,a); 
} 
A função SOMA acima possui as seguintes características : 
 
 Não retorna valor e possui parâmetros. 
 
Retorna valor e não possui parâmetros. 
 
Retorna valor. 
 
Retorna valor e possui parâmetros. 
 
Não retorna valor e não possui parâmetros. 
 
 
 
5a Questão (Ref.:201703879116) Acerto: 0,0 / 1,0 
Marque a opção correta, considerando 
 
struct Livro { 
int codigo; 
float preco; 
} liv; 
 
 Livro.codigo = 12345; 
 
liv->preco = 30.70; 
 liv.preco = 30.70; 
 
Livro.liv.codigo = 12345; 
 
Livro->liv.codigo = 12345; 
 
 
 
6a Questão (Ref.:201704250091) Acerto: 1,0 / 1,0 
Em C++, quando uma variável é declarada como uma struct, o acesso para atribuição e leitura 
dos membros (campos) deste registro se dá pelo operador : 
 
 
& (e comercial ou eitza). 
 ∙ (ponto). 
 
, (vírgula). 
 
-> (seta). 
 
* (asterisco). 
 
 
 
7a Questão (Ref.:201703207191) Acerto: 1,0 / 1,0 
Marque a afirmativa correta para a "Busca ou pesquisa binária". 
 
 
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, alterando a ordem existente e ajustando o 
total de elementos. 
 
É o processo pelo qual um conjunto de dados é colocado em uma ordem crescente ou 
decrescente. 
 
Consiste em adicionar um valor no vetor, mantendo 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. 
 
 
 
 
8a Questão (Ref.:201703795817) Acerto: 0,0 / 1,0 
Qual papel do for mais interno na função ordena abaixo ? 
void ordena( int n, int v[]) 
{ 
 int i, j, x; 
 for (j = 1; j < n; ++j) { 
 x = v[j]; 
 for (i = j-1; i >= 0 && v[i] > x; --i) 
 v[i+1] = v[i]; 
 v[i+1] = x; 
 } 
} 
 
 Encontrar o maior valor de x que deve ser inserido em v[0..j-1]. 
 Encontrar o ponto onde v[j] deve ser inserido em v[0..j-1]. 
 
Encontrar o menor valor v[j] que deve ser inserido em v[0..j-1]. 
 
Encontrar o elmento a ser eliminado do vetor 
 
Encontrar o valor de v[j] deve em v[0..j-1]. 
 
 
 
 
9a Questão (Ref.:201703412276) Acerto: 0,0 / 1,0 
 
 
 for (int i = 0; i < n; i++) 
 cout << L[i].matricula << " " << L[i].nome << endl; 
 for (int i = 0; i < n; i++) 
 cout << L[i].matricula << " " << L[i].nome[30] << endl; 
 for (int i = 0; i < n; i++) 
 cout << L.matricula[i] << " " <<L.nome[i] << endl; 
 for (int i = 0; i < n; i++) 
 cout << L[i] << endl; 
 for (int i = 0; i < n; i++) 
 cout << L.matricula << " " << L.nome << endl; 
 
 
 
 
10a Questão (Ref.:201703855061) Acerto: 1,0 / 1,0 
Considere uma lista com n livros, em que cada livro é modelado pela struct : 
 
struct Livro { 
 string titulo, editora, autor; 
 float preco; 
}; 
 
A função X abaixo 
 
void X (Livro v[ ], int &n, Livro L) 
{ 
 v[n] = L; 
 n++; 
 cout << "Operação realizada com sucesso."; 
} 
 
implementa a operação de : 
 
 Inicialização 
 Busca 
 Ordenação por inserção 
 
Substituição 
 Inserção

Outros materiais