Buscar

Avaliando Aprendizado Estrutura de Dados


Continue navegando


Prévia do material em texto

1a Questão (Ref.: 201203163038) Pontos: 0,0 / 0,1 
Sobre as estruturas de dados existentes podemos afirmar que: 
 
 
Na estrutura do tipo FIFO, as informações são inseridas no início e removidas do final. 
 
Na estrutura do tipo LIFO, as informações são inseridas no início e removidas do final. 
 Encadeamento estático e dinâmico apresentam o mesmo funcionamento de alocação na estrutura do tipo 
PILHA. 
 Na estrutura das Pilhas a manipulação dos dados sempre se dá no topo. 
 
A estrutura do tipo LIFO sempre realiza a remoção do elemento mais antigo inserido. 
 
 
 
 2a Questão (Ref.: 201202409056) Pontos: 0,1 / 0,1 
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. 
 
 
I e III. 
 
somente a alternativa e II. 
 somente a alternativa I. 
 
I e II. 
 
II e III. 
 Gabarito Comentado. 
 
 
 
 
 3a Questão (Ref.: 201202400595) Pontos: 0,1 / 0,1 
As coleções de dados podem ser classificadas em estruturas lineares e estruturas não lineares. Nesse contexto, 
é correto afirmar que 
 
 
tendo uma estrutura não linear, um array dinâmico é criado usando técnicas de alocação e gestão 
dinâmica de memória. Pode ser redimensionado e é alocado durante o tempo de compilação. 
 na tabela de Hash a chave é transformada num índice inteiro que é usado para acessar os dados. A 
chave pode ser um string, desde que haja uma função que transforme essa chave num inteiro. É uma 
estrutura linear. 
 
a lista é uma estrutura linear cuja implementação pode ser feita por meio de lista ligada em que as 
estruturas são estáticas ou através de um array para permitir que as estruturas sejam ligadas 
dinamicamente. 
 
na pilha, uma estrutura não linear, os elementos são colocados e retirados por um único lado da lista, ou 
seja, pelo topo, que é alterado sempre que um elemento é adicionado ou retirado da pilha. É um tipo de 
estrutura que tem a ordenação do tipo LILO. 
 
a fila de prioridade é uma versão especial da fila, uma estrutura não linear. Quando se retira um 
elemento desta estrutura é selecionado aquele que tem maior prioridade, tendo portanto a ordenação do 
tipo FIFO. 
 
 
 
 4a Questão (Ref.: 201202417350) Pontos: 0,1 / 0,1 
O método de ordenação que compara pares de chaves de ordenação, trocando os elementos correspondentes 
caso estejam fora de ordem é o método: 
 
 
Heapsort 
 
inserção 
 bolha 
 
QuickSort 
 
seleção 
 
 
 
 5a Questão (Ref.: 201203140563) Pontos: 0,0 / 0,1 
Vetores e matrizes são classificados como estruturas ___________ pois podem ser controladas por meio de 
_________ criados previamente e conhecidos pelo desenvolvedor. As lacunas correspondem respectivamente a: 
 
 Dinâmicas e índices 
 
Estáticas e ponteiros 
 Estáticas e índices 
 
Complexas e ponteiros 
 
Dinâmicas e ponteiros 
 
 
 1a Questão (Ref.: 201202981320) Pontos: 0,0 / 0,1 
Para compararmos vetores de char, usaremos a função _____________________ . Para copiarmos o conteúdo 
de um vetor de char nas posições ocupadas por outro vetor de char, usaremos a função 
______________________ . 
 
 strcmp(); e strcpy(); 
 
strcmp(); e strlen() ; 
 
strcmp(); e strcat(); 
 strcat(); e strcpy() ; 
 
strcmp(); e strcmpi (); 
 
 
 
 2a Questão (Ref.: 201203143665) Pontos: 0,1 / 0,1 
Para uma aplicação em que deseja-se recuperar a ordem reversa de armazenamento dos dados em um vetor, a 
estrutura de dados mais apropriada a ser utilizada na implementação da aplicação é: 
 
 
Fila 
 
Árvore 
 Pilha 
 
Grafo 
 
Lista 
 
 
 
 3a Questão (Ref.: 201203141928) Pontos: 0,0 / 0,1 
o programa de computador necessita preencher uma lista de alunos (nome e nota) até que a lista esteja cheia. 
Sabe-se que a lista tem capacidade para 25 alunos. Utilizando agregados heterogêneos, qual o trecho de código 
que exibe a melhor forma de solucionar este problema? 
 
 for (int i = 0; i < 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; } 
 for (int i = 0; i <= 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; } 
 
for (int i = 0; i < 25; i++) { cin >> lista[i]->nome; cin >> lista[i]->nota; } 
 
int i = 0; while( i < 25) { cin >> lista[i].nome; cin >> lista[i].cargo; i ++; } 
 
for (int i = 0; i < 25; i++) { cin >> lista->nome; cin >> lista->nota; } 
 
 
 
 4a Questão (Ref.: 201202417350) Pontos: 0,1 / 0,1 
O método de ordenação que compara pares de chaves de ordenação, trocando os elementos correspondentes 
caso estejam fora de ordem é o método: 
 
 
seleção 
 
QuickSort 
 
inserção 
 
Heapsort 
 bolha 
 
 
 
 5a Questão (Ref.: 201202409056) Pontos: 0,1 / 0,1 
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. 
 
II e III. 
 
I e III. 
 
somente a alternativa e II. 
 
I e II. 
 
 1a Questão (Ref.: 201203143669) Pontos: 0,0 / 0,1 
A principal vantagem da alocação estática de memória sobre a alocação dinâmica de memória é: 
 
 Possibilidade de alocação em tempo de compilação. 
 
