Buscar

AVS est. dados - Mauro 2015

Prévia do material em texto

Fechar 
 
Avaliação: CCT0174_AVS_201107084611 » ESTRUTURA DE DADOS 
Tipo de Avaliação: AVS 
Aluno: MAURO SCERNI LASSANCE MAYA 
Professor: SERGIO DE OLIVEIRA SANTOS Turma: 9001/AA 
Nota da Prova: 4,0 Nota de Partic.: 1 Data: 02/07/2015 09:10:22 
 
 
 1a Questão (Ref.: 201107151636) Pontos: 1,5 / 1,5 
Como é a lógica do FIFO? 
 
 
 
Resposta: O primeiro dado que chega será o primeiro a ser processado, sendo caracterizado como uma fila. 
 
 
Gabarito: O primeiro que entra na fila é o primeiro que sai. 
 
 
 
 2a Questão (Ref.: 201107327631) Pontos: 0,0 / 1,5 
 Faça uma função em C++ para imprimir os dados de uma lista duplamente encadeada não vazia. Considere 
 struct nodupla { 
 int dado; 
 struct *dlink, //ponteiro para o nó à direita 
 *elink; //ponteiro para o nó à esquerda 
 }; 
 
e o seguinte protótipo : void mostrar(nodupla *p); 
 
Considere que p aponta para o 1o. nó da lista à esquerda. 
 
 
 
Resposta: struct nodupla { int dado; struct *dlink, *elink; void mostrar(nodupla *p); }; 
 
 
Gabarito: 
void mostrar(nodupla *p) 
{ 
 while (p != NULL) 
 { 
 cout << p->dado << " "; 
 p = p->dlink; 
 } 
} 
 
 
 
 3a Questão (Ref.: 201107323443) Pontos: 0,0 / 0,5 
As estruturas de dados podem ser caracterizadas como sendo uma forma organizada de armazenar dados ou 
informações na memória, de modo a otimizar o acesso a estes. Muitas vezes existem algoritmos de manipulação 
dados associados a estas estruturas. Verifique as seguintes sentenças: 
I-Filas são estruturas que recuperam os dados na ordem direta em que estes foram armazenados. 
II-As Pilhas são estruturas que recuperam os dados na ordem reversa em que estes foram armazenados. 
III-As Pilhas são estruturas que recuperam os dados na ordem direta em que estes foram armazenados. 
IV-As Filas são estruturas que recuperam os dados na ordem reversa em que estes foram armazenados. 
Marque a alternativa CORRETA: 
 
 
 As alternativas II e IV estão corretas. 
 
As alternativas I e III estão corretas. 
 
Todas as alternativas estão corretas. 
 
As alternativas III e IV estão corretas. 
 As alternativas I e II estão corretas 
 
 
 
 4a Questão (Ref.: 201107112735) Pontos: 0,5 / 0,5 
Assinale a alternativa que apresenta duas formas de passagem de parâmetros para uma rotina ou função: 
 
 
 
Por memória e por disco. 
 
Por reforço e por referência. 
 Por valor e por referência 
 
Por teste e por reforço. 
 
Por inferência e por valor. 
 
 
 
 5a Questão (Ref.: 201107121006) Pontos: 0,5 / 0,5 
Sobre o funcionamento da busca binária, é correto afirmar que dividindo seu vetor em duas metades. 
 
 
 
Se o item for menor que o item que está na metade do vetor, procure na segunda metade, ou seja, a da 
direita. 
 Se o item for igual ao item que está na metade do vetor, o item foi encontrado. 
 
Se o item for menor que o item que está na metade do vetor, o item foi encontrado. 
 
Se o item for maior que o item que está na metade do vetor procure na primeira metade, ou seja, a da direita. 
 
Se o item for igual ao item que está na metade do vetor, o item não foi encontrado. 
 
 
 
 6a Questão (Ref.: 201107120852) Pontos: 0,0 / 0,5 
