Baixe o app para aproveitar ainda mais
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
Compartilhar