Buscar

ESTRUTURA DE DADOS

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 155 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 155 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 155 páginas

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1a Questão
	
	
	
	Estão entre algumas das possíveis formas de estruturas de dados:
		
	
	cout, Funções, vetores
	
	Listas, vetores, cin
	
	Grafos, funções, fila
	
	Árvores binárias, pilhas, algoritmos
	 
	Árvores binárias, pilhas, vetores
	Respondido em 09/04/2020 15:20:53
	
Explicação:
	
	Árvores binárias, pilhas, vetores
	Verdadeiro.  
	
	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.
	
	
	 
	
	 2a Questão
	
	
	
	
	Em relação a estruturas de dados, avalie a correspondência existente entre as estruturas de dados Lineares e Não Lineares com suas respectivas coleções de dados.
 
 
A correta associação entre os elementos das duas tabelas é:
 
 
 
 
 
 
 
 
 
 
		
	 
	a1, b1, c2, d1
	
	a1, b2, c1, d1.
	
	a1, b1, c2, d2.
	
	a2, b1, c2, d1.
	
	a2, b2, c1, d2.
	Respondido em 09/04/2020 15:21:08
	
Explicação:
Por definição : pilha, fila, lista, vetor são estruturas lineares.  Já árvore e grafos são estruturas de dados não lineares.
	
	
	Gabarito
Coment.
	
	 
	
	 3a Questão
	
	
	
	
	Observe o trecho do programa em C++ abaixo e, após, entrar com os valores sugeridos para sua execução assinale a alternativa que representa a resposta final.
cin >> a;
cin >> b;
cin >> c;
cin >> d;
cout << a;
cout << b;
cout << c;
cout << d;
cout << d;
cout << c;
cout << b;
cout << a;
		
	
	Após a impressão dos valores pela ordem teremos duas pilhas.
	
	Após a impressão dos valores pela ordem teremos uma pilha e uma fila.
	 
	Após a impressão dos valores pela ordem teremos uma fila e uma pilha.
	
	Após a impressão dos valores pela ordem teremos uma fila e um grafo.
	
	Após a impressão dos valores pela ordem teremos duas filas.
	Respondido em 09/04/2020 15:21:20
	
	
	 
	
	 4a Questão
	
	
	
	
	Preciso fazer uma relação de tudo o que levar em minha viagem de mochila pela Europa.  A estrutura de dados mais adequada para armazenar tudo que preciso levar é ...
		
	
	grafo
	 
	lista
	
	pilha
	
	fila
	
	árvore
	Respondido em 09/04/2020 15:21:34
	
Explicação:
Conforme gabarito e aula 1.
	
	
	 
	
	 5a Questão
	
	
	
	
	A forma correta para imprimir o valor do último elemento de um vetor v com n posições é:
		
	
	cout << v[ultimo];
	
	cout << v[n];
	
	cout << v[n+1];
	 
	cout << v[n-1];
	
	cin >> v[-1];
	Respondido em 09/04/2020 15:21:43
	
	
	 
	
	 6a Questão
	
	
	
	
	Estão entre algumas das possíveis formas de se estruturar dados:
		
	 
	Grafos, lista ordenada, vetores.
	
	Lista encadeada, vetores, algoritmos.
	
	Grafos, algoritmos, fila.
	
	Algoritmos, lista ordenada, vetores.
	
	Grafos, lista ordenada, algoritmos.
	Respondido em 09/04/2020 15:21:42
	
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.
	
	 
	
	 7a Questão
	
	
	
	
	É um exemplo de TAD Não Linear:
		
	
	Listas
	
	Filas de Prioridade
	
	Pilhas
	
	Filas
	 
	Grafos
	Respondido em 09/04/2020 15:22:02
	
Explicação: Um grafo é um tipo de dados abstrato não linear
	
	
	 
	
	 8a Questão
	
	
	
	
	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.
	 
	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.
	
	É fundamental que os tipos abstratos de dados proponham um conjunto eficiente de algoritmos para realização de suas operações.
	Respondido em 09/04/2020 15:22:10
	
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.
	1a Questão
	
	
	
	Analise as afirmativas abaixo e selecione a alternativa correta.
 
I Algumas aplicações da estrutura de dados grafo são: Diagrama de Entidade Relacionamento e Redes de computadores. 
 
II Árvore e lista duplamente encadeada são estruturas não lineares. 
III A Fila é uma estrutura não linear e a inserção de um elemento acontece ao final.  
IV A Lista é uma das estruturas de dados mais simples, mas não se pode ordená-la.
 
V O uso de ponteiros é fundamental para construção de listas encadeadas.
		
	
	III e V são verdadeiras
	
	II e V são verdadeiras
	
	I , II e IV são verdadeiras
	
	II E IV são verdadeiras
	 
	I e V são verdadeiras
	Respondido em 10/04/2020 21:53:54
	
	
	Gabarito
Coment.
	
	 
	
	 2a Questão
	
	
	
	
	Podemos dizer que estrutura de dados é:
		
	
	Uma sequência de passos computacionais que transforma uma entrada em uma saída previamente determinada.
	
	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.
	Respondido em 10/04/2020 21:54:08
	
	
	Gabarito
Coment.
	
	 
	
	 3a Questão
	
	
	
	
	Sobre estrutura de dados, identifique o que está correto afirmar.
I. Pilha é uma estrutura de dados com acesso restrito aos seus elementos, uma vez que eles são colocados e retirados por um único lado e são ordenados pelo princípio LIFO (last in first out). Assim, sempre que um elemento é adicionado ou retirado seu topo é alterado.
II. Pilha é o tipo de estrutura usada, por exemplo, na avaliação de expressões numéricas, na recursividade e pelos compiladores, na passagem de parâmetros para as funções.
III. Registro é uma estrutura básica que permite guardar coleções de dados de diferentes tipos, sendo normalmente utilizado quando um objeto tem diferentes atributos, isto é, contém campos de diferentes tipos.
IV. Lista pode conter um número qualquer de elementos, expandindo-se ou contraindo-se conforme o elementos são inseridos ou retirados. Nesse tipo de estrutura, os acessos tanto podem ser feitos sequencialmente como diretamente.
V. Fila, assim como a pilha , é uma versão especial de lista, e como tal,seus elementos são ordenados pelo princípio LIFO (last in first out).
		
	
	II, IV e V.
	 
	I, II e III.
	
	I, III, IV e V.
	
	I, III e V.
	
	II, III, IV e V.
	Respondido em 10/04/2020 21:54:03
	
	
	Gabarito
Coment.
	
	 
	
	 4a Questão
	
	
	
	
	Das estruturas de dados a seguir aquela que NÃO é uma estrutura linear é :
		
	
	Pilha.
	
	Vetor.
	
	Fila.
	
	Lista.
	 
	Grafo.
	Respondido em 10/04/2020 21:54:06
	
Explicação:
Lineares : lista, pilha, fila, deque. Com ou sem vetor, que é linear.
Não lineares  : árvore e grafo.
 
	
	
	 
	
	 5a Questão
	
	
	
	
	O que é estrutura de dados?
		
	
	É 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.
	
	É 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 forma determinada de armazenamento de dados em um banco de dados.
	Respondido em 10/04/2020 21:54:19
	
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.
	
	
	 
	
	 6a Questão
	
	
	
	
	Estão entre algumas das possíveis formas de se estruturar dados:
		
	
	Grafos, lista ordenada, algoritmos.
	
	Grafos, algoritmos, fila.
	
	Lista encadeada, vetores, algoritmos.
	 
	Grafos, lista ordenada, vetores.
	
	Algoritmos, lista ordenada, vetores.
	Respondido em 10/04/2020 21:54:16
	
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.
	
	 
	
	 7a Questão
	
	
	
	
	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 particular de armazenamento e organização de dados em um computador de modo que possam ser usados de modo eficiente.
	
	São os nomes dados as variáveis na montagem de uma rotina.
	
	É 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 deleção de dados em um computador.
	Respondido em 10/04/2020 21:54:35
	
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.
	
	É 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.
	
	 
	
	 8a Questão
	
	
	
	
	Para organizar as fotos de minha família com os ancestrais de várias gerações, minha filha usou uma estrutura de dados que é .....  Assinale a opção certa.
		
	
	pilha
	
	fila
	
	grafo
	
	lista
	 
	árvore
	Respondido em 10/04/2020 21:54:41
	
