Buscar

AP ESTRUTURA DE DADOS

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

Continue navegando