Baixe o app para aproveitar ainda mais
Prévia do material em texto
Disc.: ESTRUTURA DE DADOS Aluno(a): Acertos: 10,0 de 10,0 29/03/2021 1a Questão Acerto: 1,0 / 1,0 A forma correta para imprimir o valor do último elemento de um vetor v com n posições é: cout << v[n+1]; cout << v[n-1]; cout << v[ultimo]; cout << v[n]; cin >> v[-1]; Respondido em 07/05/2021 15:14:22 2a Questão Acerto: 1,0 / 1,0 Funções são semelhantes aos procedimentos, exceto que uma função sempre retorna um valor. Um exemplo de função seria o conjunto de instruções para calcular o fatorial de um número e após a função ser executada, ela deve retornar o fatorial do número pedido. Marque a opção que representa um protótipo de função válido. tipo parametros(int a, int b); tipo parametros(parametros); nome tipo(parametros); void float(int a, int b); retorno nomeFuncao(parametros); Respondido em 07/05/2021 15:16:01 Explicação: Por definição, o protótipo de uma função é formado da seguinte forma : nome_da_função ( ); 3a Questão Acerto: 1,0 / 1,0 Os métodos de ordenação são muito utilizados em estruturas de dados para facilitar a busca e a recuperação posterior de itens de conjuntos ordenados. Existem vários métodos de ordenação, por este motivo, marque corretamente a alternativa que apresenta o código do método de seleção. void ordena(int v[], int n){ int i, j, menor, aux; for (j = 0; j < n-1; j++) { for (i = j+1; i < n; i++) { if (v[i] < v[j]) { aux = v[j]; v[j] = v[i]; v[i] = aux; } } } } int ordena(float v[], float valor, int n) { int ini = 0, fim = n -1, meio; while (ini <= fim){ meio = (ini + fim)/2; if (v[meio] == valor) return meio; if (valor < v[meio]) fim = meio -1; else ini = meio+1; } return -1; } int ordena(float v[], float valor, int n) { int ini = 0, fim = n-1, meio; while (ini >= fim){ meio = ini/2; if (v[meio] == valor) return meio; if (valor < v[meio]) fim = meio -1; else ini = meio+1; } void ordena (int v[], int n){ 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; } } int ordena(float v[], float valor, int n){ for (int i = 0; i < n; i++) if (v[i] == valor) return i; return -1; } Respondido em 07/05/2021 15:18:24 Explicação: Na ordenação por seleção, a idéia é sempre procurar o menor elemento do vetor e inseri-lo no início do vetor. Procuramos o menor valor do vetor e colocamos ele em vetor. Procuramos o menor valor do vetor excluindo o já colocado e colocamos ele em vetor. E assim vamos indo até termos todo o vetor ordenado. Partindo sempre a partir do último elemento reordenado (a partir do i), o programa procura o menor elemento no vetor e o substitue pelo elemento i atual. É o que está ocorrendo na primeira opção! Gabarito Comentado 4a Questão Acerto: 1,0 / 1,0 Considere a função misterio e o trecho abaixo. void misterio(int v[ ], int n) { //n é o número de elementos de v int i, j, m, aux; for (j = 0; j < n-1; j++) { m = j; for (i = j+1; i < n; i++) { if (v[i] < v[m]) m = i; } aux = v[j]; v[j] = v[m]; v[m] = aux; } } Trecho na main : int v[4] = {40,30,10,20}; misterio(v, 4); Marque a opção correta. Como ficará o vetor após a execução da função misterio ? https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=224973247&cod_prova=4564269437&f_cod_disc= https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=224973247&cod_prova=4564269437&f_cod_disc= 10 20 40 30 10 30 20 40 10 30 40 20 10 20 30 40 5 10 20 30 Respondido em 07/05/2021 15:21:08 Explicação: O aluno precisa fazer um teste de mesa para achar a solução. A função implementa a ordenação por seleção, colocando o vetor de entrada em ordem crescente. 5a Questão Acerto: 1,0 / 1,0 Considere uma lista sequencial L com n fichas de professores, sendo que cada ficha de professor é modelada pela struct : struct professor { int matricula; char titulo[30]; }; e a lista L é assim declarada : professor L[n]; Assinale o trecho que corretamente exibe todas as matrículas e titulações de todos os n professores de L . for (int i = 0; i < n; i++) cout << L[i] << endl; for (int i = 0; i < n; i++) cout << L.matricula << " " << L.titulo << endl; for (int i = 0; i < n; i++) cout << L[i].matricula << " " << L[i].titulo[30] << endl; for (int i = 0; i < n; i++) cout << L.matricula[i] << " " << L.titulo[i] << endl; for (int i = 0; i < n; i++) cout << L[i].matricula << " " << L[i].titulo << endl; Respondido em 07/05/2021 15:22:03 Explicação: Como L é um vetor de n elementos do tipo professor. Então, para percorrer o vetor de índice i temos que fazer L[i] seguido do ponto seguido do campo, que pode ser matricula ou titulo. Assiim, a opção correta é for (int i = 0; i < n; i++) cout << L[i].matricula << " " << L[i].titulo << endl; 6a Questão Acerto: 1,0 / 1,0 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. fila grafo árvore pilha lista Respondido em 07/05/2021 15:24:11 Gabarito Comentado 7a Questão Acerto: 1,0 / 1,0 As filas sequenciais são estruturas de dados utilizadas em diversas aplicações, tais como fila de processo, fila de impressão, sistemas de senha etc. Entretanto, nas aplicações onde há muita movimentação de dados, inserções e remoções de dados na fila, surgem espaços ociosos que podem levar ao fenômeno chamado de esgotamento de memória. Para sanar este problema pode-se substituir a fila sequencial por: lista sequencial lista circular pilha circular pilha sequencial fila circular Respondido em 07/05/2021 15:25:27 Gabarito Comentado https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=224973247&cod_prova=4564269437&f_cod_disc= https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=224973247&cod_prova=4564269437&f_cod_disc= https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=224973247&cod_prova=4564269437&f_cod_disc= https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=224973247&cod_prova=4564269437&f_cod_disc= 8a Questão Acerto: 1,0 / 1,0 QUAL A SAÍDA DESTE PROGRAMA? #include main() { int i=10,*p; p=&i; cout << *p << " " << i + *p<< " " << *p**p << " " << i+**&p; system("pause"); } 10 24 102 25 10 20 100 22 10 25 100 30 10 20 104 22 10 20 100 20 Respondido em 07/05/2021 15:26:23 9a Questão Acerto: 1,0 / 1,0 Para converter de decimal para binário usamos a estrutura de dados pilha. Assinale a opção que, corretamente, indica as ações corretas para empilhar o resto da divisão gerado no processo de conversão, considerando uma lista simplesmente encadeada.Considere o tipo definido abaixo : struct no { int dado; struct no *link; }; Basta alocar memória com new, armazenar o resto da divisão do número por 2 no campo dado do novo nó e aterrar o link do novo nó. É preciso armazenar o resto da divisão do número por 2 no campo dado do primeiro nó da lista e retornar o ponteiro para este nó. Basta alocar memória com new e armazenar o resto da divisão do número por 2 no campo dado do novo nó . Não é necessário alocar memória com new. Basta criar uma struct do tipo no, armazenar o resto da divisão número por 2 no campo dado e aterrar o campo link. É preciso alocar memória com new, armazenar o resto da divisão do número por 2 no campo dado do novo nó, apontar o link do novo nó para o início da lista e enfim, retornar o ponteiro para o novo nó. Respondido em 07/05/2021 15:30:53 Gabarito Comentado https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=224973247&cod_prova=4564269437&f_cod_disc= https://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cod_hist_prova=224973247&cod_prova=4564269437&f_cod_disc= 10a Questão Acerto: 1,0 / 1,0 Uma estrutura de dados em lista duplamente encadeada permite na cadeia movimentos para: Para trás, apenas. Para cima e para baixo ou para frente e para trás. Para frente, apenas. Para frente e para trás, apenas. Para cima e para baixo, apenas.
Compartilhar