Explicação:
Conforme gabarito e aula 1.
	
	
	1a Questão
	
	
	
	As estruturas de dados são utilizadas para manter dados ou informações organizados na memória, o que possibilita a otimização do uso destes dados. Porém, as estruturas guardam características especiais na manipulação destes dados, assim deve-se escolher a estrutura certa ou mais adequada para uma determinada aplicação. Portanto marque a opção que representa a melhor estrutura, quando se tem como requisitos principais o acesso aleatório aos dados e alocação destes de forma contínua na memória.
		
	
	Pilha Encadeada
	
	Fila Sequencial
	 
	Lista Sequencial
	
	Pilha Sequencial
	
	Lista Encadeada
	Respondido em 10/04/2020 22:45:24
	
	
	 
	
	 2a Questão
	
	
	
	
	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.
	
	Um tipo abstrato de dados descreve, além do que se pode fazer com os dados, como as operações serão efetivamente implementadas.
	 
	Um tipo abstrato de dados é composto por um modelo de dados e um conjunto de operadores definidos sobre esses dados.
	
	É 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 deve sempre ser representado por meio dos recursos específicos de uma linguagem de programação.
	Respondido em 10/04/2020 22:45:26
	
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.
	
	
	 
	
	 3a Questão
	
	
	
	
	É um exemplo de TAD Não Linear:
		
	
	Listas
	
	Filas de Prioridade
	
	Filas
	 
	Grafos
	
	Pilhas
	Respondido em 10/04/2020 22:45:30
	
Explicação: Um grafo é um tipo de dados abstrato não linear
	
	
	 
	
	 4a Questão
	
	
	
	
	Para organizar as fotos de minha família com os ancestrais de várias gerações, minha filha usou uma estrutura de dados que é .....  Assinale a opção certa.
		
	
	lista
	
	fila
	
	pilha
	 
	árvore
	
	grafo
	Respondido em 10/04/2020 22:45:35Explicação:
Conforme gabarito e aula 1.
	
	
	 
	
	 5a Questão
	
	
	
	
	Das estruturas de dados a seguir aquela que NÃO é uma estrutura linear é :
		
	
	Pilha.
	
	Vetor.
	 
	Grafo.
	
	Fila.
	
	Lista.
	Respondido em 10/04/2020 22:45:39
	
Explicação:
Lineares : lista, pilha, fila, deque. Com ou sem vetor, que é linear.
Não lineares  : árvore e grafo.
 
	
	
	 
	
	 6a Questão
	
	
	
	
	Podemos dizer que estrutura de dados é:
		
	
	A entrada, que satisfaz a quaisquer restrições impostas pelo problema, necessária para se calcular uma solução do problema.
	 
	O meio para armazenar e organizar dados com o objetivo de facilitar o acesso e as modificações.
	
	O que permite o armazenamento e a recuperação de dados independentemente de seu conteúdo.
	
	Uma sequência de passos computacionais que transforma uma entrada em uma saída previamente determinada.
	
	É a saída, que satisfaz a quaisquer restrições impostas pelo problema, necessária para se calcular uma solução do problema.
	Respondido em 10/04/2020 22:45:44
	
	
	Gabarito
Coment.
	
	 
	
	 7a Questão
	
	
	
	
	O que é estrutura de dados?
		
	
	É 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.
	
	É um conjunto de técnicas de programação.
	
	É 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.
	Respondido em 10/04/2020 22:45:37
	
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.
	
	
	 
	
	 8a Questão
	
	
	
	
	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 deleção de dados em um computador.
	
	É 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.
	Respondido em 10/04/2020 22:45:53
	
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.
	
	É 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.
	1a Questão
	
	
	
	  Assinale a opção CORRETA.  O protótipo da função que permitirá calcular o volume de um paralelepípedo com medidas a, b e c  de acordo com o trecho da  chamada  :     cout << "Volume  =   "  <<  volume(a,b,c);
		
	 
	float  volume (float, float, float);
	
	float volume (float ; float ; float);
	
	void volume (float , float);
	
	float volume (float, float);
	
	void volume (float, float, float &);
	Respondido em 09/04/2020 15:23:48
	
Explicação:
Resposta única.
Pela chamada da função
cout << "Volume  =   "  <<  volume(a,b,c);
temos que a função retorna um valor, que pelo enunciado, vemos que é do tipo float. Há ainda os valores de a, b e c que são medidas de uma figura geométrica. Logo, a, b e c são do tipo float.
Como protótipo é uma declaração temos :
tipo de retorno da função seguido do seu nome seguido de parênteses e dentro dos parênteses, temos os tipos das variáveis que estavam na chamada da função.
Logo :   float volume(float, float, float);  
Note a vírgula para separar os tipos e o ponto  e vírgula ao final.
 
	
	
	 
	
	 2a Questão
	
	
	
	
	No programa abaixo em C++, que sequência de valores serão impressos ? int x; x = 15; if (x > 0) { int x; x = 25; cout << x << endl; } cout << x << endl;
		
	
	15 e 25
	 
	25 e 15
	
	25 e 25
	
	15 e 15
	
	0 e 5
	Respondido em 09/04/2020 15:23:45
	
Explicação:
Analisando passo a passo, temos :
x é declarado e inicializado com 15. Daí, testa-se a condição do if, que é verdadeira. Em seguida, entra-se no bloco do if onde um outro x é declarado, recebe 25 e é impresso. Terminado o bloco do if, o x local ao bloco do if não é mais enxergado. Então, ao executarmos a última linha do cout, que está fora do if, vemos que o valor de  x impresso é 15.
Logo, a resposta correta é 25 e 15
	
	
	 
	
	 3a Questão
	
	
	
	
	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
	
	9 e 16
	 
	2 e 13
	
	4 e 9
	Respondido em 09/04/2020 15:24:05
	
Explicação:
Executando o programa, passo a passo, temos :
Na main, a recebe 2 e b recebe 3.  Note que a e b são variáveis globais.
Daí, ainda na main, a função dobro é chamada. Ao executar dobro, temos que o valor 2 é passado e x (local à dobro) recebe 2 * 2, que dá 4.
Ao terminar a função dobro, volta-se para a main, mas o valor de a passado não mudou, continuando 2.
Após a execução de dobro, a função triplo é chamada na main e é passado o valor de b,  que é  3.  Iniciando a execução da função triplo, temos que y recebe 3 e a função retorna 3 * 3, que é 9. Voltando para a main, temos que b recebe o valor retornado pela função, que é 9.
Até este ponto, temos que a vale 2 e b mudou para 9.
Em seguida, a função altera é chamada e são passados 2 e 9, respectivamente, para x e y.  Executando a função altera, temos que x recebe 2+2, que dá 4 e y recebe 4+9, que dá 13.  Como x é passado por valor e y por referência, temos que a mudará e b mudará (ambas na main).
Então, voltando para main temos que a vale 2 e que b vale 13. Assim, será impresso na tela
           2  e   13
	
	
	 
	
	 4a Questão
	
	
	
	
	Funções são semelhantes aos procedimentos, exceto que uma função sempre retorna um valor. Um exemplo de função seria o conjunto de instruções para calcular o fatorial de um número e após a função ser executada, ela deve retornar o fatorialdo número pedido. Marque a opção que representa um protótipo de função válido.
		
	
	void float(int a, int b);
	
	nome tipo(parametros);
	 
	retorno nomeFuncao(parametros);
	
	tipo parametros(parametros);
	
	tipo parametros(int a, int b);
	Respondido em 09/04/2020 15:23:59
	
Explicação:
Por definição, o protótipo de uma função é formado da seguinte forma :
   nome_da_função ( );
	
	
	 
	
	 5a Questão
	
	
	
	
	Diga, para o trecho do programa abaixo, qual a opção que representa a saída em tela.  Considere que o programa será compilado sem erros e irá executar também sem problemas .
void troca (int x, int y){
   int tmp;
   tmp = y;
   y = x;
   x = tmp;
}
int main( ) {
   int a = 13, b = 10;
   troca( a, b );
   cout<<"Valores: "<< a<<"\t"<< b<<< endl;
   system("pause");
}
		
	
	Valores: 10 10
	
	Valores: 10 13
	
	Valores: 13 13
	
	Valores: 31 01
	 
	Valores: 13 10
	Respondido em 09/04/2020 15:24:35
	
Explicação:
Acompanhando passo a passo a execução do trecho dado temos :
void troca (int x, int y){
   int tmp;
   tmp = y;
   y = x;
   x = tmp;
}
int main( ) {
   int a = 13, b = 10;
   troca( a, b );
   cout<<"Valores: "<< a<<"\t"<< b<<< endl;
   system("pause");
}
A execução começa pela main e os valores 13 e 10 são passados para a função na chamada em troca(a,b);
Ao iniciar a execução em troca, temos que x recebe 13 e y recebe 10. Mas x e y são parâmetros passados por valor então, nada ocorrerá com a e b na main. ASsim, após a função terminar sua execução e voltarmos para a main temos a seguinte impressão na tela :
Valores : 13  10
	
	
	 
	
	 6a Questão
	
	
	
	
	Ao definirmos uma função, podemos afirmar:
