Baixe o app para aproveitar ainda mais
Prévia do material em texto
Parte superior do formulário Fechar Tipo de Avaliação: AV Professor: ANITA LUIZA MACIEL LOPES Turma: 9001/AA 1a Questão (Ref.: 201311078367) Pontos: 0,5 / 1,5 Os agentes Leo e Lia receberam sequências de números de seus contatos. Para saberem qual o próximo passo da missão, precisam descobrir que números se repetem nas sequências recebidas por cada um. Faça uma função que receba dois vetores v e w de inteiros como parâmetros e gere um vetor z, resultante da interseção entre v e w. Protótipo da função : bool intersecao(int v[ ], int w[ ], int z [ ], int nv , int nw , int &n); onde nv: quantidade de elementos em v nw : quantidade de elementos em w n : quantidade de elementos no vetor z Note : Inicialmente n vale zero. Deverá ser retornado true (sucesso na interseção) ou false (fracasso na interseção). Resposta: bool intersecao(int v[], int w[], int z[], int nv, int nw, int &n){ bool teste; int x, i; n = 0; for (i = 0; i < nv; i++){ teste = false; for (x = 0; x < nw; x++){ if (v[i] == w[x]){ teste = true; break; } if (teste = false) z[n++] = v[i]; } } if (n > 0) return true; else return false; } Gabarito: bool intersecao(int v[], int w[], int inter[], int nv , int nw , int &n) { bool achou = false; for (int i = 0; i < nv; i++) for (int j = 0; j < nw; j++) if (v[i] == w[j]) { inter[n] = v[i]; achou = true; n++; } return achou; } 2a Questão (Ref.: 201311252522) Pontos: 0,0 / 1,5 Listas encadeadas são estruturas cujos nodos são alocados dinamicamente, isto é em tempo de execução, na medida em que se necessite de mais espaço. Sendo um nodo representado por: struct elemento{ string nome; int idade; elemento *prox; }; Escreva em linguagem C++ uma função de nome criaNodo( ), que crie um novo nodo para ser inserido no final da lista, e forneça um ponteiro com o endereço do nodo criado. Resposta: elemento * criaNodo(){ elemento el = new elemento; el.prox = null; return el; } Gabarito: elemento * criaNodo ( ) { elemento *p=new elemento; p->prox=null; return p; } 3a Questão (Ref.: 201311252482) Pontos: 0,0 / 0,5 As estruturas de dados podem ser caracterizadas como sendo uma forma organizada de armazenar dados ou informações na memória, de modo a otimizar o acesso a estes. Muitas vezes existem algoritmos de manipulação dados associados a estas estruturas. Verifique as seguintes sentenças: I-Filas são estruturas que recuperam os dados na ordem direta em que estes foram armazenados. II-As Pilhas são estruturas que recuperam os dados na ordem reversa em que estes foram armazenados. III-As Pilhas são estruturas que recuperam os dados na ordem direta em que estes foram armazenados. IV-As Filas são estruturas que recuperam os dados na ordem reversa em que estes foram armazenados. Marque a alternativa CORRETA: Todas as alternativas estão corretas. As alternativas I e II estão corretas As alternativas I e III estão corretas. As alternativas II e IV estão corretas. As alternativas III e IV estão corretas. 4a Questão (Ref.: 201311041795) Pontos: 0,0 / 0,5 Analise as seguintes afirmações: I. Na Passagem por Referência, o parâmetro que vai ser passado na chamada da função deve ser uma variável, de tal forma que uma alteração de valor neste parâmetro também altera a variável correspondente. II. Uma recursão consiste em uma função chamar ela mesma com argumentos sempre do mesmo valor. III. Considerando-se o escopo das variáveis, é correto afirmar que uma variável é dita global quando a sua passagem no momento da chamada de uma função se dá tanto por valor quanto por referência. Uma variável é dita local quando esta passagem se dá apenas por valor. Indique a opção que contenha todas as afirmações verdadeiras. somente a alternativa I. I e II. I e III. II e III. somente a alternativa e II. 5a Questão (Ref.: 201311252492) Pontos: 0,5 / 0,5 Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, agrupados sob uma lógica e associados por um nome. Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição de uma estrutura como: struct aluno { string nome; float nota; }; Suponha ainda que exista um vetor desta estrutura, definido como: aluno vet [ 100]; Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo elemento deste vetor. vet[10].nota=5.7; aluno.vet[10].nota=5.7; aluno.vet[10]=5.7; vet[10].aluno.nota=5.7 ; vet[10]=aluno.5.7; 6a Questão (Ref.: 201311050140) Pontos: 0,0 / 0,5 Analise o seguinte trecho de algoritmo de ordenação de dados, cujos elementos estão dispostos em um vetor de nome v com n elementos. ... { int i, j, aux; for (j = 1; j < n; j++) for (i=j; i > 0 && v[i-1]> v[i]; i--) { aux = v[i-1]; v[i-1] = v[i]; v[i] = aux; } } ... Assinale o método ao qual o trecho de algoritmo pertence. Bolha Inserção Quicksort Heapsort Seleção 7a Questão (Ref.: 201311252499) Pontos: 0,0 / 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 Fila Sequencial Pilha Encadeada Lista Encadeada Pilha Sequencial 8a Questão (Ref.: 201311255005) Pontos: 0,0 / 0,5 Considere uma pilha sequencial P com capacidade para n elementos. Sabendo que P é do tipo Pilha definido a seguir, marque a opção que corretamente implementa a operação de empilhamento, considerando que o topo da pilha recebeu -1 na inicialização. struct Pilha { int v[n], topo; }; void empilhar(Pilha &P, int valor) { if (P.topo == n - 1) cout << "Pilha cheia."; else { P.topo++; P.v[P.topo] = valor; } } void empilhar(Pilha &P, int valor) { if (P.topo == n - 1) cout << "Pilha cheia."; else P.v[P.topo] = valor; } void empilhar(Pilha P, int valor) { if (P.topo == n - 1) cout << "Pilha cheia."; else { P.topo++; P.v[P.topo] = valor; } } void empilhar(Pilha &P, int valor) { if (topo == n - 1) cout << "Pilha cheia."; else { topo++; v[topo] = valor; } } void empilhar(Pilha P, int valor) { if (P.topo == n) cout << "Pilha cheia."; else { P.topo++; P.v[P.topo] = valor; } } 9a Questão (Ref.: 201311050200) Pontos: 1,0 / 1,0 Qual das alternativas a seguir pode definir uma estrutura de fila? Entrada e saída de dados pelo início. Entrada de dados pelo final e saída pelo início. Entrada de dados pelo início e saída pelo final. Entrada e saída de dados pelo final. Entrada e saída de dados em qualquer local. 10a Questão (Ref.: 201311050242)Pontos: 1,0 / 1,0 O espaço necessário para a representação dos dados pode ser alocado à medida que se torne necessário, através da alocação dinâmica. Uma estrutura armazenada através de encadeamento apresenta seus nodos alocados em posições aleatórias na memória, e não lado a lado. Dessa forma, existem várias vantagens no uso de representar os dados por encadeamento. Marque a alternativa correta que apresenta estas vantagens. Previsão de espaço físico, estruturas complexas, procedimentos menos intuitivos. Proteção de memória, transferência de dados, estruturas simples. Compartilhamento de memória, maleabilidade e facilidade para inserção e remoção de componentes. Transferência de dados, gerenciamento de memória e procedimentos menos intuitivos. Acesso, representação, compartilhamento de memória. Período de não visualização da prova: desde 19/08/2014 até 04/09/2014. Parte inferior do formulário
Compartilhar