Buscar

ESTRUTURA DADOS AVs 2012 w

Prévia do material em texto

ESTRUTURA DADOS AV1 - 
Nota da Prova: 2,0 de 8,0 Nota do Trab.: Nota de Partic.: 0,5 Data: 15/09/2012 10:20:06 (F) 
 
 
 1a Questão (Ref.: 27617) Pontos: 0,0 / 1,0 
O seguinte trecho de programa abaixo representa qual tipo de estrutura de ordenação? 
void ordenar(float v[], int n) // n é o no. de elementos em v 
{ 
 int i , // índice 
 aux, // auxiliar para troca 
trocou = true, 
fim = n - 1; 
while (trocou) 
{ 
 trocou = false; // sinaliza que é falso que trocou 
 for (i = 0; i < fim; i++) 
 { 
 if (v[i] > v[i+1]) 
 { 
 aux = v[i]; 
 v[i] = v[i+1]; 
 v[i+1] = aux; 
 // sinaliza que é verdadeiro que trocou 
 trocou = true; 
 } // fim if 
 } // fim for 
 fim--; // decrementa o fim 
} // fim while 
} // fim da função 
 
 Mergesort 
 
Shellsort 
 
Heapsort 
 
Quicksort 
 Bublesort 
 Gabarito Comentado. 
 
 
 
 
 2a Questão (Ref.: 28034) Pontos: 0,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 número de inscrição, o nome e a nota obtida pelo candidato. Este vetor está ordenado pelo 
número de inscrição. Para realização de uma consulta que, dado um número de inscrição, apresenta o nome e 
nota do candidato, um programador utilizou um algoritmo de busca que realiza sucessivas divisões no vetor, 
comparando o número de inscrição procurado com o número de inscrição do candidato posicionado no meio do 
vetor. Se o candidato posicionado do meio do vetor tiver o número de inscrição igual ao número de inscrição 
procurado, a busca termina com sucesso. Caso contrário, se candidato posicionado do meio do vetor tiver 
número de inscrição menor que o procurado, então a busca continua na metade posterior do vetor. E 
finalmente, se candidato posicionado do meio do vetor tiver número de inscrição maior que o procurado, a 
busca continua na metade anterior do vetor. O algoritmo utilizado pelo programador trata-se do método 
denominado busca: 
 
 
por contagem. 
 
randômica. 
 
linear. 
 binária. 
 por comparação. 
 Gabarito Comentado. 
 
 
 
 
 3a Questão (Ref.: 31180) Pontos: 0,0 / 1,0 
Existem vários algoritmos de busca em estruturas de dados, um destes realiza a busca em vetores, e requer 
acesso aleatório aos elementos desta estrutura e parte do pressuposto de que os dados do vetor estejam 
ordenados e utiliza a técnica de divisão e conquista comparando o elemento desejado com o elemento do meio 
do vetor. Esta técnica ainda verifica se o elemento do meio do vetor for o desejado, a busca termina. Caso 
contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior 
do vetor. E se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor. O 
algoritmo que utiliza esta metodologia é: 
 
 
Seleção 
 Bolha 
 
Pesquisa sequencial 
 
Inserção 
 Pesquisa binária 
 Gabarito Comentado. 
 
 
 
 
 4a Questão (Ref.: 28143) Pontos: 0,0 / 0,5 
Os algoritmos de busca são muito utilizados em estrutura de dados. Sendo assim, o algoritmo que realiza a 
busca em vetores e que exige acesso aleatório aos elementos do mesmo e que parte do pressuposto de que o 
vetor está ordenado e realiza sucessivas divisões do espaço de busca comparando o elemento que se deseja 
com o elemento do meio do vetor, é chamado de: 
 
 
Tabela Hash 
 Pesquisa de seleção 
 
Pesquisa ordenada 
 Pesquisa binária 
 
Pesquisa sequêncial 
 Gabarito Comentado. 
 
 
 
 
 5a Questão (Ref.: 28135) Pontos: 1,0 / 1,0 
Analisando o trecho do algoritmo abaixo, 
 
pode-se afirmar que se trata de uma operação de: 
 
 Inserção de um elemento em uma estrutura FIFO 
 
Exibição de um elemento em uma estrutura LIFO 
 Inserção de um elemento em uma estrutura LIFO 
 
Remoção de um elemento de uma estrutura FIFO 
 
Remoção de um elemento de uma estrutura LIFO 
 Gabarito Comentado. 
 
 
 
 
 6a Questão (Ref.: 19663) Pontos: 0,5 / 0,5 
Assinale a alternativa que apresenta duas formas de passagem de parâmetros para uma rotina ou função: 
 
 Por valor e por referência 
 