I Toda função tem parâmetros
II Quando nada retorna, o tipo é void
III Quando todos os parâmetros são do mesmo tipo, é suficiente usar o tipo uma vez e separar os nomes dos parâmetros por vírgulas
IV  Na passagem por valor, o endereço da variável da função chamadora é passado para a função chamada
Após uma análise das afirmativas acima, escolha a opção correta.
		
	 
	Somente II está correta
	
	Somente I e II estão corretas
	
	Somente II III e IV estão corretas
	
	Somente II e IV estão corretas
	
	Somente II e III estão corretas
	Respondido em 09/04/2020 15:24:28
	
	
	Gabarito
Coment.
	
	 
	
	 7a Questão
	
	
	
	
	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 3 4 2 1 0
	 
	5 4 3 2 1 0
	
	5 4 3 2 1 5
	
	5 4 3 2 1 6
	
	5 3 4 2 1 4
	Respondido em 09/04/2020 15:24:33
	
	
	 
	
	 8a Questão
	
	
	
	
	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;
     }
     return n2;
}
int main() {
    cout << func1 (27, 18);
}
Marque a opção correta que mostra o que é impresso na tela.
		
	
	27
	
	3
	
	6
	
	18
	 
	9
	Respondido em 09/04/2020 15:24:43
	
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..
 
	1a Questão
	
	
	
	Considere a função abaixo:
int func (int a, int& b){
   a = b - a;
   b = a * 2;
   a = b * 2;
   return a;
}
Considere o seguinte código na função main:
    int x = 2, y = 3, z;
    z = func (x, y);
    cout << x << "; " << y << "; " << z;
O que será impresso?
		
	
	2; 2; 1
	 
	2; 2; 4
	
	1; 2; 4
	
	4; 2; 4
	
	1; 3; 1
	Respondido em 10/04/2020 21:55:13
	
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
	
	
	 
	
	 2a Questão
	
	
	
	
	Funções são semelhantes aos procedimentos, exceto que uma função sempre retorna um valor. Um exemplo de função seria o conjunto de instruções para calcular o fatorial de um número e após a função ser executada, ela deve retornar o fatorial do número pedido. Marque a opção que representa um protótipo de função válido.
		
	
	tipo parametros(parametros);
	
	tipo parametros(int a, int b);
	
	nome tipo(parametros);
	 
	retorno nomeFuncao(parametros);
	
	void float(int a, int b);
	Respondido em 10/04/2020 21:55:20
	
Explicação:
Por definição, o protótipo de uma função é formado da seguinte forma :
   nome_da_função ( );
	
	
	 
	
	 3a Questão
	
	
	
	
	Considere a função abaixo: 
int func (int a, int &b) {
a = b - a;
b = a * 2;
a = b * 2;
return a;
}
Considere também o seguinte trecho de código no main :
int x=2, y=3, z;
z = func (x,y);
cout << x << "; " << y<< "; " << z;
Após a execução do cout, seria impresso:
		
	
	2; 2; 1
	
	1; 2; 4
	 
	2; 2; 4
	
	4; 2; 4
	
	1; 3; 1
	Respondido em 10/04/2020 21:55:12
	
Explicação:
Começando a execução pela main, temos que x recebe 2 e y recebe 3.
Chamando a função, são passados os valores 2 e 3, respectivamente para a e b. Note que b é passado por referência.
Dentro da função tem-se o seguinte :
a recebe 1, depois b recebe 2 e então, novamente, a é alterado e recebe 4. Daí, o valor de a igual a 4 é retornado para a main e é atribuído a z.
Voltando para a main, temos que x não mudou, ficando igual a 2. Temos ainda que z recebeu 4, o valor retornado pela função e finalmente, y foi alterado para 2.
Portanto, foi impresso 2;2;4, pois foram impressos os valores de x, y e z, respectivamente.
	
	
	 
	
	 4a Questão
	
	
	
	
	Assinale a opção certa.
 Quando não se escreve o protótipo de uma função ...
		
	 
	É preciso definir a função antes do programa principal.
	
	A chamada da função poderá ser feita em qualquer hipótese.
	
	A definição da função deverá ser escrita, obrigatoriamente, após o programa principal.
	
	O programa não funcionará de forma alguma.
	
	A chamada da função não poderá ser feita em qualquer hipótese.
	Respondido em 10/04/2020 21:55:19
	
	
	Gabarito
Coment.
	
	 
	
	 5a Questão
	
	
	
	
	A declaração de variáveis na programação é o ato de reservar um espaço na memória para poder armazenar valores de um determinado tipo. Essas variáveis podem ser classificadas como variáveis locais e globais. Sendo assim, qual das situações abaixo representa melhor o conceito das variáveis globais.
		
	
	Se modificarmos o valor da variável 'Y' na função "soma", e depois imprimirmos na tela esta variável em outra função, onde tambem está declarada a variável 'Y', será acusado um erro de compilação.
	
	Em uma função "resul" tem-se uma variável ali declarada por 'T' que recebe o valor inteiro 5. Ao tentar chamar esta variável em outra função é mencionado um warning.
	 
	Ao modificar o valor da variável 'X' na função "modifica" seu valor modificado poderá ser apresentado em qualquer outra função do programa.
	
	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".
	
	Em duas funções diferentes temos duas variáveis também diferentes com o mesmo nome apresentando o mesmo valor.
	Respondido em 10/04/2020 21:55:34
	
Explicação:
Uma variável é classificada com Global quando for declarada fora de todas as funções, significando que poderá ser alterada em qualquer uma delas.
A resposta correta é :
Ao modificar o valor da variável 'X' na função "modifica" seu valor modificado poderá ser apresentado em qualquer outra função do programa.
	
	
	Gabarito
Coment.6a Questão
	
	
	
	
	No programa abaixo em C++, que sequência de valores serão impressos ? int x; x = 15; if (x > 0) { int x; x = 25; cout << x << endl; } cout << x << endl;
		
	
	25 e 25
	
	0 e 5
	
	15 e 15
	
	15 e 25
	 
	25 e 15
	Respondido em 10/04/2020 21:55:27
	
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
	
	
	 
	
	 7a Questão
	
	
	
	
	Considere as seguintes afirmativas :
I) Os vetores em C++, quando passados como parâmetros de funções,  são obrigatoriamente passados "por valor" e não "por referência".
II) Variáveis globais são um recurso adequado para troca de informações entre funções distintas.
III) Caso uma função necessite retornar mais de um valor ao programa que a chamou, deve fazê-lo usando parâmetros passados "por valor".
As afirmativas corretas são:
		
	
	Apenas II
	
	Apenas III
	
	Apenas I e II
	
	Apenas I
	 
	Nenhuma está correta
	Respondido em 10/04/2020 21:55:33
	
Explicação:
Analisando cada afirmativa ...
I .   Falso. Em C++ os vetores passados como parâmetros são sempre passados por referência.
II.  FAlso. Variáveis globais são uma péssima forma de usar recursos, comprometendo principalmente a manutenção do programa.
III.  FAlso.  A função poderá retornar explicitamente um valor com return, mas terá que passar o outro parâmetro por referência e não por valor. Outra forma, será passar todos os parâmetros por referência.
Portanto, não opção correta.
	
	
	 
	
	 8a Questão
	
	
	
	
	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;
     }
     return n2;
}
int main() {
    cout << func1 (27, 18);
}
Marque a opção correta que mostra o que é impresso na tela.
		
	
	6
	
	27
	
	18
	 
	9
	
	3
	Respondido em 10/04/2020 21:55:37
	
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..
 
	1a Questão
	
	
	
	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
	
	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.
	
	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.
	
	2 4 6 8 10
	 
	2 4 6
	Respondido em 10/04/2020 22:46:16
	
	
	 
	
	 2a Questão
	
	
	
	
	Considere a seguinte função: void dobro(int x) { x = 2 * x; } Qual valor será impresso na tela quando o seguinte programa principal for executado? int main() { int n = 3; n = n + 2; dobro(n); cout << n; return 0; }
		
	
	3
	
	10
	
	20
	 
	5
	
	0
	Respondido em 10/04/2020 22:46:07
	
Explicação:
A função não retorna valor, então o valor de "n" não é alterado permanecendo igual a 5.
	
	
	 
	
	 3a Questão
	
	
	
	
	Considere a função abaixo:
void func (int a, int &b) {
    a++;
    b = a*2;
}
e o seguinte trecho de código na função  main :
int x=2, y=3;
func (x,y);
func (y,x);
cout << x << "  ;  " << y;
Após a execução do cout o que será impresso  ? 
		
	
	2; 12
	
	6; 14
	 
	14; 6
	
	4; 12
	
	2; 6
	Respondido em 10/04/2020 22:46:21
	
Explicação:
  Fazendo um teste de mesa, chegaremos na opção correta.  Iniciando a execução pela main, temos que x recebe 2 e y recebe 3.  
