Buscar

ESTRUTURA DE DADOS-convertido (2)

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 164 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 164 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 164 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

ESTRUTURA DE DADOS 
 
 
 
1. 
 
 
 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 ? 
 
 
 
Fila 
 
 
 Pilha 
 
 
Grafo 
 
 
 Árvore 
 
 
 Lista 
 
 
 
 
 
 
 
2. 
 
 
Diferentes tipos de estrutura de dados são adequadas a 
diferentes tipos de aplicação e algumas são altamente 
especializadas, destinando-se a algumas tarefas específicas. 
Dessa forma a definição de Estrutura de Dados está expressa na 
alternativa: 
 
 
 
São os nomes dados as variáveis na montagem de uma rotina. 
 
 
É um modo particular de armazenamento e organização de dados em um 
computador de modo que possam ser usados de modo eficiente. 
 
 
É um modo de deleção de dados em um computador. 
 
 
É um modo de distribuição e organização de dados em uma rede de 
computador de modo que possam ser usados de modo eficiente. 
 
 
É um modo de utilização de dados nos programas de computador. 
 
 
 
Explicação: 
Analisando cada item : 
 
É um modo particular de armazenamento e organização de dados em um 
computador de modo que possam ser usados de modo eficiente. 
Correta. 
 
É um modo de distribuição e organização de dados em uma rede de 
computador de modo que possam ser usados de modo eficiente. 
FAlso. Não há distribuição de dados ou organização de dados em uma rede via 
estrutura de dados. 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('619021','7118','1','3520944','1');
javascript:duvidas('19660','7118','2','3520944','2');
 
É um modo de utilização de dados nos programas de computador. 
FAlso. Não se diz como se utiliza dados. Variáveis armazenam dados, por 
exemplo e em atribuições ou em expressões também utilizamos dados. 
 
São os nomes dados as variáveis na montagem de uma rotina. 
FAlso. Nomes de variáveis são identificadores. 
 
É um modo de deleção de dados em um computador. 
Falso. Para "deletar" um dado não temos que usar estrutura de dados. 
 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
 
3. 
 
 
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 fila e um grafo. 
 
 
Após a impressão dos valores pela ordem teremos uma pilha e uma fila. 
 
 
Após a impressão dos valores pela ordem teremos uma fila e uma pilha. 
 
 
Após a impressão dos valores pela ordem teremos duas pilhas. 
 
 
 
 
 
 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('705085','7118','3','3520944','3');
javascript:duvidas('641650','7118','4','3520944','4');
4. 
 
 
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 II e IV estão corretas. 
 
 
As alternativas I e II estão corretas 
 
 
As alternativas I e III estão corretas. 
 
 
As alternativas III e IV estão corretas. 
 
 
Todas as alternativas estão corretas. 
 
 
 
 
 
 
 
5. 
 
 
É um exemplo de TAD Não Linear: 
 
 
 
Grafos 
 
 
Filas de Prioridade 
 
 
Filas 
 
 
Pilhas 
 
 
Listas 
 
 
 
Explicação: Um grafo é um tipo de dados abstrato não linear 
 
 
 
 
 
 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('1189622','7118','5','3520944','5');
javascript:duvidas('566196','7118','6','3520944','6');
6. 
 
 
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, V 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 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
 
7. 
 
 
As estruturas de dados são utilizadas para manter dados ou 
informações organizados na memória, o que possibilita a 
otimização do uso destes dados. Porém, as estruturas guardam 
características especiais na manipulação destes dados, assim 
deve-se escolher a estrutura certa ou mais adequada para uma 
determinada aplicação. Portanto marque a opção que representa 
a melhor estrutura, quando se tem como requisitos principais o 
acesso aleatório aos dados e alocação destes de forma contínua 
na memória. 
 
 
 
Fila Sequencial 
 
 
Pilha Sequencial 
 
 
Lista Sequencial 
 
 
Pilha Encadeada 
 
 
Lista Encadeada 
 
 
 
 
 
 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('641678','7118','7','3520944','7');
javascript:duvidas('27760','7118','8','3520944','8');
8. 
 
 
Estão entre algumas das possíveis formas de se estruturar dados: 
 
 
 
Grafos, lista ordenada, vetores. 
 
 
Algoritmos, lista ordenada, vetores. 
 
 
Grafos, lista ordenada, algoritmos. 
 
 
Lista encadeada, vetores, algoritmos. 
 
 
Grafos, algoritmos, fila. 
 
 
 
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. 
 
 
 
 
 
 
 
1. 
 
 
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 é ... 
 
 
pilha 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('2985000','7118','1','3520944','1');
 
 
fila 
 
 
árvore 
 
 
lista 
 
 
grafoExplicação: 
Conforme gabarito e aula 1. 
 
 
 
 
 
 
 
2. 
 
 
Assinale a alternativa correta sobre tipos abstratos de dados: 
 
 
 
Um tipo abstrato de dados é um modo particular de armazenamento e 
organização de dados em um computador de modo que possam ser usados 
eficientemente. 
 
 
É fundamental que os tipos abstratos de dados proponham um conjunto 
eficiente de algoritmos para realização de suas operações. 
 
 
Um tipo abstrato de dados é composto por um modelo de dados e um 
conjunto de operadores definidos sobre esses dados. 
 
 
Um tipo abstrato de dados deve sempre ser representado por meio dos 
recursos específicos de uma linguagem de programação. 
 
 
Um tipo abstrato de dados descreve, além do que se pode fazer com os 
dados, como as operações serão efetivamente implementadas. 
 
 
 
Explicação: 
 
Um tipo abstrato de dados é composto por um modelo de dados e um 
conjunto de operadores definidos sobre esses dados. 
Verdadeiro. Por definição de TAD (tipo abstrato de dados). 
 
Um tipo abstrato de dados é um modo particular de armazenamento e 
organização de dados em um computador de modo que possam ser usados 
eficientemente. 
Falso. Quando se pensa em TAD não há vínculos com implementação. 
 