Por memória e por disco. 
 
Por reforço e por referência. 
 
Por teste e por reforço. 
 
Por inferência e por valor. 
 Gabarito Comentado. 
 
 
 
 
 7a Questão (Ref.: 28029) Pontos: 0,0 / 1,0 
Analise o seguinte trecho de algoritmo de ordenação de dados, cujos elementos estão dispostos em um vetor de 
nome v com n elementos. 
... 
{ 
int i, j, aux; 
for (j = 1; j < n; j++) 
for (i=j; i > 0 && v[i-1]> v[i]; i--) { 
aux = v[i-1]; 
v[i-1] = v[i]; 
v[i] = aux; 
} 
} 
... 
Assinale o método ao qual o trecho de algoritmo pertence. 
 
 Inserção 
 
Quicksort 
 Seleção 
 
Bolha 
 
Heapsort 
 Gabarito Comentado. 
 
 
 
 
 8a Questão (Ref.: 31182) Pontos: 0,0 / 1,0 
As estruturas de dados permitem o uso de certos algoritmos para a ordenação dos elementos de forma a 
facilitar a consulta de determinado elemento. Existem vários tipos de algoritmos para realizar a ordenação dos 
elementos, onde um algoritmo de ordenação deve rearranjar o vetor de forma a estabelecer uma ordem entre 
os elementos. O trecho de código abaixo descreve o algoritmo chamado: 
algoritmo ordena (int a[], int n){ 
 Para i da primeira posição até a penúltima faca 
 mínimo = i 
 para j da posição seguinte a i até a ultima posição faça 
 se (a[j] < a[mínimo]) 
 mínimo =j; 
 fim para 
 fim para 
 troca(a[mínimo],a[i]); 
fim algoritmo 
 
 Seleção 
 Bolha 
 
Inserção 
 
QuickSort 
 
MergeSort 
 
 
 
 9a Questão (Ref.: 27582) Pontos: 0,0 / 0,5 
Considere: 
I - Os algoritmos de busca binária e de busca seqüencial executam processamento repetitivo. 
II - Os algoritmos de busca binária e de busca seqüencial utilizam a técnica de recursão. 
III - A busca seqüencial executa cada fase de repetição na forma de uma subtarefa da fase anterior. 
IV - A busca binária trabalha com uma forma circular de repetição. Está correto o que consta em: 
 
 
(C) I e II, apenas. 
 (A) I, apenas. 
 (D) I, II, III e IV. 
 
(E) I e IV, apenas. 
 
(B) II, apenas. 
 
 
 
 10a Questão (Ref.: 27759) Pontos: 0,5 / 0,5 
Podemos dizer que um container é: 
 
 
A saída, que satisfaz a quaisquer restrições impostas pelo problema, necessária para se calcular uma 
solução do problema. 
 
Uma sequência de passos computacionais que transforma uma entrada em uma saída previamente 
determinada. 
 
A entrada, que satisfaz a quaisquer restrições impostas pelo problema, necessária para se calcular uma 
solução do problema. 
 
O meio para armazenar e organizar dados com o objetivo de facilitar o acesso e as modificações. 
 O que permite o armazenamento e a recuperação de dados independentementede seu conteúdo. 
 Gabarito Comentado. 
 
 
 
 
AV2 
Nota da Prova: 5,5 de 8,0 Nota do Trab.: Nota de Partic.: 1 Data: 17/11/2012 16:20:29 (F) 
 
 
 1a Questão (Ref.: 28131) Pontos: 0,5 / 0,5 
O espaço necessário para a representação dos dados pode ser alocado à medida que se torne necessário, 
através da alocação dinâmica. Uma estrutura armazenada através de encadeamento apresenta seus nodos 
alocados em posições aleatórias na memória, e não lado a lado. Dessa forma, existem várias vantagens no uso 
de representar os dados por encadeamento. Marque a alternativa correta que apresenta estas vantagens. 
 
 Compartilhamento de memória, maleabilidade e facilidade para inserção e remoção de componentes. 
 
Acesso, representação, compartilhamento de memória. 
 
Transferência de dados, gerenciamento de memória e procedimentos menos intuitivos. 
 
Proteção de memória, transferência de dados, estruturas simples. 
 
Previsão de espaço físico, estruturas complexas, procedimentos menos intuitivos. 
 Gabarito Comentado. 
 
 
 
 
 2a Questão (Ref.: 28113) Pontos: 1,0 / 1,0 
As variáveis em programação são utilizadas para armazenar um valor de determinado tipo em um espaço 
reservado na memória. Em algumas linguagens de programação podemos declarar, ou seja, reservar um espaço 
na memória, fora do escopo da função principal, e fora do escopo de qualquer outra função. Ao fazer a 
declaração desta forma estamos declarando uma variável do tipo: 
 
 
Constante 
 
Inteiro 
 Global 
 
Real 
 
Local 
 Gabarito Comentado. 
 
 
 
 
 3a Questão (Ref.: 27775) Pontos: 0,0 / 0,5 
Qual a importância de se entender a "ordenação" de dados ? 
 
 A ordenação é a base na qual, muitos sistemas são construídos. Entendendo a ordenação, tem-se 
conhecimento para resolver outros problemas. 
 
A ordenação é a base na qual, muitos sistemas são construídos. Entendendo a ordenação, tem-se 
conhecimento para manter outros problemas. 
 
A ordenação é a base na qual, muitos programas são construídos. Entendendo a ordenação, tem-se 
conhecimento para manter outros problemas. 
 
A ordenação é a base na qual, muitos algoritmos são construídos. Entendendo a ordenação, tem-se 
conhecimento para manter outros problemas. 
 A ordenação é a base na qual, muitos algoritmos são construídos. Entendendo a ordenação, tem-se 
conhecimento para resolver outros problemas. 
 Gabarito Comentado. 
 
 
 
 
 4a Questão (Ref.: 28365) Pontos: 0,5 / 0,5 
Observe o trecho de código em C/C++ a seguir. O laço for preenche os dados dos candidatos no vetor de 
selecionados. (adaptado para C/C++) 
1.struct Candidato { 
2. char nome[15]; 
3. double nota; 
4. }; 
5. 
6.int main(){ 
7. struct Candidato selecionados[5]; 
8. int i; 
9. for (i=0; i<5; i++){ 
10. cout << "Nome: "; 
11. cin.get();cin.get(***********,15); 
12. cout << "Nota: "; 
13. cin >> ***********; 
14. } 
15. ... 
16.} 
Observe que o código no interior dos comandos das linhas 11 e 13 foi substituido por ***********. 
Para que este programa compile e execute sem erros, os asteriscos nas linhas 11 e 13 devem ser substituídos 
respectivamente por: 
 
 selecionados.nome[i] 
selecionados.nota[i] 
 
nome[i] 
nota[i] 
 selecionados[i].nome 
selecionados[i].nota 
 
Candidato[i].nome 
Candidato[i].nota 
 
Candidato.nome[i] 
Candidato.nota[i] 
 
 
 
 5a Questão (Ref.: 28115) Pontos: 0,0 / 0,5 
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 nome do campo 
 
Nome da estrutura vírgula tipo do campo 
 
Nome da estrutura ponto tipo do campo 
 Nome da estrutura seta nome do campo 
 
Nome da estrutura seta tipo do campo 
 Gabarito Comentado. 
 
 
 
 
 6a Questão (Ref.: 27963) Pontos: 0,5 / 0,5 
O resultado de um concurso foi armazenado por um programador em um vetor, onde cada elemento (descrito 
pela struct Candidato) possui a informação da matrícula e nota de cada candidato, conforme descrito a seguir. 
Deseja-se que o vetor com os resultados fique ordenado em ordem decrescente pela nota. O programador 
pretende usar o algoritmo de busca descrito a seguir, porém precisa de ajuda no trecho contendo ********. 
Indique a opção que contém a solução que completa as linhas 1, 3 e 7 do algoritmo. 
... 
struct Candidato { 
 char mat[10]; 
 float nota; 
}; 
... 
1.void ordenaSelecao (******** v[], int n) { 
2. int i, j, maior; 
3. ******** aux; 
4. for (j = 0; j < n-1; j++) { 
5. maior = j; 
6. for (i = j+1; i < n; i++) 
7. if (********) 
8. maior = i; 
9. aux = v[j]; 
10. v[j] = v[maior]; 
11. v[maior] = aux; 
12. } 
13.} 
 
 1. struct Candidato 3. struct Candidato 7. v[i].nota < v[maior].nota 
 
1. float 3. float 7. v[i] < v[maior] 
 
1. int 3. int 7. v[i] < v[maior] 
 
1. int 3. int 7. v[i] > v[maior] 
 1. struct Candidato 3. struct Candidato 7. v[i].nota > v[maior].nota 
 
 
 
 7a Questão (Ref.: 51756) Pontos: 0,0 / 1,0 
Com base nos principais elementos fornecidos pela biblioteca C++ padrão, marque a opção correta que resume 
todos os elementos dessa biblioteca: 
 
 iteradores, vetores, listas, pilhas, filas,conjuntos e multiconjuntos, deques e filas com prioridade, mapas. 
 Vetores, listas, pilhas, filas,conjuntos e multiconjuntos, deques e filas com prioridade, 
 
Iteradores, vetores, listas, pilhas, filas, deques e filas com prioridade, mapas. 
 
Listas, pilhas, filas,conjuntos e multiconjuntos, deques e filas com prioridade, mapas. 
 
Iteradores, pilhas, filas,conjuntos e multiconjuntos, deques e filas com prioridade, mapas. 
 
 
 
 8a Questão (Ref.: 27935) Pontos: 0,5 / 0,5 
Sobre o funcionamento da busca binária, é incorreto afirmar que dividindo seu vetor em duas metades. 
 
 
Se o item for menor ao item que está na primeira posição do vetor, o item não foi encontrado. 
 Se o item for igual ao item que está na metade do vetor, o item não foi encontrado. 
 
Se o item for igual ao 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 segunda metade, ou seja, a da 
direita. 
 
Se o item for menor que o item que está na metade do vetor, procure na primeira metade, ou seja, a da 
esquerda. 
 Gabarito Comentado. 
 
 
 
 
 9a Questão (Ref.: 58564) Pontos: 1,5 / 1,5 
Como é a lógica do FIFO? 
 
 
Resposta: Primeiro que entra é o primeiro a sair. Ou seja igual a uma fila. onde o primeiro a chegar será o 
primeiro a ser atendido. 
 
 
Gabarito: O primeiro que entra na fila é o primeiro que sai. 
 
 
 
 10a Questão (Ref.: 56270) Pontos: 1,0 / 1,5 
Considere uma lista simplesmente encadeada não circular de inteiros e o tipo 
 struct no { 
 int dado;struct no *link; 
 }; 
Faça uma função para inverter a lista e retornar o ponteiro para o início da lista resultante. 
Protótipo : no *inverter(no *ini); //ini aponta para o início da lista 
 
 
Resposta: include<iostream> using namespace std; struct inverter { int dado[3]}; int main() {struct no*link;} 
struct nodo; int ini[3]; do{ cout<<"digite um numero: "; cin>>ini[x]; { no*inverter(no*ini)}; system("pause") 
} 
 
 
Gabarito: no *inverter ( no *ini) // ini é um ponteiro para o início da lista { no *a, *b, *c; a = ini; b = NULL; 
while (a != NULL) { c = b; b = a; a = a->link; b->link = c; } ini = b; return(ini); } /* fim da função */ 
 