Possibilidade de alocação em tempo de execução. 
 
Quantidade de armazenamento. 
 
Uso de ponteiros. 
 Velocidade de acesso. 
 
 
 
 2a Questão (Ref.: 201202981295) Pontos: 0,1 / 0,1 
É uma Lista Linear Ordenada em que as inserções e remoções seguem o critério LIFO (Last In First Out), ou 
seja, o último a entrar será o primeiro a sair. Estamos falando do(a) __________________________ . 
 
 
Árvore 
 PILHA 
 
FILA 
 
Busca de Alocação de Memória 
 
Fila Circular 
 
 
 
 3a Questão (Ref.: 201203142822) Pontos: 0,0 / 0,1 
Qual o valor de x no final do programa? int main() { int x, *p, y; x = 2; p = &x; y = *p; y = 5; (*p)++; (*p) = 
(*p) - y; return(0); } 
 
 
8 
 
2 
 Nenhuma das anteriores. O programa possui um erro de sintaxe. 
 
5 
 -2 
 
 
 
 4a Questão (Ref.: 201203156970) Pontos: 0,1 / 0,1 
Considere 
 
int *ptr, *qtr, *r; 
 
int a = 10, b = 20; 
 
 
 
Após executar cada instrução conforme a ordem dada a seguir : 
 
 
ptr = &a; 
 
qtr = &b; 
 
*ptr = *ptr + *qtr; 
 
++(*qtr); 
 
r = qtr; 
 
qtr = ptr; 
 
 
 
assinale a opção que mostra, correta e respectivamente, os valores de *ptr, *qtr 
, *r , a e b . 
 
 
 
30 20 0 30 21 
 30 30 21 30 21 
 
30 21 21 10 20 
 
30 30 21 10 20 
 
30 20 20 10 20 
 
 
 
 5a Questão (Ref.:201202417366) Pontos: 0,1 / 0,1 
Imagine a seguinte estrutura em C/C++, para descrever um produto: 
struct Produto { 
int codigo; 
char descricao[40]; 
float preco; 
}; 
Considere a função que atribui o preço ao produto 
void atribui (struct Produto *pProd) { 
/* atribuição do preço */ 
... 
} 
A forma correta para atribuir 2.99 ao campo preco dentro de função atribui é: 
 
 
(*pProd) -> preco=2.99; 
 
pProd.preco=2.99; 
 pProd -> preco=2.99; 
 
*pProd.preco=2.99; 
 
*pProd -> preco=2.99; 
 
 1a Questão (Ref.: 201203143665) Pontos: 0,1 / 0,1 
Para uma aplicação em que deseja-se recuperar a ordem reversa de armazenamento dos dados em um vetor, a 
estrutura de dados mais apropriada a ser utilizada na implementação da aplicação é: 
 
 
Fila 
 Pilha 
 
Árvore 
 
Lista 
 
Grafo 
 
 
 
 2a Questão (Ref.: 201202656512) Pontos: 0,1 / 0,1 
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 ? 
 
 
pilha 
 
fila 
 
grafo 
 árvore 
 
lista 
 Gabarito Comentado. 
 
 
 
 
 3a Questão (Ref.: 201202409054) Pontos: 0,1 / 0,1 
Em relação às estruturas de dados, considere: I. Um tipo abstrato de dados está desvinculado de sua 
implementação, ou seja, a sua definição visa a preocupação com o que ele faz e não como ele faz. II. A lista 
duplamente encadeada além de saber o próximo nó, cada elemento também conhece o nó anterior a ele na 
lista, o que facilita a remoção de um elemento e a exibição dos elementos na ordem inversa. III. A 
implementação dinâmica de pilhas possui as mesmas vantagens que as listas dinâmicas, ou seja, não é 
necessário saber a quantidade máxima de elementos que serão armazenados. IV. Lista, pilha, fila e array são 
casos típicos de estruturas lineares, enquanto grafo e heap são casos típicos de estruturas não lineares. É 
correto o que se afirma em: 
 
 
I e IV, apenas. 
 I, II, III e IV. 
 
II, III e IV, apenas. 
 
II e III, apenas. 
 
I, II e III, apenas. 
 
 
 
 4a Questão (Ref.: 201203163038) Pontos: 0,1 / 0,1 
Sobre as estruturas de dados existentes podemos afirmar que: 
 
 
Na estrutura do tipo FIFO, as informações são inseridas no início e removidas do final. 
 
Na estrutura do tipo LIFO, as informações são inseridas no início e removidas do final. 
 Na estrutura das Pilhas a manipulação dos dados sempre se dá no topo. 
 
Encadeamento estático e dinâmico apresentam o mesmo funcionamento de alocação na estrutura do tipo 
PILHA. 
 
A estrutura do tipo LIFO sempre realiza a remoção do elemento mais antigo inserido. 
 
 
 
 5a Questão (Ref.: 201203094457) Pontos: 0,1 / 0,1 
Observe o trecho do programa em C++ abaixo e, após, entrar com os valores sugeridos para sua execução 
assinale a alternativa que representa a resposta final. 
cin >> a; 
cin >> b; 
cin >> c; 
cin >> d; 
 
cout << a; 
cout << b; 
cout << c; 
cout << d; 
 
cout << d; 
cout << c; 
cout << b; 
cout << a; 
 
 
Após a impressão dos valores pela ordem teremos duas pilhas. 
 Após a impressão dos valores pela ordem teremos uma fila e uma pilha. 
 
Após a impressão dos valores pela ordem teremos duas filas. 
 
Após a impressão dos valores pela ordem teremos uma pilha e uma fila. 
 
Após a impressão dos valores pela ordem teremos uma fila e um grafo.