Um tipo abstrato de dados descreve, além do que se pode fazer com os 
dados, como as operações serão efetivamente implementadas. 
FAlso. Não se pensa em implementação quando se trabalha com TAD. 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('675537','7118','2','3520944','2');
 
É fundamental que os tipos abstratos de dados proponham um conjunto 
eficiente de algoritmos para realização de suas operações. 
FAlso. Não se pensa em implementação ou eficiência quando se trabalha com 
TAD. Se pensa na semântica das operações. 
 
Um tipo abstrato de dados deve sempre ser representado por meio dos 
recursos específicos de uma linguagem de programação. 
 Falso : Não se pensa em programa ou na linguagem de programação, pois o TAD 
não está vinculado à implementação. 
 
 
 
 
 
 
 
3. 
 
 
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. 
 
 
pilha 
 
 
árvore 
 
 
grafo 
 
 
lista 
 
 
fila 
 
 
 
Explicação: 
Conforme gabarito e aula 1. 
 
 
 
 
 
 
 
4. 
 
 
O que é estrutura de dados? 
 
 
 
É um conjunto de comandos para uma tarefa específica referenciada por um 
nome no algoritmo principal, retornando um determinado valor no seu 
próprio nome. 
 
 
É um modo particular de armazenamento e organização de dados em um 
computador de modo que possam ser usados eficientemente. 
 
 
É uma sequência finita de instruções bem definidas e não ambíguas, cada 
uma das quais devendo ser executadas mecânica ou eletronicamente em um 
intervalo de tempo finito e com uma quantidade de esforço finita. 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('2984998','7118','3','3520944','3');
javascript:duvidas('902177','7118','4','3520944','4');
 
 
É um conjunto de técnicas de programação. 
 
 
É uma forma determinada de armazenamento de dados em um banco de 
dados. 
 
 
 
Explicação: 
Estrutura de dados não é banco de dados . Estrutura de dados não é Tipo de dados. 
Estrutura de dados não é ¿ É um conjunto de comandos para uma tarefa específica referenciada por um 
nome no algoritmo principal, retornando um determinado valor no seu próprio nome¿ que no caso, fala de 
função. 
 
Estrutura de dados não é ¿ É uma sequência finita de instruções bem definidas e não ambíguas, cada uma 
das quais devendo ser executadas mecânica ou eletronicamente em um intervalo de tempo finito e com uma 
quantidade de esforço finita.¿ Esta definição é de algoritmo. 
 
Portanto, Estrutura de Dados é ¿ É um modo particular de armazenamento e organização de dados em 
um computador de modo que possam ser usados eficientemente.¿ 
 
Na Aula 1 do conteúdo online há elementos para tal questão. 
 
 
 
 
 
 
 
5. 
 
 
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. 
 
 
O meio para armazenar e organizar dados com o objetivo de facilitar o 
acesso e as modificações. 
 
 
Uma sequência de passos computacionais que transforma uma entrada em 
uma saída previamente determinada. 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('27753','7118','5','3520944','5');
 
Gabarito 
Coment. 
 
 
 
 
 
 
 
6. 
 
 
 Preciso cadastrar todos os interessados em meu novo curso de 
programação. Qual a estrutura de dados mais adequada para modelar 
este problema, visto que não há qualquer preocupação com ordem de 
chegada ou saída de aluno da turma. 
 
 
 
Árvore 
 
 
Grafo 
 
 
 Fila 
 
 
 Pilha 
 
 
Lista 
 
 
 
 
 
 
 
7. 
 
 
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: 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('619029','7118','6','3520944','6');
javascript:duvidas('230371','7118','7','3520944','7');
 
 
As alternativas I e III estão corretas. 
 
 
As alternativas III e IV 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 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
 
8. 
 
 
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[n]; 
 
 
cout << v[n-1]; 
 
 
cout << v[ultimo]; 
 
 
 
 
 
 
1. 
 
 
Das estruturas de dados a seguir aquela que NÃO é uma estrutura 
linear é : 
 
 
 
Vetor. 
 
 
Grafo. 
 
 
Lista. 
 
 
Pilha. 
 
 
Fila. 
 
 
 
Explicação: 
Lineares : lista, pilha, fila, deque. Com ou sem vetor, que é linear. 
Não lineares : árvore e grafo. 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('605718','7118','8','3520944','8');
javascript:duvidas('1172482','7118','1','3520944','1');
 
 
 
 
 
 
 
 
2. 
 
 
Estão entre algumas das possíveis formas de estruturas de 
dados: 
 
 
 
Árvores binárias, pilhas, vetores 
 
 
Árvores binárias, pilhas, algoritmos 
 
 
Grafos, funções, fila 
 
 
Listas, vetores, cin 
 
 
cout, Funções, vetores 
 
 
 
Explicação: 
 
Árvores binárias, pilhas, vetoresVerdadeiro. 
 
Grafos, funções, fila 
Falso. Funções não são estruturas de dados. Funções são módulos dos 
programas. 
 
Árvores binárias, pilhas, algoritmos 
FAlso. Algoritmos não são estrutura de dados. 
 
Listas, vetores, cin 
Falso. cin não é estrutura de dados. É usado para fazer entrada de dados. 
 
cout, Funções, vetores 
Falso. Funções e cout não são estrutura de dados. 
 
 
 
 
 
 
 
 
3. 
 
 
Qual estrutura de dados é mais adequada para armazenar a 
estrutura do diretório do sistema de arquivos de um sistema 
operacional? 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('1150353','7118','2','3520944','2');
javascript:duvidas('874995','7118','3','3520944','3');
 
 
Grafo 
 
 
Fila 
 
 
Lista 
 
 
Árvore 
 
 
Pilha 
 
 
 
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. 
 
 
 
 
 
 
 