Em seguida, na 1ª. chamada de func,  os valores de x e de y, respectivamente, 2 e 3, são passados para a função.
Executando a função func, que possui o parâmetro a  passado por valor e o parâmetro b passado por referência (usa &) ...
void func (int a, int &b) {
a++;
b = a*2;
}
Temos que a recebeu 2 e b recebeu 3. Daí, a ficará 3 e b receberá 6.  
Assim, ao terminar a função func e retornarmos para a main teremos x sem alteração igual a 2 e y com alteração igual a 6.
Após voltarmos para a main, temos uma nova chamada de func que recebe os valores de y e de x, respectivamente, que são 6 e 2.  Na 2ª. chamada de func para esses valores, teremos que a recebe 6 e y recebe 2.  Dentro da função, temos que a é incrementado para 7 e que b recebe 7 * 2 que dá 14. Ao terminarmos a execução da função, temos que y não sofreu mudança, ficando com o valor 6  e que x mudou para 14.  Logo, será impresso 14;6
Logo, as demais opções são incorretas.
 
	
	
	 
	
	 4a Questão
	
	
	
	
	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';
}
		
	
	algor
	 
	rogla
	
	algo
	
	Ocorre erro, pois a função, que é do tipo void, não retorna o vetor Y.
	
	ogla
	Respondido em 10/04/2020 22:46:28
	
Explicação:
Não há outra opção, pois a questão é objetiva. Vejamos passo a passo :
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
	
	
	 
	
	 5a Questão
	
	
	
	
	Caso uma estrutura homogênea (vetor) seja passada como parâmetro para uma função, então:
		
	
	Haverá um erro de compilação, pois vetores não podem ser parâmetros de funções
	
	Essa passagem pode ser "por valor" ou "por referência"
	
	Essa passagem é "por valor"
	 
	Essa passagem é "por referência"
	
	Todos os valores contidos no vetor são copiados para a função
	Respondido em 10/04/2020 22:46:36
	
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.
	
	
	 
	
	 6a Questão
	
	
	
	
	Considere a função a seguir e a chamada da mesma efetuada no programa principal abaixo. Indique a opção que contem o que será impresso.
int executar (int x, int &y) {
    x = y * 2;
    y = ++x;
    return x + y;
}
int main () {
int a=2, b=2, c=2;
c = executar (a, b);
cout << a << ", " << b << ", " << c;
}
		
	
	4, 5, 9
	
	3, 5, 8
	
	2, 2, 9
	 
	2, 5, 10
	
	3, 2, 8
	Respondido em 10/04/2020 22:46:33
	
Explicação:
Fazendo um teste de mesa, temos o seguinte : 
A execução começa pela main. 
As variáveis a, b e c são iniciadas com 2.
Chama-se a função executar e são passados os valores de a e b, ou seja, 2 e 2.
Ao iniciar a execução da função executar temos que x é passado por valor e y por referência. Iniciando a função temos :
Em x = y * 2;   Daí :  x  recebe 2 * 2, que dá 4
Em y = ++x;     Daí : x é incrementado para 5 e depois y recebe 5.
Então, a soma de x + y é retornado. Ou seja, 10 é retornado.
Mas como y é passado por referência, a variável b na chamada da função foi alterada para 5.  Nada, no entanto, ocorreu com a na chamada da função, pois x foi passado por valor.
Ao voltar para main, será impresso  2, 5, 10
Portanto, qualquer outra opção é totalmente inviável.7a Questão
	
	
	
	
	  Assinale a opção CORRETA.  O protótipo da função que permitirá calcular o volume de um paralelepípedo com medidas a, b e c  de acordo com o trecho da  chamada  :     cout << "Volume  =   "  <<  volume(a,b,c);
		
	
	float volume (float, float);
	
	void volume (float , float);
	 
	float  volume (float, float, float);
	
	float volume (float ; float ; float);
	
	void volume (float, float, float &);
	Respondido em 10/04/2020 22:46:57
	
Explicação:
Resposta única.
Pela chamada da função
cout << "Volume  =   "  <<  volume(a,b,c);
temos que a função retorna um valor, que pelo enunciado, vemos que é do tipo float. Há ainda os valores de a, b e c que são medidas de uma figura geométrica. Logo, a, b e c são do tipo float.
Como protótipo é uma declaração temos :
tipo de retorno da função seguido do seu nome seguido de parênteses e dentro dos parênteses, temos os tipos das variáveis que estavam na chamada da função.
Logo :   float volume(float, float, float);  
Note a vírgula para separar os tipos e o ponto  e vírgula ao final.
 
	
	
	 
	
	 8a Questão
	
	
	
	
	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);
	
	int func (&int, int);
	
	void func (int a, int &b);
	1a Questão
	
	
	
	o programa de computador necessita preencher uma lista de alunos (nome e nota) até que a lista esteja cheia. Sabe-se que a lista tem capacidade para 25 alunos. Utilizando agregados heterogêneos, qual o trecho de código que exibe a melhor forma de solucionar este problema?
		
	
	for (int i = 0; i < 25; i++) { cin >> lista->nome; cin >> lista->nota; }
	
	for (int i = 0; i < 25; i++) { cin >> lista[i]->nome; cin >> lista[i]->nota; }
	
	int i = 0; while( i < 25) { cin >> lista[i].nome; cin >> lista[i].cargo; i ++; }
	 
	for (int i = 0; i < 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; }
	
	for (int i = 0; i <= 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; }
	Respondido em 10/04/2020 17:38:38
	
Explicação:
Analisando cada item :
	for (int i = 0; i <= 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; }
	>> Falso.  Veja que se há 25 itens, os índices começarão de 0 e irao até 24  e não 25.
 
	for (int i = 0; i < 25; i++) { cin >> lista[i]->nome; cin >> lista[i]->nota; }
	 
	>> Falso.  Para acessar o campo de struct é ponto e não seta.  lista[i] é uma struct e não um ponteiro.
 
	for (int i = 0; i < 25; i++) { cin >> lista->nome; cin >> lista->nota; }
	 
	 >> Falso. Para acessar o campo de struct é ponto e não seta.  lista é um vetor e lista[i] é um componente de lista.  Usamos o operador seta quando temos ponteiro para struct.
 
	for (int i = 0; i < 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; }
	
	>> Verdadeiro.
 
	int i = 0; while( i < 25) { cin >> lista[i].nome; cin >> lista[i].cargo; i ++; }
 
>> Falso, porque foi pedido nome e nota e não cargo.
	 
 
 
	
	
	 
	
	 2a Questão
	
	
	
	
	Marque a opção correta, considerando
struct Livro {
int codigo;
float preco;
} liv;
		
	
	Livro.codigo = 12345;
	
	Livro->liv.codigo = 12345;
	 
	liv.preco = 30.70;
	
	liv->preco = 30.70;
	
	Livro.liv.codigo = 12345;
	Respondido em 10/04/2020 17:38:43
	
	
	 
	
	 3a Questão
	
	
	
	
	Marque a afirmativa correta para a "Inserção em lista linear sequencial ordenada".
		
	
	Consiste em fazer uma busca em um vetor desordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio.
	 
	Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos.
	
	Consiste em fazer uma busca em um vetor já ordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio.
	
	Consiste em adicionar um valor no vetor, alterando a ordem existente e ajustando o total de elementos.
	
	É o processo pelo qual um conjunto de dados é colocado em uma ordem crescente ou decrescente.
	Respondido em 10/04/2020 17:38:45
	
Explicação:
Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos. 
Só pode ocorrer, no entanto, se a lista não estiver cheia.
	
	
	 
	
	 4a Questão
	
	
	
	
	Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, agrupados sob uma lógica e associados por um nome.
Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição de uma estrutura como:
 
 struct  aluno {
              string nome;
              float   nota;
};
 
Suponha ainda que exista um vetor desta estrutura, definido como:
 aluno vet [ 100];
 
Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo primeiro elemento deste vetor.
		
	
	aluno.vet[10].nota=5.7;
	
	vet[10].aluno.nota=5.7 ;
	
	aluno.vet[10]=5.7;
	 
	vet[10].nota=5.7;
	
	vet[10]=aluno.5.7;
	Respondido em 10/04/2020 17:38:50
	
	
	 
	
	 5a Questão
	
	
	
	
	Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, agrupados sob uma lógica e associados por um nome.
Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição de uma estrutura como:
struct aluno {
string nome;
float nota;
};
Suponha ainda que exista um vetor desta estrutura, definido como:
aluno vet [100];
Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo primeiro elemento deste vetor.
		
	 
	vet[10].nota=5.7;
	
	vet[10].aluno.nota=5.7 ;
	
	aluno.vet[10]=5.7;
	
	vet[10]=aluno.5.7;
	
	aluno.vet[10].nota=5.7;
	Respondido em 10/04/2020 17:38:54
	
	
	 
	
	 6a Questão
	
	
	
	
	Qual das seguintes estruturas de dados é classificada como heterogênea?
		
	
	Pilha
	
	Loop
	
	Vetor
	 
	Registro
	
	Fila
	Respondido em 10/04/2020 17:38:47
	
