Prévia do material em texto
Avaliação On-Line Avaliação: AV2-2012.1 EAD- ESTRUTURA DE DADOS-CCT0174 Disciplina: CCT0174 - ESTRUTURA DE DADOS Tipo de Avaliação: AV2 Aluno: 201001487184 - GLEICI LUCI LIMA TRINDADE RIBEIRO Nota da Prova: 4 Nota do Trabalho: Nota da Participação: 1 Total: 5 Prova On-Line Questão: 1 (139129) Considere o tipo struct nodupla { int dado; struct *dlink, //aponta para o nó à direita *elink; //aponta para o nó à esquerda }; Assinale a opção que mostra o trecho que cria corretamente uma lista duplamente encadeada com o valor 10. Pontos da Questão: 1 nodupla *p = new nodupla; *p->dado = 10; *p->dlink = NULL; *p->elink = NULL; p->dado = 10; p->dlink = NULL; p->elink = NULL; nodupla *p = new nodupla; p.dado = 10; p->dlink = NULL; p->elink = NULL; nodupla *p = new nodupla; p.dado = 10; p.dlink = NULL; p.elink = NULL; nodupla *p = new nodupla; p->dado = 10; p->dlink = NULL; p->elink = NULL; Questão: 2 (127058) As funções existem para decompor um problema em problemas menores, simplificando e organizando o programa como um todo. Assim, qual das alternativas a seguir, apresenta uma sentença ERRADA em relação aos conceitos de funções: Pontos da Questão: 0,5 Além do valor de uma variável é possível passar para uma função a referência ou o endereço da variável. Todas as funções apresentam na declaração de seu cabeçalho um par de parênteses. O comando return encerra a execução de uma função e pode retornar vários valores para a função chamadora da função. As variáveis declaradas no corpo de uma função são chamadas variáveis locais. O protótipo de uma função informa ao compilador o tipo de retorno, o nome e a lista de parâmetros da função. Questão: 3 (129226) No desenvolvimento de sistemas podemos recorrer as mais diversas estruturas de dados a fim de propor a melhor solução para determinados problemas. Supondo que um problema sugere a necessidade de armazenar temporariamente alguns dados (Endereço, telefone e idade) de uma determinada pessoa, qual das estruturas é a mais adequada? Pontos da Questão: 0,5 Lista Pilha Struct Fila Vetor Questão: 4 (139417) Como característica fundamental das filas dinâmicas temos a inserção de nós no fim(uma variável do tipo do nó) e a retirada do inicio(uma variável do tipo do nó). Sendo assim podemos afirmar que a cada novo nó inserido constituído de um ponteiro também do tipo do nó e um dado, deverá: Pontos da Questão: 0,5 Ter seu ponteiro apontando para o nó anterior, quando existir o nó anterior; Ter na variável inicio o endereço do nó anterior, quando existir o nó anterior; Ter seu ponteiro apontando para o nó posterior, quando existir o nó posterior; Ter sempre no ponteiro do ultimo nó o valor NULL; Ter na variável fim o endereço do nó posterior, quando existir o nó posterior; Questão: 5 (127096) Dentre os algoritmos de pesquisa ou busca em vetores, os mais difundidos são: a busca sequencial e a busca binária. Leia as sentenças abaixo e marque a assinale a resposta correta: I. Para um vetor que armazena de forma ordenada uma quantidade bastante considerável de dados, se considerarmos que o dado a ser procurado não encontra-se no vetor, o algoritmo da busca sequencial será mais rápido em chegar a esta conclusão, que o algoritmo da busca binária. II. O algoritmo da busca binária baseia-se no princípio da “divisão e conquista”, isto é, o espaço de busca é dividido em espaços menores de modo a simplificar a tarefa a ser realizada. III. Para um vetor que armazena de forma ordenada uma quantidade bastante considerável de dados, se considerarmos que o dado a ser procurado encontra-se entre as primeiras posições do vetor, o algoritmo da busca sequencial será mais rápido em encontrar o dado que o algoritmo da busca binária. IV. Quando é realizada uma busca em um vetor, normalmente não se tem ideia em que posição o dado a ser buscado se encontra no vetor, ou mesmo se o dado buscado não está no vetor. E sendo assim, no caso de vetores ordenados o algoritmo de busca binária é muito mais eficiente que o algoritmo de busca sequencial, na maioria dos casos. Pontos da Questão: 0,5 I e IV estão corretas. Apenas a I está errada. I, II e III estão corretas. Apenas a III está errada. III e IV estão erradas. Questão: 6 (127839) Considere struct aluno { int matricula; float media; }; struct aluno v[3] = { {123, 8.9}, {456, 7.8}, {890, 5.0}}; int i; Assinale a opção correta . Qual o trecho que imprime todos os dados do vetor v ? Pontos da Questão: 1 for (i = 0; i < 3; i++) { cout << v.matricula << endl << v.media << endl; } for (i = 0; i < 3; i++) { cout << v[i].matricula << endl << v[i].media << endl; } for (i = 0; i < 3; i++) { cout << v.matricula.i << endl << v.media.i << endl; } for (i = 0; i < 3; i++) { cout << v.matricula[i] << endl << v.media[i] << endl; } for (i = 0; i < 3; i++) { cout << vi.matricula << endl << vi.media << endl; } Questão: 7 (138192) Utilizamos ponteiros para fazer referência a endereços de memória principal de nosso computador e utilizamos vetores como forma de armazenamento estático nas nossas listas. Podemos afirmar que: Pontos da Questão: 0,5 Uma variável do tipo ponteiro poderá ser tratada como vetor, mas o inverso não é possível. Uma variável do tipo ponteiro não poderá ser tratada como vetor. Uma variável do tipo vetor não pede ser declarada como um ponteiro. O tipo ponteiro não pode ser incrementado seqüencialmente como o vetor. Uma variável do tipo ponteiro poderá ser tratada como vetor e vice-versa. Questão: AV22011CCT01740002 (138206) 8 - Defina, exemplifique e cite as vantagens da busca binária. Pontos da Questão: 1,5 Resposta do Aluno: Se o vetor estiver ordenado a busca é muito mais rápida e eficiente que na sequencial. Gabarito: Permite 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, comparando o valor de busca com o elemento da lista a ser procurado A busca binária é mais rápida que a seqüencial na maioria das vezes. A busca de uma palavra em um dicionário, com a busca seqüencial, se a palavra desejada estiver no final do dicionário levaria muito tempo indo de página em página. Fundamentação do Professor: Permite 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, comparando o valor de busca com o elemento da lista a ser Pontos do Aluno: 0 Questão: 9 (139424) Como característica fundamental das listas dinâmicas duplamente encadeadas temos: Marque a resposta correta. Pontos da Questão: 0,5 Possuir um nó com no máximo três elementos, sendo dois ponteiros que indicam o nó anterior e o próximo. Possuir um nó com no mínimo três elementos, sendo um deles um ponteiro para o próximo nó e outro para o anterior. Possuir um nó com o de dois elementos, sendo dois ponteiros que indicam o nó anterior e o conteúdo. Possuir um nó com apenas dois elemento, sendo este um ponteiro para o próximo nó e outro para o anterior. Possuir um nó com o máximo de dois elementos, sendo um deles um ponteiro para o próximo no e outro para o anterior. Questão: AV32011CCT01740216 (169121) 10 - Escreva uma função que permita inserir dados em uma listaduplamente encadeada de forma seqüencial, com o preenchimento de 3 nós, baseado na estrutura apresentada. A função deverá receber o nó inicial e não retornar nada. struct num_letra { int num; char letra; struct num_letra *ant, *post; }; Pontos da Questão: 1,5 Resposta do Aluno: void insereno (); nodo *p = new nodo; p->dado = int; char; p->ant = num; p- >post = letra; Gabarito: void insere(num_letra *no){ num_letra *aux; for (int i=0;i<3;i++){ no->num = i; no->letra= i+65; if (i==0){ no->ant=NULL; no->post=NULL; }else{ aux= no- 1; aux->post=no; no->ant=aux; no->post=NULL; } no++; } } Fundamentação do Professor: void insere(num_letra *no){ num_letra *aux; for (int i=0;i<3;i++){ no->num = i; no->letra= i+65; if (i==0){ no->ant=NULL; no->post=NULL; }else{ aux= no-1; aux->post=no; no->ant=aux; Pontos do Aluno: 0, Server IP : 192.168.10.137 Client IP: 201.37.211.125 Tempo de execução da página : 1,844