4. 
 
 
Diferentes tipos de estrutura de dados são adequadas a 
diferentes tipos de aplicação e algumas são altamente 
especializadas, destinando-se a algumas tarefas específicas. 
Dessa forma a definição de Estrutura de Dados está expressa na 
alternativa: 
 
 
 
É um modo de utilização de dados nos programas de computador. 
 
 
É um modo de deleção de dados em um computador. 
 
 
É um modo particular de armazenamento e organização de dados em um 
computador de modo que possam ser usados de modo eficiente. 
 
 
É um modo de distribuição e organização de dados em uma rede de 
computador de modo que possam ser usados de modo eficiente. 
 
 
São os nomes dados as variáveis na montagem de uma rotina. 
 
 
 
Explicação: 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('19660','7118','4','3520944','4');
Analisando cada item : 
 
É um modo particular de armazenamento e organização de dados em um 
computador de modo que possam ser usados de modo eficiente. 
Correta. 
 
É um modo de distribuição e organização de dados em uma rede de 
computador de modo que possam ser usados de modo eficiente. 
FAlso. Não há distribuição de dados ou organização de dados em uma rede via 
estrutura de dados. 
 
É um modo de utilização de dados nos programas de computador. 
FAlso. Não se diz como se utiliza dados. Variáveis armazenam dados, por 
exemplo e em atribuições ou em expressões também utilizamos dados. 
 
São os nomes dados as variáveis na montagem de uma rotina. 
FAlso. Nomes de variáveis são identificadores. 
 
É um modo de deleção de dados em um computador. 
Falso. Para "deletar" um dado não temos que usar estrutura de dados. 
 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
 
5. 
 
 
Estão entre algumas das possíveis formas de se estruturar dados: 
 
 
 
Algoritmos, lista ordenada, vetores. 
 
 
Grafos, lista ordenada, vetores. 
 
 
Grafos, lista ordenada, algoritmos. 
 
 
Grafos, algoritmos, fila. 
 
 
Lista encadeada, vetores, algoritmos. 
 
 
 
Explicação: 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('27760','7118','5','3520944','5');
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. 
 
 
 
 
 
 
 
6. 
 
 
 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 ? 
 
 
 
 Árvore 
 
 
 Pilha 
 
 
Fila 
 
 
Grafo 
 
 
 Lista 
 
 
 
 
 
 
 
7. 
 
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 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('619021','7118','6','3520944','6');
javascript:duvidas('566196','7118','7','3520944','7');
 
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, V 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 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
 
8. 
 
 
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 III e IV estão corretas. 
 
 
As alternativas I e II estão corretas 
 
 
Todas as alternativas estão corretas. 
 
 
As alternativas I e III estão corretas. 
 
 
As alternativas II e IV estão corretas. 
 
 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('641650','7118','8','3520944','8');
javascript:duvidas('705085','7118','1','3520944','1');
1. 
 
 
Observe o trecho do programa em C++ abaixo e, após, 
entrar com os valores sugeridos para sua execução assinale a 
alternativa que representa a resposta final. 
cin >> a; 
cin >> b; 
cin >> c; 
cin >> d; 
 
cout << a; 
cout << b; 
cout << c; 
cout << d; 
 
cout << d; 
cout << c; 
cout << b; 
cout << a; 
 
 
 
Após a impressão dos valores pela ordem teremos duas pilhas. 
 
 
Após a impressão dos valores pela ordem teremos uma pilha e uma fila. 
 
 
Após a impressão dos valores pela ordem teremos duas filas. 
 
 
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. 
 
 
 
 
 
 
 
2. 
 
 
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 principaiso 
acesso aleatório aos dados e alocação destes de forma contínua 
na memória. 
 
 
 
Lista Sequencial 
 
 
Fila Sequencial 
 
 
Pilha Sequencial 
 
 
Pilha Encadeada 
 
 
Lista Encadeada 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('641678','7118','2','3520944','2');
 
 
 
 
 
 
3. 
 
 
É um exemplo de TAD Não Linear: 
 
 
 
Filas de Prioridade 
 
 
Grafos 
 
 
Listas 
 
 
Pilhas 
 
 
Filas 
 
 
 
Explicação: Um grafo é um tipo de dados abstrato não linear 
 
 
 
 
 
 
 
4. 
 
 
Podemos dizer que estrutura de dados é: 
 
 
 
É a saída, que satisfaz a quaisquer restrições impostas pelo problema, 
necessária para se calcular uma solução do problema. 
 
 
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. 
 
 
A entrada, 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. 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
 
5. 
 
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 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('1189622','7118','3','3520944','3');
javascript:duvidas('27753','7118','4','3520944','4');
javascript:duvidas('230371','7118','5','3520944','5');
 
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. 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
 
6. 
 
 
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 é ... 
 
 
árvore 
 
 
fila 
 
 
lista 
 
 
pilha 
 
 
grafo 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('2985000','7118','6','3520944','6');
 
 
Explicação: 
Conforme gabarito e aula 1. 
 
 
 
 
 
 
 
7. 
 
 
Para organizar as fotos de minha família com os ancestrais de várias gerações, 
minha filha usou uma estrutura de dados que é ..... Assinale a opção certa. 
 
 
grafo 
 
 
lista 
 
 
árvore 
 
 
fila 
 
 
pilha 
 
 
 
Explicação: 
Conforme gabarito e aula 1. 
 
 
 
 
 
 
 
8. 
 
 
 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. 
 
 
 
 Fila 
 
 
 Pilha 
 
 
Grafo 
 
 
Lista 
 
 
Árvore 
 
 
 
1. 
 
 
Assinale a alternativa correta sobre tipos abstratos de dados: 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('2984998','7118','7','3520944','7');
javascript:duvidas('619029','7118','8','3520944','8');
javascript:duvidas('675537','7118','1','3520944','1');
 
 
Um tipo abstrato de dados é composto por um modelo de dados e um 
conjunto de operadores definidos sobre esses dados. 
 
 
Um tipo abstrato de dados deve sempre ser representado por meio dos 
recursos específicos de uma linguagem de programação. 
 
 
Um tipo abstrato de dados é um modo particular de armazenamento e 
organização de dados em um computador de modo que possam ser usados 
eficientemente. 
 
 
Um tipo abstrato de dados descreve, além do que se pode fazer com os 
dados, como as operações serão efetivamente implementadas. 
 
 
É fundamental que os tipos abstratos de dados proponham um conjunto 
eficiente de algoritmos para realização de suas operações. 
 
 
 
