AV2
6 pág.

AV2


DisciplinaEstrutura de Dados I9.299 materiais184.417 seguidores
Pré-visualização1 página
Fechar 
 
Avaliação: CCT0174_AV2_201001487184 » ESTRUTURA DE DADOS 
Tipo de Avaliação: AV2 
Aluno: 201001487184 - GLEICI LUCI LIMA TRINDADE RIBEIRO 
Professor: RAFAEL DIAS RIBEIRO Turma: 9006/AK 
Nota da Prova: 4,0 de 8,0 Nota do Trabalho: Nota de Participação: 2 Data: 22/11/2012 
 
 
 1
a
 Questão (Cód.: 58562) 
Pontos: 
1,5 / 1,5 
Qual a diferença entre pilha e fila? 
 
 
Resposta: Basicamente é o método de remoção. Pilha usa método LIFO (last in fisrt out) Fila usa 
método FIFO ( Fisrts in Fisrt out) 
 
 
 
 2
a
 Questão (Cód.: 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: 
 
 Real 
 Constante 
 Inteiro 
 Global 
 Local 
 
 
 
 3
a
 Questão (Cód.: 28139) 
Pontos: 
1,0 / 1,0 
Na área de estrutura de dados, em determinados casos, é necessário utilizar um tipo de dado onde 
seu valor serve como referência direta a outro valor alocado em outro espaço de memória. Este tipo 
de dado se chama: 
 
 Vetor 
 Endereço 
 Ponteiro 
 Variável 
 Matriz 
 
 
 
 4
a
 Questão (Cód.: 56270) 
Pontos: 
0,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: 
 
 
 
 5
a
 Questão (Cód.: 27996) 
Pontos: 
0,0 / 0,5 
O que será impresso pelo trecho de código a seguir? 
int main() { 
int vet[5] = {80, 70 , 10, 50, 20}; 
int *ptr; 
ptr = vet; 
cout << *(ptr) << &quot; &quot;; 
cout << *(ptr + 3); 
return 0; 
} 
 
 80 10 
 80 83 
 70 10 
 80 50 
 70 73 
 
 
 
 6
a
 Questão (Cód.: 27994) 
Pontos: 
0,0 / 0,5 
Imagine a seguinte estrutura em C/C++, para descrever um produto: 
struct Produto { 
int codigo; 
char descricao[40]; 
float preco; 
}; 
Considere a função que atribui o preço ao produto 
void atribui (struct Produto *pProd) { 
/* atribuição do preço */ 
... 
} 
A forma correta para atribuir 2.99 ao campo preco dentro de função atribui é: 
 
 (*pProd) -> preco=2.99; 
 *pProd -> preco=2.99; 
 pProd -> preco=2.99; 
 *pProd.preco=2.99; 
 pProd.preco=2.99; 
 
 
 
 7
a
 Questão (Cód.: 27935) 
Pontos: 
0,0 / 0,5 
Sobre o funcionamento da busca binária, é incorreto afirmar que dividindo seu vetor em duas 
metades. 
 
 Se o item for igual ao item que está na metade do vetor, o item foi encontrado. 
 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 menor que o item que está na metade do vetor, procure na primeira metade, ou 
seja, a da esquerda. 
 Se o item for igual ao item que está na metade do vetor, o item não 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. 
 
 
 
 8
a
 Questão (Cód.: 27617) 
Pontos: 
0,5 / 0,5 
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 
 
 Quicksort 
 Heapsort 
 Shellsort 
 Mergesort 
 Bublesort 
 
 
 
 9
a
 Questão (Cód.: 28104) 
Pontos: 
0,0 / 0,5 
Para a criação de uma Fila seqüencial basta iniciar as variáveis de início e final, ou seja, apontá-las 
para as posições iniciais do vetor. O que alteraria na rotina de inserir se a variável final fosse 
inicializada com o valor -1 (menos um): 
 
 Após a inserção deve-se fazer o incremento da variável final 
 Antes da inserção deve-se fazer o incremento da variável final 
 Após a inserção deve-se fazer o decremento da variável final 
 Após a inserção deve-se fazer o incremento da variável inicio 
 Antes da inserção deve-se fazer o decremento da variável final 
 
 
 
 10
a
 Questão (Cód.: 27988) 
Pontos: 
0,0 / 0,5 
Considerando a estrutura de fila circular vista em sala, que define as seguintes operações com uma 
fila: 
int enfileirar(int v[], int valor, int *fim) - insere um elemento na fila indicada por v. 
int desenfileirar(int v[], int *inicio, int fim, float &valor) - remove um elemento da fila indicada por 
v. 
Supondo que foram realizadas as seguintes operações numa fila circular (implementada em uma 
estrutura linear sequencial) de números inteiros de tamanho 5, que inicialmente se encontrava vazia: 
enfileirar (minhaFila[], 10, fim); 
enfileirar (minhaFila[], 20, fim); 
desenfileirar (minhaFila[], inicio, fim, valor); 
enfileirar (minhaFila[], 30, fim); 
desenfileirar (minhaFila[], inicio, fim, valor); 
enfileirar (minhaFila[], 40, fim); 
enfileirar (minhaFila[], 50, fim); 
enfileirar (minhaFila[], 60, fim); 
desenfileirar (minhaFila[], inicio, fim, valor); 
enfileirar (minhaFila[], 70, fim); 
Qual a posição, dentro da estrutura linear sequencial (vetor - que representa a fila), que se encontra o 
último elemento inserido na fila? 
 
 6 
 7 
 4 
 5 
 1