Buscar

Avaliação On2



Continue navegando


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