Av3 
Nota da Prova: 6,0 de 10,0 Nota do Trab.: Nota de Partic.: Data: 10/12/2012 07:26:20 (F) 
 
 
 1a Questão (Ref.: 28092) Pontos: 0,0 / 1,0 
Considerando que uma fila seqüencial utiliza dois apontadores para indicar suas posições de final e início da 
estrutura, supondo que a fila foi criada com os apontadores apontando para a posição zero do vetor, qual das 
alternativas a seguir pode caracterizar uma fila vazia? 
 
 Quando o apontador de posição final for igual ao início. 
 
Quando os apontadores de final e início apontarem para zero. 
 
Quando o apontador de final apontar para zero. 
 
Quando o apontador de início apontar para zero. 
 Quando o apontador de final menos um (final-1) for igual ao inicio. 
 
 
 
 2a Questão (Ref.: 11288) Pontos: 1,0 / 1,0 
A tabela abaixo mostra as operações para a manipulação de uma pilha. 
 
 
Utilizando as definições acima, a seqüência de instruções a seguir foi implementada para avaliar o resultado de uma expressão, 
sendo A, B, C, D e E os operandos desta expressão. O resultado da avaliação é acumulado em F. 
PUSH A 
PUSH B 
SUB 
PUSH C 
PUSH D 
PUSH E 
MPY 
ADD 
DEC 
DIV 
POP F 
Com base no que foi exposto acima, se A, B, C, D e E apresentarem, respectivamente, os valores 9, 3, 2, 1 e 1, qual o valor 
armazenado em F após a execução da instrução POP F? 
 
 
6 
 
