Buscar

ESTRUTRURA DE DADOS II

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 51 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 51 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 51 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1a Questão
Para organizar as fotos de minha família com os ancestrais de várias gerações, minha filha usou 
uma estrutura de dados que é ..... Assinale a opção certa.
grafo
fila
lista
pilha
  árvore
Explicação:
Conforme gabarito e aula 1.
 
  2a Questão
           Preciso cadastrar todos os interessados em meu novo curso de programação. Qual a estrutura de dados 
mais adequada para modelar este problema, visto que não há qualquer preocupação com ordem de chegada 
ou saída de aluno da turma.
  Lista
Grafo
          Pilha
Árvore
         Fila
 
  3a Questão
Leia com atenção as afirmativas abaixo e assinale a resposta correta.
I A estrutura de dados que melhor representa os diretórios ou pastas de arquivos do computador é a
árvore. 
II A estrutura de dados FILA é não linear assim como o Grafo. 
III O termo folha em uma estrutura de dados é usado para um nó sem filhos e que tem grau 0, 
IV O grau de uma árvore é definido pelo número de subárvores de um nó. 
V O grafo é uma estrutura de dados que tem limitação para o número de vértices. 
VI Uma das aplicações da estrutura de dados grafo é a Computação Gráfica. 
  I, III, IV e VI são afirmativas verdadeiras
I, II e V são afirmativas verdadeiras
I, II, III e VI são afirmativas verdadeiras
II, IV e V são afirmativas verdadeiras
II, IV, V e VI são afirmativas verdadeiras
Gabarito
Coment.
 
  4a Questão
As estruturas de dados são utilizadas para manter dados ou informações organizados na memória, o que possibilita a 
otimização do uso destes dados. Porém, as estruturas guardam características especiais na manipulação destes dados, 
assim deve-se escolher a estrutura certa ou mais adequada para uma determinada aplicação. Portanto marque a opção 
que representa a melhor estrutura, quando se tem como requisitos principais o acesso aleatório aos dados e alocação 
destes de forma contínua na memória.
Fila Sequencial
Pilha Encadeada
  Lista Sequencial
Pilha Sequencial
Lista Encadeada
 
  5a Questão
Preciso fazer uma relação de tudo o que levar em minha viagem de mochila pela Europa. A 
estrutura de dados mais adequada para armazenar tudo que preciso levar é ...
fila
grafo
pilha
  lista
árvore
Explicação:
Conforme gabarito e aula 1.
 
  6a Questão
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;
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=136963979&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=136963979&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=136963979&pag_voltar=otacka#
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 uma fila e um grafo.
Após a impressão dos valores pela ordem teremos duas pilhas.
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 uma pilha.
Após a impressão dos valores pela ordem teremos duas filas.
 
  7a Questão
É um exemplo de TAD Não Linear:
Filas de Prioridade
  Grafos
Listas
Filas
Pilhas
Explicação: Um grafo é um tipo de dados abstrato não linear
 
  8a Questão
As estruturas de dados podem ser caracterizadas como sendo uma forma organizada de armazenar dados ou informações
na memória, de modo a otimizar o acesso a estes. Muitas vezes existem algoritmos de manipulação de dados associados 
a estas estruturas. 
Verifique as seguintes sentenças:
I-Filas são estruturas que recuperam os dados na ordem direta em que estes foram armazenados.
II-As Pilhas são estruturas que recuperam os dados na ordem reversa em que estes foram armazenados.
III-As Pilhas são estruturas que recuperam os dados na ordem direta em que estes foram armazenados.
IV-As Filas são estruturas que recuperam os dados na ordem reversa em que estes foram armazenados.
Marque a alternativa CORRETA:
Todas as alternativas estão corretas.
As alternativas I e III estão corretas.
As alternativas II e IV estão corretas.
  As alternativas I e II estão corretas
As alternativas III e IV estão corretas.
  1a Questão
#include < iostream >
 using namespace std;
void SOMA(float a, int b) {
  float result = a+b;
  cout << "A soma de " << a << " com " << b << " é: " << result;
}
int main()
{
int a;
float b;
a = 10; b = 12.3;
SOMA(b,a);
}
A função SOMA acima possui as seguintes características :
Retorna valor e não possui parâmetros.
Retorna valor e possui parâmetros.
Não retorna valor e não possui parâmetros.
  Não retorna valor e possui parâmetros.
Retorna valor.
Explicação:
A função
void SOMA(float a, int b) {
  float result = a+b;
  cout << "A soma de " << a << " com " << b << " é: " << result;
}
tem o tipo de retorno void, o que significa que nenhum valor é retornado. Além disso, a função possui 2 parâmetros, que 
são a e b.
Logo, a resposta certa é Não retorna valor e possui parâmetros.
 
  2a Questão
No programa abaixo em C++, que sequência de valores serão impressos ? int x; x = 15; if (x > 0) { int x; x = 25; cout 
<< x << endl; } cout << x << endl;
  25 e 15
15 e 25
15 e 15
0 e 5
25 e 25
Explicação:
Analisando passo a passo, temos :
x é declarado e inicializado com 15. Daí, testa-se a condição do if, que é verdadeira. Em seguida, entra-se no bloco do if 
onde um outro x é declarado, recebe 25 e é impresso. Terminado o bloco do if, o x local ao bloco do if não é mais 
enxergado. Então, ao executarmos a última linha do cout, que está fora do if, vemos que o valor de x impresso é 15.
Logo, a resposta correta é 25 e 15
 
  3a Questão
Considere a função abaixo:
void func (int a, int &b) {
    a++;
    b = a*2;
}
e o seguinte trecho de código na função main :
int x=2, y=3;
func (x,y);
func (y,x);
cout << x << "  ;  " << y;
Após a execução do cout o que será impresso ? 
4; 12
2; 6
6; 14
2; 12
  14; 6
Explicação:
  Fazendo um teste de mesa, chegaremos na opção 
correta. Iniciando a execução pela main, temos que x 
recebe 2 e y recebe 3. 
Em seguida, na 1ª. chamada de func, os valores de x e 
de y, respectivamente, 2 e 3, são passados para a 
função.
Executando a função func, que possui o parâmetro a
 passado por valor e o parâmetro b passado por 
referência (usa &) ...
void func (int a, int &b) {
a++;
b = a*2;
}
Temos que a recebeu 2 e b recebeu 3. Daí, a ficará 3 e b 
receberá 6. 
Assim, ao terminar a função func e retornarmos para a 
main teremos x sem alteração igual a 2 e y com 
alteração igual a 6.
Após voltarmos para a main, temos uma nova chamada 
de func que recebe os valores de y e de x, 
respectivamente, que são 6 e 2. Na 2ª. chamada de 
func para esses valores, teremos que a recebe 6 e y 
recebe 2. Dentro da função, temos que a é 
incrementado para 7 e que b recebe 7 * 2 que dá 14. Ao 
terminarmos a execução da função, temos que y não 
sofreu mudança, ficando com o valor 6 e que x mudou 
para 14. Logo, será impresso 14;6
Logo, as demais opções são incorretas.
 
 
  4a Questão
Assinale a alternativa que apresenta duas formas de passagem de parâmetros para uma rotina ou função:
Por reforço e por referência.
Por memória e por disco.
Por inferência e por valor.
Por teste e por reforço.
  Por valor e por referência
Explicação:
Questão super objetiva. Só pode ser por valor e por referência.
Gabarito
Coment.
 
  5a Questão
No programa abaixo, diga em que área de memória serão alocados os elementos de dados y e r, respectivamente.
#include 
using namespace std; 
int x, y; 
float media( float a, float b ) 
{ float tmp; 
tmp = (a + b ) / 2.0; 
return ( tmp ); 
} 
int main() 
{ 
float r; 
cout<<"Informe 2 valores:"; 
cin>>x>> y; 
r = media( x, y ); 
cout<<"\nMedia = "<< r<<"\n"; 
system ("pause"); 
}
( ) área de registro / área de pilha
( ) área de dados globais / área de registro
( ) área de pilha / área de registro
( ) área de registro / área de dados globais
  ( ) área de dados globais / área de pilha
Explicação:
Como y e r são variáveis, ficarão armazenadas em na área de dados globais / área de pilha
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=136964017&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=136964017&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=136964017&pag_voltar=otacka#
 
  6a Questão
  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);
  float  volume (float, float, float);
void volume (float , float);
float volume (float ; float ; float);
float volume (float, float);
void volume (float, float, float &);
Explicação:
Resposta única.
Pela chamada da função
cout << "Volume  =   "  <<  volume(a,b,c);
temos que a função retorna um valor, que pelo enunciado, vemos que é do tipo float. Há ainda os valores de a, b e c que 
são medidas de uma figura geométrica. Logo, a, b e c são do tipo float.
Como protótipo é uma declaração temos :
tipo de retorno da função seguido do seu nome seguido de parênteses e dentro dos parênteses, temos os tipos das 
variáveis que estavam na chamada da função.
Logo : float volume(float, float, float);  
Note a vírgula para separar os tipos e o ponto e vírgula ao final.
 
 
  7a Questão
Diga, para o trecho do programa abaixo, qual a opção que representa a saída em tela. Considere que o programa será 
compilado sem erros e irá executar também sem problemas .
void troca (int x, int y){
 int tmp;
 tmp = y;
 y = x;
 x = tmp;
}
int main( ) {
 int a = 13, b = 10;
 troca( a, b );
 cout<<"Valores: "<< a<<"\t"<< b<<< endl;
 system("pause");
}
  Valores: 13 10
Valores: 10 10
Valores: 13 13
Valores: 10 13
Valores: 31 01
Explicação:
Acompanhando passo a passo a execução do trecho dado temos :
void troca (int x, int y){
 int tmp;
 tmp = y;
 y = x;
 x = tmp;
}
int main( ) {
 int a = 13, b = 10;
 troca( a, b );
 cout<<"Valores: "<< a<<"\t"<< b<<< endl;
 system("pause");
}
A execução começa pela main e os valores 13 e 10 são passados para a função na chamada em troca(a,b);
Ao iniciar a execução em troca, temos que x recebe 13 e y recebe 10. Mas x e y são parâmetros passados por valor 
então, nada ocorrerá com a e b na main. ASsim, após a função terminar sua execução e voltarmos para a main temos a 
seguinte impressão na tela :
Valores : 13 10
 
  8a Questão
As variáveis em programação são utilizadas para armazenar um valor de determinado tipo em um espaço reservado na 
memória. Em algumas linguagens de programação podemos declarar, ou seja, reservar um espaço na memória, fora do 
escopo da função principal, e fora do escopo de qualquer outra função. Ao fazer a declaração desta forma estamos 
declarando uma variável do tipo:
Real
Inteiro
Local
  Global
Constante
  1a Questão
Dadas as afirmativas abaixo, identifique as corretas e marque a alternativa verdadeira.
I- Vetores e matrizes servem apenas para construir agregados de dados heterogêneos.
II- Registros em C++ são tipos de dados compostos formados por mais de um tipo de dados.
III- Na Linguagem C++, "struct" é uma palavra reservada que serve para definir registros.
IV- Registros são tipos de dados heterogêneos.
estão corretas apenas as afirmativas I, II e IV.
  estão corretas apenas as afirmativas II, III e IV.
estão corretas apenas as afirmativas I, II e III.
estão corretas apenas as afirmativas I, III e IV.
todas as afirmativas estão corretas.
Explicação:
Analisando as afirmativas, temos :
Afirmativa I : Falso. Vetores e matrizes são agregados homogêneos.
Afirmativas II, III e IV : Estão corretas. Basicamente, structs são agregados heterogêneos.
Logo, a opção correta é estão corretas apenas as afirmativas II, III e IV.
 
  2a Questão
Com relação à struct, é correto afirmar que :
Não é possível criar um vetor de structs, pois o vetor trabalha apenas com dados 
do mesmo tipo.
A struct é sempre definida dentro da main.
  Cada elemento da struct é denominado membro ou campo, sendo que a struct
pode armazenar elementos de tipos diferentes ou não.
Cada elemento da struct é chamado componente.
Cada elemento da struct é chamado campo e cada campo deve ser,
obrigatoriamente, de um tipo de dados distinto de outro campo.
Gabarito
Coment.
 
  3a Questão
Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, agrupados sob
uma lógica e associados por um nome.
Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição de uma
estrutura como:
 
 struct  aluno {
              string nome;
              float   nota;
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137013520&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137013520&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137013520&pag_voltar=otacka#
};
 
Suponha ainda que exista um vetor desta estrutura, definido como:
 aluno vet [ 100];
 
Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo primeiro elemento deste
vetor.
aluno.vet[10]=5.7;
vet[10]=aluno.5.7;
aluno.vet[10].nota=5.7;
vet[10].aluno.nota=5.7 ;
  vet[10].nota=5.7;
 
  4a Questão
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; }
int i = 0; while( i < 25) { cin >> lista[i].nome; cin >> lista[i].cargo; i ++; }
  for (int i = 0; i < 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; }
for (int i = 0; i < 25; i++) { cin >> lista->nome; cin >> lista->nota; }
for (int i = 0; i < 25; i++) { cin >> lista[i]->nome; cin >> lista[i]->nota; }
Explicação:
Analisando cada item :
for (int i = 0; i <= 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; }
>> Falso.  Veja que se há 25 itens, os índices começarão de 0 e irao até 24  e não 25.
 
for (int i = 0; i < 25; i++) { cin >> lista[i]->nome; cin >> lista[i]->nota; }
 
>> Falso.  Para acessar o campo de struct é ponto e não seta.  lista[i] é uma struct e não um 
ponteiro.
 
for (int i = 0; i < 25; i++) { cin >> lista->nome; cin >> lista->nota; }  
 >> Falso. Para acessar o campo de struct é ponto e não seta.  lista é um vetor e lista[i] é um 
componente de lista.  Usamos o operador seta quando temos ponteiro para struct.
 
for (int i = 0; i < 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; }
>> Verdadeiro.
 
int i = 0; while( i < 25) { cin >> lista[i].nome; cin >> lista[i].cargo; i ++; }
 
>> Falso, porque foi pedido nome e nota e não cargo.
 
 
 
 
  5a Questão
Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, agrupados sob uma 
lógica e associados por um nome. Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. 
Seja a definição de uma estrutura como: struct aluno { string nome; float media; }; Suponha ainda que exista um vetor 
desta estrutura, definido como: aluno vet [ 10]; Marque a alternativa em que é atribuída de forma correta a media6.0 
para o quarto elemento deste vetor.
  vet[3].media=6.0;
aluno[10]=6.0;
vet[3].aluno=6.0;
aluno[3].media=6.0;
aluno[3].10=6.0;
 
  6a Questão
Marque a opção correta, considerando 
struct Livro { 
int codigo; 
float preco; 
} liv; 
  liv.preco = 30.70;
Livro->liv.codigo = 12345;
liv->preco = 30.70;
Livro.codigo = 12345;
Livro.liv.codigo = 12345;
 
  7a Questão
Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, agrupados sob uma 
lógica e associados por um nome.
Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição de uma estrutura 
como:
struct aluno {
string nome;
float nota;
};
Suponha ainda que exista um vetor desta estrutura, definido como:
aluno vet [100];
Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo primeiro elemento deste vetor.
vet[10].aluno.nota=5.7 ;
aluno.vet[10]=5.7;
vet[10]=aluno.5.7;
  vet[10].nota=5.7;
aluno.vet[10].nota=5.7;
 
  8a Questão
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, 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;
}
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;
}
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; 
}
  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; 
 } 
 } 
} 
}
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
Coment.
1a Questão
O processo de rearranjar um conjunto de dados em uma ordem crescente ou decrescente é chamado de ordenação. 
Existem várias técnicas de ordenação, entretanto a técnica que procura o menor valor entre todos os elementos do vetor 
e troca-o pelo primeiro elemento; para os n - 1 elementos restantes, determinação do elemento de menor valor e troca 
pelo segundo elemento e assim sucessivamente, é chamado de:
  Seleção
Bolha
Binária
Hash
Inserção
Gabarito
Coment.
 
  2a Questão
Marque a afirmativa correta para a "inserção incremental".
Os pivôs são escolhidos aleatoriamente.
  Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos.
É um tipo de ordenação por intercalação
É um tipo de sequenciação por intercalação.
A técnica é boa quando os dados ficam uniformemente distribuídos entre os seus compartimentos.
Gabarito
Coment.
 
  3a Questão
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137014693&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137014693&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137014693&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137014693&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137013520&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137013520&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137013520&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137014693&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137014693&pag_voltar=otacka#
Qual característica NÃO podemos atribuir a PESQUISA BINÁRIA.
São realizadas sucessivas divisões da lista ao meio.
A lista precisa estar ordenada.
É eficiente quando se trata de listas ordenadas
  A lista pode estar desordenada.
Quando o valor pesquisado é maior do que a chave do MEIO da lista, devemos dispensar a metade que vem 
antes do meio da lista.
Explicação: Na pesquisa binária a lista obrigatoriamente deverá estar ORDENADA.
 
  4a Questão
Considere as afirmativas a seguir.
I. Uma forma muito simples de fazer uma busca em um vetor consiste em percorrer o vetor, elemento a elemento, 
para verificar se o elemento procurado é igual a um dos elementos do vetor.
II. A pesquisa sequencial é extremamente simples e eficiente quando o número de elementos do vetor for 
muito grande.
III. Na pesquisa binária, a cada interação do algoritmo o tamanho do vetor é dividido ao meio.
IV. A pesquisa binária funciona corretamente quanto o conjunto de dados estiver desordenado.
Assinale a alternativa correta.
Somente as afirmativas III e IV são corretas.
Somente as afirmativas I e IV são corretas.
  Somente as afirmativas I e III são corretas.
Somente as afirmativas II, III e IV são corretas.
Somente as afirmativas I e II são corretas.
Explicação:
Analisando cada afirmativa :
I. Uma forma muito simples de fazer uma busca em um vetor consiste em percorrer o vetor, elemento a elemento, para 
verificar se o elemento procurado é igual a um dos elementos do vetor.
Correto. SEria uma busca sequencial.
II. A pesquisa sequencial é extremamente simples e eficiente quando o número de elementos do vetor for muito 
grande.
Falso. Se tivermos que procurar um elemento que está no fim do vetor ou que não seja encontrado, o tempo de execução 
será proporcional ao número de elementos. Então, quanto maior a lista, mais tempo levaremos.
III. Na pesquisa binária, a cada interação do algoritmo o tamanho do vetor é dividido ao meio.
Correto.
IV. A pesquisa binária funciona corretamente quanto o conjunto de dados estiver desordenado.
Falso. Por definição, a busca binária só pode atuar em listas ordenadas.
Logo, apenas as afirmativas I e III estão corretas.
 
  5a Questão
Nos métodos de ordenação interna, quais são aqueles classificados como tipo método simples?
Shell Sort, Quick Sort e Heap Sort
Selection Sort, Shell Sort e Bubble Sort
  Selection Sort, Insert Sort e Bubble Sort
Insert Sort, Bubble Sort e Shell Sort
Insert Sort, Bubble Sort e Quick Sort
Gabarito
Coment.
Gabarito
Coment.
Gabarito
Coment.
 
  6a Questão
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 chamadada 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:
Seria o retorno do segundo if
É o módulo do valor de e
  Porque ele não achou o elemento na coleção
É a posição do elemento e no vetor v
Seria o retorno do while
Explicação:
     Veja que para retornar -1 o return m; não foi executado. E para o return m; não poder ser executado, o teste if 
( v[m] == e ) foi sempre falso. Logo, retornar -1 é o caso do elemento e = -6 não ser encontrado no vetor v.
 
 
  7a Questão
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137014693&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137014693&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137014693&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137014693&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137014693&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137014693&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137014693&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137014693&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137014693&pag_voltar=otacka#
Para consultarmos uma estrutura de dados, normalmente, empregamos um tipo de pesquisa de dados. O trecho de 
programa a seguir refere-se a uma pesquisa por um elemento único (sua primeira ocorrência), em um conjunto de 
elementos de dados armazenado em uma estrutura de acesso indexado e aleatório. Selecione a opção correspondente ao 
algoritmo utilizado, no programa, para a referida pesquisa:
int busca(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;
}
  pesquisa binária
pesquisa sequencial
pesquisa de cadeias
pesquisa indexada
pesquisa cadeias indexada
Gabarito
Coment.
 
  8a Questão
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:
Quicksort
Bolha
Heapsort
  Seleção
Inserção
 
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137014693&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137014693&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137014693&pag_voltar=otacka#
  1a Questão
Considere as seguintes afirmações sobre Listas Sequenciais:
I - São estruturas lineares que utilizam as primeiras posições de um vetor para armazenar os dados de interesse.
II - São compostas pelo conjunto dos dados que se deseja armazenar e por uma variável inteira que indica a quantidade 
de dados armazenados.
III - Os dados são sempre inseridos ou removidos no final da lista, tomando-se o cuidado de atualizar a quantidade de 
dados da mesma.
IV - A lista pode admitir ou não admitir que haja dados repetidos (listas podem ser com ou sem repetição).
Marque a opção que contém apenas todas as afirmações verdadeiras:
I, II
I, III, IV
  I, II, IV
I, II, III
I, II, III, IV
Explicação:
Analisando cada afirmativa :
 
I - São estruturas lineares que utilizam as primeiras posições de um vetor para armazenar os dados de interesse.
Verdadeiro. As inserções vão ocorrendo do início do vetor (índice zero) em direção ao fim.
II - São compostas pelo conjunto dos dados que se deseja armazenar e por uma variável inteira que indica a quantidade 
de dados
armazenados.
Verdadeiro. Armazenam-se os dados e controla-se a quantidade de dados na lista.
III - Os dados são sempre inseridos ou removidos no final da lista, tomando-se o cuidado de atualizar a quantidade de 
dados 
da mesma.
Falso. A inserção pode ser no início, no meio ou no final da lista. Na verdade, pode ocorrer inserção e remoção em 
qualquer posição.
IV - A lista pode admitir ou não admitir que haja dados repetidos (listas podem ser com ou sem repetição).
Verdadeiro. Uma lista pode ou não ter dados repetidos.
Resposta certa : As afirmativas I, II, IV estão certas
 
  2a Questão
Em relação às listas sequenciais, considere as seguintes afirmações:
I - são estruturas lineares que utilizam vetores para armazenamento dos dados;
II - os componentes da lista são os dados que se deseja armazenar e um valor inteiro com a quantidade de dados da 
lista;
III - os dados são sempre inseridos ou removidos no final da lista, tomando-se sempre o cuidado de atualizar a 
quantidade de dados da lista;
IV - listas podem apresentar dados repetidos ou não admitir repetição (listas com e sem repetição).
Assinale a opção que contém apenas todas as afirmativas corretas:
I, II, III, IV
I, II
I, II, III
II, III, IV
  I, II, IV
Explicação:
Analisando cada afirmativa :
I - são estruturas lineares que utilizam vetores para armazenamento dos dados;
Verdadeira. O vetor é sequencial e tem tamanho pré-definido.
II - os componentes da lista são os dados que se deseja armazenar e um valor inteiro com a quantidade de dados da 
lista;
Verdadeira.
III - os dados são sempre inseridos ou removidos no final da lista, tomando-se sempre o cuidado de atualizar a 
quantidade de dados da lista;
Falso, pois é possível inserirmos em qualquer posição da lista.
IV - listas podem apresentar dados repetidos ou não admitir repetição (listas com e sem repetição).
Verdadeiro.
Logo, as afirmativas I, II e IV estão corretas
 
  3a Questão
__________________________ é uma lista linear em que a alocação de memória pode ser estática, e que a forma de 
armazenamento é contígua ou sequencial na memória. Usamos este tipo de lista quando se tem em mente um tamanho 
pré-definido, ou seja, quando se sabe até onde a lista pode crescer.
Lista Linear de Alocação de Memória
Lista Linear Não Sequencial
Lista Linear Não Alocada
Lista Não Linear
  Lista Linear Sequencial
 
  4a Questão
São métodos ou algoritmos conhecidos de ordenação de dados por troca:
quicksort e hashing.
  bubble sort e quicksort.
hashing e bubble sort.
ordenação shell e hashing.
busca por ordenação e ordenação shell.
Explicação:
Bubble sort é o algoritmo mais simples, mas o menos eficientes. Neste algoritmo cada elemento da posição i será 
comparado com o elemento da posição i + 1, ou seja, um elemento da posição 2 será comparado com o elemento da 
posição 3. Caso o elemento da posição 2 for maior que o da posição 3, eles trocam de lugar e assim sucessivamente. Por 
causa dessa forma de execução, o vetor terá que ser percorrido quantas vezes que for necessária,tornando o algoritmo 
ineficiente para listas muito grandes.
 
O Quicksort é o algoritmo mais eficiente na ordenação por comparação. Nele se escolhe um elemento chamado de pivô, 
a partir disto é organizada a lista para que todos os números anteriores a ele sejam menores que ele, e todos os números
posteriores a ele sejam maiores que ele. Ao final desse processo o número pivô já está em sua posição final. Os dois 
grupos desordenados recursivamente sofreram o mesmo processo até que a lista esteja ordenada.
 
 
  5a Questão
Considere uma lista com n livros, em que cada livro é modelado pela struct :
 
struct Livro {
                            string titulo, editora, autor;
                            float preco;
};
 
A função X abaixo
 
void X (Livro v[ ], int &n, Livro L)
{
     v[n] = L;
     n++;
    cout << "Operação realizada com sucesso.";
}
 
implementa a operação de :
Busca
Substituição
  Inserção
Inicialização
Ordenação por inserção
Gabarito
Coment.
 
  6a Questão
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
4
6
3
0
  -1
Explicação:
Analisando
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; } 
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137176002&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137176002&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137176002&pag_voltar=otacka#
 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
Está procurando pelo valor e = -6. Como se sabe pelo estudo da busca binária e olhando o código dado, temos que -6 não
existe na lista então a função irá retornar -1 (vide última linha da função). SE a busca tivesse sucesso, o teste do 1o. if no
while seria verdadeiro e então o índice m de v seria retornado. Mas não é o caso, pois -6 não foi encontrado.
 
  7a Questão
for (int i = 0; i < n; i++)
   cout << L.matricula[i] << " " << L.nome[i] << 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[i].matricula << " " << L[i].nome[30] << endl;
Gabarito
Coment.
 
  8a Questão
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137176002&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137176002&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137176002&pag_voltar=otacka#
Considere as seguintes afirmações: I. Só podemos ter uma matriz de no máximo duas dimensões. Exemplo: C[100][100].
II. Ao declararmos um vetor int A[10], se escrevemos A[2] acessamos o segundo elemento do vetor. III. Uma string 
declarada como char B[30] armazena no máximo 30 caracteres. Escolha a alternativa correta:
Está correta apenas a afirmativa II.
  Nenhuma afirmação está correta.
Está correta apenas a afirmativa I.
Estão corretas apenas as afirmativas I e III.
Estão corretas apenas as afirmativas I e II.
Explicação:
Analisando cada afirmativa :
  I. Só podemos ter uma matriz de no máximo duas dimensões. Exemplo: C[100][100].
 Falso. Podemos ter matrizes unidimensionais, tridimensionais, etc...
 II. Ao declararmos um vetor int A[10], se escrevemos A[2] acessamos o segundo elemento do vetor.
Falso. Em C++ o índice inicial é zero. Logo, A[2] é o elemento de índice 2, ou seja, o 3o. elemento do vetor.
III. Uma string declarada como char B[30] armazena no máximo 30 caracteres. Escolha a alternativa correta:
Falso. B pode armazenar no máximo 29 caracteres que sejam dados, pois existe uma área para o caracter nulo.
Logo, todas as opções são falsas.
  1a Questão
A estrutura de dados do tipo pilha (stack) é um tipo abstrato de dado baseada no princípio:
  Last In First Out (LIFO).
Da localidade de referência.
De dividir para conquistar.
Da indiferença.
First In First Out (FIFO).
Explicação:
A lógica da Pilha é: o último a entrar é o primeiro a sair 
logo, Last (último) In (dentro) First (primeiro) Out (fora) -> LIFO.
Gabarito
Coment.
 
  2a Questão
Inseriu-se em uma pilha os valores A,B,C e D, seguindo essa ordem. Se logo após são executadas duas operações de 
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137186759&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137186759&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137186759&pag_voltar=otacka#
remoção, pode-se dizer que:
Os valores removidos serão C e D, nessa ordem
Nenhuma das alternativas anteriores
Os valores removidos serão A e B, nessa ordem
A resposta depende da chave de busca, pois a remoção depende da chave fornecida
  Os valores removidos serão D e C, nessa ordem
Explicação:
Inseriu-se em uma pilha os valores A,B,C e D, seguindo essa ordem.
Analisando .... Daí temos que A está na posição 0, B na posição 1, C na posição 2 e D na posição 3, ficando no 
topo da pilha. 
Se logo após são executadas duas operações de remoção
Analisando .... Daí temos será removido primeiro o D, que está no topo da pilha e depois será removido o C, 
que terá ficado no topo logo após a saída do D.
Logo, saem D e C, nesta ordem.
 
  3a Questão
Na pequena pizzaria de Dom Leopoldo os pedidos são anotados em uma planilha e assim que montam um lote com 5 
pizzas, as entregas começam. As pizzas são organizadas no veículo de entrega respeitando a ordem da entrega, ou seja, 
a 1a. pizza a ser entregue fica na frente de todas e assim, sucessivamente. Dessa forma, a última pizza a ser entregue 
ficará no final do veículo, após todas as outras pizzas. Qual a estrutura de dados é mais adequada para modelar a 
organização das pizzas no veículo de entrega ?
lista
  pilha
fila
árvore
grafo
Gabarito
Coment.
 
  4a Questão
   Ao treinar macacos, foi realizado um jogo para avaliar sua memória. O cientista fornecia sequências de cartas com figuras geométricas e o macaco 
devia reproduzir a sequência inversa usando figuras geométricas reais. Qual a estrutura de dados mais adequada para modelar esse jogo ?
lista
fila
grafo
árvore
  pilha
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137186759&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137186759&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137186759&pag_voltar=otacka#
Explicação:
O problema mostra um relacionamento linear e uma ordem específica de inserção e remoção, que segue a lógica LIFO 
(último a entrar será o primeiro a sair).
pilha
Correto.  O último a entrar na pilha será o útimo a sair da mesma.
fila
Falso.  SEgue a lógica FIFO, onde o primeiro a entrar seráo primeiro a sair.
árvore
Falso. É uma esrutura de dados não linear.
lista
Falso. Podemos inserir e retirar de qualquer posição.
grafo
FAlso. Estrutura de dados não linear.
 
  5a Questão
Considere que, em uma estrutura de dados p do tipo pilha, inicialmente vazia, sejam executados os seguintes comandos:
push(p,10)
push(p,5)
push(p,3)
push(p,40)
pop(p)
push(p,11)
push(p,4)
push(p,7)
pop(p)
pop(p)
Após a execução dos comandos, o elemento no topo da pilha p e a soma dos elementos armazenados na pilha p, são, 
respectivamente :
  11 e 29
7 e 29
11 e 80
7 e 40
4 e 80
Explicação:
Pilha é uma estrutura de dados em que insere-se em uma extremidade e retira-se da mesma extremidade. Assim, 
acompanhando cada operação realizada tem-se :
Insere-se 10, 5, 3 e 40, nesta ordem, devido a operação push (empilhar)
Ao se fazer pop, temos que o último valor empilhado é desempilhado. Ou seja, retira-se o 40.
Depois empilha-se o 11, 4 e 7. Após esses empilhamentos, a pilha fica : 10, 5, 3, 11, 4 e 7, sendo 7 no topo da pilha e 
sendo 10 na área de indice 0 (se usarmos vetor).
Ao se fazer mais um pop, o 7 é desempilhado.
Ao se fazer o último pop, o 4, que havia ficado no topo da pilha é desempilhado. Então, se fica com o 11 no topo da pilha.
Como os dados da pilha são 10, 5, 3 e 11 (este último no topo da pilha), se somarmos todos os elementos teremos 29.
Logo, a opção correta é 11 e 29.
 
 
  6a Questão
A estrutura de dados que segue a lógica LIFO (Last in First Out) é denominada :
Árvore
Vetor
  Pilha
Fila
Lista duplamente encadeada
Explicação:
Por definição, pilha é uma estrutura de dados que segue a lógica LIFO, em que o último a entrar será o primeiro a sair.
 
  7a Questão
Analise as afirmativas sobre uma pilha estática e assinale a opção correta.
I Ordenar é uma operação que não se faz com pilha. 
II Inserir dados é uma operação que se faz com a pilha. 
III Remover dados em qualquer posição é uma operação que se faz com a pilha. 
IV Verificar se a Pilha está cheia é necessário quando se deseja inserir nela. 
V Inicializar uma pilha significa zerar todas as variáveis do vetor.
II e III estão corretas.
I e II estão corretas.
I e IV estão corretas.
  I, II e IV estão corretas.
I, II e V estão corretas.
Gabarito
Coment.
 
  8a Questão
Quando as inserções e as remoções ocorrem sempre no mesmo lado da lista, trata-se de uma estrutura de dados 
denominada
Lista Circular
Lista Encadeada
Vetor
  Pilha
Fila
Explicação:
Por definição, na estrutura de dados pilha, insere-se em uma extremidade e retira-se da mesma extremidade, pois a 
lógica que rege tal estrutura de dados é a lógica LIFO.
 
1a Questão
Usa-se um vetor para se implementar uma fila sequencial, entretanto se nesta estrutura ocorrer diversas operações de 
remoção e inserção podemos afirmar que:
A estrutura fila não sofre esgotamento de memória, isto ocorre com as pilhas já que implementam o algoritmo 
LIFO.
A estrutra sofrerá do fenômeno esgotamento de memória, mas se os dados estiverem ordenados isto não afetará
a estrutura.
  A estrutra sofrerá do fenômeno chamado esgotamento de memória e logo não poderá mais ser utilizada. A 
solução é o uso da fila circular.
Um vetor é uma estrutura base correta para esta implementação, já que está imune a fenômenos como 
esgotamento de memória.
Um vetor não pode ser usado na implementação de uma fila sequencial apenas em pilhas sequenciais.
Gabarito
Coment.
 
  2a Questão
IFMT - Técnico em Tecnologia da Informação - 2013
Considere a função insere(x: inteiro), que recebe como parâmetro um número inteiro e o insere em uma Fila, e ainda, a 
função remove(), que retira um valor de uma Fila.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137406064&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137406064&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137186759&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137186759&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137186759&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137406064&pag_voltar=otacka#
Dada a Fila [3-4-6-8-10], executam-se os comandos na ordem: insere(1), insere(2), remove().
Após a execução desses comandos, qual será a Fila resultante?
[3-4-6-8-10]
[2-1-3-4-6-8]
[3-4-6-8-10-1]
  [4-6-8-10-1-2]
[2-3-4-6-8-10]
Explicação:
Temos a fila inicialmente 
  3 4 6 8 10
Após inserir 1, a fila ficará : 3 4 6 8 10 1
Após isnerir 2 : 3 4 6 8 10 1 2
Após uma remoção : 4 6 8 10 1 2
 
  3a Questão
Considere uma estrutura de dados, representada pela variável P, com procedimentos de inclusão, exclusão e consulta do 
próximo elemento (e) disponível na estrutura, obedecendo às seguintes propriedades:
 Pode-se concluir, então, que P corresponde à seguinte estrutura de dados?
LISTA
  PILHA
PONTEIRO
CONJUNTO
STRUCT
Explicação:
Pela estrutura apresentada verifica-se ser a de uma Pilha.
 
  4a Questão
As estruturas de dados podem ser do tipo estática e dinâmica. As listas são estruturas parecidas com vetores podendo ser
do tipo dinâmica. Entretanto, existem várias implementações de estruturas do tipo listas. Dessa forma, a estrutura que 
para o acesso de um dado, este precisa estar na saída, caso contrário, precisa remover os elementos a sua frente, é 
chamada de:
Pilha
Matriz
  Fila
Bolha
Struct
Gabarito
Coment.
 
  5a Questão
O que acontece quando se deseja inserir um elemento em uma FILA que já está cheia?
  Overflow.
Enqueue.
Underflow.
Dequeue.
A inserção é feita sem problema.
Gabarito
Coment.
 
  6a Questão
Seja Q uma estrutura de dados do tipo fila, em que ENQUEUE(X) significa a adição do elemento X à Q e que DEQUEUE(), 
a retirada de um elemento. Q está inicialmente vazia e sofre a seguinte sequencia de operações:
ENQUEUE(1)
ENQUEUE(2)
DEQUEUE()
ENQUEUE(3)
ENQUEUE(4)
DEQUEUE()
DEQUEUE()
ENQUEUE(5)
Ao final da sequencia, a soma dos elementos de que (Q) será?
  9
0
6
5
15
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137406064&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137406064&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137406064&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137406064&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137406064&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137406064&pag_voltar=otacka#
Gabarito
Coment.
 
  7a Questão
         Assinale a opção que, corretamente, mostra exemplos em que a estrutura de dados fila é usada, de acordo 
com o critério de inserções e remoções que rege tal estrutura.
Fila de pessoas para tirar o visto e fila de pessoas para usar o caixa eletrônico.
Fila de documentos para xerox e fila de arquivos para impressão.
Fila de arquivos para impressão e fila de pessoas no caixa de um supermercado.
  Fila de arquivos para impressão e buffer para gravação de dados em fila.
Buffer para gravação de dados em mídia e fila de pessoas para comprar o ticket do metrô.
Gabarito
Coment.
 
  8a Questão
A estrutura de dados conhecida pela lógica FIFO (First In First Out) é denominada :
  Fila
Pilha
Lista circularVetor
Árvore
Explicação:
Fila é, por definição, uma lista linear ordenada em que as inserções e remoções seguem a lógica FIFO
  1a Questão
Uma lista linear implementada através de encadeamento deve apresentar obrigatoriamente:
i) um ponteiro para o primeiro nó da lista;
ii) encadeamento entre os nós, através de algum campo de ligação;
iii) não deve haver uma indicação de final da lista;
iv) um ponteiro para o final da lista.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137406064&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137406064&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137406064&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137406064&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137406064&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137406064&pag_voltar=otacka#
Levando em consideração as afirmações apresentadas, qual das alternativas é a correta?
as afirmações ii e iv estão corretas.
somente a afirmação i esta correta.
  as afirmações i e ii estão corretas.
as afirmações i, ii e iii estão corretas.
somente a afirmação iv esta correta.
 
  2a Questão
Em uma aplicação que usa processos de alocação estática e dinâmica de memória é correto afirmar que
Apenas a memória associada às variáveis do tipo vetor é alocada após o inicio da execução da aplicação
Toda a memória utilizada pela aplicação não muda durante toda a sua execução
  A memória utilizada pela aplicação é inicialmente estática, mas pode mudar
A memória utilizada pela aplicação é totalmente alocada após o inicio de sua execução
Todas as afirmações acima são incorretas
Gabarito
Coment.
 
  3a Questão
Verifique as afirmativas e marque a opção correta.
I- Na alocação estática de memória a quantidade de memória alocada é feita em tempo de compilação.
II- Na alocação dinâmica de memória a quantidade de memória alocada é feita em tempo de execução.
III- Na alocação estática de memória a quantidade de memória alocada é fixa durante a execução do programa.
IV- Na alocação dinâmica de memória a quantidade de memória alocada é fixa durante a execução do programa.
Apenas a II está correta
Apenas a I está correta
  Apenas a IV está errada
Apenas as opções I e II são corretas
Apenas a opção I está errada
Explicação:
Analisando cada afirmativa :
I- Na alocação estática de memória a quantidade de memória alocada é feita em tempo de compilação.
Correto. Aloca-se memória antes da execução.
II- Na alocação dinâmica de memória a quantidade de memória alocada é feita em tempo de execução.
Correto.
III- Na alocação estática de memória a quantidade de memória alocada é fixa durante a execução do programa.
Correto. A memória alocada antes da execução não sofre alteração durante a execução.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137447613&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137447613&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137447613&pag_voltar=otacka#
IV- Na alocação dinâmica de memória a quantidade de memória alocada é fixa durante a execução do programa.
Falso. A quantidade de memória não é fixa.
 
Apenas a afirmativa IV é falsa ou está errada.
 
  4a Questão
Assumindo que um valor do tipo inteiro ocupa 4 bytes na memória, e se baseando nas linhas de código abaixo, marque a 
alternativa correta:
int *p;
p = (int *)malloc(20*sizeof(int));
Atribuição ao ponteiro ¿p¿ de um endereço estático de memória
A operação é inválida
Alocação dinâmica 20 bytes na memória
  Alocação dinâmica de 80 bytes na memória
Alocação dinâmica de espaço de memória suficiente para armazenar 20 x 4 valores inteiros
 
  5a Questão
O conceito de ponteiros foi estudado em uma de nossas aulas. Sendo assim, leia atentamente as
afirmativas abaixo e assinale a opção correta.
I A variável ponteiro não precisa ser declarada. 
II A variável ponteiro armazena endereço. 
III Quanto se usa &nomeDaVariávelPonteiro com o comando cout, é exibido o endereço da variável
apontada pela variável ponteiro.
IV Quando se usa nomeDaVariávelPonteiro com o comando cout, é exibido o endereço da variável
ponteiro.
V Quando se usa *nomeDaVariávelPonteiro com o comando cout, é exibido o conteúdo da variável
apontada pela variável ponteiro.
IV e V estão corretas
I, II e IV estão corretas
I IV e V estão corretas
  II e V estão corretas
Somente a II está correta
Gabarito
Coment.
 
  6a Questão
Qual o valor de x no final do programa? int main() { int x, *p, y; x = 3; p = &x; y = *p; y = 7; (*p)++; (*p) += y; 
return(0); }
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137447613&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137447613&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137447613&pag_voltar=otacka#
3
7
  11
Nenhuma das anteriores. O programa possui um erro de sintaxe.
-4
Explicação:
Considerando o trecho do programa dado, vamos analisar passo a passo.
int x, *p, y;
x = 3;
p = &x; //p aponta para x, que vale 3
y = *p; //y recebe o conteúdo da área apontada por p, que é 3. Logo, y recebe 3.
y = 7; //Agora y recebe 7
(*p)++; //A área apontada por p é incrementada. Ou seja, x é incrementado, passando a valer 4
(*p) += y; //Equivale a *p = *p + y; Logo, *p recebe 4 + 7, pois *p é x. Então, *p, que é x recebe 11.
Portanto, a resposta certa é 11.
 
  7a Questão
As structs (estruturas) são utilizadas para modelar os nodos de estruturas
dinâmicas como, por exemplo, as listas encadeadas, seja o seguinte
exemplo de nodo de uma lista de produtos:
 
struct nodo{
                     float valor;
                     string produto;
                     nodo * proximo;
           };
 
Suponha que um determinado ponteiro pt  esteja apontando para um
nodo desta lista, e que se queira alterar o conteúdo do campo valor deste
nodo, que está sendo apontado por pt, para 5.60. Marque a alternativa
que corretamente possibilita esta operação:
pt.valor->5.60;
pt->próximo.valor=5.60;
  pt->valor=5.60;
pt->próximo->valor=5.60;
pt->5.60;
Explicação:
O codigo será:
pt->valor=5.60;
 
  8a Questão
Tem-se uma estrutura de dados do tipo lista encadeada com 10 elementos, em que o primeiro e o último elemento estão 
ligados entre si. Trata-se de uma estrutura de dados denominada Lista
  Encadeada Circular
Binária
Duplamente Encadeada
Invertida
Balanceada
Explicação:
Uma lista encadeada circular é uma lista encadeada e portanto, dinÂmica, em que o ponteiro do último nó aponta para o 
primeiro nó. A lista circular também pode ser vazia.
  1a Questão
A pilha é uma estrutura de dados que permite a inserção/ remoção de itens dinamicamente seguindo a norma de último a
entrar, primeiro a sair. Suponha que para uma estrutura de dados, tipo pilha, são definidos os comandos:
- PUSH (p, n): Empilha um número "n" em uma estrutura de dados do tipo pilha "p";
- POP (p): Desempilha o elemento do topo da pilha.
Considere que, em uma estrutura de dados tipo pilha p, inicialmente vazia, sejam executados os seguintes comandos:
PUSH (p, 10)
PUSH (p, 5)
PUSH (p, 3)
PUSH (p, 40)
POP (p)
PUSH (p, 11)
PUSH (p, 4)
PUSH (p, 7)
POP (p)
POP (p)
Apósa execução dos comandos, o elemento no topo da pilha "p" e a soma dos elementos armazenados na pilha "p" são, 
respectivamente,
4 e 80.
11 e 80.
  11 e 29.
7 e 40.
7 e 29.
Explicação:
Passo a Passo:
entra 10 // 10
entra 5 // 5 / 10
entra 3 // 3 / 5/ 10
entra 40 // 40 / 5 /10
retira 40 // 3 / 5 /10
entra 11 // 11 / 3 / 5 /10
entra 4 // 4 /11 / 3 / 5 /10
entra 7 // 7 / 4 / 11 / 3 / 5 /10
retira 7 // 4 / 11 / 3 / 5 /10
retira 4 // 11 / 3 / 5 / 10
Resultado da pilha: 11 / 3 / 5 / 10
Topo: 11
Somatorio da pilha é: 29
 
  2a Questão
Sobre as estruturas de dados existentes podemos afirmar que:
Na estrutura do tipo LIFO, as informações são inseridas no início e removidas do final.
Na estrutura do tipo FIFO, as informações são inseridas no início e removidas do final.
A estrutura do tipo LIFO sempre realiza a remoção do elemento mais antigo inserido.
  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.
Explicação:
Na estrutura do tipo FIFO, as informações são inseridas no início e removidas do final.
Falso.  Fila segue a lógica FIFO, ou seja, o primeiro a entrar será o primeiro a sair. Logo, 
insere no fim e retira do início da fila.
Na estrutura do tipo LIFO, as informações são inseridas no início e removidas do final.
Falso.  Pilha segue a lógica LIFO, o último a entrar será o primeiro a sair.  Insere-se no topo   e
retira-se do topo , ou seja, da mesma extremidade.
Na estrutura das Pilhas a manipulação dos dados sempre se dá no topo.
Verdade. SEgue-se a lógica LIFO.
Encadeamento estático e dinâmico apresentam o mesmo funcionamento de alocação na 
estrutura do tipo PILHA.
Falso.  No encadeamento estático a alocação é contígua e ocorre antes da execução.  No 
encadeamento dinâmico a alocação de memória ocorre em tempo de execução e o 
armazenamento é encadeado.
A estrutura do tipo LIFO sempre realiza a remoção do elemento mais antigo inserido.
 
Falso. A remoção se dá no último inserido, ou seja, o mais novo inserido na pilha.
 
 
 
  3a Questão
Sabendo que uma fila encadeada possui seus nós definidos pela : 
struct no { 
int x; 
no *prox; 
}; 
Marque a alternativa que representa corretamente a criação ou alocação do nó na sintaxe do C++ para utilização na fila.
  no *p=new no;
no *p -> new no;
p *no -> new no;
p *no=new no;
no p -> new no;
Gabarito
Coment.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137514391&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137514391&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137514391&pag_voltar=otacka#
 
  4a Questão
Estava um aluno estudando Lista Simplesmente Encadeada quando encontrou em um site
a definição da struct nodo e de uma função cujo nome você deverá escolher para substituir
XXX nas opções abaixo depois que analisar a função, assumindo que teste foi realizado,
permitindo que a operação fosse realizada.
 
 struct nodo
{
 int info;
 struct nodo *prox;
};
nodo* XXX(nodo *ptr, int valor)
{
 nodo *temp = new nodo;
 ...
 temp->info = valor; 
 temp->prox = ptr; 
 return temp; 
}
  InsereNoFrente
RemoveNo
InsereNoFim
ListaNo
BuscaNaLista
Gabarito
Coment.
 
  5a Questão
Sobre uma estrutura de dados do tipo LIFO, observe as seguintes afirmações: 
(1) É uma pilha. 
(2) Pode ser uma fila com prioridades 
(3) É uma estrutura onde o primeiro elemento a entrar é o último a sair.
Sobre estas afirmações marque a opção correta:
Apenas a afirmação (1) é verdadeira
Todas as afirmações são verdadeiras
  Apenas as afirmações (1) e (3) são verdadeiras
Todas as afirmações são falsas
Apenas a afirmação (3) é verdadeira
 
  6a Questão
Em termos da estrutura de dados do tipo FILA (fila encadeada com alocação dinâmica), a sequência de ações
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137514391&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137514391&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137514391&pag_voltar=otacka#
             insere(10), insere(3), insere(5), insere(8), remove(), remove(), insere(20),
promoveria a configuração da estrutura:
  5 8 20
20 5 8
10 3 20
5 8
10 3 5 8 20
Explicação:
 insere(10), insere(3), insere(5), insere(8), remove(), remove(), insere(20),
10-> 3 -> 5 -> 8 após inserir 10,3,5 e 8. Inserção no fim
Depois do 1o. remove, temos 3->5->8
Depois do 2o. remove temos 5 -> 8
Ao ocorrer o último insere temos : 5 -> 8 - > 20, sendo que 5 esta no início e 20 no fim
 
  7a Questão
Tínhamos declarado um ponteiro de nome ptr e precisávamos construir uma estrutura de repetição que
pudesse repetir enquanto o ponteiro não fosse nulo. Observe os trechos abaixo e assinale qual a
afirmativa correta.
I if (ptr !=NULL) 
II if( !ptr ) 
III if(ptr) 
IV while (ptr !=NULL) 
V while (ptr)
III está correta
III e V estão corretas
I e IV estão corretas
  IV e V estão corretas.
I e II estão corretas.
Gabarito
Coment.
 
  8a Questão
Assinale a característica que NÃO está relacionada às estruturas de dados encadeadas:
A memória ocupada por seus elementos é, em geral, liberada com o uso de delete.
Em geral, marca-se o último elemento com um ponteiro de valor NULL.
A memória para armazenar seus elementos é, em geral, alocada com o uso de new.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137514391&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137514391&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137514391&pag_voltar=otacka#
  Consomem memória de maneira permanente, só sendo liberadas ao fim do programa.
Cada elemento guarda pelo menos um ponteiro para outro elemento da estrutura.
  1a Questão
Ao criarmos uma rotina para inserir um dado em uma LISTA de dados duplamente encadeada e circular, nos deparamos 
com as seguintes cuidados:
Só poderei inserir no começo ou no fim, mas não no meio.
  Posso inserir no começo, no meio ou no fim.
Só poderei inserir no final da lista e no começo somente se ela estiver cheia.
Só poderei inserir no final da lista e nunca no começo ou no meio.
Só poderei inserir no final da lista e no começo somente se ela estiver vazia.
Explicação:
Em uma lista duplamente encadeada circular ou não, podemos inserir ou remover de qualquer parte da lista. Não há 
problema na inserção se a lista estiver vazia. 
 
  2a Questão
Em uma lista duplamente encadeada, seus nodos são compostos por campos cujos tipos podem ser de
diferentes naturezas, entretanto dois de seus campos devem ser ponteiros para o mesmo tipo do nodo, são
estes os ponteiros ant e prox, que apontam respectivamente para o nodo anterior e para o próximo nodo. Esta
característica permite que a estrutura seja percorrida em ambos os sentidos. Assim analisando as operações a
seguir:
p->ant->prox=p->prox;
p->prox->ant=p->ant;
 
            Sendo p um ponteiro que aponta para um dos nodos da lista, pode-se afirmar que:
  As operações removem o nodo apontado pelo ponteiro p.
As operações possibilitam o percurso do ponteiro p da direita para esquerda.
As operações inserem novo nodo, após o nodo apontado pelo ponteiro p.
As operações possibilitam a busca de um nodo apontado pelo ponteiro p.
As operações possibilitam o percurso do ponteiro p da esquerda para direita.
 
  3a Questão
Sobre as estruturas de dados lineares,assinale V ou F:
I - Em uma pilha, o último elemento a entrar é o primeiro a sair.
II - Em uma fila, o primeiro elemento a entrar é o último a sair.
III - Uma lista permite que as inserções possam ser feitas em qualquer lugar (posição), mas as remoções, não.
IV - Em uma lista circular com encadeamento simples, o primeiro elemento aponta para o segundo e para o último.
V - Para remover um elemento de uma lista duplamente encadeada, deve-se alterar o encadeamento dos elementos 
anterior e próximo ao elemento removido. A sequência correta de cima para baixo:
  V,F,F,F,V
F,F,V,V,V
V,F,V,F,V
F,V,V,F,F
V,F,F,V,F
Explicação:
Vamos analisar cada afirmativa.
Analisando a afirmativa I : Correto, pois a estrutura pilha segue a lógica 
LIFO.
 
Analisando a afirmativa II : Falso. Na estrutura de dados fila, o primeiro a 
entrar é o primeiro a sair, pois segue a lógica FIFO.
 
Analisando a afirmativa III : Falso. Em uma lista tanto as inserções quanto 
as remoções podem ser feitas em qualquer posição.
 
Analisando a afirmativa IV : Falso. Em uma lista circular, o1o. elemento 
aponta para o segundo elemento, mas o último elemento aponta para o 1º. 
elemento da lista.
 
Analisando a afirmativa V : Está correta.
 
Logo, a opção correta é V, F, F, F, V
 
  4a Questão
Uma estrutura de dados em lista duplamente encadeada permite na cadeia movimentos para
cima e para baixo, apenas.
trás, apenas.
cima e para baixo ou para frente e para trás.
  frente e para trás, apenas.
frente, apenas.
Gabarito
Coment.
 
  5a Questão
O armazenamento de dados na memória do computador é feito de forma ordenada, utilizando-se estruturas e regras de 
operações. Das alternativas a seguir, assinale a correta:
A lista binária é uma forma não-linear de organização dos dados. Existe um nó denominado raiz da 
árvore, que pode ter duas ou mais sub-árvores, que por sua vez também podem ter outras sub-árvores.
  Em uma lista linear com alocação duplamente encadeada os nós da estrutura ocupam espaços aleatórios 
na memória e cada nó armazena além da sua informação os endereços do nó anterior e do próximo nó da 
estrutura.
Em uma lista linear com alocação sequencial, os dados são heterogêneos e os nós da lista podem ter 
tamanhos diferentes, mas exigem espaço em endereço contíguo de memória.
Fila e Pilha são tipos especiais de listas lineares. Na Fila, o último que entra é o primeiro que sai, enquanto
na Pilha, o primeiro que entra é o primeiro que sai.
Existem várias formas de apresentação de listas lineares, como listas circulares e as matrizes, que são 
formas exclusivas das listas de alocação encadeada.
Explicação:
Existem várias formas de apresentação de listas lineares, como listas 
circulares e as matrizes, que são formas exclusivas das listas de alocação 
encadeada.=è FALSO =è Ela possui apenas uma entrada, chamada de topo, a partir da qual 
os dadosentram e saem dela. Exemplos de pilhas são: pilha de pratos, pilha de livros, pilhade alocação de variáveis da 
memória, etc. Uma fila é uma lista linear do tipo FIFO - First In First Out, o primeiro elemento a entrar será o primeiro a 
sair
A lista binária é uma forma não-linear de organização dos dados. Existe um 
nó denominado raiz da árvore, que pode ter duas ou mais sub-árvores, que 
por sua vez também podem ter outras sub-árvores.=è FALSO
Em uma lista linear com alocação sequencial, os dados são heterogêneos e 
os nós da lista podem ter tamanhos diferentes, mas exigem espaço em 
endereço contíguo de memória. .=è FALSO
Em uma lista linear com alocação duplamente encadeada os nós da 
estrutura ocupam espaços aleatórios na memória e cada nó armazena além 
da sua informação os endereços do nó anterior e do próximo nó da 
estrutura. ===> VERDADE
Fila e Pilha são tipos especiais de listas lineares. Na Fila, o último que entra 
é o primeiro que sai, enquanto na Pilha, o primeiro que entra é o primeiro 
que sai. ===> FALSO===> Fila, o valor lido, sempre é passado para o 
começo, ou seja, esse valor aponta para as próximas posições, e quando for
feita a exclusão, é só deletar esse valor do começo. Abaixo uma imagem 
que representa a Fila (FIFO). Pilha, sempre o último valor lido, ficará na 
`primeira¿ posição da lista, dessa forma, quando for feita a exclusão, um 
auxiliar aponta para a próxima posição, e a posição atual, é excluída. Abaixo
uma imagem que representa a Pilha (LIFO)
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137552230&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137552230&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137552230&pag_voltar=otacka#
 
  6a Questão
As listas encadeadas podem ser elaboradas de duas formas utilizando uma técnica de encadeamento simplesmente ou 
encadeamento duplo. O que difere uma lista simplesmente encadeada de uma lista duplamente encadeada?
Em uma lista duplamente encadeada, cada nó aponta para um nó enquanto a lista simplesmente encadeada 
aponta para mais de um nó.
Em uma lista simplesmente encadeada cada nó aponta para nó seguinte e para o nó anterior.
Em uma lista duplamente encadeada cada nó aponta para nó seguinte e para o primeiro nó da fila.
Em uma lista duplamente encadeada cada nó aponta para nó seguinte.
  Em uma lista simplesmente encadeada cada nó aponta para um único nó enquanto a lista duplamente 
encadeada aponta para mais de um nó.
Gabarito
Coment.
 
  7a Questão
Geralmente em algumas situações é necessário fazer a desalocação do espaço utilizado na memória. Porém, isso depende
de como a reserva de uma quantidade de espaço de memória é feita, pois em alguns casos, o próprio compilador faz a 
desalocação. Quando o compilador não faz esta desalocação a memória foi reservada utilizando______.
Alocação estática de memória
Declaração de vetor
Declaração de matriz
Declaração de função
  Alocação dinâmica de memória
Explicação:
Se for necessário liberar a memória ocupada por essas variáveis, é preciso recorrer à função free.
A função free desaloca a porção de memória alocada por malloc.
A instrução free (ptr) avisa ao sistema que o bloco de bytes apontado por ptr está disponível para reciclagem.
 
  8a Questão
Os registros também conhecidos como estruturas, são estruturas de dados do tipo heterogêneo, ou seja, permitem que 
valores de tipos diferentes possam ser armazenados em uma mesma estrutura. Analisando a estrutura abaixo, a mesma 
pode ser utilizada para qual tipo de estrutura de dados, marque a alternativa correta.
struct nomeRegistro{
 int info;
 struct nomeRegistro* ant;
 struct nomeRegistro* prox;
};
typedef struct nomeRegistro NOMEREGISTRO;
Pilha
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137552230&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137552230&pag_voltar=otacka#
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_seq_aluno_turma=111101840&cod_hist_prova=137552230&pag_voltar=otacka#
Matriz
Lista encadeada
  Lista duplamente encadeada
Fila
1a Questão (Ref.:201804486674) Acerto: 1,0 / 1,0
Qual estrutura de dados é mais adequada para armazenar a estrutura do diretório do sistema de arquivos de 
um sistema operacional?
  Árvore
Pilha
Grafo
Fila
Lista
2a Questão (Ref.:201804177875) Acerto: 1,0 / 1,0
Leia com atenção as afirmativas abaixo e assinale a resposta correta.
I A estrutura de dados que melhor representa os diretórios ou pastas de arquivos do computador é a
árvore. 
II A estrutura de dados FILA é não linear assim como o Grafo. 
III O termo folha em uma estrutura de dados é usado para um nó sem filhos e que tem grau 0, 
IV O grau de uma árvore é definido pelo número de subárvores deum nó. 
V O grafo é uma estrutura de dados que tem limitação para o número de vértices. 
VI Uma das aplicações da estrutura de dados grafo é a Computação Gráfica. 
II, IV e V são afirmativas verdadeiras
I, II e V são afirmativas verdadeiras
I, II, III e VI são afirmativas verdadeiras
II, IV, V e VI são afirmativas verdadeiras
  I, III, IV e VI são afirmativas verdadeiras
Gabarito
Coment.
3a Questão (Ref.:201804795888) Acerto: 1,0 / 1,0
Considere o trecho de um programa escrito em C++ : 
long func1 (int n1) {
   int ft=1, i = 1;
   while ( i <= n1) {
         ft *= i;
         i++;
http://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cript_hist=13534792320&f_cod_disc=CCT0753#
http://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cript_hist=13534792320&f_cod_disc=CCT0753#
http://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cript_hist=13534792320&f_cod_disc=CCT0753#
   }
   return ft;
}
main() {
    cout << func1 (5);
}
Marque a opção correta que mostra o que é impresso na tela.
5
1
  120
60
24
4a Questão (Ref.:201804682374) Acerto: 1,0 / 1,0
Nas linguagens C e C++, ao se declarar qualquer função, a especificação de tipo de dados que antecede o nome
desta função define
o tipo das variáveis que serão utilizadas dentro da função.
o protótipo da função.
o tipo dos dados dos parâmetros que são passados à função quando da sua chamada.
o escopo das variáveis do programa.
  o tipo do dado do valor retornado da função para quem a chamou.
5a Questão (Ref.:201804311391) Acerto: 1,0 / 1,0
Marque a opção correta, considerando 
struct Livro { 
int codigo; 
float preco; 
} liv; 
Livro.liv.codigo = 12345;
Livro.codigo = 12345;
liv->preco = 30.70;
  liv.preco = 30.70;
Livro->liv.codigo = 12345;
6a Questão (Ref.:201804279141) Acerto: 1,0 / 1,0
Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente,
agrupados sob uma lógica e associados por um nome.
Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição de
uma estrutura como:
 
 struct  aluno {
              string nome;
              float   nota;
};
 
Suponha ainda que exista um vetor desta estrutura, definido como:
 aluno vet [ 100];
 
Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo primeiro elemento
deste vetor.
aluno.vet[10]=5.7;
aluno.vet[10].nota=5.7;
vet[10].aluno.nota=5.7 ;
vet[10]=aluno.5.7;
  vet[10].nota=5.7;
7a Questão (Ref.:201803639713) Acerto: 1,0 / 1,0
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 número de inscrição, o nome e a nota obtida pelo candidato. Este vetor está ordenado pelo
número de inscrição. Para realização de uma consulta que, dado um número de inscrição, apresenta o nome e 
nota do candidato, um programador utilizou um algoritmo de busca que realiza sucessivas divisões no vetor, 
comparando o número de inscrição procurado com o número de inscrição do candidato posicionado no meio do 
vetor. Se o candidato posicionado do meio do vetor tiver o número de inscrição igual ao número de inscrição 
procurado, a busca termina com sucesso. Caso contrário, se candidato posicionado do meio do vetor tiver 
número de inscrição menor que o procurado, então a busca continua na metade posterior do vetor. E 
finalmente, se candidato posicionado do meio do vetor tiver número de inscrição maior que o procurado, a 
busca continua na metade anterior do vetor. O algoritmo utilizado pelo programador trata-se do método 
denominado busca:
por comparação.
por contagem.
randômica.
linear.
  binária.
Gabarito
Coment.
8a Questão (Ref.:201803639296) Acerto: 1,0 / 1,0
O seguinte trecho de programa abaixo representa qual tipo de estrutura de ordenação?
void ordenar(float v[], int n) // n é o no. de elementos em v
{
 int i , // índice
 aux, // auxiliar para troca
http://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cript_hist=13534792320&f_cod_disc=CCT0753#
http://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cript_hist=13534792320&f_cod_disc=CCT0753#
http://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cript_hist=13534792320&f_cod_disc=CCT0753#
trocou = true,
fim = n - 1;
while (trocou)
{
    trocou = false; // sinaliza que é falso que trocou
     for (i = 0; i < fim; i++)
     {
       if (v[i] > v[i+1])
       {
         aux = v[i];
         v[i] = v[i+1];
         v[i+1] = aux;
         // sinaliza que é verdadeiro que trocou
         trocou = true;
        } // fim if
    } // fim for
 fim--; // decrementa o fim
} // fim while
} // fim da função
  Bublesort
Heapsort
Shellsort
Mergesort
Quicksort
Gabarito
Coment.
9a Questão (Ref.:201804493192) Acerto: 0,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; 
http://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cript_hist=13534792320&f_cod_disc=CCT0753#
http://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cript_hist=13534792320&f_cod_disc=CCT0753#
http://simulado.estacio.br/bdq_simulados_avaliacao_parcial_resultado.asp?cript_hist=13534792320&f_cod_disc=CCT0753#
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;
10a Questão (Ref.:201803842067) Acerto: 1,0 / 1,0
As estruturas de dados são utilizadas para manter dados ou informações organizados na memória, o que
possibilita a otimização do uso destes dados. Porém, as estruturas guardam características especiais na
manipulação destes dados, assim deve-se escolher a estrutura certa ou mais adequada para uma determinada
aplicação. Portanto marque a opção que representa a melhor estrutura, quando se tem como requisitos
principais o acesso aleatório aos dados e alocação destes de forma contínua na memória.
Fila Sequencial
Pilha Sequencial
Lista Encadeada
Pilha Encadeada
  Lista Sequencial
1a Questão (Ref.:201804230708) Acerto: 1,0 / 1,0
           Preciso cadastrar todos os interessados em meu novo curso de programação. Qual a estrutura de dados 
mais adequada para modelar este problema, visto que não há qualquer preocupação com ordem de chegada ou
saída de aluno da turma.
Árvore
Grafo
          Pilha
         Fila
  Lista
2a Questão (Ref.:201803639439) Acerto: 1,0 / 1,0
Estão entre algumas das possíveis formas de se estruturar dados:
Lista encadeada, vetores, algoritmos.
  Grafos, lista ordenada, vetores.
Algoritmos, lista ordenada, vetores.
Grafos, algoritmos, fila.
Grafos, lista ordenada, algoritmos.
Gabarito
Coment.
3a Questão (Ref.:201806435859) Acerto: 0,0 / 1,0
Qual será a saída para o seguinte trecho de código?
 void FUNC1()
{
int B = -100; 
cout << "Valor de B dentro da função FUNC1: " << B;
}
void FUNC2() {
int B = -200;
cout << "Valor de B dentro da função FUNC2: " << B;
}
int main() {
int B = 10;
cout << "Valor de B: " << B;
B = 20;
FUNC1();
cout << "Valor de B: " << B;
B = 30;
FUNC2();
cout << "Valor de B: " << B;
}
Valor de B: 10 Valor de B dentro da função FUNC1: -100 Valor de B: 20 Valor de B dentro da função 
FUNC2: -200 Valor de B: 20
Valor de B: 10 Valor de B dentro da função FUNC1: -100 Valor de B: 20 Valor de B dentro da função 
FUNC2: -400 Valor de B: 30
  Valor de B: 10 Valor

Continue navegando