Baixe o app para aproveitar ainda mais
Prévia do material em texto
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) << " "; 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
Compartilhar