5 
 
2 
 
4 
 3 
 
 
 
 3a Questão (Ref.: 27566) Pontos: 1,0 / 1,0 
Em uma pesquisa sequencial a lista deve estar? 
 
 
ordenada somente do início até a metade da lista. 
 
ordenada somente o primeiro da lista. 
 
desordenada somente da metade da lista até o final. 
 ordenada ou desordenada. 
 
sempre desordenada. 
 Gabarito Comentado. 
 
 
 
 
 4a Questão (Ref.: 28117) Pontos: 0,0 / 1,0 
Para simular uma lista encadeada simplesmente pode se utilizar as estruturas de ponteiros. Como pode ser 
definida uma estrutura do tipo ponteiro? 
 
 
Uma estrutura que aponta para um objeto de arquivo. 
 Um objeto que contém um endereço de memória. 
 
Um objeto que não contém endereço de memória. 
 
Uma estrutura utilizada apontar erros de operações. 
 Um objeto que armazena dado diretamente na memória. 
 Gabarito Comentado. 
 
 
 
 
 5a Questão (Ref.: 28131) Pontos: 1,0 / 1,0 
O espaço necessário para a representação dos dados pode ser alocado à medida que se torne necessário, 
através da alocação dinâmica. Uma estrutura armazenada através de encadeamento apresenta seus nodos 
alocados em posições aleatórias na memória, e não lado a lado. Dessa forma, existem várias vantagens no uso 
de representar os dados por encadeamento. Marque a alternativa correta que apresenta estas vantagens. 
 
 
Proteção de memória, transferência de dados, estruturas simples. 
 