Marque a afirmativa correta para a "inserção incremental". 
 
 
 
A técnica é boa quando os dados ficam uniformemente distribuídos entre os seus compartimentos. 
 
É um tipo de sequenciação por intercalação. 
 Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos. 
 
Os pivôs são escolhidos aleatoriamente. 
 É um tipo de ordenação por intercalação 
 
 
 
 7a Questão (Ref.: 201107188311) Pontos: 0,5 / 0,5 
Quando as inserções e as remoções ocorrem sempre no mesmo lado da lista, trata-se de uma estrutura de dados 
denominada. 
 
 
 
Fila. 
 
Vetor. 
 
Lista encadeada. 
 
Lista circular. 
 Pilha. 
 
 
 
 8a Questão (Ref.: 201107325966) Pontos: 0,0 / 0,5 
 Considere uma pilha sequencial P com capacidade para n elementos. 
 Sabendo que P é do tipo Pilha definido a seguir, marque a opção que corretamente implementa a operação de 
empilhamento, considerando que o topo da pilha recebeu -1 na inicialização. 
 
struct Pilha { 
 int v[n], topo; 
 }; 
 
 
 
 
void empilhar(Pilha P, int valor) { 
 if (P.topo == n) 
 cout << "Pilha cheia."; 
 else { 
 P.topo++; 
 P.v[P.topo] = valor; 
 } 
} 
 void empilhar(Pilha &P, int valor) { 
 if (P.topo == n - 1) 
 cout << "Pilha cheia."; 
 else { 
 P.topo++; 
 P.v[P.topo] = valor; 
 } 
} 
 
void empilhar(Pilha &P, int valor) { 
 if (topo == n - 1) 
 cout << "Pilha cheia."; 
 else { 
 topo++; 
 v[topo] = valor; 
 } 
} 
 void empilhar(Pilha &P, int valor) { 
 if (P.topo == n - 1) 
 cout << "Pilha cheia."; 
 else 
 P.v[P.topo] = valor; 
} 
 
 
void empilhar(Pilha P, int valor) { 
 if (P.topo == n - 1) 
 cout << "Pilha cheia."; 
 else { 
 P.topo++; 
 P.v[P.topo] = valor; 
 } 
} 
 
 
 
 9a Questão (Ref.: 201107121219) Pontos: 1,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: 
 
 
 
Envio de inteiro. 
 
Passagem por valor. 
 Ponteiros. 
 
Registro. 
 
Envio de valor. 
 
 
 
 10a Questão (Ref.: 201107120645) Pontos: 0,0 / 1,0 
Um apontador é uma variável que contém o endereço de outra variável. Apontadores são muito usados, em parte 
porque são, às vezes, a única forma de se expressar um processo de computação e, em parte, porque, normalmente, 
implicam um código mais compacto e eficiente que o obtido de outras formas. Considerando o uso de apontadores nas 
linguagens procedurais atuais, julgue os itens que se seguem com E se for errado e C se for certo. 
( ) O uso de apontadores como argumentos de funções que realizem chamada por valor não permite alteração de seus 
conteúdos de memória na função. 
( ) Com apontadores, é possível criar funções que retornem estruturas de dados complexas. 
( ) Para recuperar o valor da variável apontada, basta que o apontador seja atribuído a uma variável de mesmo tipo. 
( ) Arranjos de apontadores podem ser usados em funções que recebam como argumentos um número variável de 
cadeias de caracteres. 
( ) Em geral, para que um arranjo seja percorrido por um ponteiro, para cada elemento do arranjo deve-se adicionar 
ao ponteiro o número de bytes que o elemento ocupa em memória. 
 
 b) C - C - E - E - E 
 
c) E - E - C - C - E 
 
e) C - E - C - E - C 
 a) E - C - E - C - E 
 
d) E - C - E - C - C

Continue navegando

Outros materiais