Explicação: 
 
Um tipo abstrato de dados é composto por um modelo de dados e um 
conjunto de operadores definidos sobre esses dados. 
Verdadeiro. Por definição de TAD (tipo abstrato de dados). 
 
Um tipo abstrato de dados é um modo particular de armazenamento e 
organização de dados em um computador de modo que possam ser usados 
eficientemente. 
Falso. Quando se pensa em TAD não há vínculos com implementação. 
 
Um tipo abstrato de dados descreve, além do que se pode fazer com os 
dados, como as operações serão efetivamente implementadas. 
FAlso. Não se pensa em implementação quando se trabalha com TAD. 
 
É fundamental que os tipos abstratos de dados proponham um conjunto 
eficiente de algoritmos para realização de suas operações. 
FAlso. Não se pensa em implementação ou eficiência quando se trabalha com 
TAD. Se pensa na semântica das operações. 
 
Um tipo abstrato de dados deve sempre ser representado por meio dos 
recursos específicos de uma linguagem de programação. 
 Falso : Não se pensa em programa ou na linguagem de programação, pois o TAD 
não está vinculado à implementação. 
 
 
 
 
 
 
 
2. 
 
 
O que é estrutura de dados? 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('902177','7118','2','3520944','2');
 
 
É uma forma determinada de armazenamento de dados em um banco de 
dados. 
 
 
É um conjunto de comandos para uma tarefa específica referenciada por um 
nome no algoritmo principal, retornando um determinado valor no seu 
próprio nome. 
 
 
É um modo particular de armazenamento e organização de dados em um 
computador de modo que possam ser usados eficientemente. 
 
 
É um conjunto de técnicas de programação. 
 
 
É uma sequência finita de instruções bem definidas e não ambíguas, cada 
uma das quais devendo ser executadas mecânica ou eletronicamente em um 
intervalo de tempo finito e com uma quantidade de esforço finita. 
 
 
 
Explicação: 
Estrutura de dados não é banco de dados . Estrutura de dados não é Tipo de dados. 
Estrutura de dados não é ¿ É um conjunto de comandos para uma tarefa específica referenciada por um 
nome no algoritmo principal, retornando um determinado valor no seu próprio nome¿ que no caso, fala de 
função. 
 
Estrutura de dados não é ¿ É uma sequência finita de instruções bem definidas e não ambíguas, cada uma 
das quais devendo ser executadas mecânica ou eletronicamente em um intervalo de tempo finito e com uma 
quantidade de esforço finita.¿ Esta definição é de algoritmo. 
 
Portanto, Estrutura de Dados é ¿ É um modo particular de armazenamento e organização de dados em 
um computador de modo que possam ser usados eficientemente.¿ 
 
Na Aula 1 do conteúdo online há elementos para tal questão. 
 
 
 
 
 
 
 
3.A forma correta para imprimir o valor do último elemento de 
um vetor v com n posições é: 
 
 
 
cout << v[ultimo]; 
 
 
cin >> v[-1]; 
 
 
cout << v[n]; 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('605718','7118','3','3520944','3');
 
 
cout << v[n-1]; 
 
 
cout << v[n+1]; 
 
 
 
 
 
 
 
4. 
 
 
 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 ? 
 
 
 
Fila 
 
 
 Árvore 
 
 
Grafo 
 
 
 Lista 
 
 
 Pilha 
 
 
 
 
 
 
 
5. 
 
 
Diferentes tipos de estrutura de dados são adequadas a 
diferentes tipos de aplicação e algumas são altamente 
especializadas, destinando-se a algumas tarefas específicas. 
Dessa forma a definição de Estrutura de Dados está expressa na 
alternativa: 
 
 
 
É um modo de distribuição e organização de dados em uma rede de 
computador de modo que possam ser usados de modo eficiente. 
 
 
É um modo de utilização de dados nos programas de computador. 
 
 
São os nomes dados as variáveis na montagem de uma rotina. 
 
 
É um modo particular de armazenamento e organização de dados em um 
computador de modo que possam ser usados de modo eficiente. 
 
 
É um modo de deleção de dados em um computador. 
 
 
 
Explicação: 
Analisando cada item : 
 
É um modo particular de armazenamento e organização de dados em um 
computador de modo que possam ser usados de modo eficiente. 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('619021','7118','4','3520944','4');
javascript:duvidas('19660','7118','5','3520944','5');
Correta. 
 
É um modo de distribuição e organização de dados em uma rede de 
computador de modo que possam ser usados de modo eficiente. 
FAlso. Não há distribuição de dados ou organização de dados em uma rede via 
estrutura de dados. 
 
É um modo de utilização de dados nos programas de computador. 
FAlso. Não se diz como se utiliza dados. Variáveis armazenam dados, por 
exemplo e em atribuições ou em expressões também utilizamos dados. 
 
São os nomes dados as variáveis na montagem de uma rotina. 
FAlso. Nomes de variáveis são identificadores. 
 
É um modo de deleção de dados em um computador. 
Falso. Para "deletar" um dado não temos que usar estrutura de dados. 
 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
 
6. 
 
 
Das estruturas de dados a seguir aquela que NÃO é uma 
estrutura linear é : 
 
 
 
Grafo. 
 
 
Fila. 
 
 
Vetor. 
 
 
Lista. 
 
 
Pilha. 
 
 
 
Explicação: 
Lineares : lista, pilha, fila, deque. Com ou sem vetor, que é linear. 
Não lineares : árvore e grafo. 
 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('1172482','7118','6','3520944','6');
 
 
 
 
 
 
