Baixe o app para aproveitar ainda mais
Prévia do material em texto
Avaliação: » ESTRUTURA DE DADOS Tipo de Avaliação: AV Aluno: Professor: ALEXANDRE SOARES ALVES Turma Nota da Prova: 3,0 Nota de Partic.: 1 Data: 09/06/2014 08:52:34 1a Questão (Ref.: 201301395820) Pontos: Sem Correç. / 1,5 Faça uma função em C++ para criar uma lista duplamente encadeada com um nó e armazenar neste nó o valor 100. Note que deverá ser retornado o ponteiro para o nó criado. Considere struct nodupla { int dado; struct *dlink, *elink; }; e o seguinte protótipo : nodupla *cria(); Resposta: Gabarito: nodupla *cria() { nodupla *novo; novo = new nodupla; novo->dado = 100; novo->elink = novo->dlink = NULL; return novo; } 2a Questão (Ref.: 201301189056) Pontos: 0,0 / 0,5 Marque a afirmativa correta para a "Busca ou pesquisa binária". Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos. É o processo pelo qual um conjunto de dados é colocado em uma ordem crescente ou decrescente. Consiste em fazer 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. Consiste em fazer uma busca em um vetor desordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio. Consiste em adicionar um valor no vetor, alterando a ordem existente e ajustando o total de elementos. 3a Questão (Ref.: 201301397582) Pontos: 0,0 / 1,5 No dia 20 de fevereiro de 2002(20022002), vivenciou-se um momento que só acontecerá novamente em 21 de dezembro de 2112(21122112). Acredito que muitas pessoas não tinham familiaridade com o termo capicua que, segundo o dicionário do Aurélio, se aplica a um grupo de algarismos que lidos da esquerda para direita, ou da direita para esquerda, representam o mesmo número. Construa uma função que receba um número inteiro longo e retorne o número escrito de trás para frente. Exemplo: recebe 123 e retorna 321. Resposta: Gabarito: long long int espelha(long long int num ) //pode ser long long { long long int espelhado=0; //pode ser long long while (num > 0) { espelhado = 10 * espelhado + num % 10; num = num / 10; } return espelhado; } 4a Questão (Ref.: 201301394081) Pontos: 0,5 / 0,5 Navegadores para internet armazenam os últimos endereços visitados em uma estrutura de dados. Cada vez que um novo site é visitado, o endereço do site é adicionado na estrutura de endereços. Quando se aciona o retorno ("back"), o navegador permite que o usuário retorne no último site visitado e retira o endereço do site da estrutura de dados. Assinale a estrutura de dados mais adequada para este problema. grafo fila lista árvore pilha 5a Questão (Ref.: 201301391647) Pontos: 0,5 / 0,5 Funções são instrumentos de modularização de programas, que tem como finalidade tornar o código mais legível, isto é mais fácil de entender, evita replicação de instruções e permite o reuso das funções em outros programas. Então considere o seguinte código: #include< iostream > using namespace std; int main( ) { float a=10.0; float b=4.0; cout < < media(a,b); return 0; } float media(float x, float y) { return (x+y)/2;} Marque a alternativa CORRETA: O código compila normalmente, pois como a descrição da função float media(float x, float y)está posicionada após a função int main ( ), não há necessidade do uso de protótipos. O código compila normalmente e apresenta como resultado o valor 7.0 O código não compila, pois há necessidade de se declarar float media(float, float) como protótipo da função float media(float x, float y)antes da função principal. O código não compila, pois a função float media(float x, float y) retorna um valor que seria ser armazenado em uma variável do tipo float e só então poderia ser usado o comando cout para exibir o resultado. O código não compila, pois os parâmetros usados na chamada da função deveriam ser "x" e "y"; porém a chamada se deu com identificadores "a" e "b". 6a Questão (Ref.: 201301394114) Pontos: 0,0 / 0,5 por seleção. por inserção. uma mistura dos métodos de ordenação por seleção e por inserção. bubblesort. uma mistura dos métodos de ordenação por inserção e bubblesort. 7a Questão (Ref.: 201301391657) Pontos: 0,5 / 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. Lista Sequencial Lista Encadeada Fila Sequencial Pilha Encadeada Pilha Sequencial 8a Questão (Ref.: 201301397604) Pontos: 0,5 / 0,5 Sabemos que podemos representar uma expressão de três formas, sendo que uma delas é chamada de notação polonesa reversa ( pós-fixa). Suponha que um professor de Estrutura de Dados desejasse compor a nota do bimestre com uma prova e um trabalho oral, usando pesos diferenciados para as notas. Sendo assim, usaria a média ponderada como a expressão abaixo. A única calculadora que encontrou disponível foi uma com representação pós fixa. Assinale a alternativa que apresenta a sequência que deveria ser digitada pelo professor para conseguir calcular a média de um aluno. nota1 peso1 nota2 peso2 peso1 peso2 * * + + / / + * nota1 peso1 * nota2 peso2 + peso1 peso2 nota1 peso1 * nota2 peso2 * + peso1 peso2 + / nota1 peso1 * nota2 peso2 * peso1 peso2 + + / / * nota1 peso1 + * nota2 peso2 + peso1 peso2 9a Questão (Ref.: 201301391666) Pontos: 0,0 / 1,0 Seja uma lista encadeada cujos nodos são formados pelo seguinte tipo de dado: struct empregado{ long int matricula; float salario; empregado *proximo; }; Suponha que o ponteiro pont tenha o endereço de um nodo da lista, o qual se deseja atribuir um novo valor para o campo salario. Marque a alternativa que corretamente altera o valor do campo salario para 5000.00. pont.empregado.salario=5000.00 pont->empregado->salario=5000.00; salario=5000.00; pont.salario=5000.00; pont.empregado->salario=5000.00; 10a Questão (Ref.: 201301192447) Pontos: 1,0 / 1,0 Um tipo de estrutura de dados é declarada em C como: typedef struct no *apontador; struct no{ int valor; apontador esq, dir; } onde esq e dir representam ligações para os dados da esquerda e direita, respectivamente. Qual das seguintes alternativas é uma implementação correta da operação que inverte as posições dos dados da esquerda e da direita uma estrutura p, onde t é um apontador auxiliar. t=p->dir; p->esq = p->dir; p->dir = t; t=p->dir; p->dir = p->esq; p->esq = t; t=p; p->esq = p->dir; p->dir = p->esq; p->dir=t; p->esq = p->dir; p->dir = t; p->esq = p->dir; t = p->esq;p->dir = t;
Compartilhar