Buscar

Estrutura de dados Banco de questoes

Prévia do material em texto

1a Questão (Ref.:201303875969) Pontos: 0,1 / 0,1 
Com a utilização das estruturas de dados e seus tipos, em algumas situações é imprescindível a criação de 
funções que façam determinada verificação ou ação nestas estruturas. Dessa forma, analise a função 
abaixo e marque corretamente a alternativa que descreve as funcionalidades desta. 
int funcao(float v[], float vl, int n) 
{ 
 for (int i = 0; i < n; i++) 
 if (v[i] == vl) 
 return i; 
 return -1; 
} 
 
 Retorna -1 se o valor de n foi encontrado. 
 Resulta em erro, se o valor de vl não estiver dentro de v. 
 Retorna -1 se o valor de vl estiver dentro de v. 
 Retorna a posição de v se o valor vl foi encontrado. 
 Retorna o valor de vl se o valor n foi encontrado. 
 
 
 
2a Questão (Ref.:201303876285) Pontos: 0,1 / 0,1 
Qual é o resultado do código abaixo: 
 int a =10; 
int *p = &a; 
cout<< &p << endl; 
 
 O conteúdo da variável a será impresso 
 O conteúdo da variável p será impresso 
 O endereço da variável p será impresso 
 Nenhuma das opções anteriores 
 O endereço da variável a será impresso 
 
 
 
3a Questão (Ref.:201303876235) Pontos: 0,0 / 0,1 
Quando um ponteiro é declarado com o tipo registro (em C: struct), o acesso para atribuição e leitura dos 
membros (campos) deste registro se dá pelo operador: 
 
 & (e comercial ou eitza). 
 -> (seta). 
 * (asterisco). 
 , (vírgula). 
 (ponto). 
 
 
 
4a Questão (Ref.:201303876242) Pontos: 0,1 / 0,1 
Quando uma variável é declarada com o tipo registro (em C: struct), o acesso para atribuição e leitura dos 
membros (campos) deste registro se dá pelo operador: 
 
 * (asterisco). 
 (ponto). 
 & (e comercial ou eitza). 
 , (vírgula). 
 -> (seta). 
 
 
 
5a Questão (Ref.:201303876228) Pontos: 0,1 / 0,1 
Qual estrutura de dados é mais adequada para armazenar em um sistema operacional os processos que 
estão prontos para utilizar o processador? 
 
 Árvore 
 Lista 
 Fila 
 Grafo 
 Pilha 
 
 
 
 
1a Questão (Ref.:201303876095) Pontos: 0,1 / 0,1 
 
 
Se i e j são variáveis int e p e q ponteiros para o tipo int, marque V para as opções 
verdadeiras e F para as opções ilegais 
 
 p= &*&i; 
 p= &i; 
 i= (*&)j 
 i = *&j 
 *q= &j; 
 
 
 
 
2a Questão (Ref.:201303876235) Pontos: 0,1 / 0,1 
 
Quando um ponteiro é declarado com o tipo registro (em C: struct), o acesso para 
atribuição e leitura dos membros (campos) deste registro se dá pelo operador: 
 
 * (asterisco). 
 -> (seta). 
 , (vírgula). 
 (ponto). 
 & (e comercial ou eitza). 
 
 
 
 
3a Questão (Ref.:201303876159) Pontos: 0,1 / 0,1 
 
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.matricula << " " << L.titulo << endl; 
 for (int i = 0; i < n; i++) 
cout << L[i] << 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[i].matricula << " " << L[i].titulo << endl; 
 for (int i = 0; i < n; i++) 
cout << L.matricula[i] << " " << L.titulo[i] << endl; 
 
 
 
 
4a Questão (Ref.:201303876361) Pontos: 0,1 / 0,1 
 
 Assinale a opção CORRETA. O protótipo da função que permitirá calcular o 
volume de um paralelepípedo com medidas a, b e c de acordo com o trecho 
da chamada : cout << "Volume = " << volume(a,b,c); 
 
 void volume (float, float, float &); 
 float volume (float ; float ; float); 
 float volume (float, float, float); 
 void volume (float , float); 
 float volume (float, float); 
 
 
 
 
5a Questão (Ref.:201303876256) Pontos: 0,1 / 0,1 
 
Qual das instruções abaixo é correta para declarar um ponteiro para inteiro? 
 
 int *pti; 
 
 *int pti; 
 *pti; 
 int_pti pti; 
 &i; 
 
 
 
 
 
 
 
 
 
 
 