7. 
 
 
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 III e IV estão corretas. 
 
 
As alternativas II e IV estão corretas. 
 
 
As alternativas I e II estão corretas 
 
 
 
 
 
 
 
8. 
 
 
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 e V são afirmativas verdadeiras 
 
 
II, IV, V e VI são afirmativas verdadeiras 
 
 
I, III, IV e VI são afirmativas verdadeiras 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('641650','7118','7','3520944','7');
javascript:duvidas('566196','7118','8','3520944','8');
 
 
II, IV e V são afirmativas verdadeiras 
 
 
I, II, III e VI são afirmativas verdadeiras 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
1. 
 
 
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; 
} 
 
 
 
 
 
2 e 9 
 
 
4 e 12 
 
 
4 e 9 
 
 
9 e 16 
 
 
2 e 13 
 
 
 
Explicação: 
Executando o programa, passo a passo, temos : 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('830144','7118','1','3520944','1');
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 
 
 
 
 
 
 
 
2. 
 
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; 
} 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('1184239','7118','2','3520944','2');
 
main() { 
 cout << func1 (132041); 
} 
Marque a opção correta que mostra o que é impresso 
na tela. 
 
 
 
3 
 
 
4 
 
 
1 
 
 
6 
 
 
2 
 
 
 
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çãopassando 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. 
 
 
 
 
 
 
 
3. 
 
 
Informe qual deverá ser a saída do programa abaixo: 
 
#include 
void func(int *x) 
{ 
 do{ 
 cout << *x << " "; 
 (*x)--; 
 }while(*x>0); 
} 
 
main() 
{ 
 int x=5; 
 func(&x); 
 cout << x; 
 system("pause"); 
} 
 
 
5 4 3 2 1 0 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('261121','7118','3','3520944','3');
 
 
5 4 3 2 1 6 
 
 
5 3 4 2 1 0 
 
 
5 4 3 2 1 5 
 
 
5 3 4 2 1 4 
 
 
 
 
 
 
 
4. 
 
 
#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 e possui parâmetros. 
 
 
Não retorna valor e possui parâmetros. 
 
 
Retorna valor e não possui parâmetros. 
 
 
Retorna valor. 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('2824173','7118','4','3520944','4');
 
 
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. 
 
 
 
 
 
 
 
5. 
 
 
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: 
 
 
 
Registro. 
 
 
Passagem por valor. 
 
 
Ponteiros. 
 
 
Envio de inteiro. 
 
 
Envio de valor. 
 
 
 
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. 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('28147','7118','5','3520944','5');
 
 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. 
 
 
 
 
 
 
 
6. 
 
 
Sobre funções, é correto afirmar: 
 
 
 
Obrigatoriamente devem possuir parâmetros. 
 
 
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 podem ser chamadas dentro de outras funções. 
 
 
Não devem conter variáveis locais em seu código. 
 
 
 
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. 
 
 
 
 
 
 
 
7. 
 
Ao definirmos uma função, podemos afirmar: 
I Toda função tem parâmetros 
II Quando nada retorna, o tipo é void 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('902261','7118','6','3520944','6');
javascript:duvidas('704047','7118','7','3520944','7');
 
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ção chamada 
Após uma análise das afirmativas acima, escolha a opção 
correta. 
 
 
 
Somente II III e IV estão corretas 
 
 
Somente II e III estão corretas 
 
 
Somente II e IV estão corretas 
 
 
Somente II está correta 
 
 
Somente I e II estão corretas 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
 
8. 
 
 
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. 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('1184204','7118','8','3520944','8');
 
 
102 
 
 
90 
 
 
100 
 
 
80 
 
 
104 
 
 
 
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 
13 36 
15 49 
17 64 
19 81 
21 ... Teste dará falso 100 
Retorna o valor 100 que é impresso na main. 
 
 
1. 
 
 
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. 
 
 
 
tipo parametros(int a, int b); 
 
 
tipo parametros(parametros); 
 
 
retorno nomeFuncao(parametros); 
 
 
void float(int a, int b); 
 
 
nome tipo(parametros); 
 
 
 
Explicação: 
Por definição, o protótipo de uma função é formado da seguinte forma : 
 nome_da_função ( ); 
 
 
 
 
 
 
 
2. 
 
 
 Assinale a opção CORRETA. O protótipo da função que 
permitirá calcular o volume de um paralelepípedo com medidas 
a, b e c de acordo com o trecho da chamada : cout << 
"Volume = " << volume(a,b,c); 
 
 
 
float volume (float, float, float); 
 
 
void volume (float, float, float &); 
 
 
float volume (float, float); 
 
 
float volume (float ; float ; float); 
 
 
void volume (float , float); 
 
 
 
Explicação: 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('685256','7118','1','3520944','1');
javascript:duvidas('983139','7118','2','3520944','2');
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 estavamna 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. 
 
 
 
 
 
 
 
 
3. 
 
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; 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('980572','7118','3','3520944','3');
 
O que será impresso? 
 
 
 
2; 2; 1 
 
 
2; 2; 4 
 
 
1; 2; 4 
 
 
1; 3; 1 
 
 
4; 2; 4 
 
 
 
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 
 
 
 
 
 
 
 
4. 
 
Considere a função: 
void dobro(int x) { 
 x = 10 * x; 
} 
Qual será o valor impresso na tela quando o programa 
principal for executado? 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('609834','7118','4','3520944','4');
 
int main() { 
int n; 
n = 5; 
dobro(n); 
cout << n; 
return 0; 
} 
 
 
 
 
5 
 
 
0 
 
 
Haverá um erro de compilação 
 
 
50 
 
 
10 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
 
5. 
 
 
Caso uma estrutura homogênea (vetor) seja passada como 
parâmetro para uma função, então: 
 
 
 
