Buscar

SIMULADOS ESTRUTURA DE DADOS - ESTÁCIO 2020 1

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1a Questão 
 
Para organizar as fotos de minha família com os ancestrais de várias gerações, minha filha usou uma 
estrutura de dados que é ..... Assinale a opção certa. 
 
 
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:58

Outros materiais