File failed to load: http://simulado.estacio.br/ckeditor/MathJax/a11y/accessibility-menu.js 
 
 
 
 
 
 
 
 
1a Questão (Ref.:201303876041) Pontos: 0,1 / 0,1 
Assumindo que estamos com uma estrutura de dados do tipo FIFO, as operações abaixo vão resultar em 
que elementos na mesma: ENFILEIRAR(4), ENFILEIRAR(5), ENFILEIRAR(6), DESENFILEIRAR(), 
DESENFILEIRAR(), ENFILEIRAR(5), ENFILEIRAR(7), DESENFILEIRAR() 
 
 5 7 
 4 5 
 4 5 6 
 4 6 7 
 7 5 
 
 
 
2a Questão (Ref.:201303875961) Pontos: 0,1 / 0,1 
Estão entre algumas das possíveis formas de se estruturar dados: 
 
 Grafos, lista ordenada, vetores. 
 Grafos, algoritmos, fila. 
 Lista encadeada, vetores, algoritmos. 
 Algoritmos, lista ordenada, vetores. 
 Grafos, lista ordenada, algoritmos. 
 
 
 
3a Questão (Ref.:201303876071) Pontos: 0,1 / 0,1 
A que estrutura pertence a definição: " Uma estrutura não linear que é um conjunto de nós e suas 
conexões entre eles e não há limitação de vértices. Muito utilizada para representação de percursos em 
mapas." 
 
 structs 
 pilhas encadeadas 
 grafos 
 filas encadeadas 
 listas encadeadas 
 
 
 
4a Questão (Ref.:201303876363) Pontos: 0,1 / 0,1 
Considere as seguintes afirmativas: 
I) Em C os vetores, quando passados como parâmetros de funções, são obrigatoriamente passados "por 
valor" e não "por referência". 
II) Variáveis globais são um recurso adequado para troca de informações entre funções distintas. 
III) Caso uma função necessite retornar mais de um valor ao programa que a chamou, deve fazê-lo 
usando parâmetros passados "por valor". 
As afirmativas corretas são: 
 
 Nenhuma está correta 
 Apenas III 
 Apenas I e II 
 Apenas II 
 Apenas I 
 
 
 
5a Questão (Ref.:201303876060) Pontos: 0,0 / 0,1 
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: 
v[10] = {0, 2, 4, 6, 8, 10, 20, 100} 
tam = 8 
e = -6 
É sabido que a mesma retornaria o valor -1, porque: 
 
 É a posição do elemento e no vetor v 
 Porque ele não achou o elemento na coleção 
 É o módulo do valor de e 
 Seria o retorno do segundo if 
 Seria o retorno do while 
 
 
 
 
 
 
 
 
 
 
File failed to load: http://simulado.estacio.br/ckeditor/MathJax/a11y/accessibility-menu.js 
 
 
 
 
 
 
 ESTRUTURA DE DADOS 
 
 
 
 
 
 
1a Questão (Ref.:201303876059) Pontos: 0,1 / 0,1 
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: 
v[10] = {0, 2, 4, 6, 8, 10, 20, 100} 
tam = 8 
e = 6 
É sabido que a mesma retornaria o valor 3, porque: 
 
 Porque ele não achou o elemento na coleção 
 Seria o retorno do segundo if 
 É a posição do elemento e no vetor v 
 É a metade do valor de e 
 Seria o retorno do while 
 
 
 
2a Questão (Ref.:201303876014) Pontos: 0,1 / 0,1 
Analise as afirmativas abaixo e selecione a alternativa correta. 
 
I Algumas aplicações da estruturade dados grafo são: Diagrama de Entidade Relacionamento e Redes 
de computadores. 
 
II Árvore e lista duplamente encadeada são estruturas não lineares. 
III A Fila é uma estrutura não linear e a inserção de um elemento acontece ao final. 
IV A Lista é uma das estruturas de dados mais simples, mas não se pode ordená-la. 
 
V O uso de ponteiros é fundamental para construção de listas encadeadas. 
 
 III e V são verdadeiras 
 
 II E IV são verdadeiras 
 
 I e V são verdadeiras 
 
 I , II e IV são verdadeiras 
 
 II e V são verdadeiras 
 
 
 
 
3a Questão (Ref.:201303876194) Pontos: 0,1 / 0,1 
Caso seja empregada uma busca binária em uma lista sequencial ordenada com 2048 valores, qual seria 
o número máximo de comparações para encontrar um valor que esteja na lista? 
 
 12 
 8 
 9 
 10 
 11 
 
 
 
4a Questão (Ref.:201303876035) Pontos: 0,1 / 0,1 
 O que será impresso pela função Eureka ? Assinale a opção correta. 
 