Essa passagem é "por referência" 
 
 
Essa passagem pode ser "por valor" ou "por referência" 
 
 
Haverá um erro de compilação, pois vetores não podem ser parâmetros de 
funções 
 
 
Essa passagem é "por valor" 
 
 
Todos os valores contidos no vetor são copiados para a função 
 
 
 
Explicação: 
Quando o vetor é um parâmetro de uma função ele é sempre passado por 
referência, não havendo outra possibilidade. Não ocorrerá erro, se o vetor for 
devidamente passado para a função. 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('1164914','7118','5','3520944','5');
 
 
 
 
 
 
 
6. 
 
 
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 = 1000 Valor = 85 
sendo que z é um parâmetro passado por valor 
 
 
 
 
Será impresso 
Auxiliar = 15 
Result = 1000 Valor = 85 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('1083256','7118','6','3520944','6');
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 = 999 Valor = 85 
sendo que z é um parâmetro passado por referência 
 
 
 
 
 
 
 
 
7. 
 
 
Assinale a opção certa. 
 Quando não se escreve o protótipo de uma função ... 
 
 
 
A definição da função deverá ser escrita, obrigatoriamente, após o 
programa principal. 
 
 
O programa não funcionará de forma alguma. 
 
 
A chamada da função poderá ser feita em qualquer hipótese. 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('95280','7118','7','3520944','7');
 
 
A chamada da função não poderá ser feita em qualquer hipótese. 
 
 
É preciso definir a função antes do programa principal. 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
 
8. 
 
 
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 13 
 
 
Valores: 10 13 
 
 
Valores: 10 10 
 
 
Valores: 31 01 
 
 
Valores: 13 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; 
} 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('2833990','7118','8','3520944','8');
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 
 
 
 
 
 
 
1. 
 
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; 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('2824180','7118','1','3520944','1');
 
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: -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: -200 Valor de B: 20 
 
 
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 
 
 
 
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 dentroda função FUNC2 : -200 
 Valor de B : 30 
 
 
 
 
 
 
 
2. 
 
 
Considere a função abaixo: 
void func (int a, int &b) { 
 a++; 
 b = a*2; 
} 
e o seguinte trecho de código na função main : 
int x=2, y=3; 
func (x,y); 
func (y,x); 
cout << x << " ; " << y; 
Após a execução do cout o que será impresso ? 
 
 
 
6; 14 
 
 
2; 6 
 
 
14; 6 
 
 
4; 12 
 
 
2; 12 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('1025891','7118','2','3520944','2');
 
 
 
Explicação: 
 Fazendo um teste de mesa, chegaremos na opção 
correta. Iniciando a execução pela main, temos que x recebe 
2 e y recebe 3. 
Em seguida, na 1ª. chamada de func, os valores de x e de y, 
respectivamente, 2 e 3, são passados para a função. 
Executando a função func, que possui o parâmetro a passado 
por valor e o parâmetro b passado por referência (usa &) ... 
void func (int a, int &b) { 
a++; 
b = a*2; 
} 
Temos que a recebeu 2 e b recebeu 3. Daí, a ficará 3 e b 
receberá 6. 
Assim, ao terminar a função func e retornarmos para a main 
teremos x sem alteração igual a 2 e y com alteração igual a 6. 
Após voltarmos para a main, temos uma nova chamada de 
func que recebe os valores de y e de x, respectivamente, que 
são 6 e 2. Na 2ª. chamada de func para esses valores, teremos 
que a recebe 6 e y recebe 2. Dentro da função, temos que a é 
incrementado para 7 e que b recebe 7 * 2 que dá 14. Ao 
terminarmos a execução da função, temos que y não sofreu 
mudança, ficando com o valor 6 e que x mudou para 
14. Logo, será impresso 14;6 
Logo, as demais opções são incorretas. 
 
 
 
 
 
 
 
 
3. 
 
 
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; 
} 
 
 
 
2, 2, 9 
 
 
3, 2, 8 
 
 
3, 5, 8 
 
 
4, 5, 9 
 
 
2, 5, 10 
 
 
 
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 : 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('1143053','7118','3','3520944','3');
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. 
 
 
 
 
 
 
 
 
 
4. 
 
 
1) O que será impresso pela função Eureka ? Assinale a 
opção correta. 
 
void Eureka() 
 { 
 for (int i = 1; i <= 10; i++) 
 if (i % 2 == 0) 
 cout << i << " "; 
 else 
 if (i % 7 == 0) 
 return; 
 } 
 
 
 
 
2 4 6 8 10 
 
 
2 4 6 
 
 
Nada é impresso, pois a função não compila. Para a função compilar, 
deveria ter int no lugar de void, já que há return na função. 
 
 
2 4 6 8 
 
 
Nada é impresso, pois a função não compila. A função não deveria usar 
return, pois não está de acordo com o uso de void. 
 
 
 
 
 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('605163','7118','4','3520944','4');
javascript:duvidas('862492','7118','5','3520944','5');
 
5. 
 
 
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 
 
 
5 
 
 
0 
 
 
3 
 
 
10 
 
 
 
Explicação: 
A função não retorna valor, então o valor de "n" não é alterado permanecendo 
igual a 5. 
 
 
 
 
 
 
 
6. 
 
 
Uma função possui um valor de retorno inteiro, recebe por 
valor um inteiro como primeiro parâmetro e por referência um 
inteiro como segundo parâmetro. Qual das respostas abaixo 
poderia representar o protótipo dessa função: 
 
 
 
int func (int &a, int b); 
 
 
int func (int a, int &b); 
 
 
void func (int a, int &b); 
 
 
void func (int &a, int &b); 
 
 
int func (&int, int); 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
 
7. 
 
No programa abaixo, diga em que área de memória serão 
alocados os elementos de dados y e r, respectivamente. 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('610540','7118','6','3520944','6');
javascript:duvidas('30948','7118','7','3520944','7');
 