Explicação:
Registro permite agregar dados de tipos diferentes.
Vetor permite agregar dados do mesmo tipo.
Pilha e fila implementadas com vetor ou lista encadeada.
Loop : termo genérico para repetições.
	
	
	Gabarito
Coment.
	
	 
	
	 7a Questão
	
	
	
	
	Os métodos de ordenação são muito utilizados em estruturas de dados para facilitar a busca e a recuperação posterior de itens de conjuntos ordenados. Existem vários métodos de ordenação, por este motivo, marque corretamente a alternativa que apresenta o código do método de seleção.
		
	
	void ordena (int v[], int n){
       int i, j, aux;
       for (j = 1; j < n; j++)
           for (i=j; i > 0 && v[i-1]> v[i]; i--){
              aux = v[i-1];
              v[i-1] = v[i];
              v[i] = aux; 
            }
}
	 
	void ordena(int v[], int n){
int i, j, menor, aux;
for (j = 0; j < n-1; j++) {
    for (i = j+1; i < n; i++) {
         if (v[i] < v[j]) {
             aux = v[j];
             v[j] = v[i];
             v[i] = aux;
        }
    }
}
}
	
	int ordena(float v[], float valor, int n) { 
     int ini = 0, fim = n -1, meio;
    while (ini <= fim){
        meio = (ini + fim)/2;
        if (v[meio] == valor)
              return meio;
        if (valor < v[meio])
             fim = meio -1;
        else
             ini = meio+1;
    }
    return -1;
}
	
	int ordena(float v[], float valor, int n){
   for (int i = 0; i < n; i++)
     if (v[i] == valor)
       return i;
   return -1;
}
	
	int ordena(float v[], float valor, int n) {
 int ini = 0, fim = n-1, meio;
   while (ini >= fim){
     meio = ini/2;
     if (v[meio] == valor)
       return meio; 
     if (valor < v[meio])
       fim = meio -1;
     else
       ini = meio+1;
}
	Respondido em 10/04/2020 17:38:53
	
Explicação:
Na ordenação por seleção, a idéia é sempre procurar o menor elemento do vetor e inseri-lo no iníciodo vetor. Procuramos o menor valor do vetor e colocamos ele em vetor.
Procuramos o menor valor do vetor excluindo o já colocado e colocamos ele em vetor. E assim vamos indo até termos todo o vetor ordenado.
Partindo sempre a partir do último elemento reordenado (a partir do i), o programa procura o menor elemento no vetor e o substitue pelo elemento i atual.
É o que está ocorrendo na primeira opção!
	1a Questão
	
	
	
	Os métodos de ordenação são muito utilizados em estruturas de dados para facilitar a busca e a recuperação posterior de itens de conjuntos ordenados. Existem vários métodos de ordenação, por este motivo, marque corretamente a alternativa que apresenta o código do método de seleção.
		
	
	int ordena(float v[], float valor, int n) {
 int ini = 0, fim = n-1, meio;
   while (ini >= fim){
     meio = ini/2;
     if (v[meio] == valor)
       return meio; 
     if (valor < v[meio])
       fim = meio -1;
     else
       ini = meio+1;
}
	
	void ordena (int v[], int n){
       int i, j, aux;
       for (j = 1; j < n; j++)
           for (i=j; i > 0 && v[i-1]> v[i]; i--){
              aux = v[i-1];
              v[i-1] = v[i];
              v[i] = aux; 
            }
}
	
	int ordena(float v[], float valor, int n) { 
     int ini = 0, fim = n -1, meio;
    while (ini <= fim){
        meio = (ini + fim)/2;
        if (v[meio] == valor)
              return meio;
        if (valor < v[meio])
             fim = meio -1;
        else
             ini = meio+1;
    }
    return -1;
}
	
	int ordena(float v[], float valor, int n){
   for (int i = 0; i < n; i++)
     if (v[i] == valor)
       return i;
   return -1;
}
	 
	void ordena(int v[], int n){
int i, j, menor, aux;
for (j = 0; j < n-1; j++) {
    for (i = j+1; i < n; i++) {
         if (v[i] < v[j]) {
             aux = v[j];
             v[j] = v[i];
             v[i] = aux;
        }
    }
}
}
	Respondido em 10/04/2020 21:57:29
	
Explicação:
Na ordenação por seleção, a idéia é sempre procurar o menor elemento do vetor e inseri-lo no início do vetor. Procuramos o menor valor do vetor e colocamos ele em vetor.
Procuramos o menor valor do vetor excluindo o já colocado e colocamos ele em vetor. E assim vamos indo até termos todo o vetor ordenado.
Partindo sempre a partir do último elemento reordenado (a partir do i), o programa procura o menor elemento no vetor e o substitue pelo elemento i atual.
É o que está ocorrendo na primeira opção!
	
	
	Gabarito
Coment.
	
	 
	
	 2a Questão
	
	
	
	
	Marque a afirmativa correta para a "Inserção em lista linear sequencial ordenada".
		
	
	É o processo pelo qual um conjunto de dados é colocado em uma ordem crescente ou decrescente.
	
	Consiste em adicionar um valor no vetor, alterando a ordem existente e ajustando o total de elementos.
	
	Consiste em fazer uma busca em um vetor desordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio.
	 
	Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos.
	
	Consiste em fazer uma busca em um vetor já ordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio.
	Respondido em 10/04/2020 21:57:52
	
Explicação:
Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos. 
Só pode ocorrer, no entanto, se a lista não estiver cheia.
	
	
	 
	
	 3a Questão
	
	
	
	
	Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, agrupados sob uma lógica e associados por um nome.
Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição de uma estrutura como:
 
 struct  aluno {
              string nome;
              float   nota;
};
 
Suponha ainda que exista um vetor desta estrutura, definido como:
 aluno vet [ 100];
 
Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo primeiro elemento deste vetor.
		
	
	aluno.vet[10]=5.7;
	 
	vet[10].nota=5.7;
	
	vet[10]=aluno.5.7;
	
	vet[10].aluno.nota=5.7 ;
	
	aluno.vet[10].nota=5.7;
	Respondido em 10/04/2020 21:57:54
	
	
	 
	
	 4a Questão
	
	
	
	
	Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, agrupados sob uma lógica e associados por um nome.
Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição de uma estrutura como:
struct aluno {
string nome;
float nota;
};
Suponha ainda que exista um vetor desta estrutura, definido como:
aluno vet [100];
Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo primeiro elemento deste vetor.
		
	
	vet[10]=aluno.5.7;
	
	aluno.vet[10].nota=5.7;
	 
	vet[10].nota=5.7;
	
	vet[10].aluno.nota=5.7 ;
	
	aluno.vet[10]=5.7;
	Respondido em 10/04/2020 21:57:47
	
	
	 
	
	 5a Questão
	
	
	
	
	o programa de computador necessita preencher uma lista de alunos (nome e nota) até que a lista esteja cheia. Sabe-se que a lista tem capacidade para 25 alunos. Utilizando agregados heterogêneos, qual o trecho de código que exibe a melhor forma de solucionar este problema?
		
	
	for (int i = 0; i < 25; i++) { cin >> lista->nome; cin >> lista->nota; }
	 
	for (int i = 0; i < 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; }
	
	for (int i = 0; i < 25; i++) { cin >> lista[i]->nome; cin >> lista[i]->nota; }
	
	int i = 0; while( i < 25) { cin >> lista[i].nome; cin >> lista[i].cargo; i ++; }
	
	for (int i = 0; i <= 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; }
	Respondido em 10/04/2020 21:58:03
	
Explicação:
Analisando cada item :
	for (int i = 0; i <= 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; }
	>> Falso.  Veja que se há 25 itens, os índices começarão de 0 e irao até 24  e não 25.
 
	for (int i = 0; i < 25; i++) { cin >> lista[i]->nome; cin >> lista[i]->nota; }
	 
	>> Falso.  Para acessar o campo de struct é ponto e não seta.  lista[i] é uma struct e não um ponteiro.
 
	for (int i = 0; i < 25; i++) { cin >> lista->nome; cin >> lista->nota; }
	 
	 >> Falso. Para acessar o campo de struct é ponto e não seta.  lista é um vetor e lista[i] é um componente de lista.  Usamos o operador seta quando temos ponteiro para struct.
 
	for (int i = 0; i < 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; }
	
	>> Verdadeiro.
 
	int i = 0; while( i < 25) { cin >> lista[i].nome; cin >> lista[i].cargo; i ++; }
 
>> Falso, porque foi pedido nome e nota e não cargo.
	 
 
 
	
	
	 
	
	 6a Questão
	
	
	
	
	Marque a opção correta, considerando
struct Livro {
int codigo;
float preco;
} liv;
		
	
	Livro.codigo = 12345;
	 
	liv.preco = 30.70;
	
	Livro.liv.codigo = 12345;
	
	Livro->liv.codigo = 12345;
	
	liv->preco = 30.70;
	Respondido em 10/04/2020 21:58:06
	
	
	 
	
	 7a Questão
	
	
	
	
	Qual das seguintes estruturas de dados é classificada como heterogênea?
		
	 
	Registro
	
	Fila
	
	Vetor
	
	Loop
	
	Pilha
	Respondido em 10/04/2020 21:58:00
	
Explicação:
Registro permite agregar dados de tipos diferentes.
Vetor permite agregar dados do mesmo tipo.
Pilha e fila implementadas com vetor ou lista encadeada.
Loop : termo genérico para repetições.
	1a Questão
	
	
	
	Qual das seguintes estruturas de dados é classificada como heterogênea?
		
	
	Fila
	
	Loop
	
	Pilha
	 
	Registro
	
	Vetor
	Respondido em 10/04/2020 22:47:55
	
Explicação:
Registro permite agregar dados de tipos diferentes.
Vetor permite agregar dados do mesmo tipo.
Pilha e fila implementadas com vetor ou lista encadeada.
Loop : termo genérico para repetições.
	
	
	Gabarito
Coment.
	
	 
	
	 2a Questão
	
	
	
	
	Os métodos de ordenação são muito utilizados em estruturas de dados para facilitar a busca e a recuperação posterior de itens de conjuntos ordenados. Existem vários métodos de ordenação, por este motivo, marque corretamentea alternativa que apresenta o código do método de seleção.
		
	 
	void ordena(int v[], int n){
int i, j, menor, aux;
for (j = 0; j < n-1; j++) {
    for (i = j+1; i < n; i++) {
         if (v[i] < v[j]) {
             aux = v[j];
             v[j] = v[i];
             v[i] = aux;
        }
    }
}
}
	
	int ordena(float v[], float valor, int n){
   for (int i = 0; i < n; i++)
     if (v[i] == valor)
       return i;
   return -1;
}
	
	int ordena(float v[], float valor, int n) {
 int ini = 0, fim = n-1, meio;
   while (ini >= fim){
     meio = ini/2;
     if (v[meio] == valor)
       return meio; 
     if (valor < v[meio])
       fim = meio -1;
     else
       ini = meio+1;
}
	
	void ordena (int v[], int n){
       int i, j, aux;
       for (j = 1; j < n; j++)
           for (i=j; i > 0 && v[i-1]> v[i]; i--){
              aux = v[i-1];
              v[i-1] = v[i];
              v[i] = aux; 
            }
}
	
	int ordena(float v[], float valor, int n) { 
     int ini = 0, fim = n -1, meio;
    while (ini <= fim){
        meio = (ini + fim)/2;
        if (v[meio] == valor)
              return meio;
        if (valor < v[meio])
             fim = meio -1;
        else
             ini = meio+1;
    }
    return -1;
}
	Respondido em 10/04/2020 22:48:00
	
Explicação:
Na ordenação por seleção, a idéia é sempre procurar o menor elemento do vetor e inseri-lo no início do vetor. Procuramos o menor valor do vetor e colocamos ele em vetor.
Procuramos o menor valor do vetor excluindo o já colocado e colocamos ele em vetor. E assim vamos indo até termos todo o vetor ordenado.
Partindo sempre a partir do último elemento reordenado (a partir do i), o programa procura o menor elemento no vetor e o substitue pelo elemento i atual.
É o que está ocorrendo na primeira opção!
	
	
	Gabarito
Coment.
	
	 
	
	 3a Questão
	
	
	
	
	Marque a afirmativa correta para a "Inserção em lista linear sequencial ordenada".
		
	
	Consiste em fazer uma busca em um vetor já ordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio.
	
	Consiste em fazer uma busca em um vetor desordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio.
	
	É o processo pelo qual um conjunto de dados é colocado em uma ordem crescente ou decrescente.
	
	Consiste em adicionar um valor no vetor, alterando a ordem existente e ajustando o total de elementos.
	 
	Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos.
	Respondido em 10/04/2020 22:47:54
	
Explicação:
Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos. 
Só pode ocorrer, no entanto, se a lista não estiver cheia.
	
	
	 
	
	 4a Questão
	
	
	
	
	Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, agrupados sob uma lógica e associados por um nome.
Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição de uma estrutura como:
 
 struct  aluno {
              string nome;
              float   nota;
};
 
Suponha ainda que exista um vetor desta estrutura, definido como:
 aluno vet [ 100];
 
Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo primeiro elemento deste vetor.
		
	
	aluno.vet[10].nota=5.7;
	
	vet[10].aluno.nota=5.7 ;
	 
	vet[10].nota=5.7;
	
	vet[10]=aluno.5.7;
	
	aluno.vet[10]=5.7;
	Respondido em 10/04/2020 22:48:09
	
	
	 
	
	 5a Questão
	
	
	
	
	Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, agrupados sob uma lógica e associados por um nome.
Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição de uma estrutura como:
struct aluno {
string nome;
float nota;
};
Suponha ainda que exista um vetor desta estrutura, definido como:
aluno vet [100];
Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo primeiro elemento deste vetor.
		
	
	vet[10]=aluno.5.7;
	
	vet[10].aluno.nota=5.7 ;
	
	aluno.vet[10]=5.7;
	
	aluno.vet[10].nota=5.7;
	 
	vet[10].nota=5.7;
	Respondido em 10/04/2020 22:48:13
	
	
	 
	
	 6a Questão
	
	
	
	
	Marque a opção correta, considerando
struct Livro {
int codigo;
float preco;
} liv;
		
	
	Livro.codigo = 12345;
	
	liv->preco = 30.70;
	 
	liv.preco = 30.70;
	
	Livro->liv.codigo = 12345;
	
	Livro.liv.codigo = 12345;
	Respondido em 10/04/2020 22:49:18
	
	
	 
	
	 7a Questão
	
	
	
	
	o programa de computador necessita preencher uma lista de alunos (nome e nota) até que a lista esteja cheia. Sabe-se que a lista tem capacidade para 25 alunos. Utilizando agregados heterogêneos, qual o trecho de código que exibe a melhor forma de solucionar este problema?
		
	
	int i = 0; while( i < 25) { cin >> lista[i].nome; cin >> lista[i].cargo; i ++; }
	
	for (int i = 0; i < 25; i++) { cin >> lista[i]->nome; cin >> lista[i]->nota; }
	 
	for (int i = 0; i < 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; }
	
	for (int i = 0; i < 25; i++) { cin >> lista->nome; cin >> lista->nota; }
	
	for (int i = 0; i <= 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; }
	Respondido em 10/04/2020 22:49:23
	
Explicação:
Analisando cada item :
	for (int i = 0; i <= 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; }
	>> Falso.  Veja que se há 25 itens, os índices começarão de 0 e irao até 24  e não 25.
 
	for (int i = 0; i < 25; i++) { cin >> lista[i]->nome; cin >> lista[i]->nota; }
	 
	>> Falso.  Para acessar o campo de struct é ponto e não seta.  lista[i] é uma struct e não um ponteiro.
 
	for (int i = 0; i < 25; i++) { cin >> lista->nome; cin >> lista->nota; }
	 
	 >> Falso. Para acessar o campo de struct é ponto e não seta.  lista é um vetor e lista[i] é um componente de lista.  Usamos o operador seta quando temos ponteiro para struct.
 
	for (int i = 0; i < 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; }
	
	>> Verdadeiro.
 
	int i = 0; while( i < 25) { cin >> lista[i].nome; cin >> lista[i].cargo; i ++; }
 
>> Falso, porque foi pedido nome e nota e não cargo.
	
	1a Questão
	
	
	
	O processo de rearranjar um conjunto de dados em uma ordem crescente ou decrescente é chamado de ordenação. Existem várias técnicas de ordenação, entretanto a técnica que procura o menor valor entre todos os elementos do vetor e troca-o pelo primeiro elemento; para os n - 1 elementos restantes, determinação do elemento de menor valor e troca pelo segundo elemento e assim sucessivamente, é chamado de:
		
	 
	Seleção
	
	Inserção
	
	Binária
	
	Bolha
	
	Hash
	Respondido em 10/04/2020 17:39:12
	
	
	Gabarito
Coment.
	
	 
	
	 2a Questão
	
	
	
	
	Sabendo-se que o método de seleção também é um método de ordenação que baseia seu algoritmo em trocas entre os elementos de um vetor, se submetermos a sequencia de inteiros armazenada em um vetor inicialmente na seguinte ordem : 13, 23, 3, 8, 1. Pode-se dizer que quando o menor elemento do vetor alcançar sua posição final, a ordenação apresentada no vetor é:
		
	
	1,13,23,8,3
	
	1,3,23,8,13
	 
	1,23,3,8,13
	
	1,23,13,8,3
	
	1,8,3,23,13
	Respondido em 10/04/2020 17:39:16
	
	
	Gabarito
Coment.
	
	 
	
	 3a Questão
	
	
	
	
	Em uma pesquisa sequencial a lista deve estar?
		
	 
	ordenada ou desordenada.
	
	ordenada somente do início até a metade da lista.
	
	ordenada somente o primeiro da lista.
	
	desordenada somente da metade da lista até o final.
	
	sempre desordenada.
	Respondido em 10/04/2020 17:39:31
	
Explicação:
A busca sequencial pode se usada para listas ordenadas ou não ordenadas, não havendo qualquer restrição a parte ou à  totalidade da lista na ordenação.  Já a busca binária só pode ser usada para listas ordenadas.
	
	
	Gabarito
Coment.
	
	 
	
	 4a Questão
	
	
	
	
	Considere a função misterioe o trecho abaixo.
void misterio(int v[ ], int n) {     //n é o número de elementos de v
   int i, j, m, aux;
   for (j = 0; j < n-1; j++) {
        m = j;
        for (i = j+1; i < n; i++) {
             if (v[i] < v[m])
                    m = i;
        }
        aux  = v[j];
        v[j] = v[m];
        v[m] = aux;
	
   }
}
Trecho na main :        
int v[4] = {40,30,10,20};
misterio(v, 4);
Marque a  opção correta.  Como ficará o vetor após a execução da função misterio ?
 
		
	 
	10  20  30  40  
	
	10  30  40  20 
	
	5  10  20  30 
	
	10  20  40  30  
	
	10  30  20 40
	Respondido em 10/04/2020 17:39:25
	
Explicação:
O aluno precisa fazer um teste de mesa para achar a solução.
A função implementa a ordenação por seleção, colocando o vetor de entrada em ordem crescente.
	
	
	 
	
	 5a Questão
	
	
	
	
	Em relação à classificação do método de ordenação, assinale abaixo aquele que, durante o processo de ordenação, só usa a memória principal:
		
	
	Ordenação Simples Externa
	
	Ordenação Eficiente
	
	Ordenação Simples
	
	Ordenação Externa
	 
	Ordenação Interna
	Respondido em 10/04/2020 17:39:31
	
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	 
	
	 6a Questão
	
	
	
	
	É um método de pesquisa ou busca, cujo algoritmo parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca, comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor.
A descrição apresentada trata-se do método denominado busca ...... 
		
	 
	binária.
	
	por contagem.
	
	linear.
	
	por comparação.
	
	randômica.
	Respondido em 10/04/2020 17:39:35
	
	
	Gabarito
Coment.
	
	 
	
	 7a Questão
	
	
	
	
	O resultado do concurso para o cargo de uma empresa está armazenado em um vetor, que contém em cada um de seus elementos o número de inscrição, o nome e a nota obtida pelo candidato. Este vetor está ordenado pelo número de inscrição. Para realização de uma consulta que, dado um número de inscrição, apresenta o nome e nota do candidato, um programador utilizou um algoritmo de busca que realiza sucessivas divisões no vetor, comparando o número de inscrição procurado com o número de inscrição do candidato posicionado no meio do vetor. Se o candidato posicionado do meio do vetor tiver o número de inscrição igual ao número de inscrição procurado, a busca termina com sucesso. Caso contrário, se candidato posicionado do meio do vetor tiver número de inscrição menor que o procurado, então a busca continua na metade posterior do vetor. E finalmente, se candidato posicionado do meio do vetor tiver número de inscrição maior que o procurado, a busca continua na metade anterior do vetor. O algoritmo utilizado pelo programador trata-se do método denominado busca:
		
	
	randômica.
	
	por contagem.
	 
	binária.
	
	por comparação.
	
	linear.
	Respondido em 10/04/2020 17:39:37
	
	
	Gabarito
Coment.
	
	 
	
	 8a Questão
	
	
	
	
	Para consultarmos uma estrutura de dados, normalmente, empregamos um tipo de pesquisa de dados. O trecho de programa a seguir refere-se a uma pesquisa por um elemento único (sua primeira ocorrência), em um conjunto de elementos de dados armazenado em uma estrutura de acesso indexado e aleatório. Selecione a opção correspondente ao algoritmo utilizado, no programa, para a referida pesquisa:
int busca(float v[], float valor, int n) {
int ini = 0, fim = n -1, meio;
while (ini <= fim) {
meio = (ini + fim)/2;
if (v[meio] == valor)  return meio;
if (valor < v[meio]) fim = meio -1;
  else ini = meio+1;
}
return -1;
}
		
	
	pesquisa sequencial
	 
	pesquisa binária
	
	pesquisa indexada
	
	pesquisa cadeias indexada
	
	pesquisa de cadeias
	1a Questão
	
	
	
	Em uma pesquisa sequencial a lista deve estar?
		
	
	desordenada somente da metade da lista até o final.
	
	ordenada somente o primeiro da lista.
	 
	ordenada ou desordenada.
	
	ordenada somente do início até a metade da lista.
	
	sempre desordenada.
	Respondido em 10/04/2020 21:58:30
	
Explicação:
A busca sequencial pode se usada para listas ordenadas ou não ordenadas, não havendo qualquer restrição a parte ou à  totalidade da lista na ordenação.  Já a busca binária só pode ser usada para listas ordenadas.
	
	
	Gabarito
Coment.
	
	 
	
	 2a Questão
	
	
	
	
	Em relação à classificação do método de ordenação, assinale abaixo aquele que, durante o processo de ordenação, só usa a memória principal:
		
	
	Ordenação Simples Externa
	
	Ordenação Externa
	
	Ordenação Simples
	 
	Ordenação Interna
	
	Ordenação Eficiente
	Respondido em 10/04/2020 21:58:26
	
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	 
	
	 3a Questão
	
	
	
	
	O resultado do concurso para o cargo de uma empresa está armazenado em um vetor, que contém em cada um de seus elementos o número de inscrição, o nome e a nota obtida pelo candidato. Este vetor está ordenado pelo número de inscrição. Para realização de uma consulta que, dado um número de inscrição, apresenta o nome e nota do candidato, um programador utilizou um algoritmo de busca que realiza sucessivas divisões no vetor, comparando o número de inscrição procurado com o número de inscrição do candidato posicionado no meio do vetor. Se o candidato posicionado do meio do vetor tiver o número de inscrição igual ao número de inscrição procurado, a busca termina com sucesso. Caso contrário, se candidato posicionado do meio do vetor tiver número de inscrição menor que o procurado, então a busca continua na metade posterior do vetor. E finalmente, se candidato posicionado do meio do vetor tiver número de inscrição maior que o procurado, a busca continua na metade anterior do vetor. O algoritmo utilizado pelo programador trata-se do método denominado busca:
		
	
	por contagem.
	
	randômica.
	 
	binária.
	
	por comparação.
	
	linear.
	Respondido em 10/04/2020 21:58:28
	
	
	Gabarito
Coment.
	
	 
	
	 4a Questão
	
	
	
	
	Qual papel do for mais interno na função ordena abaixo ?
void ordena( int n, int v[])
{
   int i, j, x;
   for (j = 1; j < n; ++j) {
      x = v[j];
      for (i = j-1; i >= 0 && v[i] > x; --i)
         v[i+1] = v[i];
      v[i+1] = x;
   }
}
		
	
	Encontrar o maior valor de x que deve ser inserido em v[0..j-1].
	 
	Encontrar o ponto onde v[j] deve ser inserido em v[0..j-1].
	
	Encontrar o menor valor v[j] que deve ser inserido em v[0..j-1].
	
	Encontrar o valor de v[j] deve em v[0..j-1].
	
	Encontrar o elmento a ser eliminado do vetor
	Respondido em 10/04/2020 21:58:42
	
	
	Gabarito
Coment.
	
	 
	
	 5a Questão
	
	
	
	
	
		
	
	if(vet[j-1] > vet[j] )
    { 
         aux=vet[j];
         vet[j]= vet[j-1];
         vet[j-1]=aux;      
     }
	
	if(vet[j] < vet[j-1] )
    { 
         aux=vet[j];
         vet[j-1]= vet[j];
         vet[j-1]=aux;      
     }
	
	if(vet[j] == vet[j-1] )
    { 
         aux=vet[j];
         vet[j]= vet[j-1];
         vet[j-1]=aux;      
     }
	 
	if(vet[j-1] < vet[j] )
    { 
         aux=vet[j];
         vet[j]= vet[j-1];
         vet[j-1]=aux;      
     }
	
	if(vet[j] < vet[j-1] )
    { 
         aux=vet[j];
         vet[j]< vet[j-1];
         vet[j-1]=aux;      
     }
	Respondido em 10/04/2020 21:58:36
	
	
	 
	
	 6a Questão
	
	
	
	
	Suponha uma listagem, contendo número de inscrição e pontuação (ordenada pelo número de inscrição) dos candidatos para o cargo de Analista de Sistemas de uma grande empresa pública. São 1024 candidatos inscritos e o sistema implementado para consulta do resultado, permite busca binária ou busca sequencial pelo número de inscrição. O número máximo de comparações executadas se fosseutilizada a busca binária e se fosse utilizada busca sequencial, respectivamente, seria de:
		
	 
	10 e 1024
	
	10 e 10
	
	1024 e 512
	
	9 e 9
	
	9 e 10
	Respondido em 10/04/2020 21:59:00
	
	
	Gabarito
Coment.
	
	 
	
	 7a Questão
	
	
	
	
	É um método de pesquisa ou busca, cujo algoritmo parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca, comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor.
A descrição apresentada trata-se do método denominado busca ...... 
		
	
	randômica.
	
	por comparação.
	 
	binária.
	
	por contagem.
	
	linear.
	Respondido em 10/04/2020 21:59:03
	
	
	Gabarito
Coment.
	
	 
	
	 8a Questão
	
	
	
	
	O processo de rearranjar um conjunto de dados em uma ordem crescente ou decrescente é chamado de ordenação. Existem várias técnicas de ordenação, entretanto a técnica que procura o menor valor entre todos os elementos do vetor e troca-o pelo primeiro elemento; para os n - 1 elementos restantes, determinação do elemento de menor valor e troca pelo segundo elemento e assim sucessivamente, é chamado de:
		
	 
	Seleção
	
	Hash
	
	Inserção
	
	Binária
	
	Bolha
	1a Questão
	
	
	
	Qual a importância de se entender a "ordenação" de dados ?
		
	
	A ordenação é a base na qual, muitos sistemas são construídos. Entendendo a ordenação, tem-se conhecimento para manter outros problemas.
	
	A ordenação é a base na qual, muitos algoritmos são construídos. Entendendo a ordenação, tem-se conhecimento para manter outros problemas.
	
	A ordenação é a base na qual, muitos sistemas são construídos. Entendendo a ordenação, tem-se conhecimento para resolver outros problemas.
	
	A ordenação é a base na qual, muitos programas são construídos. Entendendo a ordenação, tem-se conhecimento para manter outros problemas.
	 
	A ordenação é a base na qual, muitos algoritmos são construídos. Entendendo a ordenação, tem-se conhecimento para resolver outros problemas.
	Respondido em 10/04/2020 22:49:31
	
	
	Gabarito
Coment.
	
	 
	
	 2a Questão
	
	
	
	
	Sabendo-se que o método de seleção também é um método de ordenação que baseia seu algoritmo em trocas entre os elementos de um vetor, se submetermos a sequencia de inteiros armazenada em um vetor inicialmente na seguinte ordem : 13, 23, 3, 8, 1. Pode-se dizer que quando o menor elemento do vetor alcançar sua posição final, a ordenação apresentada no vetor é:
		
	
	1,23,13,8,3
	 
	1,23,3,8,13
	
	1,3,23,8,13
	
	1,13,23,8,3
	
	1,8,3,23,13
	Respondido em 10/04/2020 22:49:47
	
	
	Gabarito
Coment.
	
	 
	
	 3a Questão
	
	
	
	
	Para consultarmos uma estrutura de dados, normalmente, empregamos um tipo de pesquisa de dados. O trecho de programa a seguir refere-se a uma pesquisa por um elemento único (sua primeira ocorrência), em um conjunto de elementos de dados armazenado em uma estrutura de acesso indexado e aleatório. Selecione a opção correspondente ao algoritmo utilizado, no programa, para a referida pesquisa:
int busca(float v[], float valor, int n) {
int ini = 0, fim = n -1, meio;
while (ini <= fim) {
meio = (ini + fim)/2;
if (v[meio] == valor)  return meio;
if (valor < v[meio]) fim = meio -1;
  else ini = meio+1;
}
return -1;
}
		
	
	pesquisa indexada
	
	pesquisa de cadeias
	 
	pesquisa binária
	
	pesquisa cadeias indexada
	
	pesquisa sequencial
	Respondido em 10/04/2020 22:49:52
	
	
	Gabarito
Coment.
	
	 
	
	 4a Questão
	
	
	
	
	O resultado do concurso para o cargo de uma empresa está armazenado em um vetor, que contém em cada um de seus elementos o nome e a nota obtida pelo candidato. Deseja-se que este vetor seja ordenado pela nota, em ordem decrescente. Sendo o vetor pequeno (poucos elementos), o programador responsável por desenvolver este algoritmo, escolheu um método de ordenação que executa os seguintes passos:
· Selecione candidato com maior nota entre todos e troque-o com o candidato que está na primeira posição do vetor;
· Selecione o segundo maior e troque-o com o candidato que está na segunda posição;
· Os passos descritos anteriormente são seguidos para a terceira nota, quarta nota e assim por diante até que reste apenas um candidato.
O algoritmo utilizado pelo programador trata-se do método de ordenação denominado:
		
	
	Bolha
	
	Heapsort
	
	Inserção
	
	Quicksort
	 
	Seleção
	Respondido em 10/04/2020 22:49:45
	
	
	Gabarito
Coment.
	
	 
	
	 5a Questão
	
	
	
	
	Marque a afirmativa correta para a "Ordenação em Listas Lineares Sequenciais".
		
	
	Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos.
	
	Consiste em fazer uma busca em um vetor já ordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio.
	
	Consiste em fazer uma busca em um vetor desordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio.
	
	Consiste em adicionar um valor no vetor, alterando a ordem existente e ajustando o total de elementos.
	 
	É o processo pelo qual um conjunto de dados é colocado em uma ordem crescente ou decrescente.
	Respondido em 10/04/2020 22:52:11
	
	
	Gabarito
Coment.
	
	 
	
	 6a Questão
	
	
	
	
	Considere as afirmativas a seguir.
I. Uma forma muito simples de fazer uma busca em um vetor consiste em percorrer o vetor, elemento a elemento, para verificar se o elemento procurado é igual a um dos elementos do vetor.
II. A pesquisa sequencial é extremamente simples e eficiente quando o número de elementos do vetor for muito grande.
III. Na pesquisa binária, a cada interação do algoritmo o tamanho do vetor é dividido ao meio.
IV. A pesquisa binária funciona corretamente quanto o conjunto de dados estiver desordenado.
Assinale a alternativa correta.
		
	
	Somente as afirmativas I e II são corretas.
	
	Somente as afirmativas I e IV são corretas.
	
	Somente as afirmativas II, III e IV são corretas.
	
	Somente as afirmativas III e IV são corretas.
	 
	Somente as afirmativas I e III são corretas.
	Respondido em 10/04/2020 22:52:16
	
Explicação:
Analisando cada afirmativa :
I. Uma forma muito simples de fazer uma busca em um vetor consiste em percorrer o vetor, elemento a elemento, para verificar se o elemento procurado é igual a um dos elementos do vetor.
Correto. SEria uma busca sequencial.
II. A pesquisa sequencial é extremamente simples e eficiente quando o número de elementos do vetor for muito grande.
Falso. Se tivermos que procurar um elemento que está no fim do vetor ou que não seja encontrado, o tempo de execução será proporcional ao número de elementos. Então, quanto maior a lista, mais tempo levaremos.
III. Na pesquisa binária, a cada interação do algoritmo o tamanho do vetor é dividido ao meio.
Correto.
IV. A pesquisa binária funciona corretamente quanto o conjunto de dados estiver desordenado.
Falso. Por definição, a busca binária só pode atuar em listas ordenadas.
Logo, apenas as afirmativas I  e   III estão corretas.
	
	
	 
	
	 7a Questão
	
	
	
	
	Estude atentamente o código a segir:
int deciframe(int v[ ], int tam, int e){
int i = 0, f = tam -1, m;
while ( i <= f ){
m = ( i + f ) / 2;
if ( v[m] == e ) { return m; }
if ( e < v[m] ) { f = m - 1; }
else { i = m + 1; }
}
return -1;
}
Sabendo que a chamada da mesma foi feita com os parâmetros:
v[10] = {0, 2, 4, 6, 8, 10, 20, 100}
tam = 8
e = -6
É sabido que a mesma retornaria o valor -1, porque:
		
	
	É o módulo do valor de e
	
	Seria o retorno do segundo if
	
	É a posição do elemento e no vetor v
	 
	Porque ele não achou o elemento na coleção
	
	Seria o retorno do

Continue navegando