Baixe o app para aproveitar ainda mais
Prévia do material em texto
Na maioria dos sistemas operacionais, os arquivos são organizados hierarquicamente em um esquema de diretórios (pastas) e sub-diretórios. Qual a estrutura mais adequada para representar este problema ? lista Árvore OKKKK pilha fila grafo Quest.: 2 2. Em relação a estruturas de dados, avalie a correspondência existente entre as estruturas de dados Lineares e Não Lineares com suas respectivas coleções de dados. A correta associação entre os elementos das duas tabelas é: a1, b2, c1, d1. a2, b2, c1, d2. a2, b1, c2, d1. a1, b1, c2, d1 a1, b1, c2, d2. Quest.: 3 3. 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); retorno nomeFuncao(parametros); nome tipo(parametros); void float(int a, int b); Quest.: 4 4. Considere o trecho de um programa escrito em C++. int func1 (int vtx[], int tam) { int soma=0; for (int i=0 ; i < tam; i++) { if (i % 2 !=0) soma += vtx[i]; } return soma; } int main() { int vt[5] = {10,20,30,40,50}; cout << func1 (vt,5); } Marque a opção correta que mostra o que é impresso na tela. 60 20 50 40 30 Quest.: 5 5. Marque a afirmativa correta para a "Inserção em lista linear sequencial ordenada". Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos. Consiste em adicionar um valor no vetor, alterando 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. Quest.: 6 6. Qual das seguintes estruturas de dados é classificada como heterogênea? Loop Fila Pilha Vetor Registro Quest.: 7 7. 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 ? 5 10 20 30 10 20 30 40 10 20 40 30 10 30 40 20 10 30 20 40 Quest.: 8 8. O resultado do concurso para o cargo de uma empresa está armazenado em um vetor, que contém em cada um de seus elementos o nome e a nota obtida pelo candidato. Deseja-se que este vetor seja ordenado pela nota, em ordem decrescente. Sendo o vetor pequeno (poucos elementos), o programador responsável por desenvolver este algoritmo, escolheu um método de ordenação que executa os seguintes passos: Selecione candidato com maior nota entre todos e troque-o com o candidato que está na primeira posição do vetor; Selecione o segundo maior e troque-o com o candidato que está na segunda posição; Os passos descritos anteriormente são seguidos para a terceira nota, quarta nota e assim por diante até que reste apenas um candidato. O algoritmo utilizado pelo programador trata-se do método de ordenação denominado: Seleção Quicksort Heapsort Inserção Bolha Quest.: 9 9. for (int i = 0; i < n; i++) cout << L[i].matricula << " " << L[i].nome[30] << endl; for (int i = 0; i < n; i++) cout << L[i] << endl; for (int i = 0; i < n; i++) cout << L.matricula << " " << L.nome << endl; for (int i = 0; i < n; i++) cout << L[i].matricula << " " << L[i].nome << endl; for (int i = 0; i < n; i++) cout << L.matricula[i] << " " << L.nome[i] << endl; Quest.: 10 10. Estude atentamente o código a segir: int deciframe(int v[ ], int tam, int e){ int i = 0, f = tam -1, m; while ( i <= f ){ m = ( i + f ) / 2; if ( v[m] == e ) { return m; } if ( e < v[m] ) { f = m - 1; } else { i = m + 1; } } return -1; } Sabendo que a chamada da mesma foi feita com os parâmetros recebendo os seguintes valores, o que ela retornaria? v[10] = {0, 2, 4, 6, 8, 10, 20, 100} tam = 8 e = -6 6 -1 0 3 4
Compartilhar