#include 
using namespace std; 
int x, y; 
float media( float a, float b ) 
{ float tmp; 
tmp = (a + b ) / 2.0; 
return ( tmp ); 
} 
int main() 
{ 
float r; 
cout<<"Informe 2 valores: "; 
cin>>x>> y; 
r = media( x, y ); 
cout<<"\nMedia = "<< r<<"\n"; 
system ("pause"); 
} 
 
 
 
( ) área de dados globais / área de pilha 
 
 
( ) área de registro / área de dados globais 
 
 
( ) área de dados globais / área de registro 
 
 
( ) área de registro / área de pilha 
 
 
( ) área de pilha / área de registro 
 
 
 
Explicação: 
Como y e r são variáveis, ficarão armazenadas em na área de dados globais / área 
de pilha 
 
 
 
 
 
 
 
8. 
 
 
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 Grafos 
 
 
As funções 
 
 
Os Vetores 
 
 
As Filas 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('641668','7118','8','3520944','8');
 
 
As Estruturas de Dados 
 
 
 
 
1. 
 
 
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 
 
 
 
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. 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('1184202','7118','1','3520944','1');
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 
 
 
 
 
 
 
 
 
 
 
2. 
 
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]; 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('1184216','7118','2','3520944','2');
 
 } 
 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. 
 
 
 
50 
 
 
30 
 
 
40 
 
 
20 
 
 
60 
 
 
 
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. 
 
 
 
 
 
 
 
3. 
 
 
 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('267928','7118','3','3520944','3');
 
 
O programa executa perfeitamente independente da ordem 
das funções já que existem os seus protótipos. 
 
 
O programa não executa corretamente, pois os protótipos 
estão fora da ordem em que as funções são descritas. 
 
 
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 as funções 
devem ser descritas antes da função main(), para que o 
compilador consiga reconhecê-las. 
 
 
Gabarito 
Coment. 
 
 
 
 
 
 
 
4. 
 
 
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; n = 5; dobro(n); cout 
<< n; return 0; } 
 
 
 
Haverá um erro de compilação 
 
 
20 
 
 
10 
 
 
0 
 
 
5 
 
 
 
 
 
 
 
5. 
 
 
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 25 
 
 
15 e 15 
 
 
25 e 15 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('258875','7118','4','3520944','4');
javascript:duvidas('747622','7118','5','3520944','5');
 
 
0 e 5 
 
 
25 e 25 
 
 
 
Explicação: 
Analisando passo a passo, temos : 
x é declarado e inicializado com 15. Daí, testa-se a condição do if, que é 
verdadeira. Em seguida, entra-se no bloco do if onde um outro x é declarado, 
recebe 25 e é impresso. Terminado o bloco do if, o x local ao bloco do if não é 
mais enxergado. Então, ao executarmos a última linha do cout, que está fora do if, 
vemos que o valor de x impresso é 15. 
Logo, a resposta correta é 25 e 15 
 
 
 
 
 
 
 
6. 
 
 
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. 
 
 
 
Em duas funções diferentes temos duas variáveis também diferentes com o 
mesmo nome apresentando o mesmo valor. 
 
 
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. 
 
 
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 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. 
 
 
 
Explicação: 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('28148','7118','6','3520944','6');
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. 
 
 
 
 
 
 
 
7. 
 
 
Blocos únicos de códigos que realizam diversas tarefas 
distitintas são de dificil manutenção. Portanto, utiliza-se a 
tecnica da modularização de programas, a fim de facilitar a 
implementação e a manutenção dos programas. Esta técnica, 
também chamada de modularização, tem como principal 
elemento: 
 
 
 
Os Grafos 
 
 
As funções 
 
 
As Estruturas de Dados 
 
 
As Filas 
 
 
Os Vetores 
 
 
 
 
 
 
 
8. 
 
Considere o trecho de um programa escrito em C++. 
 int func1 (int n1, int n2) { 
 int aux = n1 % n2; 
 while ( aux != 0) { 
 n1 = n2; 
 n2 = aux; 
 aux = n1 % n2; 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('616421','7118','7','3520944','7');
javascript:duvidas('1184211','7118','8','3520944','8');
 
 } 
 return n2; 
} 
int main() { 
 cout << func1 (27, 18); 
} 
Marque a opção correta que mostra o que é impresso na tela. 
 
 
 
3 
 
 
27 
 
 
6 
 
 
18 
 
 
9 
 
 
 
Explicação: 
Fazendo um teste de mesa, temos que o valor 9 retornado 
e impresso na main. 
Iniciando um teste de mesa.... 
n1 n2 aux 
27 18 9 
18 9 0 
continua... continua... continua.. 
 
 
 
 
 
 
1. 
 
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á 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('2835767','7118','1','3520944','1');
 
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: 10 13 
 
 
Valores: 31 01 
 
 
Valores: 13 13 
 
 
Valores: 13 10 
 
 
Valores: 10 10 
 
 
 
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 
 
 
 
 
 
 
 
2. 
 
 
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 I 
 
 
Apenas III 
 
 
Apenas II 
 
 
Apenas I e II 
 
 
Nenhuma está correta 
 
 
 
Explicação: 
Analisando cada afirmativa ... 
I . Falso. Em C++ os vetores passados como parâmetros são sempre passadospor 
referência. 
II. FAlso. Variáveis globais são uma péssima forma de usar recursos, 
comprometendo principalmente a manutenção do programa. 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('1025880','7118','2','3520944','2');
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. 
 
 
 
 
 
 
 
3. 
 
 
Considere a função Adivinhe , n = 4 e que X é formado pela 
sequência "algoritmo". Assinale a opção que corretamente 
mostra o vetor Y ao fim da execução da função Adivinhe. 
void Adivinhe (char X[ ], char Y [ ], int n) { 
 int i, j; 
 j = 0; 
 for ( i = n; i >= 0; i--) 
 { 
 Y[j] = X[i]; 
 j++; 
 } 
 Y[j] = '\0'; 
} 
 
 
 