void Eureka() 
 { 
 for (int i = 1; i <= 10; i++) 
 if (i % 2 == 0) 
 cout << i << " "; 
 else 
 if (i % 7 == 0) 
 return; 
 } 
 
 
 Nada é impresso, pois a função não compila. Para a função compilar, deveria ter int no lugar de 
void, já que há return na função. 
 2 4 6 
 2 4 6 8 
 Nada é impresso, pois a função não compila. A função não deveria usar return, pois não está de 
acordo com o uso de void. 
 2 4 6 8 10 
 
 
 
5a Questão (Ref.:201303876228) Pontos: 0,1 / 0,1 
Qual estrutura de dados é mais adequada para armazenar em um sistema operacional os processos que 
estão prontos para utilizar o processador? 
 
 Pilha 
 Grafo 
 Árvore 
 Lista 
 Fila 
 
 
 
 
 
 
Fechar
 
 
Avaliação: CCT0308_AVR_201301122769 (AG) » ESTRUTURA DE DADOS 
Tipo de Avaliação: AVR 
Aluno: 201301122769 - NAIANA MARIA SOLON 
Professor: CARLOS ROBERTO VIEIRA DE ARAGAO Turma: 3002/AA 
Nota da Prova: 0,0 de 10,0 Nota do Trab.: Nota de Partic.: Data: 30/10/2018 19:21:14 
 
Estação de trabalho liberada pelo CPF 02121442359 com o token 992377 em 30/10/2018 19:20:42. 
 
 
 1a Questão (Ref.: 201304188381) Pontos: 0,0 / 2,0 
 Considere 
struct Professor { 
 int matricula; 
 float salario; 
}; 
 Professor *p, prof; 
 p = &prof; 
Assinale a opção que corretamente imprime todos os dados de prof. 
 
 cout << Professor ->matricula << " - " << Professor->salario << endl; 
 cout << prof->matricula << " - " << prof->salario << endl; 
 cout << p.matricula << " - " << p.salario << endl; 
 cout << p->matricula << " - " << p->salario << endl; 
 cout << matricula->p << " - " << salario-> p << endl ; 
 
 
 
 2a Questão (Ref.: 201304188373) Pontos: 0,0 / 2,0 
Sejam int v[ ] = {10,3,5,7}, *p, *q; 
 p = &v[0]; 
 q = &v[1]; 
Assinale a opção correta. 
 
 p vale 10 e q vale 3 
 p e q são iguais porque apontam para o mesmo vetor 
 *p vale 10 e *q vale 3 
 *p é menor do que *q, visto que p aponta para o 1º. componente e q aponta para o 2º. 
componente. 
 Não se pode incrementar p, pois ele irá apontar para a área fora do vetor. 
 
 
 
 3a Questão (Ref.: 201304188368) Pontos: 0,0 / 2,0 
Sobre interface de um TAD, assinale a opção correta. 
 
 A interface de um TAD consiste, basicamente, na definição do tipo de dados e na 
implementação das operações. 
 A interface de um TAD consiste, basicamente, na definição do nome do tipo e no conjunto de 
funções exportadas para a criação e manipulação. 
 A interface de um TAD consiste, basicamente, na implementação da estrutura de dados. 
 A interface de um TAD consiste apenas na definição do nome do tipo. 
 A interface de um TAD consiste apenas no conjunto de funções exportadas para a criação e 
manipulação. 
 
 
 
 4a Questão (Ref.: 201304188374) Pontos: 0,0 / 2,0 
Sejam int v[ ] = {30,20,10,5}, *p, *q; 
 p = &v[0]; 
 q = &v[1]; 
Assinale a opção correta. 
 
 p e q nunca poderão ser iguais 
 p vale 30 e q vale 20 
 q é menor que p, visto que 20 é menor que 30. 
 Não se pode decrementar q fazendo q--; 
 *p + 1 vale 31 e *q - 1 vale 19 
 
 
 
 5a Questão (Ref.: 201304188391) Pontos: 0,0 / 2,0 
Considere um vetor v de inteiros alocados dinamicamente para 10 inteiros. 
Assinale a opção que permite alocar memória para v e liberar a memória alocada para v. 
 
 int v[ ] = new int[10]; 
delete *v; 
 
 int *v = new int[10]; 
delete [ ]v; 
 
 int *v = new int[10]; 
delete *v; 
 
 int [ ]v = new int[10]; 
delete [ ]v; 
 
 int v = new int[10]; 
delete v[ ]; 
 
 
 
 
Período de não visualização da prova: desde até .

Continue navegando

Outros materiais