Transferência de dados, gerenciamento de memória e procedimentos menos intuitivos. 
 
Acesso, representação, compartilhamento de memória. 
 
Previsão de espaço físico, estruturas complexas, procedimentos menos intuitivos. 
 Compartilhamento de memória, maleabilidade e facilidade para inserção e remoção de componentes. 
 Gabarito Comentado. 
 
 
 
 
 6a Questão (Ref.: 19660) Pontos: 0,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: 
 
 
É um modo de deleção de dados em um computador. 
 É um modo particular de armazenamento e organização de dados em um computador de modo que 
possam ser usados de modo eficiente. 
 
São os nomes dados as variáveis na montagem de uma rotina. 
 
É 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 de utilização de dados nos programas de computador. 
 Gabarito Comentado. 
 
 
 
 
 7a Questão (Ref.: 27933) Pontos: 1,0 / 1,0 
É correto afirmar sobre o funcionamento da busca sequencial. 
 
 
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 último índice do 
meu vetor. 
 
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. Pior caso: o elemento está no primeiro índice do 
meu vetor. 
 
Os elementos são pesquisados de acordo com o índice. Melhor caso: o elemento está no meio do meu 
vetor. 
 Gabarito Comentado. 
 
 
 
 
 8a Questão (Ref.: 29027) Pontos: 0,0 / 1,0 
Uma lista simplesmente encadeada pode ser transformada em uma lista duplamente encadeada em tempo 
O(1), porque para transformar uma lista simplesmente encadeada em duplamente encadeada basta fazer uma 
cópia invertida de cada ponteiro (o destino do novo ponteiro passa a ser a origem do ponteiro original e vice-
versa) e existe um número constante e limitado de cópias a fazer. Analisando as afirmações acima, conclui-se 
que: 
 
 
As duas afirmações são verdadeiras e a segunda não justifica a primeira. 
 
As duas afirmações são verdadeiras e a segunda justifica a primeira. 
 Primeira afirmação é verdadeira e a segunda é falsa. 
 
A primeira afirmação é falsa e a segunda é verdadeira. 
 As duas afirmações são falsas. 
 
 
 
 9a Questão (Ref.: 27932) Pontos: 1,0 / 1,0 
Marque a afirmativa que represente uma separação. 
 
 
Organizar os dados da lista em ordem crescente ou decrescente. 
 
Juntar duas listas, colocando uma lista no final de outra, obtendo, ao final, uma só lista resultante. 
 Consiste em dividir a lista em duas outras listas. A quantidade de nós que cada lista terá, depende da 
necessidade. 
 
Intercalar a ordem dos dados da lista do final para o início, atualizando a lista. 
 
Alterar a ordem dos dados da lista do final para o início, atualizando a lista. 
 Gabarito Comentado. 
 
 
 
 
 10a Questão (Ref.: 27620) Pontos: 1,0 / 1,0 
Seja Q uma estrutura de dados do tipo fila, em que ENQUEUE(X) significa a adição do elemento X à Q e que 
DEQUEUE(), a retirada de um elemento. Q está inicialmente vazia e sofre a seguinte sequencia de operações: 
ENQUEUE(1) 
ENQUEUE(2) 
DEQUEUE() 
ENQUEUE(3) 
ENQUEUE(4) 
DEQUEUE()DEQUEUE() 
ENQUEUE(5) 
Ao final da sequencia, a soma dos elementos de que (Q) será? 
 
 
5 
 
6 
 9 
 
0 
 
15 
 Gabarito Comentado.

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes