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.
fila
grafo
pilha
lista
árvore
Respondido em 22/04/2020 17:51:08
Explicação:
Conforme gabarito e aula 1.
2a Questão
Estão entre algumas das possíveis formas de se estruturar dados:
Grafos, lista ordenada, vetores.
Lista encadeada, vetores, algoritmos.
Grafos, lista ordenada, algoritmos.
Algoritmos, lista ordenada, vetores.
Grafos, algoritmos, fila.
Respondido em 22/04/2020 17:51:35
Explicação:
FAlso. Algoritmos não são estrutura de
dados
Grafos, algoritmos, fila.
.
FAlso. Algoritmos não são estrutura de
dados.
Grafos, lista ordenada,
algoritmos.
Correto. Grafos, lista ordenada, vetores.
FAlso. Algoritmos não são estrutura de
dados.
Algoritmos, lista ordenada,
vetores.
FAlso. Algoritmos não são estrutura de dados.
Lista encadeada, vetores,
algoritmos.
Gabarito
Coment.
3a 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:
As alternativas I e II estão corretas
As alternativas III e IV estão corretas.
As alternativas II e IV estão corretas.
As alternativas I e III estão corretas.
Todas as alternativas estão corretas.
Respondido em 22/04/2020 17:53:19
4a Questão
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747520058&cod_hist_prova=187933271&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747520058&cod_hist_prova=187933271&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747520058&cod_hist_prova=187933271&pag_voltar=otacka
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 é ...
grafo
árvore
lista
pilha
fila
Respondido em 22/04/2020 17:53:37
Explicação:
Conforme gabarito e aula 1.
5a Questão
Podemos dizer que estrutura de dados é:
A entrada, que satisfaz a quaisquer restrições impostas pelo problema,
necessária para se calcular uma solução do problema.
É a saída, que satisfaz a quaisquer restrições impostas pelo problema,
necessária para se calcular uma solução do problema.
O que permite o armazenamento e a recuperação de dados independentemente
de seu conteúdo.
Uma sequência de passos computacionais que transforma uma entrada em uma
saída previamente determinada.
O meio para armazenar e organizar dados com o objetivo de facilitar o acesso
e as modificações.
Respondido em 22/04/2020 17:54:15
Gabarito
Coment.
6a Questão
Qual estrutura de dados é mais adequada para armazenar a estrutura do diretório do
sistema de arquivos de um sistema operacional?
Fila
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747520058&cod_hist_prova=187933271&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747520058&cod_hist_prova=187933271&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747520058&cod_hist_prova=187933271&pag_voltar=otacka
Lista
Árvore
Grafo
Pilha
Respondido em 22/04/2020 17:55:04
Explicação:
A estrutura de diretórios mostra hierarquia e um relacionamento não linear. Por isso,
a resposta certa é árvore.
Lista, pilha e fila são estruturas de dados linear.
Grafo é não linear, mas não é hierárquica.
7a Questão
Os irmãos Silva irão viajar por vários países da Europa e por isso, traçaram no mapa o percurso
que farão, de cidade a cidade. Qual a estrutura de dados mais adequada para modelar este
problema ?
Pilha
Grafo
Fila
Árvore
Lista
Respondido em 22/04/2020 17:55:38
8a 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.
Lista Encadeada
Fila Sequencial
Pilha Sequencial
Pilha Encadeada
Lista Sequencial
Respondido em 22/04/2020 17:56:43
1a 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;
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 uma pilha.
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 filas.
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.
Respondido em 22/04/2020 17:58:25
2a Questão
A forma correta para imprimir o valor do último elemento de um vetor v com n
posições é:
cin >> v[-1];
cout << v[n-1];
cout << v[ultimo];
cout << v[n];
cout << v[n+1];
Respondido em 22/04/2020 17:59:11
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, II, III e VI são afirmativas verdadeiras
II, IV e V são afirmativas verdadeiras
I, III, IV e VI são afirmativas verdadeiras
I, II e V são afirmativas verdadeiras
II, IV, V e VI são afirmativas verdadeiras
Respondido em 22/04/2020 18:00:35
Gabarito
Coment.
4a 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
lista
pilha
grafo
árvore
Respondido em 22/04/2020 18:00:50
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747549780&cod_hist_prova=187934828&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747549780&cod_hist_prova=187934828&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747549780&cod_hist_prova=187934828&pag_voltar=otackaExplicação:
Conforme gabarito e aula 1.
5a Questão
Estão entre algumas das possíveis formas de se estruturar dados:
Lista encadeada, vetores, algoritmos.
Grafos, algoritmos, fila.
Grafos, lista ordenada, algoritmos.
Grafos, lista ordenada, vetores.
Algoritmos, lista ordenada, vetores.
Respondido em 22/04/2020 18:01:21
Explicação:
FAlso. Algoritmos não são estrutura de
dados
Grafos, algoritmos, fila.
.
FAlso. Algoritmos não são estrutura de
dados.
Grafos, lista ordenada,
algoritmos.
Correto. Grafos, lista ordenada, vetores.
FAlso. Algoritmos não são estrutura de
dados.
Algoritmos, lista ordenada,
vetores.
FAlso. Algoritmos não são estrutura de dados.
Lista encadeada, vetores,
algoritmos.
Gabarito
Coment.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747549780&cod_hist_prova=187934828&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747549780&cod_hist_prova=187934828&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747549780&cod_hist_prova=187934828&pag_voltar=otacka
6a Questão
Qual estrutura de dados é mais adequada para armazenar a estrutura do diretório do
sistema de arquivos de um sistema operacional?
Pilha
Árvore
Lista
Grafo
Fila
Respondido em 22/04/2020 18:01:42
Explicação:
A estrutura de diretórios mostra hierarquia e um relacionamento não linear. Por isso,
a resposta certa é árvore.
Lista, pilha e fila são estruturas de dados linear.
Grafo é não linear, mas não é hierárquica.
7a Questão
Os irmãos Silva irão viajar por vários países da Europa e por isso, traçaram no mapa o percurso
que farão, de cidade a cidade. Qual a estrutura de dados mais adequada para modelar este
problema ?
Grafo
Pilha
Árvore
Fila
Lista
Respondido em 22/04/2020 18:01:56
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 I e II estão corretas
As alternativas III e IV estão corretas.
As alternativas II e IV estão corretas.
1a 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.
Lista Sequencial
Pilha Sequencial
Pilha Encadeada
Fila Sequencial
Lista Encadeada
Respondido em 19/05/2020 21:46:45
2a 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;
cin >> b;
cin >> c;
cin >> d;
cout << a;
cout << b;
cout << c;
cout << d;
cout << d;
cout << c;
cout << b;
cout << a;
Após a impressão dos valores pela ordem teremos duas filas.
Após a impressão dos valores pela ordem teremos uma pilha e uma fila.
Após a impressão dos valores pela ordem teremos uma fila e um grafo.
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 pilhas.
Respondido em 19/05/2020 21:49:30
3a 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
Pilha
Árvore
Grafo
Fila
Respondido em 19/05/2020 21:46:54
4a 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
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:
As alternativas I e III estão corretas.
As alternativas II e IV estão corretas.
Todas as alternativas estão corretas.
As alternativas I e II estão corretas
As alternativas III e IV estão corretas.
Respondido em 19/05/2020 21:47:00
Gabarito
Coment.
5a Questão
A forma correta para imprimir o valor do último elemento de um vetor v com n
posições é:
cin >> v[-1];
cout << v[n];
cout << v[n+1];
cout << v[n-1];
cout << v[ultimo];
Respondido em 19/05/2020 21:47:08
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881674470&cod_hist_prova=194385641&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881674470&cod_hist_prova=194385641&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881674470&cod_hist_prova=194385641&pag_voltar=otacka
6a 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 é ...
lista
árvore
pilha
fila
grafo
Respondido em 19/05/2020 21:47:09
Explicação:
Conforme gabarito e aula 1.
7a Questão
Estão entre algumas das possíveis formas de se estruturar dados:
Grafos, lista ordenada, algoritmos.
Lista encadeada, vetores, algoritmos.
Grafos, algoritmos, fila.
Algoritmos, lista ordenada, vetores.
Grafos, lista ordenada, vetores.
Respondido em 19/05/2020 21:46:59
Explicação:
FAlso. Algoritmos não são estrutura de
dados
Grafos, algoritmos, fila.
.
FAlso. Algoritmos não são estrutura de
dados.
Grafos, lista ordenada,
algoritmos.
Correto. Grafos, lista ordenada, vetores.
FAlso. Algoritmos não são estrutura de
dados.
Algoritmos, lista ordenada,
vetores.
FAlso. Algoritmos não são estrutura de dados.
Lista encadeada, vetores,
algoritmos.
Gabarito
Coment.
8a Questão
É um exemplo de TAD Não Linear:
Grafos
Listas
Filas de Prioridade
Pilhas
Filas
Respondido em 19/05/2020 21:47:04
Explicação: Um grafo é um tipo de dados abstrato não linear
1a QuestãoDiga, 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;
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881674470&cod_hist_prova=194385641&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881674470&cod_hist_prova=194385641&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881674470&cod_hist_prova=194385641&pag_voltar=otacka
system("pause");
}
Valores: 10 13
Valores: 13 13
Valores: 31 01
Valores: 13 10
Valores: 10 10
Respondido em 22/04/2020 18:08:10
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
2a Questão
Considere as seguintes afirmativas :
I) Os vetores em C++, 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:
Apenas III
Apenas I e II
Apenas I
Apenas II
Nenhuma está correta
Respondido em 22/04/2020 18:09:18
Explicação:
Analisando cada afirmativa ...
I . Falso. Em C++ os vetores passados como parâmetros são sempre passados por
referência.
II. FAlso. Variáveis globais são uma péssima forma de usar recursos,
comprometendo principalmente a manutenção do programa.
III. FAlso. A função poderá retornar explicitamente um valor com return, mas terá
que passar o outro parâmetro por referência e não por valor. Outra forma, será passar
todos os parâmetros por referência.
Portanto, não opção correta.
3a 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 volume (float ; float ; float);
void volume (float , float);
void volume (float, float, float &);
float volume (float, float, float);
Respondido em 22/04/2020 18:10:24
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.
4a Questão
Considere os trechos abaixo:
int valor = 100;
void eureka (int &z) {
int temp = 25;
z--;
temp = temp - 10;
valor = valor - temp;
cout << "Auxiliar = " << temp << endl;
}
int main() {
int R = 1000;
eureka(R);
cout << "Result = " << R << " Valor = " << valor << endl;
}
Assinale a opção correta.
Será impresso
Auxiliar = 15
Result = 999 Valor = 85
sendo que z é um parâmetro passado por referência
Será impresso
Auxiliar = 15
Result = 1000 Valor = 100
sendo que z é um parâmetro passado por referência
Será impresso
Auxiliar = 15
Result = 999 Valor = 85
sendo que z é um parâmetro passado por valor
Será impresso
Auxiliar = 15
Result = 1000 Valor = 85
sendo que z é um parâmetro passado por referência
Será impresso
Auxiliar = 15
Result = 1000 Valor = 85
sendo que z é um parâmetro passado por valor
Respondido em 22/04/2020 18:11:03
Explicação:
Questão objetiva. Só é possível ser marcada a opção indicada no gabarito.
Vejamos a análise passo a passo do trecho de código....
int valor = 100;
void eureka (int &z) {
int temp = 25;
z--;
temp = temp - 10;
valor = valor - temp;
cout << "Auxiliar = " << temp << endl;
}
int main() {
int R = 1000;
eureka(R);
cout << "Result = " << R << " Valor = " << valor << endl;
}
Passo a passo ....
Temos que valor recebeu 100 e valor é uma variável global.
Começando a execução pela main, temos que eureka é chamada e o valor 1000 é
passado.
Iniciando a execução de eureka temos que :
temp (local à eureka) recebe o valor 25, depois o valor 1000 passado é
decrementado para 999, temp recebe 15, valor recebe 100-15, que dá 85. Daí, o valor
de temp é impresso, sendo mostrado na tela : Auxiliar = 15. DAí, a função
termina e volta-se para a main. Lá na main, após a chamada da eureka, temos a
seguinte impressão :
Result = 999 Valor = 85
Note que para R valer 999 só foi possível porque z é um parâmetro passado por
referência.
5a Questão
A declaração de variáveis na programação é o ato de reservar um espaço na memória
para poder armazenar valores de um determinado tipo. Essas variáveis podem ser
classificadas como variáveis locais e globais. Sendo assim, qual das situações abaixo
representa melhor o conceito das variáveis globais.
Se dentro de uma função "mostra" declararmos uma variável 'R' com um
determinado valor poderemos imprimir esta variável em qualquer outra
função do programa mostrando o valor atribuído na função "mostra".
Se modificarmos o valor da variável 'Y' na função "soma", e depois
imprimirmos na tela esta variável em outra função, onde tambem está
declarada a variável 'Y', será acusado um erro de compilação.
Em uma função "resul" tem-se uma variável ali declarada por 'T' que recebe o
valor inteiro 5. Ao tentar chamar esta variável em outra função é mencionado
um warning.
Ao modificar o valor da variável 'X' na função "modifica" seu valor
modificado poderá ser apresentado em qualquer outra função do programa.
Em duas funções diferentes temos duas variáveis também diferentes com o
mesmo nome apresentando o mesmo valor.
Respondido em 19/05/2020 21:31:08
Explicação:
Uma variável é classificada com Global quando for declarada fora de todas as funções,
significando que poderá ser alterada em qualquer uma delas.
A resposta correta é :
Ao modificar o valor da variável 'X' na função "modifica" seu valor modificado
poderá ser apresentado em qualquer outra função do programa.
Gabarito
Coment.
6a Questão
Ao definirmos uma função, podemos afirmar:
I Toda função tem parâmetros
II Quando nada retorna, o tipo é void
III Quando todos os parâmetros são do mesmo tipo, é suficiente usar o tipo uma
vez e separar os nomes dos parâmetros por vírgulas
IV Na passagem por valor, o endereço da variável da função chamadora é passado
para a funçãochamada
Após uma análise das afirmativas acima, escolha a opção correta.
Somente II III e IV estão corretas
Somente II e IV estão corretas
Somente II e III estão corretas
Somente II está correta
Somente I e II estão corretas
Respondido em 19/05/2020 21:30:26
Gabarito
Coment.
7a Questão
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747580768&cod_hist_prova=187936316&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747580768&cod_hist_prova=187936316&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747580768&cod_hist_prova=187936316&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747580768&cod_hist_prova=187936316&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747580768&cod_hist_prova=187936316&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747580768&cod_hist_prova=187936316&pag_voltar=otacka
Assinale a opção certa.
Quando não se escreve o protótipo de uma função ...
A chamada da função não poderá ser feita em qualquer hipótese.
A definição da função deverá ser escrita, obrigatoriamente, após o programa
principal.
O programa não funcionará de forma alguma.
É preciso definir a função antes do programa principal.
A chamada da função poderá ser feita em qualquer hipótese.
Respondido em 22/04/2020 18:12:50
Gabarito
Coment.
8a Questão
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;
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747580768&cod_hist_prova=187936316&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747580768&cod_hist_prova=187936316&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747580768&cod_hist_prova=187936316&pag_voltar=otacka
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: -200 Valor de B: 20
Valor de B dentro da função FUNC2: -200 Valor de B: 30
Valor de B: 10 Valor de B dentro da função FUNC1: -100 Valor de B: 10
Valor de B dentro da função FUNC2: -200 Valor de B: 30
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 de B dentro da função FUNC1: -100 Valor de B: 20
Valor de B dentro da função FUNC2: -200 Valor de B: 30
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
Respondido em 22/04/2020 18:15:52
Explicação:
A execução começa pela main. Na main, B recebe 10. E daí é impresso : Valor de
B : 10
DEpois, B muda e recebe 20.
Em seguida, é chamada a função FUNC1. Dentro desta função, existe um outro B
que recebe -100. Então, é impresso :
Valor de B dentro da função FUNC1: -100
A função termina e voltamos para a main, onde existe um outro cout que imprime o
valor de B, que na main vale 20. Então, será impresso na tela :
Valor de B : 20
Em seguida, ainda na main, B recebe 30 e logo depois, FUNC2 é
chamada. Executando FUNC2 temos que um B, local à função, recebe -200 e logo
em seguida é impresso : Valor de B dentro da função FUNC2 : -200
Terminando a execução de FUNC2, voltamos para a main onde é impresso o valor
do B (local à main) : Valor de B : 30
Logo, a opção correta é a que diz :
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 : 30
1a Questão
Considere a função a seguir e a chamada da mesma efetuada no programa principal
abaixo. Indique a opção que contem o que será impresso.
int executar (int x, int &y) {
x = y * 2;
y = ++x;
return x + y;
}
int main () {
int a=2, b=2, c=2;
c = executar (a, b);
cout << a << ", " << b << ", " << c;
}
3, 2, 8
3, 5, 8
2, 5, 10
4, 5, 9
2, 2, 9
Respondido em 19/05/2020 21:31:50
Explicação:
Fazendo um teste de mesa, temos o seguinte :
A execução começa pela main.
As variáveis a, b e c são iniciadas com 2.
Chama-se a função executar e são passados os valores de a e b, ou seja, 2 e 2.
Ao iniciar a execução da função executar temos que x é passado por valor e y por referência.
Iniciando a função temos :
Em x = y * 2; Daí : x recebe 2 * 2, que dá 4
Em y = ++x; Daí : x é incrementado para 5 e depois y recebe 5.
Então, a soma de x + y é retornado. Ou seja, 10 é retornado.
Mas como y é passado por referência, a variável b na chamada da função foi alterada para
5. Nada, no entanto, ocorreu com a na chamada da função, pois x foi passado por valor.
Ao voltar para main, será impresso 2, 5, 10
Portanto, qualquer outra opção é totalmente inviável.
2a Questão
Considere o trecho de um programa escrito em C++.
int func1 (int vtx[], int tam) {
int soma=0;
for (int i=0 ; i < tam; i++) {
if (i % 2 !=0)
soma += vtx[i];
}
return soma;
}
int main() {
int vt[5] = {10,20,30,40,50};
cout << func1 (vt,5);
}
Marque a opção correta que mostra o que é impresso na tela.
60
30
50
20
40
Respondido em 19/05/2020 21:31:40
Explicação:
int func1 (int vtx[], int tam) {
int soma=0; //inicializa soma com zero.
for (int i=0 ; i < tam; i++) {
if (i % 2 !=0) //testa se i é ímpar. Se for, acumula na soma o valor de vtx[i]
soma += vtx[i];
}
return soma;
}
Fazendo um teste de mesa parcial ...
vetor tam soma i
{10, 20, 30, 40, 50} 5 0 0
20 1
2
E continua ... se vê que a função está somando os elementos do vetor que possuem
índices ímpares. Logo, serão somados 20 e 40, que dará 60.
A soma 60 é retornada e impressa na main.
3a 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);
float volume (float, float);
void volume (float , float);
void volume (float, float, float &);
float volume (float ; float ; float);
Respondido em 19/05/2020 21:31:47
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.
4a Questão
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 escopo das variáveis do programa.
o tipo das variáveis que serão utilizadas dentro da função.
o protótipo da função.
o tipo do dado do valor retornado da função para quem a chamou.o tipo dos dados dos parâmetros que são passados à função quando da sua
chamada.
Respondido em 19/05/2020 21:31:27
Explicação:
Por definição, antes do nome da função colocamos o tipo de dados retornado. Por
exemplo, int, double, char ... Quando a função nada retorna colocamos void.
5a Questão
O que será mostrado na tela pelo programa abaixo ?
#include < iostream >
using namespace std;
int a,b;
void dobro(int x){ //x passado por valor
x=2*x;
}
int triplo(int y){ //y passado por valor
return 3*y;
}
void altera(int x, int &y) { //x passado por valor e y passado
por referencia
x=x+a;
y=x+b;
}
int main (){
a=2;
b=3;
dobro(a);
b=triplo(b);
altera(a,b);
cout<< a << " e " << b << endl;
}
4 e 12
9 e 16
4 e 9
2 e 13
2 e 9
Respondido em 19/05/2020 21:38:30
Explicação:
Executando o programa, passo a passo, temos :
Na main, a recebe 2 e b recebe 3. Note que a e b são variáveis globais.
Daí, ainda na main, a função dobro é chamada. Ao executar dobro, temos que o
valor 2 é passado e x (local à dobro) recebe 2 * 2, que dá 4.
Ao terminar a função dobro, volta-se para a main, mas o valor de a passado não
mudou, continuando 2.
Após a execução de dobro, a função triplo é chamada na main e é passado o valor
de b, que é 3. Iniciando a execução da função triplo, temos que y recebe 3 e a
função retorna 3 * 3, que é 9. Voltando para a main, temos que b recebe o valor
retornado pela função, que é 9.
Até este ponto, temos que a vale 2 e b mudou para 9.
Em seguida, a função altera é chamada e são passados 2 e 9, respectivamente, para
x e y. Executando a função altera, temos que x recebe 2+2, que dá 4 e y recebe
4+9, que dá 13. Como x é passado por valor e y por referência, temos que a
mudará e b mudará (ambas na main).
Então, voltando para main temos que a vale 2 e que b vale 13. Assim, será
impresso na tela
2 e 13
6a 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 :
Não retorna valor e não possui parâmetros.
Retorna valor.
Retorna valor e possui parâmetros.
Não retorna valor e possui parâmetros.
Retorna valor e não possui parâmetros.
Respondido em 19/05/2020 21:38:53
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.
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 13
Valores: 13 13
Valores: 31 01
Valores: 10 10
Respondido em 19/05/2020 21:39:00
Explicação:
A execução começa pela main. São passados o valor de a, que é 13 e o endereço de
b, que vale 10. Em seguida, é chamada a função troca e são passados o valor de a e
o endereço de b.
Executando a função troca, x recebe 13 e *y recebe 10. Mas ocorre a troca, usando
tmp como auxiliar. Então x recebe 10 e *y recebe 13. Ao terminar a execução da
função, voltamos para a main e temos a sem mudanças e b com a mudança
ocorrida na função. Note que x é um parâmetro passado por valor e y é um
parÂmetro passado por referência.
Portanto, a ficou 13 e b ficou 13.
Logo, será impresso : Valores: 13 13
8a Questão
Considere a seguinte função: void dobro(int x) { x = 2 * x; } Qual valor será impresso
na tela quando o seguinte programa principal for executado? int main() { int n = 3; n
= n + 2; dobro(n); cout << n; return 0; }
20
0
5
3
10
Respondido em 19/05/2020 21:39:05
Explicação:
A função não retorna valor, então o valor de "n" não é alterado permanecendo igual a
5.
1a Questão
Blocos únicos de códigos que realizam diversas tarefas distintas são de difícil
manutenção. Portanto, utiliza-se a técnica da modularização de programas, a fim de
facilitar a implementação e a manutenção dos programas. Esta técnica tem como
principal elemento:
Os Vetores
Os Grafos
As Filas
As Estruturas de Dados
As funções
Respondido em 19/05/2020 21:47:20
2a Questão
Considere os trechos abaixo:
int valor = 100;
void eureka (int &z) {
int temp = 25;
z--;
temp = temp - 10;
valor = valor - temp;
cout << "Auxiliar = " << temp << endl;
}
int main() {
int R = 1000;
eureka(R);
cout << "Result = " << R << " Valor = " << valor << endl;
}
Assinale a opção correta.
Será impresso
Auxiliar = 15
Result = 999 Valor = 85
sendo que z é um parâmetro passado por valor
Será impresso
Auxiliar = 15
Result = 999 Valor = 85
sendo que z é um parâmetro passado por referência
Será impresso
Auxiliar = 15
Result = 1000 Valor = 85
sendo que z é um parâmetro passado por valor
Será impresso
Auxiliar = 15
Result = 1000 Valor = 100
sendo que z é um parâmetro passado por referência
Será impresso
Auxiliar = 15
Result = 1000 Valor = 85
sendo que z é um parâmetro passado por referência
Respondido em 19/05/2020 21:47:27
Explicação:
Questão objetiva. Só é possível ser marcada a opção indicada no gabarito.
Vejamos a análise passo a passo do trecho de código....
int valor = 100;
void eureka (int &z) {
int temp = 25;
z--;
temp = temp - 10;
valor = valor - temp;
cout << "Auxiliar = " << temp << endl;
}
int main() {
int R = 1000;
eureka(R);
cout << "Result = " << R << " Valor = " << valor << endl;
}
Passo a passo ....
Temos que valor recebeu 100 e valor é uma variável global.
Começando a execução pela main, temos que eureka é chamada e o valor 1000 é
passado.
Iniciando a execução de eureka temos que :
temp (local à eureka) recebe o valor 25, depois o valor 1000 passado é
decrementado para 999, temp recebe 15, valor recebe 100-15, que dá 85. Daí, o
valor de temp é impresso, sendo mostrado na tela : Auxiliar = 15. DAí, a função
termina e volta-se para a main. Lá na main, após a chamada da eureka, temos a
seguinte impressão :
Result = 999 Valor = 85
Note que para R valer 999 só foi possível porque z é um parâmetro passado por
referência.
3a Questão
Considere o trecho de um programa escrito em C++ :
int func1 (int n1, int n2) {
int soma=0;
for ( ; n1 < n2 ; n1 += 2) {
soma += n1;
}
return soma;
}
main() {
cout << func1(1.20);
}
Marque a opção correta que mostra o que é impresso na tela.
104
80
90
100
102
Respondido em 19/05/2020 21:47:34
Explicação:
int func1 (int n1, int n2) {
int soma=0;
for ( ; n1 < n2 ; n1 += 2) {
soma += n1;
}
return soma;
}
main() {
cout << func1(1,20);
}
Fazendo passo a passo :
n1 n2 soma
1 20 0
3 1
5 4
7 9
9 16
11 25
1336
15 49
17 64
19 81
21 ... Teste dará falso 100
Retorna o valor 100 que é impresso na main.
4a 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;
15 e 15
25 e 15
0 e 5
15 e 25
25 e 25
Respondido em 19/05/2020 21:47:58
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
5a Questão
Sobre funções, é correto afirmar:
Não podem ser chamadas dentro de outras funções.
São blocos de instruções que são executados quando são chamadas em
alguma parte do programa.
Obrigatoriamente devem retornam algum valor.
Não devem conter variáveis locais em seu código.
Obrigatoriamente devem possuir parâmetros.
Respondido em 19/05/2020 21:47:49
Explicação:
Uma função é um bloco de instruções que pode ser chamada a partir de outra
função, que pode ter ou não parâmetros, que pode ou não retornar valor, que pode
ter ou não variáveis locais.
6a Questão
Para compararmos vetores de char, usaremos a função _____________________ .
Para copiarmos o conteúdo de um vetor de char nas posições ocupadas por outro
vetor de char, usaremos a função ______________________ .
strcmp(); e strlen() ;
strcat(); e strcpy() ;
strcmp(); e strcat();
strcmp(); e strcpy();
strcmp(); e strcmpi ();
Respondido em 19/05/2020 21:47:55
Explicação:
Nâo há outra possíbilidade de resposta. Em cstring estão declaradas as funções da
opção correta, que fazem exatamente o que foi mencionado no enunciado.
Ainda a saber : strcat concatena e strlen conta o número de caracteres
7a Questão
Considere o trecho de um programa escrito em C++ :
int func1 (long num) {
int n, na=1;
while (num / 10 != 0){
na += 1;
num /= 10;
}
return na;
}
main() {
cout << func1 (132041);
}
Marque a opção correta que mostra o que é impresso na tela.
6
3
2
1
4
Respondido em 19/05/2020 21:48:02
Explicação:
Fazendo passo a passo :
int func1 (long num) {
int n, na=1;
while (num / 10 != 0){
na += 1;
num /= 10;
}
return na;
}
main() {
cout << func1 (132041);
}
Passos :
1) Chamada da função passando o valor 132041
2) Começa a função com num recebendo o valor 132041
3) na recebe 1
4) enquanto num/10 é diferente de zero faça ... Vejamos : 132041/10 é diferente
de zero então
na recebe 2 e num recebe 13204
5) Volta no teste do loop... 13204 /10 é diferente de zero ? Sim. Então, na recebe 3
e num recebe 1320
6) Volta no teste do loop... 1320 /10 é diferente de zero ? Sim. Então, na recebe 4 e
num recebe 132
7) Volta no teste do loop... 132 /10 é diferente de zero ? Sim. Então, na recebe 5 e
num recebe 13
8) Volta no teste do loop... 13 /10 é diferente de zero ? Sim. Então, na recebe 6 e
num recebe 1
9) Volta no teste do loop... 1 /10 é diferente de zero ? Não.
Então, retorna o valor e na que é 6.
8a Questão
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: -200 Valor de B: 20
Valor de B dentro da função FUNC2: -200 Valor de B: 30
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 de B dentro da função FUNC1: -100 Valor de B: 20
Valor de B dentro da função FUNC2: -200 Valor de B: 30
Valor de B: 10 Valor de B dentro da função FUNC1: -100 Valor de B: 10
Valor de B dentro da função FUNC2: -200 Valor de B: 30
Respondido em 19/05/2020 21:48:07
Explicação:
A execução começa pela main. Na main, B recebe 10. E daí é impresso : Valor de
B : 10
DEpois, B muda e recebe 20.
Em seguida, é chamada a função FUNC1. Dentro desta função, existe um outro B
que recebe -100. Então, é impresso :
Valor de B dentro da função FUNC1: -100
A função termina e voltamos para a main, onde existe um outro cout que imprime o
valor de B, que na main vale 20. Então, será impresso na tela :
Valor de B : 20
Em seguida, ainda na main, B recebe 30 e logo depois, FUNC2 é
chamada. Executando FUNC2 temos que um B, local à função, recebe -200 e logo
em seguida é impresso : Valor de B dentro da função FUNC2 : -200
Terminando a execução de FUNC2, voltamos para a main onde é impresso o valor
do B (local à main) : Valor de B : 30
Logo, a opção correta é a que diz :
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 : 30
1a Questão
Considere o trecho de um programa escrito em C++.
void func1 (bool x, int ini, int fim) {
for ( int y=ini; y != fim ; y++) {
x = !x;
if (x)
cout << y << endl;
else
cout << -y << endl;
}
}
int main() {
func1(false, 1, 7);
}
Marque a opção correta que mostra o que é impresso na tela.
1, -2, -3, -4, -5, -6
1, -2, 3, -4, 5, -6
-1, -2, -3, -4, -5, -6
-1, 2, -3, 4, -5, 6
1, 2, 3, 4, 5, 6
Respondido em 19/05/2020 21:48:37
Explicação:
Fazendo um teste de mesa temos que será impresso a seguinte sequência : 1 -
2 3 -4 5 -6, um embaixo do outro.
Parte de um teste de mesa :
x ini fim y
false 1 7 1
true 2
false
E continua x, ini, fim e y recebendo valores
Tela :
1
-2
3
-4
5
-6
2a Questão
Em programação podemos utilizar um recurso que modulariza o programa
chamado função. As funções precisam ser ativadas para que possam ser
executadas. Para isso, é necessário chamar a função pelo seu nome e enviar,
quando necessário, os valores respectivos para os parâmetros de entrada. Ao enviar
os valores para os parâmetros de entrada, o programa pode fazer uma cópia deste
valor ou trabalhar em um endereço enviado. Quando se envia o endereço estamos
ativando a função por meio de:
Ponteiros.
Envio de inteiro.
Registro.
Envio de valor.
Passagem por valor.
Respondido em 19/05/2020 21:48:41
Explicação:
Falso. Quando se tem endereço não é passagem por valor
Passagem por
valor.
FAlso. Fala-se em endereço do valor Envio de inteiro.
Verdadeiro. Ponteiro armazena o endereço de memória
de uma variável
Ponteiros.
Falso. Como é esse envio ? Envio de valor.
FAlso. Sem sentido. Resgistro (struct em C++) agrega dados
de tipos diferentes.
Registro.
Gabarito
Coment.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881691221&cod_hist_prova=194386375&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881691221&cod_hist_prova=194386375&pag_voltar=otackahttp://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881691221&cod_hist_prova=194386375&pag_voltar=otacka
3a Questão
Considere a função abaixo:
int func (int a, int& b){
a = b - a;
b = a * 2;
a = b * 2;
return a;
}
Considere o seguinte código na função main:
int x = 2, y = 3, z;
z = func (x, y);
cout << x << "; " << y << "; " << z;
O que será impresso?
1; 3; 1
2; 2; 4
1; 2; 4
4; 2; 4
2; 2; 1
Respondido em 19/05/2020 21:48:32
Explicação:
a recebeu o valor de x que era 2
b recebeu 3, a partir de y, que foi passado por referência.
Executando a função, passo a passo, tem-se :
a recebeu 1
b recebeu 2
a recebeu um novo valor, que é 4.
Daí a função retorna o valor de a, que é 4.
Voltando para a main temos que z recebeu o retorno da função que é 4, x não se
alterou, valendo 2 e y recebeu 4, devido a alteração na função no parâmetro b,
passado por referência.
Daí, na tela será impresso : 2; 2; 4
4a Questão
Considere as seguintes afirmativas :
I) Os vetores em C++, 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 I
Apenas III
Apenas I e II
Apenas II
Respondido em 19/05/2020 21:48:34
Explicação:
Analisando cada afirmativa ...
I . Falso. Em C++ os vetores passados como parâmetros são sempre passados por
referência.
II. FAlso. Variáveis globais são uma péssima forma de usar recursos,
comprometendo principalmente a manutenção do programa.
III. FAlso. A função poderá retornar explicitamente um valor com return, mas terá
que passar o outro parâmetro por referência e não por valor. Outra forma, será
passar todos os parâmetros por referência.
Portanto, não opção correta.
5a Questão
Funções são semelhantes aos procedimentos, exceto que uma função sempre
retorna um valor. Um exemplo de função seria o conjunto de instruções para
calcular o fatorial de um número e após a função ser executada, ela deve retornar o
fatorial do número pedido. Marque a opção que representa um protótipo de função
válido.
retorno nomeFuncao(parametros);
nome tipo(parametros);
void float(int a, int b);
tipo parametros(parametros);
tipo parametros(int a, int b);
Respondido em 19/05/2020 21:48:44
Explicação:
Por definição, o protótipo de uma função é formado da seguinte forma :
nome_da_função ( );
6a Questão
O programa executa perfeitamente independente da ordem das
funções já que existem os seus protótipos.
O programa não executa corretamente pois as funções devem
ser descritas antes da função main(), para que o compilador
consiga reconhecê-las.
O programa não executa corretamente, pois o protótipo da
função media( ) não apresenta a identificação dos parâmetros,
mas apenas os tipos dos mesmos.
O programa executa perfeitamente, mas não mostra o valor da
media já que esta função não foi chamada na função main( ).
O programa não executa corretamente, pois os protótipos estão
fora da ordem em que as funções são descritas.
Respondido em 19/05/2020 21:49:14
Gabarito
Coment.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881691221&cod_hist_prova=194386375&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881691221&cod_hist_prova=194386375&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881691221&cod_hist_prova=194386375&pag_voltar=otacka
7a Questão
Na passagem por ____________________ , o endereço da variável da função
chamadora é passado para a função chamada e, dessa forma, o valor poderá ser
alterado, ou não.
número
valor
void
caracter
referência
Respondido em 19/05/2020 21:49:05
Explicação:
Esse é o conceito de passagem por referência.
8a Questão
Considere o trecho de um programa escrito em C++.
int func1 (int vtx[], int tam) {
int soma=0;
for (int i=0 ; i < tam; i++) {
if (i % 2 !=0)
soma += vtx[i];
}
return soma;
}
int main() {
int vt[5] = {10,20,30,40,50};
cout << func1 (vt,5);
}
Marque a opção correta que mostra o que é impresso na tela.
60
40
30
50
20
Respondido em 19/05/2020 21:49:11
Explicação:
int func1 (int vtx[], int tam) {
int soma=0; //inicializa soma com zero.
for (int i=0 ; i < tam; i++) {
if (i % 2 !=0) //testa se i é ímpar. Se for, acumula na soma o valor de vtx[i]
soma += vtx[i];
}
return soma;
}
Fazendo um teste de mesa parcial ...
vetor tam soma i
{10, 20, 30, 40, 50} 5 0 0
20 1
2
E continua ... se vê que a função está somando os elementos do vetor que possuem
índices ímpares. Logo, serão somados 20 e 40, que dará 60.
A soma 60 é retornada e impressa na main.
1a 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.
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;
}
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;
}
}
}
}
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, 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;
}
}
Respondido em 19/05/2020 21:42:17
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.
2a 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?cod_prova=3747637257&cod_hist_prova=187938935&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747637257&cod_hist_prova=187938935&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3747637257&cod_hist_prova=187938935&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;
Respondido em 19/05/2020 21:41:56
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;
};
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.5.7;
aluno.vet[10].nota=5.7;
aluno.vet[10]=5.7;
vet[10].aluno.nota=5.7 ;
vet[10].nota=5.7;
Respondido em 19/05/2020 21:42:39
4a 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 media 6.0 para o
quarto elemento deste vetor.
aluno[3].10=6.0;
aluno[10]=6.0;
vet[3].media=6.0;
aluno[3].media=6.0;
vet[3].aluno=6.0;
Respondido em 19/05/2020 21:42:25
5a Questão
Em C++, quando uma variável é declarada como uma struct, o acesso para
atribuição e leitura dos membros (campos) deste registro se dá pelo operador :
-> (seta).
& (e comercial ou eitza).
, (vírgula).
* (asterisco).
∙ (ponto).
Respondido em 19/05/2020 21:42:35
Explicação:
Por definição, o operador que permite acessar os campos de uma variável struct é
o ponto (.).
6a Questão
Marque a opção correta, considerando
struct Livro {
int codigo;
float preco;
} liv;
liv->preco = 30.70;
liv.preco = 30.70;
Livro->liv.codigo = 12345;
Livro.liv.codigo = 12345;
Livro.codigo = 12345;
Respondido em 19/05/2020 21:42:20
7a Questão
Marque a afirmativa correta para a "Inserção em lista linear sequencial ordenada".
Consiste em fazer uma busca em um vetor desordenado, dividindo o espaço
de busca ao meio e verificando se o dado está no meio ou, antes do meio ou
depois do meio.
Consiste em fazer uma busca em um vetor já ordenado, dividindo o espaço
de busca ao meio e verificando se o dado está no meio ou, antes do meio ou
depois do meio.
É o processo pelo qual um conjunto de dados é colocado em uma ordem
crescente ou decrescente.
Consiste em adicionar um valor no vetor, alterando a ordem existente e
ajustando o total de elementos.
Consiste em adicionar um valor no vetor, mantendo a ordem existente e
ajustando o total de elementos.
Respondido em 19/05/2020 21:42:41
Explicação:
Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando
o total de elementos.
Só pode ocorrer, no entanto, se a lista não estiver cheia.
8a Questão
Qual das seguintes estruturas de dados é classificada como heterogênea?
Loop
Pilha
Fila
Registro
Vetor
Respondido em 19/05/2020 21:42:28
Explicação:
Registro permite agregar dados de tipos diferentes.
Vetor permite agregar dados do mesmo tipo.
Pilha e fila implementadas com vetor ou lista encadeada.
Loop : termo genérico para repetições.
1a 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.
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;
}
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;
}
}
}
}
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, 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;
}
}
Respondido em 19/05/2020 21:43:36
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.
2a Questão
Marque a afirmativa correta para a "Inserção em lista linear sequencial ordenada".
É o processo pelo qual um conjunto de dados é colocado em uma ordem
crescente ou decrescente.
Consiste em fazer uma busca em um vetor desordenado, dividindo o espaço
de busca ao meio e verificando se o dado está no meio ou, antes do meio ou
depois do meio.
Consiste em adicionar um valor no vetor, alterando a ordem existente e
ajustando o total de elementos.
Consiste em fazer uma busca em um vetor já ordenado, dividindo o espaço
de busca ao meio e verificando se o dado está no meio ou, antes do meio ou
depois do meio.
Consiste em adicionar um valor no vetor, mantendo a ordem existente e
ajustando o total de elementos.
Respondido em 19/05/2020 21:43:30
Explicação:
Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando
o total de elementos.
Só pode ocorrer, no entanto, se a lista não estiver cheia.
3a Questão
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881647263&cod_hist_prova=194384364&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881647263&cod_hist_prova=194384364&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881647263&cod_hist_prova=194384364&pag_voltar=otackaPode-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].nota=5.7;
vet[10].nota=5.7;
vet[10]=aluno.5.7;
aluno.vet[10]=5.7;
Respondido em 19/05/2020 21:43:51
4a 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 media 6.0 para o
quarto elemento deste vetor.
aluno[3].media=6.0;
vet[3].media=6.0;
aluno[10]=6.0;
aluno[3].10=6.0;
vet[3].aluno=6.0;
Respondido em 19/05/2020 21:44:01
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 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.5.7;
aluno.vet[10].nota=5.7;
aluno.vet[10]=5.7;
vet[10].aluno.nota=5.7 ;
vet[10].nota=5.7;
Respondido em 19/05/2020 21:44:06
6a Questão
Marque a opção correta, considerando
struct Livro {
int codigo;
float preco;
} liv;
liv->preco = 30.70;
Livro.codigo = 12345;
Livro->liv.codigo = 12345;
Livro.liv.codigo = 12345;
liv.preco = 30.70;
Respondido em 19/05/2020 21:44:15
7a Questão
Qual das seguintes estruturas de dados é classificada como heterogênea?
Loop
Fila
Pilha
Vetor
Registro
Respondido em 19/05/2020 21:44:17
Explicação:
Registro permite agregar dados de tipos diferentes.
Vetor permite agregar dados do mesmo tipo.
Pilha e fila implementadas com vetor ou lista encadeada.
Loop : termo genérico para repetições.
Gabarito
Coment.
8a Questão
Em C++, quando uma variável é declarada como uma struct, o acesso para
atribuição e leitura dos membros (campos) deste registro se dá pelo operador :
∙ (ponto).
, (vírgula).
& (e comercial ou eitza).
* (asterisco).
-> (seta).
Respondido em 19/05/2020 21:44:21
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881647263&cod_hist_prova=194384364&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881647263&cod_hist_prova=194384364&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881647263&cod_hist_prova=194384364&pag_voltar=otacka
Explicação:
Por definição, o operador que permite acessar os campos de uma variável struct é
o ponto (.).
1a Questão
Qual das seguintes estruturas de dados é classificada como heterogênea?
Fila
Loop
Pilha
Registro
Vetor
Respondido em 19/05/2020 21:44:19
Explicação:
Registro permite agregar dados de tipos diferentes.
Vetor permite agregar dados do mesmo tipo.
Pilha e fila implementadas com vetor ou lista encadeada.
Loop : termo genérico para repetições.
Gabarito
Coment.
2a Questão
Marque a afirmativa correta para a "Inserção em lista linear sequencial ordenada".
Consiste em fazer uma busca em um vetor desordenado, dividindo o espaço
de busca ao meio e verificando se o dado está no meio ou, antes do meio ou
depois do meio.
É o processo pelo qual um conjunto de dados é colocado em uma ordem
crescente ou decrescente.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881655926&cod_hist_prova=194384735&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881655926&cod_hist_prova=194384735&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881655926&cod_hist_prova=194384735&pag_voltar=otacka
Consiste em adicionar um valor no vetor, alterando a ordem existente e
ajustando o total de elementos.
Consiste em adicionar um valor no vetor, mantendo a ordem existente e
ajustando o total de elementos.
Consiste em fazer uma busca em um vetor já ordenado, dividindo o espaço
de busca ao meio e verificando se o dado está no meio ou, antes do meio ou
depois do meio.
Respondido em 19/05/2020 21:44:25
Explicação:
Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando
o total de elementos.
Só pode ocorrer, no entanto, se a lista não estiver cheia.
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;
};
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 ;
vet[10]=aluno.5.7;
aluno.vet[10]=5.7;
vet[10].nota=5.7;
aluno.vet[10].nota=5.7;
Respondido em 19/05/2020 21:44:33
4a 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 media 6.0 para o
quarto elemento deste vetor.
vet[3].media=6.0;
aluno[3].10=6.0;
aluno[10]=6.0;
aluno[3].media=6.0;
vet[3].aluno=6.0;
Respondido em 19/05/2020 21:44:38
5a Questão
Em C++, quando uma variável é declarada como uma struct, o acesso para
atribuição e leitura dos membros (campos) deste registro se dá pelo operador :
-> (seta).
& (e comercial ou eitza).
∙ (ponto).
, (vírgula).
* (asterisco).
Respondido em 19/05/2020 21:45:23
Explicação:
Por definição, o operador que permite acessar os campos de uma variável struct é
o ponto (.).
6a Questão
Marque a opção correta, considerando
struct Livro {
int codigo;
float preco;
} liv;
Livro.codigo = 12345;
Livro.liv.codigo = 12345;
liv.preco = 30.70;
liv->preco = 30.70;
Livro->liv.codigo = 12345;
Respondido em 19/05/2020 21:44:52
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 elementospodem 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;
vet[10].nota=5.7;
vet[10].aluno.nota=5.7 ;
aluno.vet[10].nota=5.7;
vet[10]=aluno.5.7;
Respondido em 19/05/2020 21:45:14
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.
int ordena(float v[], float valor, int n){
for (int i = 0; i < n; i++)
if (v[i] == valor)
return i;
return -1;
}
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) {
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;
}
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;
}
}
}
}
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;
}
Respondido em 19/05/2020 21:45:28
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!
1a Questão
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
11
10
Respondido em 19/05/2020 21:46:31
Explicação:
Como a busca binária sai continuamente dividindo o conjunto de dados ao meio
(em duas partes), então vamos fatorar e organizar o resultado como potência de
base 2.
Fatorando 2048 temos 2 11
Portanto, a resposta é 11.
2a Questão
Sobre o funcionamento da busca binária, é correto afirmar que dividindo seu
vetor em duas metades.
Se o item for menor que o item que está na metade do vetor, procure na
segunda metade, ou seja, a da direita.
Se o item for igual ao item que está na metade do vetor, o item não foi
encontrado.
Se o item for igual ao item que está na metade do vetor, o item foi
encontrado.
Se o item for maior que o item que está na metade do vetor procure na
primeira metade, ou seja, a da direita.
Se o item for menor que o item que está na metade do vetor, o item foi
encontrado.
Respondido em 19/05/2020 21:46:10
Explicação:
Neste tipo de busca, o vetor deve estar ordenado.
Divide-se o conjunto de dados ao meio e procura-se no meio do vetor. Se achou,
retorna a posição do dado do meio. SE não achou, verifica-se se o valor
procurado vem antes do valor do meio. Se for verdade, redefine-se o fim do
vetor, voltando a realizar a busca à esquerda do meio. Se o valor procurado vier
depois do valor do meio do vetor, então redefine-se o início e segue-se para a
busca na parte à direita do meio do vetor.
Gabarito
Coment.
3a 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 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:
binária.
linear.
por comparação.
por contagem.
randômica.
Respondido em 19/05/2020 21:45:57
Gabarito
Coment.
4a Questão
Sabendo-se que o método de seleção também é um método de ordenação que
baseia seu algoritmo em trocas entre os elementos de um vetor, se submetermos a
sequencia de inteiros armazenada em um vetor inicialmente na seguinte ordem :
13, 23, 3, 8, 1. Pode-se dizer que quando o menor elemento do vetor alcançar sua
posição final, a ordenação apresentada no vetor é:
1,23,13,8,3
1,13,23,8,3
1,8,3,23,13
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881665946&cod_hist_prova=194385274&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881665946&cod_hist_prova=194385274&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881665946&cod_hist_prova=194385274&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881665946&cod_hist_prova=194385274&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881665946&cod_hist_prova=194385274&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881665946&cod_hist_prova=194385274&pag_voltar=otacka
1,23,3,8,13
1,3,23,8,13
Respondido em 19/05/2020 21:45:43
Gabarito
Coment.
5a Questão
Entre os diversos algoritmos de pesquisa existentes, certamente os mais famosos
são os da pesquisa sequencial e o da pesquisa binária. A busca ou pesquisa
sequencial pode ser aplicada em vetores independente destes estarem ordenados,
entretanto a busca binária só se aplica em vetores ordenados. Seja o vetor A=
{10,35,41,55,69,70,98}, suponha que o número 70 foi pesquisado pelo algoritmo
da busca sequencial e também pelo algoritmo da busca binária, ambos algoritmos
realizam testes nos elementos do vetor até achar o que procuram ou definirem que
o elemento não se encontra no vetor. Sendo assim marque a alternativa que
expressa o número de testes realizados pela busca sequencial e o número de testes
realizados pela busca binária, respectivamente, até encontrarem o 70.
7 e 1
6 e 1
5 e 5
6 e 4
6 e 2
Respondido em 19/05/2020 21:45:586a Questão
Existem vários tipos de algoritmos para realizar a ordenação dos elementos, onde
um algoritmo de ordenação deve rearranjar o vetor de forma a estabelecer uma
ordem entre os elementos. Marque a alternativa correta que cita o algoritmo cuja
descrição é: "considera cada elemento uma vez inserindo-o em seu lugar correto
entre os elementos que já estão em ordem". E o seu passo a passo pode ser
descrito como: "o elemento é inserido entre os ordenados movendo-se os
elementos maiores que ele uma posição para a direita e posteriormente inserindo-
o na posição vaga".
Inserção
MergeSort
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881665946&cod_hist_prova=194385274&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881665946&cod_hist_prova=194385274&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881665946&cod_hist_prova=194385274&pag_voltar=otacka
Seleção
QuickSort
Bolha
Respondido em 19/05/2020 21:46:12
Gabarito
Coment.
7a Questão
Marque a afirmativa correta para a "Ordenação em Listas Lineares Sequenciais".
Consiste em adicionar um valor no vetor, alterando a ordem existente e
ajustando o total de elementos.
Consiste em fazer uma busca em um vetor já ordenado, dividindo o espaço
de busca ao meio e verificando se o dado está no meio ou, antes do meio ou
depois do meio.
Consiste em adicionar um valor no vetor, mantendo a ordem existente e
ajustando o total de elementos.
Consiste em fazer uma busca em um vetor desordenado, dividindo o espaço
de busca ao meio e verificando se o dado está no meio ou, antes do meio ou
depois do meio.
É o processo pelo qual um conjunto de dados é colocado em uma ordem
crescente ou decrescente.
Respondido em 19/05/2020 21:46:06
Gabarito
Coment.
8a Questão
Marque a afirmativa correta para a "inserção incremental".
É um tipo de ordenação por intercalação
Os pivôs são escolhidos aleatoriamente.
A técnica é boa quando os dados ficam uniformemente distribuídos entre os
seus compartimentos.
Consiste em adicionar um valor no vetor, mantendo a ordem existente e
ajustando o total de elementos.
É um tipo de sequenciação por intercalação.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881665946&cod_hist_prova=194385274&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881665946&cod_hist_prova=194385274&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881665946&cod_hist_prova=194385274&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881665946&cod_hist_prova=194385274&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881665946&cod_hist_prova=194385274&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881665946&cod_hist_prova=194385274&pag_voltar=otacka
1a Questão
Este vetor foi ordenado pelo método:
Ordenação por seleção (selection sort).
Ordenação por inserção (insertion sort).
Quicksort.
Método da bolha (bubble sort).
Mergesort.
Respondido em 19/05/2020 21:49:44
Explicação:
O bubblesort trabalha comparando e trocando, se preciso, duplas de dados
vizinhos. Portanto, pelo comportamento na sequÊncia descrita temos o método da
bolha ou bubblesort.
2a Questão
if(vet[j] == vet[j-1] )
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
if(vet[j-1] < vet[j] )
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
if(vet[j] < vet[j-1] )
{
aux=vet[j];
vet[j]< vet[j-1];
vet[j-1]=aux;
}
if(vet[j] < vet[j-1] )
{
aux=vet[j];
vet[j-1]= vet[j];
vet[j-1]=aux;
}
if(vet[j-1] > vet[j] )
{
aux=vet[j];
vet[j]= vet[j-1];
vet[j-1]=aux;
}
Respondido em 19/05/2020 21:49:50
3a 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
Binária
Bolha
Hash
Inserção
Respondido em 19/05/2020 21:49:56
Gabarito
Coment.
4a 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 = 0
1
-2
-1
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881703731&cod_hist_prova=194386918&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881703731&cod_hist_prova=194386918&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881703731&cod_hist_prova=194386918&pag_voltar=otacka
0
2
Respondido em 19/05/2020 21:50:04
Explicação:
A busca pode retornar o índice do elemento encontrado ou pode retornar -1, caso
o elemento e não seja encontrado. Vemos que o valor de e é encontrado. Logo, a
função retornará a posição do valor e = 0 no vetor. No caso, o elemento zero está
na posição 0.
Resposta : 0
5a Questão
Existem vários algoritmos de busca em estruturas de dados, um destes realiza a
busca em vetores, e requer acesso aleatório aos elementos desta estrutura e parte
do pressuposto de que os dados do vetor estejam ordenados e utiliza a técnica de
divisão e conquista comparando o elemento desejado com o elemento do meio do
vetor. Esta técnica ainda verifica se o elemento do meio do vetor for o desejado, a
busca termina. Caso contrário, se o elemento do meio vier antes do elemento
buscado, então a busca continua na metade posterior do vetor. E se o elemento do
meio vier depois da chave, a busca continua na metade anterior do vetor. O
algoritmo que utiliza esta metodologia é:
Seleção
Pesquisa binária
Inserção
Bolha
Pesquisa sequencial
Respondido em 19/05/2020 21:50:30
Gabarito
Coment.
6a Questão
Os algoritmos de busca são muito utilizados em estrutura de dados. Sendo assim,
o algoritmo que realiza a busca em vetores e que exige acesso aleatório aos
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881703731&cod_hist_prova=194386918&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881703731&cod_hist_prova=194386918&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881703731&cod_hist_prova=194386918&pag_voltar=otacka
elementos do mesmo e que parte do pressuposto de que o vetor está ordenado e
realiza sucessivas divisões do espaço de busca comparando o elemento que se
deseja com o elemento do meio do vetor, é chamado de:
Pesquisa binária
Pesquisa de seleção
Tabela Hash
Pesquisa sequêncial
Pesquisa ordenada
Respondido em 19/05/2020 21:50:10
Explicação:
O enunciado descrevea busca binária.
A busca sequencial trabalha sequencialmente testando elemento a elemento.
Pesquisa de seleção ou ordenada não foram abordadas.
Tabela hash trabalha com função hash e não se encaixa na descrição feita.
Gabarito
Coment.
7a Questão
Qual a importância de se entender a "ordenação" de dados ?
A ordenação é a base na qual, muitos programas são construídos.
Entendendo a ordenação, tem-se conhecimento para manter outros
problemas.
A ordenação é a base na qual, muitos sistemas são construídos. Entendendo
a ordenação, tem-se conhecimento para manter outros problemas.
A ordenação é a base na qual, muitos algoritmos são construídos.
Entendendo a ordenação, tem-se conhecimento para manter outros
problemas.
A ordenação é a base na qual, muitos sistemas são construídos. Entendendo
a ordenação, tem-se conhecimento para resolver outros problemas.
A ordenação é a base na qual, muitos algoritmos são construídos.
Entendendo a ordenação, tem-se conhecimento para resolver outros
problemas.
Respondido em 19/05/2020 21:50:16
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881703731&cod_hist_prova=194386918&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881703731&cod_hist_prova=194386918&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881703731&cod_hist_prova=194386918&pag_voltar=otacka
Gabarito
Coment.
8a Questão
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 indexada
pesquisa de cadeias
pesquisa cadeias indexada
pesquisa sequencial
pesquisa binária
1a Questão
Os algoritmos de busca são muito utilizados em estrutura de dados. Sendo assim,
o algoritmo que realiza a busca em vetores e que exige acesso aleatório aos
elementos do mesmo e que parte do pressuposto de que o vetor está ordenado e
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881703731&cod_hist_prova=194386918&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881703731&cod_hist_prova=194386918&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881703731&cod_hist_prova=194386918&pag_voltar=otacka
realiza sucessivas divisões do espaço de busca comparando o elemento que se
deseja com o elemento do meio do vetor, é chamado de:
Pesquisa binária
Tabela Hash
Pesquisa de seleção
Pesquisa ordenada
Pesquisa sequêncial
Respondido em 19/05/2020 22:01:52
Explicação:
O enunciado descreve a busca binária.
A busca sequencial trabalha sequencialmente testando elemento a elemento.
Pesquisa de seleção ou ordenada não foram abordadas.
Tabela hash trabalha com função hash e não se encaixa na descrição feita.
Gabarito
Coment.
2a Questão
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;
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881781082&cod_hist_prova=194391275&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881781082&cod_hist_prova=194391275&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881781082&cod_hist_prova=194391275&pag_voltar=otacka
if (valor < v[meio]) fim = meio -1;
else ini = meio+1;
}
return -1;
}
pesquisa de cadeias
pesquisa binária
pesquisa indexada
pesquisa sequencial
pesquisa cadeias indexada
Respondido em 19/05/2020 22:01:59
Gabarito
Coment.
3a Questão
Qual a importância de se entender a "ordenação" de dados ?
A ordenação é a base na qual, muitos sistemas são construídos. Entendendo
a ordenação, tem-se conhecimento para resolver outros problemas.
A ordenação é a base na qual, muitos sistemas são construídos. Entendendo
a ordenação, tem-se conhecimento para manter outros problemas.
A ordenação é a base na qual, muitos algoritmos são construídos.
Entendendo a ordenação, tem-se conhecimento para manter outros
problemas.
A ordenação é a base na qual, muitos programas são construídos.
Entendendo a ordenação, tem-se conhecimento para manter outros
problemas.
A ordenação é a base na qual, muitos algoritmos são construídos.
Entendendo a ordenação, tem-se conhecimento para resolver outros
problemas.
Respondido em 19/05/2020 22:02:04
Gabarito
Coment.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881781082&cod_hist_prova=194391275&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881781082&cod_hist_prova=194391275&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881781082&cod_hist_prova=194391275&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881781082&cod_hist_prova=194391275&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881781082&cod_hist_prova=194391275&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881781082&cod_hist_prova=194391275&pag_voltar=otacka
4a Questão
Existem vários algoritmos de busca em estruturas de dados, um destes realiza a
busca em vetores, e requer acesso aleatório aos elementos desta estrutura e parte
do pressuposto de que os dados do vetor estejam ordenados e utiliza a técnica de
divisão e conquista comparando o elemento desejado com o elemento do meio do
vetor. Esta técnica ainda verifica se o elemento do meio do vetor for o desejado, a
busca termina. Caso contrário, se o elemento do meio vier antes do elemento
buscado, então a busca continua na metade posterior do vetor. E se o elemento do
meio vier depois da chave, a busca continua na metade anterior do vetor. O
algoritmo que utiliza esta metodologia é:
Inserção
Seleção
Bolha
Pesquisa sequencial
Pesquisa binária
Respondido em 19/05/2020 22:02:07
Gabarito
Coment.
5a 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 = 0
1
-1
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881781082&cod_hist_prova=194391275&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881781082&cod_hist_prova=194391275&pag_voltar=otackahttp://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881781082&cod_hist_prova=194391275&pag_voltar=otacka
-2
2
0
Respondido em 19/05/2020 22:02:30
Explicação:
A busca pode retornar o índice do elemento encontrado ou pode retornar -1, caso
o elemento e não seja encontrado. Vemos que o valor de e é encontrado. Logo, a
função retornará a posição do valor e = 0 no vetor. No caso, o elemento zero está
na posição 0.
Resposta : 0
6a Questão
Este vetor foi ordenado pelo método:
Quicksort.
Ordenação por seleção (selection sort).
Método da bolha (bubble sort).
Ordenação por inserção (insertion sort).
Mergesort.
Respondido em 19/05/2020 22:02:19
Explicação:
O bubblesort trabalha comparando e trocando, se preciso, duplas de dados
vizinhos. Portanto, pelo comportamento na sequÊncia descrita temos o método da
bolha ou bubblesort.
7a Questão
Os métodos de ordenação são muito utilizados para facilitar a recuperação
posterior de itens ordenados. Existem vários métodos de ordenação, por esse
motivo, assinale corretamente a alternativa que mostra o nome do método que
utiliza a estratégia de ordenação por trocas de vizinhos e é considerado o método
mais simples.
Hash
Inserção
Binária
Seleção
Bolha
Respondido em 19/05/2020 22:02:42
Gabarito
Coment.
8a Questão
Analisando o trecho de código a seguir:
inicio=0;
fim= tamanho - 1;
meio=(inicio+fim)/2;
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881781082&cod_hist_prova=194391275&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881781082&cod_hist_prova=194391275&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881781082&cod_hist_prova=194391275&pag_voltar=otacka
while(procura != nomeVetor[meio] && inicio != fim)
{
if(procura > nomeVetor[meio])
inicio=meio+1;
else
fim=meio;
meio=(inicio+fim)/2;
}
if(nomeVetor[meio]==procura)
cout<<"\n....: "< < outroVetor[meio]<<endl;
else
cout<<"\nDado nao encontrado\n";</endl;
Pode-se afirmar que:
trata-se da implementação do algortimo de ordenação bolha.
trata-se da implementação do algortimo de busca sequencial
trata-se da implementação do algortimo de busca binária.
trata-se da implementação do algortimo de ordenação por seleção.
trata-se da implementação do algortimo de ordenação por inserção.
1a 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.
Lista Sequencial
Pilha Encadeada
Fila Sequencial
Lista Encadeada
Pilha Sequencial
Respondido em 19/05/2020 21:51:00
Gabarito
Coment.
2a Questão
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881711284&cod_hist_prova=194387286&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881711284&cod_hist_prova=194387286&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881711284&cod_hist_prova=194387286&pag_voltar=otacka
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[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.matricula[i] << " " << L.titulo[i] << 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 << " " << L.titulo << endl;
Respondido em 19/05/2020 21:51:03
Explicação:
Como L é um vetor de n elementos do tipo professor. Então, para percorrer o
vetor de índice i temos que fazer L[i] seguido do ponto seguido do campo, que
pode ser matricula ou titulo.
Assiim, a opção correta é
for (int i = 0; i < n; i++)
cout << L[i].matricula << " " << L[i].titulo << endl;
3a Questão
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ão corretas apenas as afirmativas I e III.
Está correta apenas a afirmativa II.
Está correta apenas a afirmativa I.
Estão corretas apenas as afirmativas I e II.
Nenhuma afirmação está correta.
Respondido em 19/05/2020 21:51:13
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.
4a 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 :
Inserção
Busca
Inicialização
Ordenação por inserção
Substituição
Respondido em 19/05/2020 21:50:51
Gabarito
Coment.
5a Questão
As estruturas de dados em programação são muito utilizadas para tornar o acesso
aos dados mais eficiente e organizado. A estrutura de dados considerada mais
simples e tem como característica apresentar apenas uma dimensão é:
Vetor
Matriz
Variável
Registro
Função
Respondido em 19/05/2020 21:51:06
Gabarito
Coment.
6a Questão
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881711284&cod_hist_prova=194387286&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881711284&cod_hist_prova=194387286&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881711284&cod_hist_prova=194387286&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881711284&cod_hist_prova=194387286&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881711284&cod_hist_prova=194387286&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881711284&cod_hist_prova=194387286&pag_voltar=otacka
São métodos ou algoritmos conhecidos de ordenação de dadospor troca:
hashing e bubble sort.
ordenação shell e hashing.
busca por ordenação e ordenação shell.
quicksort e hashing.
bubble sort e quicksort.
Respondido em 19/05/2020 21:51:08
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.
7a 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
Respondido em 19/05/2020 21:50:57
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
8a Questão
for (int i =
0; i < n;
i++)
cout <<
L[i].matric
ula << " "
<<
L[i].nome[
30] <<
endl;
for (int i =
0; i < n;
i++)
cout <<
L[i].matric
ula << " "
<<
L[i].nome
<< 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.matricula
[i] << " "
<<
L.nome[i]
<< endl;
1a Questão
São métodos ou algoritmos conhecidos de ordenação de dados por troca:
bubble sort e quicksort.
ordenação shell e hashing.
hashing e bubble sort.
quicksort e hashing.
busca por ordenação e ordenação shell.
Respondido em 19/05/2020 21:51:32
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.
2a 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, IV
I, II
I, III, IV
I, II, III, IV
I, II, III
Respondido em 19/05/2020 21:51:26
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
3a Questão
for (int i = 0; i < n; i++)
cout << L.matricula << " " << L.nome << endl;
for (int i = 0; i < n; i++)
cout << L[i].matricula << " " << L[i].nome << endl;
for (int i = 0; i < n; i++)
cout << L.matricula[i] << " " << L.nome[i] << endl;
for (int i = 0; i < n; i++)
cout << L[i] << endl;
for (int i = 0; i < n; i++)
cout << L[i].matricula << " " << L[i].nome[30] << endl;
Respondido em 19/05/2020 21:51:38
Gabarito
Coment.
4a Questão
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.matricula[i] << " " << L.titulo[i] << endl;
for (int i = 0; i < n; i++)
cout << L[i].matricula << " " << L[i].titulo << endl;
Respondido em 19/05/2020 21:51:46
Explicação:Como L é um vetor de n elementos do tipo professor. Então, para percorrer o
vetor de índice i temos que fazer L[i] seguido do ponto seguido do campo, que
pode ser matricula ou titulo.
Assiim, a opção correta é
for (int i = 0; i < n; i++)
cout << L[i].matricula << " " << L[i].titulo << endl;
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881717973&cod_hist_prova=194387549&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881717973&cod_hist_prova=194387549&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881717973&cod_hist_prova=194387549&pag_voltar=otacka
5a Questão
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 I.
Estão corretas apenas as afirmativas I e III.
Está correta apenas a afirmativa II.
Nenhuma afirmação está correta.
Estão corretas apenas as afirmativas I e II.
Respondido em 19/05/2020 21:51:53
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.
6a 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
Respondido em 19/05/2020 21:52:15
Gabarito
Coment.
7a Questão
As estruturas de dados em programação são muito utilizadas para tornar o acesso
aos dados mais eficiente e organizado. A estrutura de dados considerada mais
simples e tem como característica apresentar apenas uma dimensão é:
Matriz
Variável
Função
Vetor
Registro
Respondido em 19/05/2020 21:52:02
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881717973&cod_hist_prova=194387549&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881717973&cod_hist_prova=194387549&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881717973&cod_hist_prova=194387549&pag_voltar=otacka
Gabarito
Coment.
8a 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.
Pilha Encadeada
Lista Sequencial
Pilha Sequencial
Fila Sequencial
Lista Encadeada
1a 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 :
Inserção
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881717973&cod_hist_prova=194387549&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881717973&cod_hist_prova=194387549&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881717973&cod_hist_prova=194387549&pag_voltar=otacka
Inicialização
Busca
Substituição
Ordenação por inserção
Respondido em 19/05/2020 22:04:56
Gabarito
Coment.
2a Questão
As estruturas de dados em programação são muito utilizadas para tornar o acesso
aos dados mais eficiente e organizado. A estrutura de dados considerada mais
simples e tem como característica apresentar apenas uma dimensão é:
Função
Variável
Vetor
Registro
Matriz
Respondido em 19/05/2020 22:04:58
Gabarito
Coment.
3a Questão
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ão corretas apenas as afirmativas I e III.
Está correta apenas a afirmativa I.
Está correta apenas a afirmativa II.
Estão corretas apenas as afirmativas I e II.
Nenhuma afirmação está correta.
Respondido em 19/05/2020 22:04:58
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881801894&cod_hist_prova=194392271&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881801894&cod_hist_prova=194392271&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881801894&cod_hist_prova=194392271&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881801894&cod_hist_prova=194392271&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881801894&cod_hist_prova=194392271&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881801894&cod_hist_prova=194392271&pag_voltar=otacka
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.
4a Questão
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[i].matricula << " " << L[i].titulo << endl;
for (int i = 0; i < n; i++)
cout << L[i] << endl;
for (int i = 0; i < n; i++)
cout << L.matricula[i] << " " << L.titulo[i] << endl;for (int i = 0; i < n; i++)
cout << L.matricula << " " << L.titulo << endl;
for (int i = 0; i < n; i++)
cout << L[i].matricula << " " << L[i].titulo[30] << endl;
Respondido em 19/05/2020 22:05:19
Explicação:
Como L é um vetor de n elementos do tipo professor. Então, para percorrer o
vetor de índice i temos que fazer L[i] seguido do ponto seguido do campo, que
pode ser matricula ou titulo.
Assiim, a opção correta é
for (int i = 0; i < n; i++)
cout << L[i].matricula << " " << L[i].titulo << endl;
5a 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.
Pilha Sequencial
Pilha Encadeada
Lista Encadeada
Fila Sequencial
Lista Sequencial
Respondido em 19/05/2020 22:05:28
Gabarito
Coment.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881801894&cod_hist_prova=194392271&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881801894&cod_hist_prova=194392271&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881801894&cod_hist_prova=194392271&pag_voltar=otacka
6a Questão
São métodos ou algoritmos conhecidos de ordenação de dados por troca:
busca por ordenação e ordenação shell.
hashing e bubble sort.
quicksort e hashing.
ordenação shell e hashing.
bubble sort e quicksort.
Respondido em 19/05/2020 22:05:10
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.
7a Questão
for (int i = 0; i < n; i++)
cout << L[i].matricula << " " << L[i].nome[30] << endl;
for (int i = 0; i < n; i++)
cout << L.matricula << " " << L.nome << endl;
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[i].matricula << " " << L[i].nome << endl;
Respondido em 19/05/2020 22:05:15
Gabarito
Coment.
8a 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
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881801894&cod_hist_prova=194392271&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881801894&cod_hist_prova=194392271&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881801894&cod_hist_prova=194392271&pag_voltar=otacka
6
3
0
-1
4
Respondido em 19/05/2020 22:05:22
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; }
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.
1a Questão
Para uma aplicação em que deseja-se recuperar a ordem reversa de
armazenamento dos dados em um vetor, a estrutura de dados mais apropriada a
ser utilizada na implementação da aplicação é:
Grafo
Fila
Árvore
Pilha
Lista
Respondido em 19/05/2020 21:52:23
Explicação:
Pilha é uma estrutura de dados linear que segue a lógica LIFO, em que o último a
entrar será o primeiro a sair. Portanto, trabalha com a ordem reversa.
Fila : segue a lógica FIFO. Trabalha na ordem direta.
Lista : insere-se e retira-se de qualquer posição.
Árvore e grafo : estrutura de dados não lineares.
2a Questão
As estruturas de dados devem ser especificadas de modo que
estas auxiliem as aplicações em sua principal tarefa ou
funcionalidade. Sendo assim, pode-se desenvolver uma
aplicação capaz de fazer a conversão de números da base 10,
para a base binária, octal ou hexadecimal a partir de um
algoritmo de divisões sucessivas. Este algoritmo baseia na
divisão de um número decimal pela base que se deseja a
transformação, armazenando o resto da divisão em uma
estrutura de dados, efetuando nova divisão no resultado obtido
da divisão prévia, novamente armazenando o resto desta
operação na estrutura de dados e assim por diante até que o
resultado da divisão seja zero. Neste momento, a estrutura
possui exatamente, na ordem reversa, os algarismos
correspondentes ao número convertido para a nova base.
Analisando esta estratégia poder-se-ia dizer que a estrutura de
dados mais propícia para tal tarefa é :
Fila
Grafo
Pilha
Árvore
Lista
Respondido em 19/05/2020 21:52:29
Gabarito
Coment.
3a Questão
Respeitando as ordens de inserção e de retirada dos dados, uma estrutura de:
pilha é também denominada LIFO ou FILO.
fila é também denominada FIFO ou LIFO.
fila é também denominada LIFO ou LILO.
pilha é também denominada FIFO ou FILO.
fila é também denominada FIFO ou FILO.
Respondido em 19/05/2020 21:52:50
Gabarito
Coment.
4a Questão
Em termos da estrutura de dados do tipo PILHA, a sequência de ações
empilha(10), empilha(3), empilha(5), empilha(8), desempilha(), desempilha(),
empilha(20), promoveria a configuração da estrutura a partir do topo :
20 10 3
10 3 5 8
20 3 10
5 8 20
20 3 5 8
Respondido em 19/05/2020 21:52:54
Explicação:
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881724619&cod_hist_prova=194387900&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881724619&cod_hist_prova=194387900&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881724619&cod_hist_prova=194387900&pag_voltar=otackahttp://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881724619&cod_hist_prova=194387900&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881724619&cod_hist_prova=194387900&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881724619&cod_hist_prova=194387900&pag_voltar=otacka
Ao empilharmos 10, 3, 5 e 8 temos a seguinte sequência 10 3 5 8, onde 8 está no
topo da pilha e 10 foi o primeiro valor empilhado.
Ao ser executado desempilha(), o valor 8 é retirado da pilha, ficando o valor 5 no
topo da pilha.
Ao ser executado mais um desempilha(), o valor 5 é retirado da pilha, ficando o 3
no topo da pilha.
Depois, a ser executado empilha(20), a pilha fica com a seguinte configuração :
10 3 20, onde 20 está no topo da pilha.
Para dar a sequência a partir do topo para baixo : 20 3 10
5a 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 ?
fila
grafo
árvore
lista
pilha
Respondido em 19/05/2020 21:53:04
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.
6a Questão
As pilhas sequenciais são estruturas que guardam a ordem reversa dos dados
nelas armazenados, e isto em muitas ocasiões é muito vantajoso. A operação
usada para inserir um elemento X numa pilha é conhecida na literatura como
PUSH (X). Para remover um elemento de uma pilha a operação é o POP( ).
Assim estas duas funções devem implentar o algoritmo LIFO (Last In - First
Out ) ou o último a entrar é o primeiro a sair. Sendo assim se aplicarmos as
seguintes operações em uma PILHA vazia:
PUSH(10),PUSH(5),POP(),PUSH(7),POP(),PUSH(2),POP(),POP( ).
Quais valores restarão na pilha?
Nenhum, a pilha estará vazia.
Apenas o 10
10 e 2
7 e 2
Apenas o 2
Respondido em 19/05/2020 21:52:53
Explicação:
Empilhando e Desempilhando
PUSH(10),PUSH(5),POP(),PUSH(7),POP(),PUSH(2),POP(),POP( ).
10 PUSH(10)
5 10 PUSH(5), PUSH(10)
10 POP() PUSH(10)
7 10 PUSH(7) PUSH(10)
10 POP() PUSH(10)
2 10 PUSH(11)PUSH(10)
10 POP() PUSH(10)
POP() VAZIA Resposta CORRETA
Gabarito
Coment.
7a Questão
Um dos conceitos muito úteis na ciência da computação é a estrutura de dados
chamada pilha. Uma pilha é um conjunto________ de itens, no qual novos itens
podem ser inseridos no(a) ________ e itens podem ser retirados do(a)________
da pilha, por meio das operações________ e _________, respectivamente.
Assinale a alternativa que completa corretamente as lacunas.
desordenado - base - topo - down - up
ordenado - final - início - up - down
ordenado - topo - topo - pop ou desempilhar - push ou empilhar
ordenado - topo - topo - empilhar ou push - desempilhar ou pop
desordenado - topo - base - push ou empilhar - pop ou desempilhar
Respondido em 19/05/2020 21:52:59
Explicação:
Por definição, pilha é uma estrutura de dados ordenada em que as inserções e
remoções seguem a lógica LIFO, em que o útimo a entrar na pilha será o primeiro
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881724619&cod_hist_prova=194387900&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881724619&cod_hist_prova=194387900&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881724619&cod_hist_prova=194387900&pag_voltar=otacka
a sair da mesma. Insere-se no topo (empilhar ou push) e retira-se do topo
(desempilhar ou pop) .
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 Encadeada
Lista Circular
Pilha
Vetor
Fila
Respondido em 19/05/2020 21:53:23
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
Na estrutura de dados tipo pilha, há duas operações básicas para empilhamento e
desempilhamento. Essas operações são conhecidas como:
Base e Topo;
PULL e POP;
HEAP e POP;
PUSH e PULL;
PUSH e POP.
Respondido em 19/05/2020 21:54:09
Gabarito
Coment.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881731391&cod_hist_prova=194388279&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881731391&cod_hist_prova=194388279&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881731391&cod_hist_prova=194388279&pag_voltar=otacka
2a Questão
Sobre as pilhas, marque a alternativa correta:
Pilhas são estruturas de dados do tipo FIFO e permitem que os dados sejam
manipulados diretamente no meio da estrutura.
A característica principal que define uma Pilha diz respeito às operações de
inserção e remoção, que devem ser realizadas exclusivamente na mesma
extremidade.
Pilhas são menos restritivas do que Listas, pois esta última impõe mais
restrições às operações de inserção/remoção do que as primeiras.
A operação de desempilhar um item de uma pilha e logo em seguida
empilha-lo em outra pilha mantem a mesma ordem dos dados da primeira
pilha na segunda pilha.
Pilhas não podem ser implementadas usando vetores, pois não será
possível reproduzir a inserção e remoção pela mesma extremidade.
Respondido em 19/05/2020 21:53:42
Explicação:
Analisando cada item.
Pilhas são estruturas de dados do tipo FIFO e permitem que
os dados sejam manipulados diretamente no meio da
estrutura.
Falso. Pilha segue a lógica LIFO e as operações de inserção e
remoção ocorrem apenas em uma extremidade, o topo da
pilha
A operação de desempilhar um item de uma pilha e logo
em seguida empilhá-lo em outra pilha mantém a mesma
ordem dos dados da primeira pilha na segunda pilha.
FAlso. Por exemplo, o elemento do topo da primeira pilha, será
o 1o. elemento empilhado na 2a. pilha.
Pilhas não podem ser implementadas usando vetores, pois
não será possível reproduzir a inserção e remoção pela
mesma extremidade.
Falso. É possível usar vetor ou lista encadeada para
implementar pilha.
Pilhas são menos restritivas do que Listas, pois esta última
impõe mais restrições às operações de inserção/remoção
do que as primeiras.
FAlso. Em uma lista podemos inserir ou retirar de qualquer
posição. Em pilha, não.
A característica principal que define uma Pilha diz respeito
às operações de inserção e remoção, que devem ser
realizadas exclusivamente na mesma extremidade.
Vedadeiro.
3a Questão
O almoxarifado de um órgão pediu ao técnico de informática que elaborasse um
sistema de custeio que, para cada saída de material, considerasse o custo do mais
recente que houvera dado entrada no almoxarifado. O técnico deve desenvolver
um programa para tratar com uma estrutura de dados do tipo?
TABLE
LIFO
ARRAY
RECORD
FIFO
Respondido em 19/05/2020 21:53:56Gabarito
Coment.
4a Questão
Um jogo de memória fornece sequências de números e o jogador deve dizer qual
a sequência inversa para cada nova sequência fornecida pelo jogo. Qual a
estrutura de dados mais adequada para modelar esse jogo ?
fila
árvore
pilha
grafo
lista
Respondido em 19/05/2020 21:53:33
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881731391&cod_hist_prova=194388279&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881731391&cod_hist_prova=194388279&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881731391&cod_hist_prova=194388279&pag_voltar=otacka
Gabarito
Coment.
5a Questão
Pilhas são estruturas de dados que se utilizam do algoritmo
LIFO, last in first out, ou melhor, o último a entrar é o primeiro a
sair. Desta forma pode-se abstrair que existe apenas um local
para a saída e a entrada de dados, ou seja o topo da pilha.
Supondo que uma pilha seja implementada por um vetor de
inteiros de tamanho 10 e que exista uma variável global
chamada topo para indexar esta posição de entrada e saída de
dados e ainda quando esta variável assume o valor -1 indica que
a pilha está vazia. Marque a opção que melhor ilustra a função
de exclusão de um dado do vetor pilha, supondo ainda que o
vetor tenha sido declarado inicialmente de forma global.
void pop(){ if(topo != -1) topo--;}
void pop(){ if(pilha != -1) pilha[topo];}
void pop(){ if(topo != -1) pilha[topo-1];}
void pop(){ if(topo != -1) topo++;}
void pop(){ if(pilha != -1) pilha[topo-1];}
Respondido em 19/05/2020 21:54:02
Gabarito
Coment.
6a Questão
Observe a função que manipula uma pilha e assuma que TAM é uma constante definida
com valor 5. Saiba que o nome da função já explícita a finalidade dela.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881731391&cod_hist_prova=194388279&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881731391&cod_hist_prova=194388279&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881731391&cod_hist_prova=194388279&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881731391&cod_hist_prova=194388279&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881731391&cod_hist_prova=194388279&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881731391&cod_hist_prova=194388279&pag_voltar=otacka
Considere a chamada da função conforme linha abaixo, sabendo-se que vet é um vetor
de tamanho 5 e que não tem nenhum valor ainda:
Analise as afirmativas abaixo que sugerem correções, ou não, na definição na função e
assinale a opção que contem as afirmativas corretas.
I Faltou & antes da variável vetor e irá acusar erro.
II A variável topo está sem tipo.
III O teste está correto porque o índice do primeiro elemento do vetor em C++ é 1,
obrigatoriamente.
IV Na linha comentada deveria estar presente um comando de atribuição que
decrementaria a variável topo.
V A linha vetor[topo]=valor; está correta.
II e V estão corretas
I e II estão corretas
I , III e V estão corretas
I, II e IV estão corretas
I e III estão corretas
Respondido em 19/05/2020 21:53:40
Gabarito
Coment.
7a Questão
A estrutura de dados que segue a lógica LIFO (Last in First Out) é denominada :
Lista duplamente encadeada
Árvore
Fila
Vetor
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881731391&cod_hist_prova=194388279&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881731391&cod_hist_prova=194388279&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881731391&cod_hist_prova=194388279&pag_voltar=otacka
Pilha
Respondido em 19/05/2020 21:54:09
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.
8a Questão
Considere dados sendo manipulados em uma pilha sequencial em que as operações
possíveis são: inserção - push(novo valor) ou remoção - pop().
Se realizarmos a seguinte sequencia de operações:
push(A),push(B),push(C),pop(),pop(),push(D),pop(),pop().
Pode-se dizer que o interior da pilha apresenta-se:
Apenas com o dado A
Com os dados A e B
Vazio
Com os dados A e D
Apenas com o dado D
Respondido em 19/05/2020 21:53:47
1a Questão
Pilha é uma estrutura de dados
Cujo acesso aos seus elementos segue a lógica LIFO.
Cujo acesso aos seus elementos segue tanto a lógica LIFO quanto a FIFO.
Que pode ser implementada somente por meio de vetores.
Cujo acesso aos seus elementos ocorre de forma aleatória.
Que pode ser implementada somente por meio de listas.
Respondido em 19/05/2020 21:54:37
Explicação:
Pilha é uma lista que segue a lógica LIFO para inserções e remoções. Pode ser
implementada com vetores ou listas encadeadas.
Fila é uma lista que segue a lógica FIFO.
Gabarito
Coment.
2a 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, II e IV estão corretas.
I, II e V estão corretas.
I e II estão corretas.
I e IV estão corretas.
Respondido em 19/05/2020 21:54:55
Gabarito
Coment.
3a Questão
No contexto de estrutura de dados, uma pilha é:
um tipo de lista linear em que as operações de inserção e remoção são
realizadas aleatoriamente.
uma lista do tipo LILO.
um tipo de lista linear em que as operações de inserção e remoção são
realizadas na extremidade denominada topo.
uma lista do tipo FIFO.
um tipo de lista linear em que as operações de inserção são realizadas em
uma extremidade e as operações de remoção são realizadas em outra
extremidade.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881737512&cod_hist_prova=194388657&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881737512&cod_hist_prova=194388657&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881737512&cod_hist_prova=194388657&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881737512&cod_hist_prova=194388657&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881737512&cod_hist_prova=194388657&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881737512&cod_hist_prova=194388657&pag_voltar=otacka
Respondido em 19/05/2020 21:54:40
Explicação:
Por definição, pilha é uma lista linear ordenada em que as inserções e remoções
seguem a lógica LIFO. As inserções e remoções ocorrem em uma só extremidade,
que podemos chamar de topo.
Gabarito
Coment.
4a Questão
Marque a opção que representa uma característica CORRETA a respeito da
estrutura de dados pilha.
Não é possível criar uma pilha utilizando vetores.
O primeiro item inserido é o primeiro a ser retirado.
O último item inserido é o primeiro item a ser retirado.
Os acessos aos itens ocorremde forma aleatória.
O último item inserido é o último item a ser retirado.
Respondido em 19/05/2020 21:54:59
Explicação:
A estrutura de dados Pilha faz uso da lógica LIFO (last-in first-out), isto é, o último
elemento a entrar é o primeiro a sair.
Essa estrutura pode ser usada com alocação estática (com vetor) e com alocação
dinâmica (listas encadeadas).
Sempre que pedir para explicar essa estrutura, não deixe de falar sobre a lógica
usada.
Gabarito
Coment.
5a Questão
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881737512&cod_hist_prova=194388657&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881737512&cod_hist_prova=194388657&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881737512&cod_hist_prova=194388657&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881737512&cod_hist_prova=194388657&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881737512&cod_hist_prova=194388657&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881737512&cod_hist_prova=194388657&pag_voltar=otacka
O que acontece quando tentamos retirar um elemento de uma pilha que já está
vazia?
Ordenação.
Remoção.
Inclusão.
Overflow.
Underflow.
Respondido em 19/05/2020 21:54:45
Explicação:
Por definição, a respota certa é underflow.
Usa-se overflow quando a pilha está cheia e tentamos inserir
Gabarito
Coment.
6a Questão
Navegadores para internet armazenam os últimos endereços visitados em
uma estrutura de dados. Cada vez que um novo site é visitado, o endereço
do site é adicionado na estrutura de endereços. Quando se aciona o retorno
("back"), o navegador permite que o usuário retorne no último site visitado e
retira o endereço do site da estrutura de dados.
Assinale a estrutura de dados mais adequada para este problema.
grafo
pilha
árvore
fila
lista
Respondido em 19/05/2020 21:54:30
Gabarito
Coment.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881737512&cod_hist_prova=194388657&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881737512&cod_hist_prova=194388657&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881737512&cod_hist_prova=194388657&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881737512&cod_hist_prova=194388657&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881737512&cod_hist_prova=194388657&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881737512&cod_hist_prova=194388657&pag_voltar=otacka
7a Questão
A estrutura de dados do tipo pilha (stack) é um tipo abstrato de dado baseada no
princípio:
De dividir para conquistar.
Da localidade de referência.
First In First Out (FIFO).
Da indiferença.
Last In First Out (LIFO).
Respondido em 19/05/2020 21:54:47
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.
8a 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 remoção, pode-se dizer que:
Os valores removidos serão A e B, nessa ordem
Nenhuma das alternativas anteriores
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
Os valores removidos serão C e D, nessa ordem
Respondido em 19/05/2020 21:54:49
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.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881737512&cod_hist_prova=194388657&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881737512&cod_hist_prova=194388657&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881737512&cod_hist_prova=194388657&pag_voltar=otacka
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.
1a 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á?
5
15
9
0
6
Respondido em 19/05/2020 21:55:18
Gabarito
Coment.
2a Questão
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881739702&cod_hist_prova=194388867&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881739702&cod_hist_prova=194388867&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881739702&cod_hist_prova=194388867&pag_voltar=otacka
Considere uma fila simples F de inteiros, do tipo Fila definido abaixo. Tal fila deverá armazenar
códigos de agentes de uma firma de espionagem, desde que haja espaço para um novo agente.
Assinale a opção que corretamente enfileira o código de um agente, sabendo que a fila F foi
inicializada de acordo com o trecho de código abaixo.
struct Fila { in t v[100], inicio, fim; } ;
Fila F;
F. inicio = 0;
F.fim = -1;
void enfileirar(Fila F, int codigo) {
if (F.fim == 100)
cout << "Não há espaço na firma para mais agentes. " << endl;
else {
F.fim++;
F.v[F.fim] = codigo;
}
}
void enfileirar(Fila &F, int codigo) {
if (F.fim == 99)
cout << "Não há espaço na firma para mais agentes. " << endl;
else
F.fim++;
F.v[F.fim] = codigo;
}
void enfileirar(Fila &F, int codigo) {
if (F.fim == 99)
cout << "Não há espaço na firma para mais agentes. " << endl;
else {
F.fim++;
F.v[F.fim] = codigo;
}
}
void enfileirar(Fila &F, int codigo) {
F.v[F.fim] = codigo;
F.fim++;
}
void enfileirar(Fila F, int codigo) {
F.fim++;
F.v[F.fim] = codigo;
}
Respondido em 19/05/2020 21:55:26
Gabarito
Coment.
3a Questão
Sobre pilhas, lista e filas, considere as afirmativas a seguir. I. As estruturas de
dados pilhas, filas e listas armazenam coleções de itens. A característica que as
distinguem é a ordem em que podem ser retirados os itens dessas coleções e a
ordem em que foram inseridos. II. Considere que os itens A, B, C, D, E foram
inseridos nessa ordem em uma fila. Necessariamente, o primeiro elemento a ser
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881739702&cod_hist_prova=194388867&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881739702&cod_hist_prova=194388867&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881739702&cod_hist_prova=194388867&pag_voltar=otacka
removido dessa fila é o elemento A. III. Considere que os itens A,B, C, D, E
foram inseridos nessa ordem em uma pilha. Necessariamente, o último elemento a
ser removido dessa pilha é o elemento E. IV. Considere que os itens A, B, C, D, E
foram inseridos nessa ordem em uma lista. Necessariamente, o primeiro elemento
a ser removido dessa lista é o elemento A.
Somente as afirmativas I e IV são corretas.
Todas as afirmativas estão corretas
Somente as afirmativas I, II e III são corretas.
Somente as afirmativas III e IV são corretas.
Somente as afirmativas I e II são corretas.
Respondido em 19/05/2020 21:55:31
Explicação:
Analisando cad afirmativa:
I. As estruturas de dados pilhas, filas e listas armazenam coleções de itens. A
característica que as distinguem é a ordem em que podem ser retirados os itens
dessas coleções e a ordem em que foram inseridos.
>>>>>Verdadeira. A pilha segue a lógica LIFO, fila segue a lógica FIFO e em
uma lista insere-se e retira-se de qualquer posição.
II. Considere que os itens A, B, C, D, E foram inseridos nessa ordem em uma fila.
Necessariamente, o primeiro elemento a ser removido dessa fila é o elemento A.
>>>>> Verdadeira. O 1o. a entrar, será o 1o. a sair.
III. Considere que os itens A, B, C, D, E foram inseridos nessa ordem em uma
pilha. Necessariamente, o último elemento a ser removido dessa pilha é o
elemento E.
>>>>> FAlso. O último a entrar foi o E, portanto, pela lógica LIFO é o primeiro
a sair.
IV. Considere que os itens A, B, C, D, E foram inseridos nessa ordem em uma
lista. Necessariamente, o primeiro elemento a ser removido dessa lista é o
elemento A.
>>>> Falso. Em uma lista insere-se em qualquer posição e retira-se de qualquer
posição.
Logo, as afirmativa I e II estão corretas.
4a Questão
IFMT - Técnico em Técnologia 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.
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?
[2-3-4-6-8-10]
[3-4-6-8-10]
[4-6-8-10-1-2]
[2-1-3-4-6-8]
[3-4-6-8-10-1]
Respondido em 19/05/2020 21:55:23
Explicação:
Dada a Fila [3-4-6-8-10], executam-se os comandos na ordem: insere(1),
insere(2), remove(). ?
Temos 3-4-6-8-10 e com a 1a. insere teremos 3-4-6-8-10 - 1
Com a segunda insere teremos 3-4-6-8-10- 1-2
E quando remover um valor, sairá o 1o. da fila. Então, a fila ficará assim : 4-6-8-
10- 1-2
5a Questão
Considere uma fila circular de tamanho 5, contendo os valores A, Z e C.
Assim, o início está na posição 0 (zero) e o fim na posição 2 (dois). Dica: O
vetor inicia na posição 0 (zero). Supondo agora que as seguintes operações
ocorrerão na lista:
1. D é inserido
2. H é inserido
3. Um elemento é deletado
4. F é inserido
5. Um elemento é deletado
Qual os valores de início e fim ao final dessas operações?
Início 4 e fim 4
Início 0 e fim 0
inicio 2 e fim 0
Nenhuma das opções
Início 1 e fim 4
Respondido em 19/05/2020 21:55:45
Explicação:
Inicialmente temos inicio em 0 e fim em 2, sendo A no início e C no fim da fila.
Ao termos D inserido ->>> A -> Z -> C -> D onde inicio é zero e fim é 3.
Ao termos H inserido ->>> A -> Z ->C -> D -> H onde inicio é zero e fim é 4
Ao ser deletado um valor, o A sai. Então Z->C -> D -> H, onde inicio é 1 e fim é
4.
Ao termos F inserido : Z->C -> D -> H -> F, onde inicio é 1 e fim é 0
Ao ser deletado um valor, o Z sai. Então C -> D -> H -> F, onde inicio é 2 e fim é
0
6a Questão
Uma fila duplamente terminada, isto é, uma estrutura linear que permite inserir e
remover de ambos os extremos é chamada de:
Boyer-Moore.
Shift-and.
Árvore.
Deque.
Autômato.
Respondido em 19/05/2020 21:55:55
Explicação:
Em ciência da computação, uma fila duplamente terminada (frequentemente
abreviada como deque, do inglês double ended queue) é um tipo de dado
abstrato que generaliza uma fila, para a qual os elementos podem ser adicionados
ou removidos da frente (cabeça) ou de trás (cauda). Também é chamada de lista
encadeada cabeça-cauda, apesar de propriamente isto se referir a
uma implementação de estrutura de dados específica.
As deques são filas duplamente ligadas, isto é, filas com algum tipo de prioridade.
Por exemplo, sistemas distribuídos sempre necessitam que algum tipo
de processamento seja mais rápido, por ser mais prioritário naquele momento,
deixando outros tipos mais lentos ou em fila de espera, por não requerem tanta
pressa. Ele pode ser entendido como uma extensão da estrutura de dados Fila.
A implementação de um deque por alocação estática ou seqüencial é feita por
meio de um arranjo de dimensão máxima predefinida e de duas variáveis inteiras
que indicam o topo e a base (head e tail, respectivamente). Da mesma forma que
ocorre com a fila, o deque deve ser implementado segundo a abordagem circular,
que confere eficiência à estrutura ao mesmo tempo em que evita o desperdício de
memória.
7a Questão
Um aluno do EAD estava estudando para a prova de Estrutura quando
viu o trecho do programa abaixo em uma apostila.
Como não estava com seu micro, começou a analisar a função
entra(...), ficando atento a alguns membros da struct.
Quando finalizou, virou a página da apostila e viu a resposta. Então,
ficou muito feliz por ter identificado a estrutura
Assinale a alternativa onde está presente a resposta correta.
Lista simplesmente encadeada
Pilha
Lista Linear
Fila
Fila Circular
Respondido em 19/05/2020 21:55:54
Gabarito
Coment.
8a Questão
Considere uma fila simples F de inteiros, do tipo Fila definido abaixo. Tal fila deverá armazenar
códigos de agentes de uma firma de espionagem, desde que haja espaço para um novo agente.
Assinale a opção que corretamente desenfileira o código de um agente, sabendo que a fila F foi
inicializada de acordo com o trecho de código abaixo.
struct Fila { in t v[100], inicio, fim; } ;
Fila F;
F. inicio = 0;
F.fim = -1;
void desenfileirar(Fila F) {
cout << "Removido o agente " << F.v[F.inicio];
F.inicio--;
}
void desenfileirar(Fila &F) {
if (F.inicio > F.fim)
cout << "Não há agentes para retirar. " << endl;
else {
cout << "Removido o agente " << F.v[F.inicio];
}
}
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881739702&cod_hist_prova=194388867&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881739702&cod_hist_prova=194388867&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881739702&cod_hist_prova=194388867&pag_voltar=otacka
void desenfileirar(Fila &F) {
if (F.inicio > F.fim)
cout << "Não há agentes para retirar. " << endl;
else {
cout << "Removido o agente " << F.v[F.inicio];
F.inicio++;
}
}
void desenfileirar(Fila &F) {
if (F.fim == -1 && F.inicio == 0)
cout << "Não há agentes para retirar. " << endl;
else {
cout << "Removido o agente " << F.v[F.inicio];
F.inicio++;
}
}
void desenfileirar(Fila F) {
if (F.inicio > F.fim)
cout << "Não há agentes para retirar. " << endl;
else {
cout << "Removido o agente " << F.v[F.inicio];
F.inicio++;
}
}
Respondido em 19/05/2020 21:55:46
1a Questão
As filas sequenciaissão estruturas de dados utilizadas em diversas
aplicações, tais como fila de processo, fila de impressão, sistemas de
senha etc. Entretanto, nas aplicações onde há muita movimentação de
dados, inserções e remoções de dados na fila, surgem espaços ociosos que
podem levar ao fenômeno chamado de esgotamento de memória. Para
sanar este problema pode-se substituir a fila sequencial por:
pilha sequencial
lista sequencial
lista circular
pilha circular
fila circular
Respondido em 19/05/2020 21:57:07
Gabarito
Coment.
2a Questão
Escolha a opção verdadeira :
Uma pilha, a depender de sua configuração, pode funcionar como uma fila
Uma estrutura de dados que segue a lógica FIFO equivale a uma estrutura
de dados que segue a lógica LIFO.
Pilhas e filas não podem ser implementadas através do uso de listas
encadeads
Em uma estrutura de dados que segue a lógica LIFO, os dados são
excluídos na ordem inversa em que foram incluídos.
Uma estrutura de dados que segue a lógica FIFO permite inclusões apenas
no topo da estrutura de dados.
Respondido em 19/05/2020 21:56:16
Explicação:
Analisando cada opção :
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881747581&cod_hist_prova=194389297&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881747581&cod_hist_prova=194389297&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881747581&cod_hist_prova=194389297&pag_voltar=otacka
Uma estrutura de dados que segue a lógica FIFO permite inclusões apenas
no topo da estrutura de dados.
Falso. Uma estrutura de dados que segue a lógica FIFO, que é a estrutura de
dados fila, permite inclusões no fim e retiradas do início.
Em uma estrutura de dados que segue a lógica LIFO, os dados são excluídos
na ordem inversa em que foram incluídos.
Verdadeiro. O último a entrar, será o 1o. a sair. Então, poderá ser o primeiro
a ser excluído da pilha.
Uma estrutura de dados que segue a lógica FIFO equivale a uma estrutura de
dados que segue a lógica LIFO.
FAlso. Pilha segue a lógica LIFO e fila segue a lógica FIFO.
Uma pilha, a depender de sua configuração, pode funcionar como uma fila
FAlso. Pilha segue a lógica LIFO e fila segue a lógica FIFO.
Pilhas e filas não podem ser implementadas através do uso de listas
encadeadas
Falso. Tais estruturas podem ser implementadas de forma sequencial e de
forma encadeada.
3a Questão
Considerando que uma fila seqüencial utiliza dois apontadores para indicar suas
posições de final e início da estrutura, supondo que a fila foi criada com os
apontadores apontando para a posição zero do vetor, qual das alternativas a
seguir pode caracterizar uma fila vazia?
Quando o apontador de posição final for igual ao início.
Quando os apontadores de final e início apontarem para zero.
Quando o apontador de final apontar para zero.
Quando o apontador de final menos um (final-1) for igual ao inicio.
Quando o apontador de início apontar para zero.
Respondido em 19/05/2020 21:56:10
Explicação:
Suponha que nossa fila mora em um vetor fila[0..N-1]. (A natureza dos
elementos do vetor é irrelevante: eles podem ser inteiros, bytes, ponteiros,
etc.) Digamos que a parte do vetor ocupada pela fila é
fila[p..u-1] .
O primeiro elemento da fila está na posição p e o último na posição u-1.
A fila está vazia se p == u e cheia se u == N.
4a Questão
A estrutura de dados conhecida pela lógica FIFO (First In First Out) é
denominada :
Fila
Árvore
Vetor
Lista circular
Pilha
Respondido em 19/05/2020 21:56:22
Explicação:
Fila é, por definição, uma lista linear ordenada em que as inserções e remoções
seguem a lógica FIFO.
5a Questão
Para organizar o acesso dos processos que demandam recursos do computador
(uso da CPU, acesso ao disco rígido e a outros dispositivos de Entrada e Saída), o
Sistema Operacional gerencia essas demandas colocando os processos
requisitantes em:
Structs
Pilhas
Árvores
Listas
Filas
Respondido em 19/05/2020 21:57:01
Explicação:
Um exemplo de aplicação de fila : fila de processos para CPU. O primeiro
processo a chegar fará uso da CPU. O mesmo para os dispostivos de I/O.
6a Questão
Ao inserirmos em uma estrutura de dados do tipo fila sequencial os seguintes
elementos: A, B, C, D, exatamente nesta ordem. E em seguida realizarmos duas
operações consecutivas de remoção na fila e imediatamente inserirmos dois
novos elementos o X e o W. Podedmos afirmar que se realizarmos uma nova
operação de remoção, o elemento que será removido desta fila sera o:
W
C
X
A
D
Respondido em 19/05/2020 21:56:41
Gabarito
Coment.
Gabarito
Coment.
Gabarito
Coment.
7a Questão
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881747581&cod_hist_prova=194389297&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881747581&cod_hist_prova=194389297&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881747581&cod_hist_prova=194389297&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881747581&cod_hist_prova=194389297&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881747581&cod_hist_prova=194389297&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881747581&cod_hist_prova=194389297&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881747581&cod_hist_prova=194389297&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881747581&cod_hist_prova=194389297&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881747581&cod_hist_prova=194389297&pag_voltar=otacka
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 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 não pode ser usado na implementação de uma fila sequencial
apenas em pilhas sequenciais.
Um vetor é uma estrutura base correta para esta implementação, já que
está imune a fenômenos como esgotamento de memória.
A estrutra sofrerá do fenômeno esgotamento de memória, mas se os dados
estiverem ordenados isto não afetará a estrutura.
A estrutura fila não sofre esgotamento de memória, isto ocorre com as
pilhas já que implementam o algoritmo LIFO.
Respondido em 19/05/2020 21:56:38
Gabarito
Coment.
8a 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 mesma sequência usando figuras geométricas reais. Qual a
estrutura de dados mais adequada para modelar esse jogo ?
lista
árvore
pilha
grafo
fila
Respondido em 19/05/2020 21:56:34
Explicação:
Fila é baseada na lógica FIFO, o primeiro a entrar será o primeiro a sair da fila.
Portanto, como as cartas serão retornadas na mesma ordem da entrada, a resposta
certa é fila.
Veja porque não podem ser as outras opções:
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881747581&cod_hist_prova=194389297&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881747581&cod_hist_prova=194389297&pag_voltar=otackahttp://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881747581&cod_hist_prova=194389297&pag_voltar=otacka
Não pode ser pilha, pois pilha retorna os valores na ordem inversa à ordem de
entrada.
Não pode ser lista porque na lista insere-se ou retira-se de qualquer posição.
Não pode ser Árvore ou Grafo pois são não lineares e o problema descrito é
linear.
1a Questão
Complete os espaços na afirmativa abaixo e assinale a alternativa que apresenta
as respostas corretas: O escalonamento .................... é do tipo.................., em que
o processo que chegar primeiro na fila de pronto é o escolhido para ser
executado.
FIFO, não-preemptivo.
SJF (Shortest-Job-First), preemptivo.
Circular, não-preemptivo.
Por prioridades, preemptivo.
LIFO, não-preemptivo.
Respondido em 19/05/2020 21:57:29
Explicação:
O algoritmo de escalonamento FIFO (First in, first out, em português: "O
primeiro a entrar é o primeiro a sair, sigla PEPS), ou FCFS(First come, first
served, em português: "O primeiro a chegar é o primeiro a ser servido") é
conhecido popularmente por Algoritmo de Fila Simples, é uma estrutura de
dados que apresenta o seguinte critério: O primeiro elemento a ser retirado é o
primeiro que tiver sido inserido, é
um algoritmo de escalonamento não preemptivo que entrega
a CPU os processos pela ordem de chegada. Ele executa o processo como um
todo do inicio ao fim não interrompendo o processo executado até ser finalizado,
então quando um novo processo chega e existe um ainda em execução ele vai
para uma fila de espera. Esta fila de espera nada mais é do que uma fila que
organiza os processos que chegam até eles serem atendidos pela CPU.
Neste escalonamento todos os processos tendem a serem atendidos (por isso
evita o fenômeno do starvation) ao menos que um processo possua um erro ou
loop infinito. O loop infinito irá parar a máquina, pois com o FIFO não terá como
dar continuidade a execução dos processos que estão aguardando na fila de
espera.
O algoritmo FIFO não garante um tempo de resposta rápido pois é extremamente
sensível a ordem de chegada de cada processo e dos antecessores (se existirem) e
se processos que tendem a demorar mais tempo chegarem primeiro o tempo
médio de espera e o turnaround acabam sendo aumentados.
2a Questão
Um órgão público adotou dois sistemas de senhas para atender os cidadãos na
ordem de chegada. O sistema I atende os não idosos. O sistema II atende os
idosos. Nessa situação:
tanto o sistema I, quanto o II, adotam o esquema LIFO de organização de
dados.
o sistema I, adota o esquema LIFO de organização de dados e o II, o
esquema FIFO.
o sistema I, adota o esquema FIFO de organização de dados e o II, o
esquema LIFO.
tanto o sistema I, quanto o II, adotam o esquema vetor de organização de
dados.
tanto o sistema I, quanto o II, adotam o esquema FIFO de organização de
dados.
Respondido em 19/05/2020 21:57:39
Explicação:
Como os dois sistemas usam a ordem de chegada, temos o uso de fila
caracterizando os 2 sistemas. Como fila segue a lógica FIFO, os 2 sistemas
seguem esta lógica FIFO.
Note que LIFO é de pilha, o que não cabe aqui. Na pilha, o último a entrar é o
primeiro a sair.
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?
STRUCT
PILHA
LISTA
PONTEIRO
CONJUNTO
Respondido em 19/05/2020 21:57:16
Explicação:
Pela estrutura apresentada verifica-se ser a de uma Pilha.
4a Questão
Analisando a figura abaixo, marque a alternativa correta que apresenta o tipo de
estrutura de dados utilizado.
Struct
Hash
Fila
Matriz
Pilha
Respondido em 19/05/2020 21:57:42
Explicação:
Na fila insere-se no fim e retira-se do início.
Gabarito
Coment.
5a 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 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ô.
Fila de documentos para xerox e fila de arquivos para impressão.
Fila de pessoas para tirar o visto e fila de pessoas para usar o caixa eletrônico.
Fila de arquivos para impressão e fila de pessoas no caixa de um supermercado.
Respondido em 19/05/2020 21:58:00
Gabarito
Coment.
6a Questão
Pode-se citar os seguintes exemplos de aplicação da estrutura fila: Fila de
arquivos para impressão:
• Atendimento de processos requisitados a um sistema operacional.
• Buffer para gravação de dados em mídia.
• O tratamento do armazenamento das teclas que estão sendo digitadas
antes da tecla enter ser pressionada.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881753116&cod_hist_prova=194389672&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881753116&cod_hist_prova=194389672&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881753116&cod_hist_prova=194389672&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881753116&cod_hist_prova=194389672&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881753116&cod_hist_prova=194389672&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881753116&cod_hist_prova=194389672&pag_voltar=otacka
Agora analise as seguintes afirmativas:
I- Uma fila guarda a ordem direta em que os elementos foram armazenados.
II- Uma fila guarda a ordem reversa em que os elementos foram armazenados.
III- O algoritmo que é implementado em uma fila é baseao no princípio: " O
último a entrar é o primeiro a sair".
IV- O algoritmo que é implementado em uma fila é baseao no princípio: " O
primeiro a entrar é o primeiro a sair".
Marque a alternativa correta:
I e III estão corretas
Apenas a IV está correta
II e Iv estão corretas
I e IV estão corretas
II e III estão corretas
Respondido em 19/05/2020 21:57:35
Gabarito
Coment.
Gabarito
Coment.
Gabarito
Coment.
7a Questão
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()
4 5 6
5 7
7 5
4 5
4 6 7
Respondido em 19/05/2020 21:57:27
8a Questão
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881753116&cod_hist_prova=194389672&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881753116&cod_hist_prova=194389672&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881753116&cod_hist_prova=194389672&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881753116&cod_hist_prova=194389672&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881753116&cod_hist_prova=194389672&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881753116&cod_hist_prova=194389672&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881753116&cod_hist_prova=194389672&pag_voltar=otackahttp://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881753116&cod_hist_prova=194389672&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881753116&cod_hist_prova=194389672&pag_voltar=otacka
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:
Matriz
Fila
Bolha
Struct
Pilha
1a Questão
O espaço necessário para a representação dos dados pode ser alocado à medida
que se torne necessário, através da alocação dinâmica. Uma estrutura armazenada
através de encadeamento apresenta seus nodos alocados em posições aleatórias
na memória, e não lado a lado. Dessa forma, existem várias vantagens no uso de
representar os dados por encadeamento. Marque a alternativa correta que
apresenta estas vantagens.
Acesso, representação, compartilhamento de memória.
Proteção de memória, transferência de dados, estruturas simples.
Transferência de dados, gerenciamento de memória e procedimentos
menos intuitivos.
Previsão de espaço físico, estruturas complexas, procedimentos menos
intuitivos.
Compartilhamento de memória, maleabilidade e facilidade para
inserção e remoção de componentes.
Respondido em 19/05/2020 21:57:59
Explicação:
FALSO . Previsão de espaço
físico, estruturas complexas,
procedimentos menos intuitivos.
FALSO
Acesso, representação,
compartilhamento de memória.
FALSO
Proteção de memória, transferência de
dados, estruturas simples.
FALSO
Transferência de dados, gerenciamento
de memória e procedimentos menos
intuitivos.
VERDADEIRO
Compartilhamento de memória,
maleabilidade e facilidade para inserção
e remoção de componentes.
Gabarito
Coment.
2a Questão
Sou uma empresária que quer crescer e por isso, tenho que aumentar
progressivamente a minha lista de clientes, sem limitar este crescimento. Assim,
à medida que novos clientes são cadastrados, posso, se necessário, contratar mais
e mais empregados. Marque a opção que especifica o tipo de lista e o tipo de
alocação de memória mais adequados para este problema.
fila encadeada e alocação dinâmica de memória
pilha dinâmica e alocação dinâmica de memória
lista encadeada e alocação dinâmica de memória
fila dinâmica e alocação dinâmica de memória
lista sequencial e alocação dinâmica de memória
Respondido em 19/05/2020 21:58:03
Gabarito
Coment.
3a Questão
Marque a afirmativa que represente uma separação.
Juntar duas listas, colocando uma lista no final de outra, obtendo, ao final,
uma só lista resultante.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881758633&cod_hist_prova=194389943&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881758633&cod_hist_prova=194389943&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881758633&cod_hist_prova=194389943&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881758633&cod_hist_prova=194389943&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881758633&cod_hist_prova=194389943&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881758633&cod_hist_prova=194389943&pag_voltar=otacka
Alterar a ordem dos dados da lista do final para o início, atualizando a
lista.
Consiste em dividir a lista em duas outras listas. A quantidade de nós que
cada lista terá, depende da necessidade.
Intercalar a ordem dos dados da lista do final para o início, atualizando a
lista.
Organizar os dados da lista em ordem crescente ou decrescente.
Respondido em 19/05/2020 21:58:12
Gabarito
Coment.
4a Questão
Qual é o resultado do código abaixo:
int a =10;
int *p = &a;
cout<< &p << endl;
O endereço da variável a será impresso
O conteúdo da variável p será impresso
O endereço da variável p será impresso
O conteúdo da variável a será impresso
Nenhuma das opções anteriores
Respondido em 19/05/2020 21:58:08
Explicação:
Analisando o trecho de código :
Linha 1 : A variável a recebeu o valor 10
Linha 2 : p é declarado como ponteiro para inteiro e recebe, na declaração, o
endereço
de a.
Linha 3 : É impresso o endereço do ponteiro p.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881758633&cod_hist_prova=194389943&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881758633&cod_hist_prova=194389943&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881758633&cod_hist_prova=194389943&pag_voltar=otacka
Opções :
>> O endereço da variável a será impresso
Explicação : Falso. O endereço de a é p ou &a.
>> O endereço da variável p será impresso
Explicação : Correto. Usou o operador & antes de p.
>> O conteúdo da variável a será impresso
Explicação : Falso. Para imprimir a temos que fazer cout << a; ou fazer cout
<< *p;
O conteúdo da variável p será impresso
Explicação : FAlso. É impresso o endereço de p, pois se usou &.
Nenhuma das opções anteriores
Explicação : FAlso. Basta ver as opções anteriores.
5a Questão
Seja uma lista encadeada cujos nodos são formados pelo seguinte tipo de
dado:
struct empregado{
long int matricula;
float salario;
empregado *proximo;
};
Suponha que o ponteiro pont tenha o endereço de um nodo da lista, o qual
se deseja atribuir um novo valor para o campo salario. Marque a alternativa
que corretamente altera o valor do campo salario para 5000.00.
salario=5000.00;
pont.empregado.salario=5000.00
pont.salario=5000.00;
pont.empregado->salario=5000.00;
pont->empregado->salario=5000.00;
Respondido em 19/05/2020 21:58:17
Explicação:
Criar a entrada:
salario=5000.00;
6a Questão
Podemos dizer que uma lista encadeada tem as seguintes características:
i) conhecida como lista ligada.
ii) seus nós são responsáveis para manter a sequência da lista.
iii) o último nó deve apontar para NULL.
Assinale a alternativa que informa as afirmativas corretas.
Somente as afirmativas i e ii estão corretas.
Todas as afirmativas estão corretas.
Somente a afirmativa i esta correta.
Somente a afirmativa iii esta correta.
Todas as afirmativas estão incorretas.
Respondido em 19/05/2020 21:58:22
Gabarito
Coment.
7a Questão
Em uma rotina em que se pretenda inserir o primeiro dado em uma estrutura
dinâmica, é correto afirmar que:
Só deve existir estrutura de repetição se ocorrer a inclusão de mais de um
dado simultaneamente
Não deve existir uma estrutura de repetição.
Existe uma instrução de repetição para percorrer a lista.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881758633&cod_hist_prova=194389943&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881758633&cod_hist_prova=194389943&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881758633&cod_hist_prova=194389943&pag_voltar=otacka
Deve existir uma estrutura de repetição somente de a lista for duplamente
encadeada.
Deve existir uma estrutura de repetição somente se a estrutura for circular.
Respondidoem 19/05/2020 21:58:37
Gabarito
Coment.
8a Questão
Assinale a alternativa correta sobre alocação de memória.
É correto afirmar que a alocação dinâmica de memória sempre leva a
programas mais rápidos.
Uma das vantagens da alocação dinâmica sobre a alocação estática é que não
é necessário fazer a liberação da memória utilizada.
Alocação estática de memória refere-se ao processo de alocar memória com o
uso de ponteiros.
A declaração de um vetor é um exemplo clássico de alocação dinâmica de
memória.
Na alocação dinâmica de memória, a memória é alocada sob demanda,
apenas quando necessário.
Respondido em 19/05/2020 21:58:49
1a Questão
Tenho uma lista não ordenada de clientes em que registro apenas a matrícula,
o nome, o endereço e o telefone de cada cliente. Como não tenho limites para
o crescimento da minha lista, como posso implementar a inserção de um novo
cliente na lista, sabendo que cada cliente é do tipo Cliente e a lista é do tipo
Lista assim definidos :
struct Cliente {
long int matricula;
string nome, endereco, tel;
};
struct Lista {
Cliente c;
struct Lista *link;
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881758633&cod_hist_prova=194389943&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881758633&cod_hist_prova=194389943&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881758633&cod_hist_prova=194389943&pag_voltar=otacka
};
Lista insereCliente(Lista *p, Cliente cl)
{
Lista novo[];
novo[0].c = cl;
novo[0].link = p;
return novo;
}
Lista * insereCliente(Lista *p) {
Lista *novo = new Lista;
Cliente cl;
novo->c = cl;
novo->link = p;
return novo;
}
Lista * insereCliente(Lista *p, Cliente cl)
{
Lista *novo = new Lista;
novo->c = cl;
novo->link = p;
return novo;
}
Lista * insereCliente(Lista *p, Cliente cl)
{
Lista *novo ;
novo->c = cl;
novo->link = p;
return novo;
}
Lista * insereCliente(Lista *p, Cliente cl)
{
Lista *novo = new Lista;
novo.c = cl;
novo.link = p;
return novo;
}
Respondido em 19/05/2020 21:59:12
Gabarito
Coment.
2a Questão
QUAL A SAÍDA DO PROGRAMA ABAIXO?
#include
main()
{
int x=5,*p;
p=&x;
cout << x - *p << " " << **&*&p + 1 << " " << *p*2+*p << " "
<< x+**&p;
system("pause");
}
0 8 16 10
1 6 15 12
0 6 15 10
0 6 15 11
0 6 16 14
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881765278&cod_hist_prova=194390315&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881765278&cod_hist_prova=194390315&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881765278&cod_hist_prova=194390315&pag_voltar=otacka
Respondido em 19/05/2020 21:59:18
3a Questão
Em uma lista linear simplesmente encadeada.
O ponteiro do "último" nó não é NULL, mas sim aponta de volta para o
"primeiro" nó da lista.
Além do campo relativo ao dado, cada nó possui dois ponteiros,
Cada nó possui um só ponteiro que referencia o próximo nó da lista.
O ponteiro do "primeiro" nó não é NULL, mas sim aponta de volta para o
"primeiro" nó da lista, formando um ciclo.
Cada ponteiro possui um só endereço que referencia o primeiro nó da lista.
Respondido em 19/05/2020 21:59:24
Gabarito
Coment.
4a Questão
Sobre listas encadeadas, é INCORRETO afirmar que:
possuem tamanho fixo;
o final da lista faz uma referência para NULL;
pilhas e filas são versões limitadas de listas encadeadas, pois as inserções
e remoções não ocorrem em qualquer parte.
são acessadas pelo primeiro nodo da lista;
a memória é alocada dinamicamente;
Respondido em 19/05/2020 21:59:28
Explicação:
Uma lista encadeada não tem tamanho fixo, pois usa-se alocação e desalocação
dinâmica de memória. As demais afirmativas estão corretas.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881765278&cod_hist_prova=194390315&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881765278&cod_hist_prova=194390315&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881765278&cod_hist_prova=194390315&pag_voltar=otacka
5a 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); }
7
3
11
-4
Nenhuma das anteriores. O programa possui um erro de sintaxe.
Respondido em 19/05/2020 21:59:16
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.
6a Questão
Seja a seguinte seqüência de instruções em um programa C++: int *pti; int i = 10;
pti = &i; Qual afirmativa é falsa?
ao se executar *pti = 20; i passará a ter o valor 20
pti armazena o endereço de i
ao se alterar o valor de i, *pti será modificado
*pti é igual a 10
pti é igual a 10
Respondido em 19/05/2020 21:59:22
Explicação:
Analisando cada opção :
pti é igual a 10
Explicação : A afirmativa está incorreta porque *pti é igual 10 e não pti é
igual a 10. Note que pti é o endereço de i. Logo, a afirmativa deve ser
marcada.
pti armazena o endereço de i
Explicação : pti é um ponteiro que recebeu o endereço (&) de i. Logo, a
afirmativa está correta e não deve ser marcada.
*pti é igual a 10
Explicação : Afirmativa correta e não deve ser marcada, visto que * é o
operador de indireção. Como pti aponta para i, logo *pti é i, que vale 10.
ao se executar *pti = 20; i passará a ter o valor 20
Explicação : Afirmativa correta e não deve ser marcada, visto que *pti acessa
a área apontada por i. Se *pti recebeu 20 significa que i recebeu 20.
ao se alterar o valor de i, *pti será modificado
Explicação : Afirmativa correta e não deve ser marcada, visto que pti
aponta para i e dessa forma, *pti é i.
7a Questão
Considere
int *ptr, *qtr, *r;
int a = 10, b = 20;
Após executar cada instrução conforme a ordem dada a seguir :
ptr = &a;
qtr = &b;
*ptr = *ptr + *qtr;
++(*qtr);
r = qtr;
qtr = ptr;
assinale a opção que mostra, correta e respectivamente, os
valores de *ptr, *qtr , *r , a e b .
30 30 21 10 20
30 21 21 10 20
30 20 0 30 21
30 20 20 10 20
30 30 21 30 21
Respondido em 19/05/2020 21:59:29
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
Duplamente Encadeada
Binária
Balanceada
Invertida
Respondido em 19/05/2020 21:59:51
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
Admita a seguinte estrutura de nó de uma lista simplesmente encadeada: struct
tno { int chave; tno *proximo; }; Admita, agora, a seguinte declaração de uma
variável do tipo nó: tno *no; Qual das alternativas a seguir traz uma operação
válida sobre essa variável?
no.chave = 5;
no->proximo = new tno;
no->chave = new int;
no->proximo = -10;
no.proximo = no;
Respondido em 19/05/2020 22:02:45
Explicação:
Analisando cada item :
no.chave = 5;
>> Como no é ponteiro então temos que usar a seta para acessar os campos da
área apontada por no.
no->proximo = -10;
>> O campo proximo é de ponteiro então não pode receber inteiro.
no->chave = new int;
>> O campo chave é de inteiro então não deve receber endereço de inteiro. O
operador new aloca memória e retorna o endereço da área alocada.
no->proximo = new tno;
>> É correto porque o campo proximo é campo de ponteiro e pode receber
outro ponteiro, pode receber NULL ou pode receber endereço da área alocada
com new, como foi o caso.
no.proximo = no;
>> Incorreto porque não pode se pode usar o ponto para acessar campo de
struct apontada pelo ponteiro no.
2a Questão
Sobre listas simplesmente encadeadas, é INCORRETO afirmar que :
podem implementar pilha e fila dinâmicas
os nós da lista são alocados dinamicamente.
possuem tamanho fixo
são acessadas através de um ponteiro para o primeiro nó da lista
o ponteiro do último nó é NULL
Respondido em 19/05/2020 22:03:10
Explicação:
Por definição, uma lista encadeada não tem tamanho pré-definido, pois os nós da
lista são alocados em tempo de execução, de acordo com a demanda.
3a Questão
Considere uma lista simplesmente encadeada com placas de carros. Assinale a opção que,
corretamente, imprime todas as placas da lista. Considere :
struct no {
string placa;
struct no *link;
};
no *p; //p aponta para o início da lista
void imprimir(no *p) {
while (p != NULL) {
cout << p→placa;
p = p→link;
}
}
void imprimir(no *p) {
while (p != NULL) {
cout << p.placa;
p = p.link;
}
}
void imprimir(no *p) {
if (p != NULL) {
cout << p→placa;
p = p→link;
}
}
void imprimir(no *p) {
while (p != NULL) {
cout << p→placa;
}
}
void imprimir(no p) {
while (p != NULL) {
cout << p→no;
p = p→link;
}
}
Respondido em 19/05/2020 22:02:56
Gabarito
Coment.
4a Questão
A linguagem C++ oferece quatro meios de criação de tipos de dados: matrizes,
estruturas ou structs, uniões e classes. As estruturas, que passaremos a chamar
simplesmente de structs, são tipos de variáveis que agrupam dados geralmente
desiguais, enquanto matrizes são variáveis que agrupam dados similares. Devido
a esta característica as structs são utilizadas para modelar nodos (nós) de
estruturas dinâmicas. Portanto podemos afirmar que:
As estruturas dinâmicas são assim chamadas, pois podem fazer alocação
de memória em tempo de compilação e terem seus tamanhos alterados de
acordo com a demanda.
As estruturas dinâmicas são assim chamadas, pois não podem fazer
alocação de memória em tempo de execução, mas mesmo assim
conseguem ter seus tamanhos alterados de acordo com a demanda.
As estruturas dinâmicas são assim chamadas, pois podem fazer alocação
de memória em tempo de compilação e entretanto seus tamanhos só são
alterados na codificação de acordo com a demanda.
As estruturas dinâmicas são assim chamadas, pois podem fazer alocação
de memória em tanto em tempo de execução quanto em tempo de
compilação, mas não podem ter seus tamanhos alterados de acordo com a
demanda.
As estruturas dinâmicas são assim chamadas, pois podem fazer alocação
de memória em tempo de execução e terem seus tamanhos alterados de
acordo com a demanda.
Respondido em 19/05/2020 22:03:01
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881789116&cod_hist_prova=194391624&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881789116&cod_hist_prova=194391624&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881789116&cod_hist_prova=194391624&pag_voltar=otacka
5a Questão
Em uma aplicação que usa processos de alocação estática e dinâmica de memória
é correto afirmar que
A memória utilizada pela aplicação é totalmente alocada após o inicio de
sua execução
Toda a memória utilizada pela aplicação não muda durante toda a sua
execução
Apenas a memória associada às variáveis do tipo vetor é alocada após o
inicio da execução da aplicação
A memória utilizada pela aplicação é inicialmente estática, mas pode
mudar
Todas as afirmações acima são incorretas
Respondido em 19/05/2020 22:03:22
Gabarito
Coment.
6a Questão
Uma estrutura de dados pode ser Estática ou Dinâmica. No primeiro caso os
limites são:
Determinados pelos ponteiros
Determinados pela memória
Indeterminados
Determinados pelo problema em que serão utilizados
Determinados pelo usuário
Respondido em 19/05/2020 22:03:26
Explicação:
Em uma estrutura estática o espaço em memória é definido antes da execução e
será definido pelas características do problema. Não é indeterminado, não temos
que usar ponteiros, não é determinado pelo usuário ou pela memória.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881789116&cod_hist_prova=194391624&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881789116&cod_hist_prova=194391624&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881789116&cod_hist_prova=194391624&pag_voltar=otacka
Quando a alocação é dinâmica, o espaço em memória é definido durante a
execução do programa e assim, não podemos determinar previamente o quanto
de memória será alocada.
7a Questão
As variáveis são na verdade trecho de memórias que
armazenam dados de diversas naturezas, portanto sempre que
declara-se uma variável, na linguagem C++, é necessário
informar o tipo de dado que esta irá armazenar. Um tipo
especial de variáveis são os ponteiros, isto é, variáveis que
armazenam apenas os endereços de outras variáveis. Assim os
ponteiros são usados para que se possa acessar de forma
indireta uma outra variável. Sabendo-se disto e supondo que o
endereço na memória da variável "a" é 100 e o endereço da
memória da variável ponteiro é 200, analise o trecho de código
abaixo e marque a alternativa que representa a saída do
programa:
9 100 200
200 9 100
100 9 200
9 9 200
100 100 200
Respondido em 19/05/2020 22:03:16
Explicação:
100 ===> endereço da memória da variável a
9 ===> valor da variável a
200 ===> endereço da memória da variável ponteiro
8a Questão
Dr. Pei Tam possui uma lista não ordenada de pacientes de seu consultório em
que registra apenas o nome endereço e o telefone de cada paciente. Como não há
limites para o crescimento de sua lista, como se pode implementar a inserção de
um novo paciente na lista, sabendo que cada paciente é do tipo Paciente e a lista é
do tipo List assim definidos :
struct Paciente {
long int matricula;
string nome, endereco e tel;
};
struct List {
Paciente p;
struct List *link;
};
List * inserePac(List*i, Paciente pac)
{
List *novo = new List;
novo.p = pac;
novo.link = i;
return novo;
}
List * inserePac(List *i) {
List *novo = new List;
Paciente pat;
novo->p = pat;
novo->link = i;
return novo;
}
List insereCliente(List *i, Paciente pac)
{
List novo[];
novo[0].p = pac;
novo[0].link = i;
return novo;
}
List * inserePac(List *i, Paciente pt){
List *novo ;
novo->p = pt;
novo->link = i;
return novo;
}
List * inserePac(List *i, Paciente pt)
{
List *novo = new List;
novo->p = pt;
novo->link =i;
return novo;
}
1a 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;
p *no -> new no;
no p -> new no;
no *p=new no;
p *no=new no;
Respondido em 19/05/2020 21:59:49
Gabarito
Coment.
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 das Pilhas a manipulação dos dados sempre se dá no topo.
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.
Encadeamento estático e dinâmico apresentam o mesmo funcionamento
de alocação na estrutura do tipo PILHA.
Respondido em 19/05/2020 22:00:11
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.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881769402&cod_hist_prova=194390605&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881769402&cod_hist_prova=194390605&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881769402&cod_hist_prova=194390605&pag_voltar=otacka
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
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
ListaNo
RemoveNo
BuscaNaLista
InsereNoFim
Respondido em 19/05/2020 22:00:17
Gabarito
Coment.
4a Questão
Em termos da estrutura de dados do tipo FILA (fila encadeada com alocação
dinâmica), a sequência de ações
insere(10), insere(3), insere(5), insere(8), remove(), remove(), insere(20),
promoveria a configuração da estrutura:
10 3 20
5 8 20
5 8
20 5 8
10 3 5 8 20
Respondido em 19/05/2020 22:00:21
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
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881769402&cod_hist_prova=194390605&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881769402&cod_hist_prova=194390605&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881769402&cod_hist_prova=194390605&pag_voltar=otacka
5a 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 e V estão corretas
I e IV estão corretas
I e II estão corretas.
IV e V estão corretas.
III está correta
Respondido em 19/05/2020 22:00:26
Gabarito
Coment.
6a Questão
Seja o seguinte exemplo de nodo de uma lista de encadeada:
struct nodo{
float valor;
string produto;
nodo * proximo;
};
Sabendo-se que nesta lista o último nó ou nodo possui o campo
próximo nulo (null), marque a alternativa que representa
corretamente a operação de busca do último nodo, a partir de
um ponteiro pt apontado para o primeiro nodo da lista.
while(pt->próximo)pt=pt->próximo;
while(próximo)pt=próximo;
while(pt != null)pt=pt->próximo;
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881769402&cod_hist_prova=194390605&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881769402&cod_hist_prova=194390605&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881769402&cod_hist_prova=194390605&pag_voltar=otacka
while(pt->próximo->proximo)pt=pt->próximo;
while(pt->próximo != null)pt=pt->próximo->proximo;
Respondido em 19/05/2020 22:00:22
Explicação:
O código será:
while(pt->próximo)pt=pt->próximo;
7a Questão
Para converter de decimal para binário usamos a estrutura de dados pilha.
Assinale a opção que, corretamente, indica as ações corretas para empilhar o
resto da divisão gerado no processo de conversão, considerando uma lista
simplesmente encadeada. Considere o tipo definido abaixo :
struct no {
int dado;
struct no *link;
};
Basta alocar memória com new e armazenar o resto da divisão do número
por 2 no campo dado do novo nó .
É preciso armazenar o resto da divisão do número por 2 no campo dado do
primeiro nó da lista e retornar o ponteiro para este nó.
É preciso alocar memória com new, armazenar o resto da divisão do
número por 2 no campo dado do novo nó, apontar o link do novo nó para
o início da lista e enfim, retornar o ponteiro para o novo nó.
Basta alocar memória com new, armazenar o resto da divisão do número
por 2 no campo dado do novo nó e aterrar o link do novo nó.
Não é necessário alocar memória com new. Basta criar uma struct do tipo
no, armazenar o resto da divisão número por 2 no campo dado e aterrar o
campo link.
Respondido em 19/05/2020 22:00:24
Gabarito
Coment.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881769402&cod_hist_prova=194390605&pag_voltar=otackahttp://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881769402&cod_hist_prova=194390605&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881769402&cod_hist_prova=194390605&pag_voltar=otacka
8a 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ó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 80.
7 e 40.
4 e 80.
11 e 29.
7 e 29.
Respondido em 19/05/2020 22:00:45
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
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ó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.
4 e 80.
7 e 29.
11 e 80.
7 e 40.
Respondido em 19/05/2020 22:01:00
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 FIFO, as informações são inseridas no início e
removidas do final.
Na estrutura das Pilhas a manipulação dos dados sempre se dá no topo.
A estrutura do tipo LIFO sempre realiza a remoção do elemento mais
antigo inserido.
Encadeamento estático e dinâmico apresentam o mesmo funcionamento
de alocação na estrutura do tipo PILHA.
Na estrutura do tipo LIFO, as informações são inseridas no início e
removidas do final.
Respondido em 19/05/2020 22:01:08
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
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;
}
BuscaNaLista
RemoveNo
InsereNoFrente
ListaNo
InsereNoFim
Respondido em 19/05/2020 22:01:11
Gabarito
Coment.
4a Questão
Em termos da estrutura de dados do tipo FILA (fila encadeada com alocação
dinâmica), a sequência de ações
insere(10), insere(3), insere(5), insere(8), remove(), remove(), insere(20),
promoveria a configuração da estrutura:
10 3 20
5 8
5 8 20
10 3 5 8 20
20 5 8
Respondido em 19/05/2020 22:01:15
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
5a 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)
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881773319&cod_hist_prova=194390902&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881773319&cod_hist_prova=194390902&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881773319&cod_hist_prova=194390902&pag_voltar=otacka
II if( !ptr )
III if(ptr)
IV while (ptr !=NULL)
V while (ptr)
IV e V estão corretas.
III e V estão corretas
I e II estão corretas.
I e IV estão corretas
III está correta
Respondido em 19/05/2020 22:01:21
Gabarito
Coment.
6a Questão
Seja o seguinte exemplo de nodo de uma lista de encadeada:
struct nodo{
float valor;
string produto;
nodo * proximo;
};
Sabendo-se que nesta lista o último nó ou nodo possui o campo
próximo nulo (null), marque a alternativa que representa
corretamente a operação de busca do último nodo, a partir de
um ponteiro pt apontado para o primeiro nodo da lista.
while(pt->próximo->proximo)pt=pt->próximo;
while(pt != null)pt=pt->próximo;
while(pt->próximo)pt=pt->próximo;
while(próximo)pt=próximo;
while(pt->próximo != null)pt=pt->próximo->proximo;
Respondido em 19/05/2020 22:01:26
Explicação:
O código será:
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881773319&cod_hist_prova=194390902&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881773319&cod_hist_prova=194390902&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881773319&cod_hist_prova=194390902&pag_voltar=otacka
while(pt->próximo)pt=pt->próximo;7a Questão
Para converter de decimal para binário usamos a estrutura de dados pilha.
Assinale a opção que, corretamente, indica as ações corretas para empilhar o
resto da divisão gerado no processo de conversão, considerando uma lista
simplesmente encadeada. Considere o tipo definido abaixo :
struct no {
int dado;
struct no *link;
};
Basta alocar memória com new, armazenar o resto da divisão do número
por 2 no campo dado do novo nó e aterrar o link do novo nó.
É preciso armazenar o resto da divisão do número por 2 no campo dado do
primeiro nó da lista e retornar o ponteiro para este nó.
Basta alocar memória com new e armazenar o resto da divisão do número
por 2 no campo dado do novo nó .
É preciso alocar memória com new, armazenar o resto da divisão do
número por 2 no campo dado do novo nó, apontar o link do novo nó para
o início da lista e enfim, retornar o ponteiro para o novo nó.
Não é necessário alocar memória com new. Basta criar uma struct do tipo
no, armazenar o resto da divisão número por 2 no campo dado e aterrar o
campo link.
Respondido em 19/05/2020 22:01:17
Gabarito
Coment.
8a Questão
Sabendo que uma fila encadeada possui seus nós definidos pela :
struct no {
int x;
no *prox;
};
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881773319&cod_hist_prova=194390902&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881773319&cod_hist_prova=194390902&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881773319&cod_hist_prova=194390902&pag_voltar=otacka
Marque a alternativa que representa corretamente a criação ou alocação do nó na
sintaxe do C++ para utilização na fila.
p *no=new no;
no p -> new no;
no *p -> new no;
p *no -> new no;
no *p=new no;
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ó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,
7 e 40.
11 e 29.
7 e 29.
11 e 80.
4 e 80.
Respondido em 19/05/2020 22:03:59
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 FIFO, as informações são inseridas no início e
removidas do final.
Encadeamento estático e dinâmico apresentam o mesmo funcionamento
de alocação na estrutura do tipo PILHA.
Na estrutura do tipo LIFO, 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.
Respondido em 19/05/2020 22:04:07
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
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;
}
InsereNoFim
ListaNo
InsereNoFrente
RemoveNo
BuscaNaLista
Respondido em 19/05/2020 22:04:14
Gabarito
Coment.
4a Questão
Em termos da estrutura de dados do tipo FILA (fila encadeada com alocação
dinâmica), a sequência de ações
insere(10), insere(3), insere(5), insere(8), remove(), remove(), insere(20),
promoveria a configuração da estrutura:
5 8
10 3 5 8 20
10 3 20
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881795844&cod_hist_prova=194391920&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881795844&cod_hist_prova=194391920&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881795844&cod_hist_prova=194391920&pag_voltar=otacka
5 8 20
20 5 8
Respondido em 19/05/2020 22:04:16
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
5a 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 e V estão corretas
I e IV estão corretas
IV e V estão corretas.
I e II estão corretas.
III está correta
Respondido em 19/05/2020 22:04:25
Gabarito
Coment.
6a Questão
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881795844&cod_hist_prova=194391920&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881795844&cod_hist_prova=194391920&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881795844&cod_hist_prova=194391920&pag_voltar=otacka
Seja o seguinte exemplo de nodo de uma lista de encadeada:
struct nodo{
float valor;
string produto;
nodo * proximo;
};
Sabendo-se que nesta lista o último nó ou nodo possui o campo
próximo nulo (null), marque a alternativa que representa
corretamentea operação de busca do último nodo, a partir de
um ponteiro pt apontado para o primeiro nodo da lista.
while(pt != null)pt=pt->próximo;
while(pt->próximo != null)pt=pt->próximo->proximo;
while(pt->próximo)pt=pt->próximo;
while(pt->próximo->proximo)pt=pt->próximo;
while(próximo)pt=próximo;
Respondido em 19/05/2020 22:04:11
Explicação:
O código será:
while(pt->próximo)pt=pt->próximo;
7a Questão
Para converter de decimal para binário usamos a estrutura de dados pilha.
Assinale a opção que, corretamente, indica as ações corretas para empilhar o
resto da divisão gerado no processo de conversão, considerando uma lista
simplesmente encadeada. Considere o tipo definido abaixo :
struct no {
int dado;
struct no *link;
};
É preciso armazenar o resto da divisão do número por 2 no campo dado do
primeiro nó da lista e retornar o ponteiro para este nó.
É preciso alocar memória com new, armazenar o resto da divisão do
número por 2 no campo dado do novo nó, apontar o link do novo nó para
o início da lista e enfim, retornar o ponteiro para o novo nó.
Basta alocar memória com new, armazenar o resto da divisão do número
por 2 no campo dado do novo nó e aterrar o link do novo nó.
Não é necessário alocar memória com new. Basta criar uma struct do tipo
no, armazenar o resto da divisão número por 2 no campo dado e aterrar o
campo link.
Basta alocar memória com new e armazenar o resto da divisão do número
por 2 no campo dado do novo nó .
Respondido em 19/05/2020 22:04:33
Gabarito
Coment.
8a 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;
no *p=new no;
p *no -> new no;
1a 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______.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881795844&cod_hist_prova=194391920&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881795844&cod_hist_prova=194391920&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881795844&cod_hist_prova=194391920&pag_voltar=otacka
Declaração de matriz
Declaração de função
Alocação estática de memória
Declaração de vetor
Alocação dinâmica de memória
Respondido em 19/05/2020 22:06:02
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.
2a Questão
Considere uma lista duplamente encadeada não circular em que
struct nodupla {
int dado;
struct nodupla *dlink; // aponta p/ o nó à direita
struct nodupla *elink; // aponta p/ o nó à esquerda
};
sendo nodupla *p; //ponteiro para o início da lista
A opção que corretamente mostra as instruções para inserir um valor no início
da lista apontada por p é :
nodupla *novo;
novo = new nodupla;
novo.dado = valor;
novo.dlink = p;
novo.elink = NULL;
if (p != NULL)
p.elink = novo;
p = novo;
n nodupla *novo;
novo = new nodupla;
novo->dado = valor;
novo->elink = NULL;
if (p != NULL)
p->elink = novo;
p = novo;
nodupla *novo;
novo = new nodupla;
novo->dado = valor;
novo->dlink = p;
novo->elink = NULL;
if (p != NULL)
p->elink = novo;
p = novo;
nodupla *novo;
novo = new nodupla;
novo->dado = valor;
novo->dlink = p;
novo->elink = NULL;
p->elink = novo;
p = novo;
n
nodupla *novo;
novo = new nodupla;
novo->dado = valor;
novo->dlink = p;
if (p != NULL)
p->elink = novo;
p = novo;
Respondido em 19/05/2020 22:06:08
Gabarito
Coment.
3a 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.
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.
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.
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.
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.
Respondido em 19/05/2020 22:06:14
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
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881810037&cod_hist_prova=194392631&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881810037&cod_hist_prova=194392631&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881810037&cod_hist_prova=194392631&pag_voltar=otacka
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)
4a Questão
Ao criarmos uma rotina para inserir um dado em umaLISTA 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.
Só poderei inserir no final da lista e no começo somente se ela estiver
vazia.
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.
Respondido em 19/05/2020 22:06:20
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.
5a Questão
Em uma lista linear duplamente encadeada.
O ponteiro do "último" nó não é NULL, mas sim aponta de volta para o
"primeiro" nó da lista.
Cada nó possui um só ponteiro que referencia o próximo nó da lista.
Além do campo relativo ao dado, cada nó possui dois ponteiros.
O ponteiro do "primeiro" nó não é NULL, mas sim aponta de volta para o
"primeiro" nó da lista, formando um ciclo.
Cada ponteiro possui um só endereço que referencia o primeiro nó da lista.
Respondido em 19/05/2020 22:06:27
Gabarito
Coment.
6a Questão
Assinale a alternativa que traz uma afirmação incorreta sobre as diversas
implementações da estrutura de dados lista.
A lista circular é toda lista, independente do tipo de alocação, em que é
formado um ciclo entre seus elementos. Por exemplo, quando o último
elemento da lista aponta para o primeiro.
A lista sequencial deve ser implementada com o uso de estruturas de vetor,
pois essas essas estruturas utilizam o conceito de alocação estática e
dispõem seus elementos de forma contígua na memória.
Listas encadeadas em geral são preferíveis em relação às listas sequenciais,
especialmente por serem mais eficientes e sempre utilizarem menos espaço
de armazenamento na memória.
A lista simplesmente encadeada é adequada para a resolução de problemas
em que os elementos da lista devem ser percorridos em apenas uma
direção.
A estrutura do nó da lista duplamente encadeada deve, obrigatoriamente,
possuir um ponteiro para o nó anterior e outro para o nó seguinte,
permitindo movimentação para frente e para trás.
Respondido em 19/05/2020 22:06:29
Explicação:
Analisando cada item.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881810037&cod_hist_prova=194392631&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881810037&cod_hist_prova=194392631&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881810037&cod_hist_prova=194392631&pag_voltar=otacka
>> A estrutura do nó da lista duplamente encadeada deve,
obrigatoriamente, possuir um ponteiro para o nó anterior e outro para o nó
seguinte, permitindo movimentação para frente e para trás.
Afirmativa correta, que segue a definição de lista duplamente
encadeada. Não marcar o item.
>> A lista simplesmente encadeada é adequada para a resolução de
problemas em que os elementos da lista devem ser percorridos em apenas
uma direção.
Afirmativa correta. Em uma lista simplesmente encadeada existe
ponteiro para o início da lista. Por isso, não dá para percorrer tal lista do fim
para o início. Nâo marcar o item.
>> A lista sequencial deve ser implementada com o uso de estruturas de
vetor, pois essas essas estruturas utilizam o conceito de alocação estática e
dispõem seus elementos de forma contígua na memória.
Afirmativa correta. O vetor pode até ser dinâmica, mas usualmente usa
alocação estática de memória e é o recurso usado na implementação das
listas sequenciais. Não marcar o item.
>> A lista circular é toda lista, independente do tipo de alocação, em que é
formado um ciclo entre seus elementos. Por exemplo, quando o último
elemento da lista aponta para o primeiro.
Afirmativa correta.
>> Listas encadeadas em geral são preferíveis em relação às listas
sequenciais, especialmente por serem mais eficientes e sempre utilizarem
menos espaço de armazenamento na memória.
Afirmativa falsa porque as listas encadeadas não ocupam menos espaço
que as listas sequencias. Cada nó de uma lista simplemente encadeada, por
exemplo, tem um campo de dado e um campo que é ponteiro.
Marcar esta afirmativa.
7a Questão
São listas que, além de cada elemento indicar o elemento seguinte, também
indicam aquele que o antecede, ou melhor, cada elemento é ligado a seu sucessor
e a seu predecessor, possibilitando um caminhamento no sentido início-fim ou no
sentido oposto (fim-início). O texto acima, sobre Estrutura de Dados, descreve :
Listas Duplamente Encadeadas
Árvore
Listas simplesmente encadeadas
Listas Circulares
Grafo
Respondido em 19/05/2020 22:06:18
Explicação:
O enunciado é a descrição de listas duplamente encadeadas, que terão 2 ponteiros
em cada nó, um apontando para o nó anterior e outro apontando para o nó
posterior.
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;
Lista duplamente encadeada
Fila
Pilha
Lista encadeada
Matriz
Respondido em 19/05/2020 22:06:38
1a Questão
Um tipo de estrutura de dados é declarada em C como:
typedef struct no *apontador;
struct no{
int valor;
apontador esq, dir;
}
onde esq e dir representam ligações para os dados da esquerda e direita,
respectivamente. Qual das seguintes alternativas é uma implementação correta da
operação que inverte as posições dos dados da esquerda e da direita uma
estrutura p, onde t é um apontador auxiliar.
t=p->dir;
p->esq = p->dir;
p->dir = t;
t=p;
p->esq = p->dir;
p->dir = p->esq;
p->esq = p->dir;
t = p->esq;
p->dir = t;
p->dir=t;
p->esq = p->dir;
p->dir = t;
t=p->dir;
p->dir = p->esq;
p->esq = t;
Respondido em 19/05/2020 22:06:52
Explicação:
O código pedido é:
t=p->dir;
p->dir = p->esq;
p->esq = t;
2a Questão
Com relação à lista duplamente encadeada, é correto afirmar que :
A lista precisa ter sempre um ponteiro apontando para o 1º. nó
Consome menos memória do que uma lista simplesmente
encadeada, se tivermos uma mesma aplicação.
A lista pode ser percorrida com igual facilidade para a direita
ou para a esquerda, pois existem dois ponteiros.
Não pode haver remoções no meio da lista.
Não pode ser vazia.
Respondido em 19/05/2020 22:06:49
Gabarito
Coment.
3a Questão
Uma estrutura de dados em lista duplamente encadeada permite na cadeia
movimentos para
frente e para trás, apenas.
frente, apenas.
trás, apenas.
cima e para baixo ou para frente e para trás.
cima e para baixo, apenas.
Respondido em 19/05/2020 22:07:06
Gabarito
Coment.
4a 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 parao último.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881815570&cod_hist_prova=194392910&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881815570&cod_hist_prova=194392910&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881815570&cod_hist_prova=194392910&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881815570&cod_hist_prova=194392910&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881815570&cod_hist_prova=194392910&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881815570&cod_hist_prova=194392910&pag_voltar=otacka
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
V,F,F,V,F
V,F,V,F,V
F,V,V,F,F
F,F,V,V,V
Respondido em 19/05/2020 22:07:00
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
5a Questão
Suponha uma listagem mantida com informações sobre um equipamento a ser adquirido por uma
empresa. A listagem possui as informações sobre de 10 fornecedores, descritas a seguir:
próximo: um ponteiro para o próximo fornecedor da listagem;
nome: nome, identificando o fornecedor;
valor: preço do equipamento no fornecedor;
anterior: um ponteiro para o fornecedor anterior da listagem.
Sendo o fornecedor "Z" o quinto elemento desta listagem e "X" e "Y" dois outros fornecedores
que não pertencem à listagem, com seus respectivos ponteiros "pZ", "pX" e "pY", considere o
trecho de código abaixo.
pY->proximo = pX;
pX->anterior = pY;
pX->proximo = pZ->proximo;
pZ->proximo->anterior = pX;
pZ->proximo = pY;
pY->anterior = pZ;
Este trecho de código é usado para inserir na listagem os fornecedores:
X, antes do Z, e Y, logo após o Z.
Y, antes do Z, e X, antes do Y.
Y, antes do Z, e X, logo após o Z.
X, logo após o Z, e Y, logo após o X.
Y, logo após o Z, e X, logo após o Y.
Respondido em 19/05/2020 22:07:13
Gabarito
Coment.
6a 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;
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881815570&cod_hist_prova=194392910&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881815570&cod_hist_prova=194392910&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881815570&cod_hist_prova=194392910&pag_voltar=otacka
p->prox->ant=p->ant;
Sendo p um ponteiro que aponta para um dos nodos da lista, pode-se afirmar que:
As operações possibilitam a busca de um nodo apontado pelo ponteiro p.
As operações possibilitam o percurso do ponteiro p da direita para
esquerda.
As operações possibilitam o percurso do ponteiro p da esquerda para
direita.
As operações removem o nodo apontado pelo ponteiro p.
As operações inserem novo nodo, após o nodo apontado pelo ponteiro p.
Respondido em 19/05/2020 22:07:19
Gabarito
Coment.
7a Questão
Observe a struct, definida globalmente, e um trecho de uma função
que manipula uma Lista Duplamente Encadeada.
struct listaDE
{
int info;
struct listaDE* ant;
struct listaDE* prox;
};
...
listaDE* novo = new listaDE;
novo->info = valor;
novo->prox = LISTA;
novo->ant = NULL;
Assinale a alternativa que apresenta o protótipo dessa função
listaDE *remove(listaDE *LISTA, int valor);
listaDE *insereFim(listaDE *LISTA, int valor);
listaDE *busca (listaDE *LISTA, int valor);
void exibeIpF(listaDE *LISTA);
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881815570&cod_hist_prova=194392910&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881815570&cod_hist_prova=194392910&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881815570&cod_hist_prova=194392910&pag_voltar=otacka
listaDE *insereInicio(listaDE *LISTA, int valor);
Respondido em 19/05/2020 22:07:24
Gabarito
Coment.
8a 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 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 nó seguinte e
para o nó anterior.
Em uma lista simplesmente encadeada cada nó aponta para um único nó
enquanto a lista duplamente encadeada aponta para mais de um nó.
Em uma lista duplamente encadeada, cada nó aponta para um nó enquanto
a lista simplesmente encadeada aponta para mais de um nó.
1a Questão
Uma estrutura de dados em lista duplamente encadeada permite na cadeia
movimentos para:
Para frente e para trás, apenas.
Para frente, apenas.
Para cima e para baixo ou para frente e para trás.
Para trás, apenas.
Para cima e para baixo, apenas.
Respondido em 19/05/2020 22:07:40
Explicação:
A resposta é simples assim.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881815570&cod_hist_prova=194392910&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881815570&cod_hist_prova=194392910&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881815570&cod_hist_prova=194392910&pag_voltar=otacka
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 a busca de um nodo apontado pelo ponteiro p.
As operações inserem novo nodo, após o nodo apontado pelo ponteiro p.
As operações possibilitam o percurso do ponteiro p da direita para
esquerda.
As operações possibilitam o percurso do ponteiro p da esquerda para
direita.
Respondido em 19/05/2020 22:08:17
3a QuestãoEm uma lista linear duplamente encadeada.
O ponteiro do "primeiro" nó não é NULL, mas sim aponta de volta para o
"primeiro" nó da lista, formando um ciclo.
O ponteiro do "último" nó não é NULL, mas sim aponta de volta para o
"primeiro" nó da lista.
Cada nó possui um só ponteiro que referencia o próximo nó da lista.
Cada ponteiro possui um só endereço que referencia o primeiro nó da lista.
Além do campo relativo ao dado, cada nó possui dois ponteiros.
Respondido em 19/05/2020 22:07:27
Gabarito
Coment.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881821777&cod_hist_prova=194393215&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881821777&cod_hist_prova=194393215&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881821777&cod_hist_prova=194393215&pag_voltar=otacka
4a 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______.
Declaração de função
Declaração de matriz
Alocação dinâmica de memória
Alocação estática de memória
Declaração de vetor
Respondido em 19/05/2020 22:07:57
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.
5a 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.
Só poderei inserir no final da lista e nunca no começo ou 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
vazia.
Só poderei inserir no final da lista e no começo somente se ela estiver
cheia.
Respondido em 19/05/2020 22:08:10
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.
6a 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.
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.
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.
Respondido em 19/05/2020 22:07:50
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)
7a Questão
Considere uma lista duplamente encadeada não circular em que
struct nodupla {
int dado;
struct nodupla *dlink; // aponta p/ o nó à direita
struct nodupla *elink; // aponta p/ o nó à esquerda
};
sendo nodupla *p; //ponteiro para o início da lista
A opção que corretamente mostra as instruções para inserir um valor no início
da lista apontada por p é :
nodupla *novo;
novo = new nodupla;
novo->dado = valor;
novo->dlink = p;
novo->elink = NULL;
if (p != NULL)
p->elink = novo;
p = novo;
nodupla *novo;
novo = new nodupla;
novo->dado = valor;
novo->dlink = p;
novo->elink = NULL;
p->elink = novo;
p = novo;
n
nodupla *novo;
novo = new nodupla;
novo->dado = valor;
novo->dlink = p;
if (p != NULL)
p->elink = novo;
p = novo;
nodupla *novo;
novo = new nodupla;
novo.dado = valor;
novo.dlink = p;
novo.elink = NULL;
if (p != NULL)
p.elink = novo;
p = novo;
n nodupla *novo;
novo = new nodupla;
novo->dado = valor;
novo->elink = NULL;
if (p != NULL)
p->elink = novo;
p = novo;
Respondido em 19/05/2020 22:07:43
Gabarito
Coment.
8a Questão
Assinale a alternativa que traz uma afirmação incorreta sobre as diversas
implementações da estrutura de dados lista.
A lista circular é toda lista, independente do tipo de alocação, em que é
formado um ciclo entre seus elementos. Por exemplo, quando o último
elemento da lista aponta para o primeiro.
A estrutura do nó da lista duplamente encadeada deve, obrigatoriamente,
possuir um ponteiro para o nó anterior e outro para o nó seguinte,
permitindo movimentação para frente e para trás.
Listas encadeadas em geral são preferíveis em relação às listas sequenciais,
especialmente por serem mais eficientes e sempre utilizarem menos espaço
de armazenamento na memória.
A lista sequencial deve ser implementada com o uso de estruturas de vetor,
pois essas essas estruturas utilizam o conceito de alocação estática e
dispõem seus elementos de forma contígua na memória.
A lista simplesmente encadeada é adequada para a resolução de problemas
em que os elementos da lista devem ser percorridos em apenas uma
direção.
Respondido em 19/05/2020 22:07:49
Explicação:Analisando cada item.
>> A estrutura do nó da lista duplamente encadeada deve,
obrigatoriamente, possuir um ponteiro para o nó anterior e outro para o nó
seguinte, permitindo movimentação para frente e para trás.
Afirmativa correta, que segue a definição de lista duplamente
encadeada. Não marcar o item.
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881821777&cod_hist_prova=194393215&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881821777&cod_hist_prova=194393215&pag_voltar=otacka
http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?cod_prova=3881821777&cod_hist_prova=194393215&pag_voltar=otacka
>> A lista simplesmente encadeada é adequada para a resolução de
problemas em que os elementos da lista devem ser percorridos em apenas
uma direção.
Afirmativa correta. Em uma lista simplesmente encadeada existe
ponteiro para o início da lista. Por isso, não dá para percorrer tal lista do fim
para o início. Nâo marcar o item.
>> A lista sequencial deve ser implementada com o uso de estruturas de
vetor, pois essas essas estruturas utilizam o conceito de alocação estática e
dispõem seus elementos de forma contígua na memória.
Afirmativa correta. O vetor pode até ser dinâmica, mas usualmente usa
alocação estática de memória e é o recurso usado na implementação das
listas sequenciais. Não marcar o item.
>> A lista circular é toda lista, independente do tipo de alocação, em que é
formado um ciclo entre seus elementos. Por exemplo, quando o último
elemento da lista aponta para o primeiro.
Afirmativa correta.
>> Listas encadeadas em geral são preferíveis em relação às listas
sequenciais, especialmente por serem mais eficientes e sempre utilizarem
menos espaço de armazenamento na memória.
Afirmativa falsa porque as listas encadeadas não ocupam menos espaço
que as listas sequencias. Cada nó de uma lista simplemente encadeada, por
exemplo, tem um campo de dado e um campo que é ponteiro.
Marcar esta afirmativa.