Baixe o app para aproveitar ainda mais
Prévia do material em texto
Avaliação: CCT0260_AV_200907077822 » ESTRUTURA DE DADOS Tipo de Avaliação: AV Aluno: Professor: ALEXANDRE SOARES ALVES Turma: 9002/AA Nota da Prova: 6,0 Nota de Partic.: 1 Data: 14/11/2014 17:12:47 1 a Questão (Ref.: 200907113633) Pontos: 0,0 / 0,5 Analise o seguinte trecho de algoritmo de ordenação de dados, cujos elementos estão dispostos em um vetor de nome 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 2 a Questão (Ref.: 200907656837) Pontos: 1,0 / 1,0 Tínhamos declarado um ponteiro de nome ptr e precisávamos construir uma estrutura de repetição que pudesse repetir enquanto o ponteiro não fosse nulo. Observe os trechos abaixo e assinale qual a afirmativa correta. I if (ptr !=NULL) II if( !ptr ) III if(ptr) IV while (ptr !=NULL) V while (ptr) Página 1 de 5BDQ Prova 26/11/2014file:///C:/Users/carlos.crispim.ctis/Desktop/TEMP/Estácio_files/bdq_prova_resultado... I e II estão corretas. I e IV estão corretas III e V estão corretas IV e V estão corretas. III está correta 3 a Questão (Ref.: 200907105288) Pontos: 0,5 / 0,5 Analise as seguintes afirmações: I. Na Passagem por Referência, o parâmetro que vai ser passado na chamada da função deve ser uma variável, de tal forma que uma alteração de valor neste parâmetro também altera a variável correspondente. II. Uma recursão consiste em uma função chamar ela mesma com argumentos sempre do mesmo valor. III. Considerando-se o escopo das variáveis, é correto afirmar que uma variável é dita global quando a sua passagem no momento da chamada de uma função se dá tanto por valor quanto por referência. Uma variável é dita local quando esta passagem se dá apenas por valor. Indique a opção que contenha todas as afirmações verdadeiras. I e III. I e II. somente a alternativa I. II e III. somente a alternativa e II. 4 a Questão (Ref.: 200907113693) Pontos: 1,0 / 1,0 Qual das alternativas a seguir pode definir uma estrutura de fila? Entrada e saída de dados em qualquer local. Entrada de dados pelo início e saída pelo final. Entrada de dados pelo final e saída pelo início. Entrada e saída de dados pelo início. Entrada e saída de dados pelo final. 5 a Questão (Ref.: 200907113732) Pontos: 0,5 / 0,5 Os métodos de ordenação são muito utilizados em estruturas de dados para facilitar a busca e a recuperação posterior de itens de conjuntos ordenados. Existem vários métodos de ordenação, por este motivo, marque corretamente a alternativa que apresenta o código do método de seleção. void ordena(int v[], int n){ int i, j, menor, aux; for (j = 0; j < n-1; j++) { for (i = j+1; i < n; i++) { if (v[i] < v[j]) { aux = v[j]; v[j] = v[i]; v[i] = aux; } } } } int ordena(float v[], float valor, int n) { int ini = 0, fim = n -1, meio; while (ini <= fim){ meio = (ini + fim)/2; Página 2 de 5BDQ Prova 26/11/2014file:///C:/Users/carlos.crispim.ctis/Desktop/TEMP/Estácio_files/bdq_prova_resultado... if (v[meio] == valor) return meio; if (valor < v[meio]) fim = meio -1; else ini = meio+1; } return -1; } void ordena (int v[], int n){ 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; } } int ordena(float v[], float valor, int n) { int ini = 0, fim = n-1, meio; while (ini >= fim){ meio = ini/2; if (v[meio] == valor) return meio; if (valor < v[meio]) fim = meio -1; else ini = meio+1; } int ordena(float v[], float valor, int n){ for (int i = 0; i < n; i++) if (v[i] == valor) return i; return -1; } 6 a Questão (Ref.: 200907315992) Pontos: 0,0 / 0,5 As estruturas de dados são utilizadas para manter dados ou informações organizados na memória, o que possibilita a otimização do uso destes dados. Porém, as estruturas guardam características especiais na manipulação destes dados, assim deve-se escolher a estrutura certa ou mais adequada para uma determinada aplicação. Portanto marque a opção que representa a melhor estrutura, quando se tem como requisitos principais o acesso aleatório aos dados e alocação destes de forma contínua na memória. Pilha Encadeada Fila Sequencial Lista Encadeada Pilha Sequencial Lista Sequencial 7 a Questão (Ref.: 200907315994) Pontos: 0,5 / 0,5 As pilhas sequenciais são estruturas que guardam a ordem reversa dos dados nelas armazenados, e isto em muitas ocasiões é muito vantajoso. A operação usada para inserir um elemento X numa pilha é conhecida na literatura como PUSH (X). Para remover um elemento de uma pilha a operação é o POP( ). Assim estas duas funções devem implentar o algoritmo LIFO (Last In - First Out ) ou o último a entrar é o primeiro a sair. Sendo assim se aplicarmos as seguintes operações em uma PILHA vazia: PUSH(10),PUSH(5),POP(),PUSH(7),POP(),PUSH(2),POP(),POP( ). Quais valores restarão na pilha? Página 3 de 5BDQ Prova 26/11/2014file:///C:/Users/carlos.crispim.ctis/Desktop/TEMP/Estácio_files/bdq_prova_resultado... Apenas o 2 7 e 2 Apenas o 10 Nenhum, a pilha estará vazia. 10 e 2 8 a Questão (Ref.: 200907113364) Pontos: 0,5 / 0,5 Estão entre algumas das possíveis formas de se estruturar dados: Grafos, lista ordenada, algoritmos. Grafos, algoritmos, fila. Lista encadeada, vetores, algoritmos. Grafos, lista ordenada, vetores. Algoritmos, lista ordenada, vetores. 9 a Questão (Ref.: 200907141880) Pontos: 0,5 / 1,5 Considere duas listas simplesmente encadeadas circulares e não vazias de inteiros e o tipo struct no { int dado; struct no *link; }; Faça uma função para criar uma lista simplesmente encadeada não circular que seja constituída pelos elementos comuns às duas listas passadas. Protótipo : no *inter(no *x, no*y); Resposta: no *inter(no *x, no *y) { no *a, *b; a = new no; b = new no; a = x; b = y; a.link = b; return a; } Gabarito: no *insere_frente(no *p, int valor) { no *q; q = new no; q->dado = valor; q->link = p; return q; } no *inter(no *x, no *y) { no *t, *r, *q; t = x; q = NULL; do { r = y; do { if (t->dado == r->dado) q = insere_frente (q,t->dado); r = r->link; } while (r != y); t = t->link; } while (t != x); return q; } 10 a Questão (Ref.: 200907144168) Pontos: 1,5 / 1,5 Como é a lógica do FIFO? Resposta: Similar a uma fila de banco, por exemplo, onde as pessoa vão entrando na fila, sendo atendidas e saindo da fila na ordem de chegada. Ou seja, o primeiro a entrar é o primeiro a sair. Página 4 de 5BDQ Prova 26/11/2014file:///C:/Users/carlos.crispim.ctis/Desktop/TEMP/Estácio_files/bdq_prova_resultado... Gabarito: O primeiro que entra na fila é o primeiro que sai. Período de não visualização da prova: desde 06/11/2014 até 25/11/2014. Página 5 de 5BDQ Prova 26/11/2014file:///C:/Users/carlos.crispim.ctis/Desktop/TEMP/Estácio_files/bdq_prova_resultado...
Compartilhar