algo 
 
 
rogla 
 
 
ogla 
 
 
algor 
 
 
Ocorre erro, pois a função, que é do tipo void, não retorna o vetor Y. 
 
 
 
Explicação: 
Não há outra opção, pois a questão é objetiva. Vejamos passo a passo : 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('1083271','7118','3','3520944','3');
X armazena "algoritmo" e Y será gerado. 
j i 
0 4 
1 3 
2 2 
3 1 
4 0 
5 -1 ... falha o teste i >= 0 
A cada rodada do loop temos, considerando os valores de j e i acima, as seguintes 
atribuições : 
Y[0] recebe X[4], que é 'r' 
Y[1] recebe X[3], que é 'o' 
Y[2] recebe X[2], que é 'g' 
Y[3] recebe X[1], que é 'l' 
Y[4] recebe X[0], que é 'a' 
Y[5] recebe '\0' 
Daí, Y será rogla 
 
 
 
 
 
 
 
4. 
 
Considere o trecho de um programa escrito em C++ : 
long func1 (int n1) { 
 int ft=1, i = 1; 
 while ( i <= n1) { 
 ft *= i; 
 i++; 
 } 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('1184209','7118','4','3520944','4');
 
 return ft; 
} 
main() { 
 cout << func1 (5); 
} 
Marque a opção correta que mostra o que é impresso na tela. 
 
 
 
120 
 
 
1 
 
 
60 
 
 
24 
 
 
5 
 
 
 
Explicação: 
Acompanhando passo a passo : 
long func1 (int n1) { 
 int ft=1, i = 1; 
 while ( i <= n1) { 
 ft *= i; 
 i++; 
 } 
 return ft; 
} 
main() { 
 cout << func1 (5); 
} 
Passo a passo : 
1) Começando a execução pela main ... func1 é chamada e é passado o valor 5. 
2) Entrando na função, temos que n1 recebeu 5, i recebeu 1 e ft recebeu 1. 
3) Ainda na função func1 ... teste do loop ... 1 <= 5 ? Sim. 
 Então, ft recebe 1*1, que dá 1 e i passa a valer 2. Acompanhar na tabela desde 
o início da execução de func1 
ft i i <= n1 
1 1 1 <= 5 / Sim 
1 2 2 <= 5 ? Sim 
2 3 3 <= 5 ? sim 
6 4 4 <= 5 ? Sim 
24 5 5 <= 5 ? Sim 
120 6 6 <= 5 ? FAlso 
SErá retornado o valor de ft que é 120. Volta-se então para a main e o valor 120 é 
impresso. 
 
 
 
 
 
 
 
5. 
 
 
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. 
 
 
 
void 
 
 
número 
 
 
caracter 
 
 
valor 
 
 
referência 
 
 
 
Explicação: 
Esse é o conceito de passagem por referência. 
 
 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('591938','7118','5','3520944','5');
 
 
 
 
6. 
 
 
Considera a FUNÇÃO abaixo: 
 
void inverte(int &x, int &y) 
{ int aux = x; 
x = y; 
y = aux; } 
Quais valores serão impressos na tela quando o seguinte 
programa principal for executado? 
int main() 
{ int a = 18, b = 28; 
inverte(a, b); 
cout << a <<" e "<< b; 
return 0; } 
 
 
 
08 e 18 
 
 
18 e 28 
 
 
18 e 18 
 
 
28 e 08 
 
 
28 e 18 
 
 
 
Explicação: 
Teste de Mesa 
a b x y aux 
18 28 //Na main() 
18 28 18 28 //Quando a função é chamada x, recebe o endereço de a e 
y, o de b. Logo acessam os mesmos endereços 
18 28 18 28 18 //Na função, aux é declarada e inicializada com o valor de x 
18 28 28 28 18 //Na função x = y; Deixará x com valor 28 
18 28 28 18 18 //Na função y = aux; Deixará y com valor 18 
 
Como a função é void, nada retorna e nem precisa porque os valores foram trocados 
pela função misterio(...) que recebeu por passagem por referência. 
 
 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('862507','7118','6','3520944','6');
 
 
 
 
7. 
 
 
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 do dado do valor retornado da função para quem a chamou. 
 
 
o tipo das variáveis que serão utilizadas dentro da função. 
 
 
o protótipo da função. 
 
 
o tipo dos dados dos parâmetros que são passados à função quando da sua 
chamada. 
 
 
 
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. 
 
 
 
 
 
 
 
8. 
 
#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; 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('1070695','7118','7','3520944','7');
javascript:duvidas('2824173','7118','8','3520944','8');
 
a = 10; b = 12.3; 
SOMA(b,a); 
} 
A função SOMA acima possui as seguintes características : 
 
 
 
Retorna valor. 
 
 
Retorna valor e não possui parâmetros. 
 
 
Retorna valor e possui parâmetros. 
 
 
Não retorna valor e possui parâmetros. 
 
 
Não retorna valor e não possui parâmetros. 
 
 
 
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. 
 
 
A que 
estrutura 
pertence a 
definição: " 
Uma 
estrutura não 
linear que é 
um conjunto 
de nós e suas 
conexões 
entre eles e 
não há 
limitação de 
vértices. 
Muito 
 
utilizada para 
representação 
de percursos 
em mapas." 
 
 
 
 
 
 
1. 
 
 
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 sequencial 
 
 
pesquisa indexada 
 
 
pesquisa de cadeias 
 
 
pesquisa cadeias indexada 
 
 
pesquisa binária 
 
 
Gabarito 
Coment. 
 
 
 
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
http://simulado.estacio.br/bdq_simulados_exercicio.asp
javascript:duvidas('30945','7118','1','3520944','1');
 
 
 
 
2. 
 
 
Com a utilização das estruturas de dados e seus tipos, em 
algumas situações é imprescindível a criação de funções que 
façam determinada verificação ou ação nestas estruturas. Dessa 
forma, analise a função abaixo e marque corretamente a 
alternativa

Continue navegando

Outros materiais