Buscar

EDADOSAVS1 10

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

Ref.: 201512250058 
 
 
 
 3a Questão 
 
 
Podemos dizer que estrutura de dados é: 
 
 
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 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. 
 
É a saída, que satisfaz a quaisquer restrições impostas pelo problema, necessária para se 
calcular uma solução do problema. 
 
 
 
 
Ref.: 201512452676 
 
 
 
 4a Questão 
 
 
 
 
 
Ref.: 201512838728 
 
 
 
 5a Questão 
 
 
Qual estrutura de dados não linear que é utilizada na implementação de Redes de 
Computadores, na Computação Gráfica, em modelagem de circuitos digitais e etc. E que se 
caracteriza por apresentar um conjunto de nós e conexões entre eles. 
 
 
Filas Encadeadas 
 
Listas Encadeadas. 
 
Vetores 
 Grafos 
 
Pilhas Encadeadas 
 
 
 
 
 
 
 
 
 
Ref.: 201512241973 
 
 
 
 8a 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 
 
a2, b2, c1, d2. 
 
a1, b2, c1, d1. 
 
a1, b1, c2, d2. 
 a2, b1, c2, d1. 
 
 
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. 
 
 
 
 
Ref.: 201512921899 
 
 
 
 6a Questão 
 
 
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." 
 
 
listas encadeadas 
 grafos 
 
pilhas encadeadas 
 
structs 
 
filas encadeadas 
 
 
 
 
Ref.: 201512841334 
 
 
 
 7a Questão 
 
 
 Preciso cadastrar todos os interessados em meu novo curso de programação. Qual a estrutura de 
dados mais adequada para modelar este problema, visto que não há qualquer preocupação com 
ordem de chegada ou saída de aluno da turma. 
 
 Lista 
 Árvore 
 Pilha 
 Fila 
 Grafo 
 
 
 
 
Ref.: 201512250435 
 
 8a Questão 
 
 
As estruturas de dados são importantes para a programação porque facilitam a pesquisa, pois 
permitem a ordenação dos dados de forma crescente ou decrescente. Dessa forma, assinale a 
alternativa correta que define um tipo de dado estruturado. 
 
 Consiste da definição do conjunto de valores (denominado domínio) que uma variável 
pode assumir ao longo da execução de um programa. 
 
Podem armazenar apenas um valor de cada vez, se algum valor for atribuído o anterior 
é apagado. 
 Permitem agregar mais do que um valor em uma variável, existindo uma relação 
estrutural entre seus elementos. 
 
Também são denominados tipos primitivos, não é possível decompor em partes 
menores. 
 
São tipos de dados indivisíveis. 
 
 
 
 
Ref.: 201512863955 
 
 
 
 3a Questão 
 
 
As estruturas de dados podem ser caracterizadas como sendo uma forma organizada de 
armazenar dados ou informações na memória, de modo a otimizar o acesso a estes. Muitas 
vezes existem algoritmos de manipulação de dados associados a estas estruturas. 
Verifique as seguintes sentenças: 
I-Filas são estruturas que recuperam os dados na ordem direta em que estes foram 
armazenados. 
II-As Pilhas são estruturas que recuperam os dados na ordem reversa em que estes foram 
armazenados. 
III-As Pilhas são estruturas que recuperam os dados na ordem direta em que estes foram 
armazenados. 
IV-As Filas são estruturas que recuperam os dados na ordem reversa em que estes foram 
armazenados. 
Marque a alternativa CORRETA: 
 
 
As alternativas III e IV estão corretas. 
 As alternativas I e II estão corretas 
 
As alternativas I e III estão corretas. 
 
As alternativas II e IV estão corretas. 
 
Todas as alternativas estão corretas. 
 
 
 
 
Ref.: 201513124482 
 
 
 
 4a Questão 
 
 
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 conjunto de técnicas de programação. 
 É 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. 
 
É 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. 
 
 
 
 
Ref.: 201512788501 
 
 
 
 5a Questão 
 
 
Leia com atenção as afirmativas abaixo e assinale a resposta correta. 
 
I A estrutura de dados que melhor representa os diretórios ou pastas de arquivos do 
computador é a árvore. 
II A estrutura de dados FILA é não linear assim como o Grafo. 
III O termo folha em uma estrutura de dados é usado para um nó sem filhos e que tem grau 
0, 
IV O grau de uma árvore é definido pelo número de subárvores de um nó. 
V O grafo é uma estrutura de dados que tem limitação para o número de vértices. 
VI Uma das aplicações da estrutura de dados grafo é a Computação Gráfica. 
 
 II, IV, V e VI são afirmativas verdadeiras 
 I, III, IV e VI são afirmativas verdadeiras 
 II, IV e V são afirmativas verdadeiras 
 I, II, III e VI são afirmativas verdadeiras 
 I, II e V são afirmativas verdadeiras 
 
 
 
 
 
 
Ref.: 201512250436 
 
 7a Questão 
 
 
O espaço necessário para a representação dos dados pode ser alocado à medida que se torne 
necessário, através da alocação dinâmica. Uma estrutura armazenada através de encadeamento 
apresenta seus nodos alocados em posições aleatórias na memória, e não lado a lado. Dessa 
forma, existem várias vantagens no uso de representar os dados por encadeamento. Marque a 
alternativa correta que apresenta estas vantagens. 
 
 
Transferência de dados, gerenciamento de memória e procedimentos menos 
intuitivos. 
 
Acesso, representação, compartilhamento de memória. 
 
Proteção de memória, transferência de dados, estruturas simples. 
 
Previsão de espaço físico, estruturas complexas, procedimentos menos intuitivos. 
 Compartilhamento de memória, maleabilidade e facilidade para inserção e remoção 
de componentes. 
 
 
Explicação: 
FALSO .Previsão de espaço físico, 
estruturas complexas, procedimentos menos 
intuitivos. 
 
FALSO 
Acesso, representação, compartilhamento de 
memória. 
 
FALSO 
Proteção de memória, transferência de dados, 
estruturas simples. 
 
FALSO 
Transferência de dados, gerenciamento de 
memória e procedimentos menos intuitivos. 
 
VERDADEIRO 
Compartilhamento de memória, maleabilidade e 
facilidade para inserção e remoção de 
componentes. 
 
 
 
 
 
 
 
Ref.: 201512841326 
 
 
 
 4a Questão 
 
 
 Os irmãos Silva irão viajar por vários países da Europa e por isso, traçaram no mapa o percurso 
que farão, de cidade a cidade. Qual a estrutura de dados mais adequada para modelar este 
problema ? 
 
 Grafo 
 Pilha 
 Árvore 
 Fila 
 Lista 
 
 
 
 
 
 7a Questão 
 
 
Estão entre algumas das possíveis formas de se estruturar dados: 
 
 
Grafos, algoritmos, fila. 
 Grafos, lista ordenada, vetores. 
 
Grafos, lista ordenada, algoritmos. 
 
Algoritmos, lista ordenada, vetores. 
 
Lista encadeada, vetores, algoritmos. 
 
 
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. 
 
 
 
 
 
 
Ref.: 201513394787 
 
 
 
 2a Questão 
 
 
Das estruturas de dados a seguir aquela que NÃO é uma estrutura linear é : 
 
 
Vetor. 
 
Fila. 
 
Pilha. 
 
Lista. 
 Grafo. 
 
 
Explicação: 
Lineares : lista, pilha, fila, deque. Com ou sem vetor, que é linear. 
Não lineares : árvore e grafo. 
 
 
 
 
Ref.: 201512317549 
 
 
 
 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, III, IV e V. 
 I, II e III. 
 
I, III e V. 
 
II, IV e V. 
 
I, III, IV e V. 
 
 
 
Ref.: 201512927390 
 
 
 
 4a Questão 
 
 
Observe o trecho do programa em C++ abaixo e, após, entrar com os valores sugeridos para 
sua execução assinale a alternativa que representa a resposta final. 
cin >> a; 
cin >> b; 
cin >> c; 
cin >> d; 
 
cout << a; 
cout << b; 
cout << c; 
cout << d; 
 
cout << d; 
cout << c; 
cout << b; 
cout << a; 
 
 
Após a impressão dos valores pela ordem teremos uma fila e um grafo. 
 
Após a impressão dos valores pela ordem teremos duas pilhas. 
 
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 pilha e uma fila. 
 
 
 
 
 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 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. 
 
É um conjunto de técnicas de programaçã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. 
 
 
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. 
 
 
 
Ref.: 201513411927 
 
 
 
 8a Questão 
 
 
É um exemplo de TAD Não Linear: 
 
 
Filas 
 
Pilhas 
 
Listas 
 
Filas de Prioridade 
 Grafos 
 
 
Explicação: Um grafo é um tipo de dados abstrato não linear 
 
 
As estruturas de dados podem ser caracterizadas como sendo uma forma organizada de 
armazenar dados ou informações na memória, de modo a otimizar o acesso a estes. Muitas 
vezes existem algoritmos de manipulação de dados associados a estas estruturas. 
Verifique as seguintes sentenças: 
I-Filas são estruturas que recuperam os dados na ordem direta em que estes foram 
armazenados. 
II-As Pilhas são estruturas que recuperam os dados na ordem reversa em que estes foram 
armazenados. 
III-As Pilhas são estruturas que recuperam os dados na ordem direta em que estes foram 
armazenados. 
IV-As Filas são estruturas que recuperam os dados na ordem reversa em que estes foram 
armazenados. 
Marque a alternativa CORRETA: 
 
 
Todas as alternativas estão corretas. 
 
As alternativas I e III estão corretas. 
 As alternativas I e II estão corretas 
 
As alternativas III e IV estão corretas. 
 
As alternativas II e IV estão corretas. 
 
 
 
 
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. 
 
 I , II e IV são verdadeiras 
 III e V são verdadeiras 
 II e V são verdadeiras 
 II E IV são verdadeiras 
 I e V são verdadeiras 
 
 
 
 
 
 
 
Ref.: 201512452676 
 
 
 
 7a Questão 
 
 
As estruturas de dados podem ser caracterizadas como sendo uma forma organizada de 
armazenar dados ou informações na memória, de modo a otimizar o acesso a estes. 
Muitas vezes existem algoritmos de manipulação dados associados a estas estruturas. 
Verifiqueas 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 III estão corretas. 
 
Todas as alternativas estão corretas. 
 As alternativas I e II estão corretas 
 
As alternativas III e IV estão corretas. 
 
Ref.: 201513372658 
 
 
 
 2a Questão 
 
 
Estão entre algumas das possíveis formas de estruturas de dados: 
 
 
Grafos, funções, fila 
 Árvores binárias, pilhas, vetores 
 
cout, Funções, vetores 
 
Árvores binárias, pilhas, algoritmos 
 
Listas, vetores, cin 
 
 
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. 
 
 
 
 
Ref.: 201512828023 
 
 
 
 3a Questão 
 
 
A forma correta para imprimir o valor do último elemento de um vetor v com n posições é: 
 
 cout << v[n-1]; 
 
cin >> v[-1]; 
 
cout << v[ultimo]; 
 
cout << v[n]; 
 
cout << v[n+1]; 
 
 
 
 
Ref.: 201513411927 
 
 
 
 4a Questão 
 
 
É um exemplo de TAD Não Linear: 
 
 
Pilhas 
 
Listas 
 
Filas de Prioridade 
 
Filas 
 Grafos 
 
 
Explicação: Um grafo é um tipo de dados abstrato não linear 
 
 
 
 
 
Ref.: 201512863983 
 
 
 
 6a Questão 
 
 
As estruturas de dados são utilizadas para manter dados ou informações organizados na 
memória, o que possibilita a otimização do uso destes dados. Porém, as estruturas guardam 
características especiais na manipulação destes dados, assim deve-se escolher a estrutura certa 
ou mais adequada para uma determinada aplicação. Portanto marque a opção que representa a 
melhor estrutura, quando se tem como requisitos principais o acesso aleatório aos dados e 
alocação destes de forma contínua na memória. 
 
 
Lista Encadeada 
 
Pilha Sequencial 
 
Fila Sequencial 
 Lista Sequencial 
 
Pilha Encadeada 
 
 
 
 
Ref.: 201513124482 
 
 
 
 7a Questão 
 
 
O que é estrutura de dados? 
 
 É 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 forma determinada de armazenamento de dados em um banco 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 comandos para uma tarefa específica referenciada por um nome no 
algoritmo principal, retornando um determinado valor no seu próprio nome. 
 
 
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. 
 
 
 
 
Ref.: 201512788501 
 
 
 
 8a Questão 
 
 
Leia com atenção as afirmativas abaixo e assinale a resposta correta. 
 
I A estrutura de dados que melhor representa os diretórios ou pastas de arquivos do 
computador é a árvore. 
II A estrutura de dados FILA é não linear assim como o Grafo. 
III O termo folha em uma estrutura de dados é usado para um nó sem filhos e que tem grau 
0, 
IV O grau de uma árvore é definido pelo número de subárvores de um nó. 
V O grafo é uma estrutura de dados que tem limitação para o número de vértices. 
VI Uma das aplicações da estrutura de dados grafo é a Computação Gráfica. 
 
 I, II, III e VI são afirmativas verdadeiras 
 I, III, IV e VI são afirmativas verdadeiras 
 II, IV, V e VI são afirmativas verdadeiras 
 II, IV e V são afirmativas verdadeiras 
 I, II e V são afirmativas verdadeiras 
 
 
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. 
 
É 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 conjunto de técnicas de programação. 
 É um modo particular de armazenamento e organização de dados em um computador de 
modo que possam ser usados eficientemente. 
 
 
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. 
 
 
 
Ref.: 201512241973 
 
 
 
 2a Questão 
 
 
Qual estrutura de dados é mais adequada para armazenar a estrutura do diretório do sistema 
de arquivos de um sistema operacional? 
 
 Árvore 
 
Pilha 
 
Lista 
 
Grafo 
 
Fila 
 
 
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. 
 
 
 
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 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 utilização de dados nos programas de computador. 
 
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. 
 
 
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. 
 
 
 
 
 
 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 
 Pilha 
 Lista 
 Grafo 
 
 
 
 
 7a 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. 
 
 II E IV são verdadeiras 
 II e V são verdadeiras 
 I e V são verdadeiras 
 III e V são verdadeiras 
 I , II e IV são verdadeiras 
 
 
 
 
 
Na maioria dos sistemas operacionais, os arquivos são organizados hierarquicamente em um 
esquema de diretórios (pastas) e sub-diretórios. Qual a estrutura mais adequada para 
representar este problema ? 
 
 
fila 
 
pilha 
 
lista 
 grafo 
 árvore 
 
 
 
 
Ref.: 201512841326 
 
 
 
 4a Questão 
 
 
 Os irmãos Silva irão viajar por vários países da Europa e por isso, traçaram no mapa o percurso 
que farão, de cidade a cidade. Qual a estrutura de dados mais adequada para modelar este 
problema ? 
 
 Pilha 
 Árvore 
 Grafo 
 Fila 
 Lista 
 
 
 
Em uma lista duplamente encadeada, seus nodos são compostos por campos cujos tipos 
podem ser de diferentes naturezas, entretanto dois de seus campos devem ser ponteiros 
para o mesmo tipo do nodo, são estes os ponteiros ant e prox, que apontam 
respectivamente para o nodo anterior e para o próximo nodo. Esta característica permite 
que a estrutura seja percorrida em ambos os sentidos. Assim analisando as operações a 
seguir: 
p->ant->prox=p->prox; 
p->prox->ant=p->ant; 
 
 Sendo p um ponteiro que aponta para um dos nodos da lista, pode-se afirmar que: 
 
 
As operações inserem novo nodo, após o nodo apontado pelo ponteiro p. 
 As operações removem o nodo apontado pelo ponteiro p. 
 As operações possibilitam a busca de um nodo apontado pelo ponteiro p. 
 
As operações possibilitam o percurso do ponteiro p da esquerda para direita. 
 
As operações possibilitam o percurso do ponteiro p da direita para esquerda. 
 
 
 
 
Ref.: 201512984115 
 
 2a Questão 
 
 
Ao criarmos uma rotina para inserir um dado em uma LISTA de dados duplamente encadeada e 
circular, nos deparamos com as seguintes cuidados: 
 
 
Só poderei inserir no final da lista e nunca no começo ou no meio. 
 
Só poderei inserir no final da lista e no começo somente se ela estiver cheia. 
 
Só poderei inserir no começo ou no fim, mas não no meio. 
 
Só poderei inserir no final da lista e no começo somente se ela estiver vazia. 
 Posso inserir no começo, no meio ou no fim. 
 
 
Explicação: 
Em uma lista duplamente encadeada circular ou não, podemos inserir ou remover de qualquer 
parte da lista. Não há problema na inserção se a lista estiver vazia. 
 
 
 
 
Ref.: 201513069319 
 
 3a Questão 
 
 
Sobre as estruturas de dados lineares, assinale V ou F: 
I - Em uma pilha, o último elemento a entrar é o primeiro a sair. 
II - Em uma fila, o primeiro elemento a entrar é o último a sair. 
III - Uma lista permite que as inserções possam ser feitas em qualquer lugar (posição), mas as 
remoções, não. 
IV - Em uma lista circular com encadeamento simples, o primeiro elemento aponta para o 
segundo e para o último. 
V - Para remover um elemento de uma lista duplamente encadeada, deve-se alterar o 
encadeamento dos elementos anterior e próximo ao elemento removido. A sequência correta de 
cima para baixo: 
 
 
V,F,F,V,F 
 
V,F,V,F,V 
 
F,V,V,F,F 
 V,F,F,F,V 
 F,F,V,V,V 
 
 
Explicação: 
Vamos analisar cada afirmativa. 
Analisando a afirmativa I : Correto, pois a estrutura pilha segue a 
lógica LIFO. 
 
Analisando a afirmativa II : Falso. Na estrutura de dados fila, o 
primeiro a entrar é o primeiro a sair, pois segue a lógica FIFO. 
 
Analisando a afirmativa III : Falso. Em uma lista tanto as inserções 
quanto as remoções podem ser feitas em qualquer posição. 
 
Analisando a afirmativa IV : Falso. Em uma lista circular, o1o. 
elemento aponta para o segundo elemento, mas o último elemento 
aponta para o 1º. elemento da lista. 
 
Analisando a afirmativa V : Está correta. 
 
Logo, a opção correta é V, F, F, F, V 
 
 
 
 
Ref.: 201512250307 
 
 4a Questão 
 
 
 Suponha uma listagem mantida com informações sobre um equipamento a ser 
adquirido por uma empresa. A listagem possui as informações sobre de 10 
fornecedores, descritas a seguir: 
próximo: um ponteiro para o próximo fornecedor da listagem; 
nome: nome, identificando o fornecedor; 
valor: preço do equipamento no fornecedor; 
anterior: um ponteiro para o fornecedor anterior da listagem. 
Sendo o fornecedor "Z" o quinto elemento desta listagem e "X" e "Y" dois outros 
fornecedores que não pertencem à listagem, com seus respectivos ponteiros 
"pZ", "pX" e "pY", considere o trecho de código abaixo. 
pY->proximo = pX; 
pX->anterior = pY; 
pX->proximo = pZ->proximo; 
pZ->proximo->anterior = pX; 
pZ->proximo = pY; 
pY->anterior = pZ; 
Este trecho de código é usado para inserir na listagem os fornecedores: 
 
 
Y, antes do Z, e X, antes do Y. 
 Y, logo após o Z, e X, logo após o Y. 
 Y, antes do Z, e X, logo após o Z. 
 
X, antes do Z, e Y, logo após o Z. 
 
X, logo após o Z, e Y, logo após o X. 
 
 
 
 
Ref.: 201513371374 
 
 5a Questão 
 
 
São listas que, além de cada elemento indicar o elemento seguinte, também indicam aquele 
que o antecede, ou melhor, cada elemento é ligado a seu sucessor e a seu predecessor, 
possibilitando um caminhamento no sentido início-fim ou no sentido oposto (fim-início). O texto 
acima, sobre Estrutura de Dados, descreve : 
 
 
Árvore 
 
Grafo 
 Listas Duplamente Encadeadas 
 
Listas simplesmente encadeadas 
 Listas Circulares 
 
 
Explicação: 
O enunciado é a descrição de listas duplamente encadeadas, que terão 2 ponteiros em cada nó, 
um apontando para o nó anterior e outro apontando para o nó posterior. 
 
 
 
 
Ref.: 201512250096 
 
 6a Questão 
 
 
Em uma lista linear duplamente encadeada.O ponteiro do "primeiro" nó não é NULL, mas sim aponta de volta para o "primeiro" nó 
da lista, formando um ciclo. 
 
Cada nó possui um só ponteiro que referencia o próximo nó da lista. 
 Além do campo relativo ao dado, cada nó possui dois ponteiros. 
 O ponteiro do "último" nó não é NULL, mas sim aponta de volta para o "primeiro" nó da 
lista. 
 
Cada ponteiro possui um só endereço que referencia o primeiro nó da lista. 
 
 
 
 
Ref.: 201512249946 
 
 7a Questão 
 
 
O armazenamento de dados na memória do computador é feito de forma ordenada, utilizando-se 
estruturas e regras de operações. Das alternativas a seguir, assinale a correta: 
 
 
Fila e Pilha são tipos especiais de listas lineares. Na Fila, o último que entra é o primeiro 
que sai, enquanto na Pilha, o primeiro que entra é o primeiro que sai. 
 
A lista binária é uma forma não-linear de organização dos dados. Existe um nó denominado 
raiz da árvore, que pode ter duas ou mais sub-árvores, que por sua vez também podem ter 
outras sub-árvores. 
 Em uma lista linear com alocação sequencial, os dados são heterogêneos e os nós da lista 
podem ter tamanhos diferentes, mas exigem espaço em endereço contíguo de memória. 
 Em uma lista linear com alocação duplamente encadeada os nós da estrutura ocupam 
espaços aleatórios na memória e cada nó armazena além da sua informação os endereços 
do nó anterior e do próximo nó da estrutura. 
 
Existem várias formas de apresentação de listas lineares, como listas circulares e as 
matrizes, que são formas exclusivas das listas de alocação encadeada. 
 
 
Explicação: 
Existem várias formas de apresentação de listas lineares, como listas 
circulares e as matrizes, que são formas exclusivas das listas de 
alocação encadeada.= FALSO = Ela possui apenas uma entrada, chamada de 
topo, a partir da qual os dadosentram e saem dela. Exemplos de pilhas são: pilha de 
pratos, pilha de livros, pilhade alocação de variáveis da memória, etc. Uma fila é uma lista linear 
do tipo FIFO - First In First Out, o primeiro elemento a entrar será o primeiro a sair 
A lista binária é uma forma não-linear de organização dos dados. 
Existe um nó denominado raiz da árvore, que pode ter duas ou mais 
sub-árvores, que por sua vez também podem ter outras sub-
árvores.= FALSO 
Em uma lista linear com alocação sequencial, os dados são 
heterogêneos e os nós da lista podem ter tamanhos diferentes, mas 
exigem espaço em endereço contíguo de memória. .= FALSO 
Em uma lista linear com alocação duplamente encadeada os nós da 
estrutura ocupam espaços aleatórios na memória e cada nó 
armazena além da sua informação os endereços do nó anterior e do 
próximo nó da estrutura. ===> VERDADE 
Fila e Pilha são tipos especiais de listas lineares. Na Fila, o último que 
entra é o primeiro que sai, enquanto na Pilha, o primeiro que entra é 
o primeiro que sai. ===> FALSO ===> Fila, o valor lido, sempre é 
passado para o começo, ou seja, esse valor aponta para as próximas 
posições, e quando for feita a exclusão, é só deletar esse valor do 
começo. Abaixo uma imagem que representa a Fila (FIFO). Pilha, 
sempre o último valor lido, ficará 
na primeira¿posiçãodalista,dessaforma,quandoforfeitaaexclusão,umauξ
liarapontaparaapróξmaposição,eaposiçãoatual,éexcluída.Abaixoumaima
≥mquerepresentaaΠlha(LIFO) 
 
 
 
 
Ref.: 201512863996 
 
 8a Questão 
 
 
Em uma lista duplamente encadeada, seus nodos são compostos por campos cujos tipos podem 
ser de diferentes naturezas, entretanto dois de seus campos devem ser ponteiros para o 
mesmo tipo do nodo, são estes os ponteiros ant e prox, que apontam, respectivamente, para o 
nodo anterior e para o próximo nodo. Esta característica permite que a estrutura seja 
percorrida em ambos os sentidos. Assim analisando as operações a seguir: 
 
p->ant->prox=p->prox; 
p->prox->ant=p->ant; 
 
Sendo p um ponteiro que aponta para um dos nodos da lista, pode-se afirmar que: 
 
 
As operações possibilitam o percurso do ponteiro p da esquerda para direita. 
 As operações inserem novo nodo, após o nodo apontado pelo ponteiro p. 
 
As operações possibilitam o percurso do ponteiro p da direita para esquerda. 
 
As operações possibilitam a busca de um nodo apontado pelo ponteiro p. 
 As operações removem o nodo apontado pelo ponteiro p. 
 
 
 
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; } 
 
 
18 e 28 
 
08 e 18 
 28 e 18 
 
28 e 08 
 
18 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. 
 
 
 
 
Ref.: 201512969927 
 
 
 
 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; 
 
 
0 e 5 
 
15 e 15 
 
25 e 25 
 15 e 25 
 25 e 15 
 
 
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 
 
 
 
 
Ref.: 201512814243 
 
 
 
 3a Questão 
 
 
Na passagem por ____________________ , o endereço da variável da função chamadora é 
passado para a função chamada e, dessa forma, o valor poderá ser alterado, ou não. 
 
 
caracter 
 
número 
 
valor 
 
void 
 referência 
 
 
Explicação: 
Esse é o conceito de passagem por referência. 
 
 
 
 
Ref.: 201513248185 
 
 
 
 4a Questão 
 
 
Considere as seguintes afirmativas : 
I) Os vetores em C++, quando passados como parâmetros de funções, são obrigatoriamente 
passados "por valor" e não "por referência". 
II) Variáveis globais são um recurso adequado para troca de informações entre funções 
distintas. 
III) Caso uma função necessite retornar mais de um valor ao programa que a chamou, deve 
fazê-lo usando parâmetros passados "por valor". 
As afirmativas corretas são: 
 
 
Apenas III 
 
Apenas I e II 
 Apenas I 
 
Apenas II 
 Nenhuma está correta 
 
 
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. 
 
 
 
 
Ref.: 201515046478 
 
 
 
 5a Questão 
 
 
#include < iostream > 
 using namespace std; 
voidSOMA(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 possui parâmetros. 
 
Não retorna valor e não possui parâmetros. 
 
Retorna valor e não possui parâmetros. 
 
Retorna valor e possui parâmetros. 
 
Retorna valor. 
 
 
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. 
 
 
 
 
Ref.: 201512827468 
 
 
 
 6a 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; 
 } 
 
 
 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 
 
2 4 6 8 
 
 
 
 
Ref.: 201513406514 
 
 
 
 7a Questão 
 
 
Considere o trecho de um programa escrito em C++ : 
long func1 (int n1) { 
 int ft=1, i = 1; 
 while ( i <= n1) { 
 ft *= i; 
 i++; 
 } 
 return ft; 
} 
main() { 
 cout << func1 (5); 
} 
Marque a opção correta que mostra o que é impresso na tela. 
 
 
1 
 120 
 
24 
 
60 
 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. 
 
 
 
 
Ref.: 201513293000 
 
 
 
 8a Questão 
 
 
Nas linguagens C e C++, ao se declarar qualquer função, a especificação de tipo de dados que 
antecede o nome desta função define 
 
 o tipo das variáveis que serão utilizadas dentro da função. 
 
o protótipo da função. 
 
o escopo das variáveis do programa. 
 
o tipo dos dados dos parâmetros que são passados à função quando da sua 
chamada. 
 o tipo do dado do valor retornado da função para quem a chamou. 
 
 
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. 
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 duas funções diferentes temos duas variáveis também diferentes com o mesmo 
nome apresentando o mesmo valor. 
 
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". 
 
 
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. 
 
 
 
 
Ref.: 201513406521 
 
 
 
 2a Questão 
 
 
Considere o trecho de um programa escrito em C++. 
int func1 (int vtx[], int tam) { 
 int soma=0; 
 for (int i=0 ; i < tam; i++) { 
 if (i % 2 !=0) 
 soma += vtx[i]; 
 } 
 return soma; 
} 
int main() { 
 int vt[5] = {10,20,30,40,50}; 
 cout << func1 (vt,5); 
} 
Marque a opção correta que mostra o que é impresso na tela. 
 
 
30 
 
20 
 60 
 50 
 
40 
 
 
Explicação: 
int func1 (int vtx[], int tam) { 
 int soma=0; //inicializa soma com zero. 
 for (int i=0 ; i < tam; i++) { 
 if (i % 2 !=0) //testa se i é ímpar. Se for, acumula na soma o valor de vtx[i] 
 soma += vtx[i]; 
 } 
 return soma; 
} 
 
Fazendo um teste de mesa parcial ... 
vetor tam soma i 
{10, 20, 30, 40, 50} 5 0 0 
 20 1 
 2 
E continua ... se vê que a função está somando os elementos do vetor que possuem índices 
ímpares. Logo, serão somados 20 e 40, que dará 60. 
A soma 60 é retornada e impressa na main. 
 
 
 
 
 
Ref.: 201513052449 
 
 
 
 4a Questão 
 
 
O que será mostrado na tela pelo programa abaixo ? 
 
#include < iostream > 
using namespace std; 
 
int a,b; 
 
void dobro(int x){ //x passado por valor 
 x=2*x; 
} 
int triplo(int y){ //y passado por valor 
 return 3*y; 
} 
void altera(int x, int &y) { //x passado por valor e y passado 
por referencia 
 x=x+a; 
 y=x+b; 
} 
 
int main (){ 
 a=2; 
 b=3; 
 dobro(a); 
 b=triplo(b); 
 altera(a,b); 
 cout<< a << " e " << b << endl; 
} 
 
 
 
 
4 e 12 
 4 e 9 
 
2 e 9 
 2 e 13 
 
9 e 16 
 
 
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 
 
 
 
 
Ref.: 201513406516 
 
 
 
 5a 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. 
 
 
3 
 
18 
 6 
 
27 
 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.. 
 
 
 
 
 
Ref.: 201513365358 
 
 
 
 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, 2, 8 
 
3, 5, 8 
 2, 5, 10 
 
2, 2, 9 
 
 
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. 
 
 
 
 
 
 
Ref.: 201513248196 
 
 
 
 7a 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 ? 
 
 14; 6 
 
6; 14 
 4; 12 
 
2; 12 
 
2; 6 
 
 
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 funcpara 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. 
 
 
 
 
 
Ref.: 201512969927 
 
 
 
 8a 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; 
 
 
0 e 5 
 
25 e 25 
 
15 e 15 
 25 e 15 
 
15 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 
 
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 
 
5 3 4 2 1 4 
 
5 4 3 2 1 6 
 
5 4 3 2 1 5 
 
5 3 4 2 1 0 
 
 
 
 
Ref.: 201512490233 
 
 
 
 2a Questão 
 
 
 
 
 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. 
 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 executa perfeitamente independente da ordem das 
funções já que existem os seus protótipos. 
 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. 
 
 
 
 
Ref.: 201513084812 
 
 
 
 3a Questão 
 
 
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; } 
 
 
18 e 18 
 
08 e 18 
 
18 e 28 
 28 e 18 
 
28 e 08 
 
 
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. 
 
 
 
 
Ref.: 201512452683 
 
 
 
 4a Questão 
 
 
Funções são instrumentos de modularização de programas, que tem como finalidade tornar o 
código mais legível, isto é mais fácil de entender, evita replicação de instruções e permite o reuso 
das funções em outros programas. Então considere o seguinte código: 
#include< iostream > 
using namespace std; 
 
int main( ) 
{ 
 float a=10.0; 
 float b=4.0; 
 cout < < media(a,b); 
 return 0; 
} 
float media(float x, float y) { return (x+y)/2;} 
 
Marque a alternativa CORRETA: 
 
 O código compila normalmente, pois como a descrição da função float media(float x, float 
y)está posicionada após a função int main ( ), não há necessidade do uso de protótipos. 
 
O código não compila, pois a função float media(float x, float y) retorna um valor que 
seria ser armazenado em uma variável do tipo float e só então poderia ser usado o 
comandocout para exibir o resultado. 
 
O código compila normalmente e apresenta como resultado o valor 7.0 
 O código não compila, pois há necessidade de se declarar float media(float, float) 
como protótipo da função float media(float x, float y)antes da função principal. 
 
O código não compila, pois os parâmetros usados na chamada da função deveriam ser 
"x" e "y"; porém a chamada se deu com identificadores "a" e "b". 
 
 
Explicação: 
Quando uma função é posicionada depois da função main(), o protótipo dela precisa 
estar presente antes da função main(). 
 
 
 
 
Ref.: 201512926352 
 
 
 
 5a 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 III e IV estão corretas 
 Somente II e IV estão corretas 
 Somente II está correta 
 Somente II e III estão corretas 
 Somente I e II estão corretas 
 
 
 
 
Ref.: 201513406507 
 
 
 
 6a Questão 
 
 
Considere o trecho de um programa escrito em C++. 
void func1 (bool x, int ini, int fim) { 
 for ( int y=ini; y != fim ; y++) { 
 x = !x; 
 if (x) 
 cout << y << endl; 
 else 
 cout << -y << endl; 
 } 
} 
int main() { 
 func1(false, 1, 7); 
} 
Marque a opção correta que mostra o que é impresso na tela. 
 
 
1, -2, -3, -4, -5, -6 
 
1, 2, 3, 4, 5, 6 
 
-1, -2, -3, -4, -5, -6 
 1, -2, 3, -4, 5, -6 
 
-1, 2, -3, 4, -5, 6 
 
 
Explicação: 
Fazendo um teste de mesa temos que será impresso a seguinte sequência : 1 -2 3 -4 5 -
6, um embaixo do outro. 
Parte de um teste de mesa : 
 
x ini fim y 
false 1 7 1 
true 2 
false 
E continua x, ini, fim e y recebendo valores 
Tela : 
1 
-2 
3 
-4 
5 
-6 
 
 
 
 
 
 
 
Ref.: 201513305576 
 
 
 
 7a 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'; 
} 
 
 
ogla 
 
algo 
 rogla 
 Ocorre erro, pois a função, que é do tipo void, não retorna o vetor Y. 
 
algor 
 
 
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 
 
 
 
 
Ref.: 201513406521 
 
 
 
 8a Questão 
 
 
Considere o trecho de um programa escrito em C++. 
int func1 (int vtx[], int tam) { 
 int soma=0; 
 for (int i=0 ; i < tam; i++) { 
 if (i % 2 !=0) 
 soma += vtx[i]; 
 } 
 return soma; 
} 
int main() { 
 int vt[5] = {10,20,30,40,50}; 
 cout << func1 (vt,5); 
} 
Marque a opção correta que mostra o que é impresso na tela. 
 
 
30 
 60 
 
20 
 
40 
 
50 
 
 
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. 
 
 
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: 
 
 
1; 3; 1 
 2; 2; 4 
 
2; 2; 1 
 
4; 2; 4 
 1; 2; 4 
 
 
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. 
 
 
 
 
Ref.: 201512832845 
 
 
 
 2a 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, int); 
 int func (int a, int &b); 
 
void func (int a, int &b); 
 
void func (int &a, int &b); 
 
 
 
 
Ref.: 201513124566 
 
 
 
 3a Questão 
 
 
Sobre funções, é correto afirmar: 
 
 
Não podem ser chamadas dentro de outras funções. 
 São blocos de instruções que são executados quando são chamadas em alguma parte 
do programa. 
 
Obrigatoriamente devem retornam algum valor. 
 
Não devem conter variáveis locais em seu código. 
 
Obrigatoriamente devem possuir parâmetros. 
 
 
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. 
 
 
 
 
Ref.: 201512250452 
 
 
 
 4a Questão 
 
 
Em programação podemos utilizar um recurso que modulariza o programa chamado função. As 
funções precisam ser ativadas para que possam ser executadas. Para isso, é necessário chamar a 
função pelo seu nome e enviar, quando necessário, os valores respectivos para os parâmetros de 
entrada. Ao enviar os valores para os parâmetros de entrada, o programa pode fazer uma cópia 
deste valor ou trabalhar em um endereço enviado. Quando se envia o endereço estamos ativando 
a função por meio de: 
 
 
Passagem por valor. 
 
Envio de inteiro. 
 
Envio de valor. 
 Ponteiros. 
 
Registro. 
 
 
Explicação: 
Falso. Quando se tem endereço não é passagem por valor 
Passagem por 
valor. 
 
FAlso. Fala-se em endereço do valor Envio de inteiro. 
 
 Verdadeiro. Ponteiro armazena o endereço de memória de uma 
variável 
Ponteiros. 
 
Falso. Como é esse envio ? Envio de valor. 
 
FAlso. Sem sentido. Resgistro (struct em C++) agrega dados de tipos 
diferentes. 
Registro. 
 
 
 
 
Ref.: 201513406544 
 
 
 
 5a Questão 
 
 
Considere o trecho deum programa escrito em C++ : 
int func1 (long num) { 
 int n, na=1; 
 while (num / 10 != 0){ 
 na += 1; 
 num /= 10; 
 } 
 return na; 
} 
main() { 
 cout << func1 (132041); 
} 
Marque a opção correta que mostra o que é impresso na tela. 
 
 
3 
 
2 
 
4 
 6 
 
1 
 
 
Explicação: 
Fazendo passo a passo : 
int func1 (long num) { 
 int n, na=1; 
 while (num / 10 != 0){ 
 na += 1; 
 num /= 10; 
 } 
 return na; 
} 
main() { 
 cout << func1 (132041); 
} 
Passos : 
1) Chamada da função passando o valor 132041 
2) Começa a função com num recebendo o valor 132041 
3) na recebe 1 
4) enquanto num/10 é diferente de zero faça ... Vejamos : 132041/10 é diferente de zero 
então 
 na recebe 2 e num recebe 13204 
5) Volta no teste do loop... 13204 /10 é diferente de zero ? Sim. Então, na recebe 3 e num 
recebe 1320 
6) Volta no teste do loop... 1320 /10 é diferente de zero ? Sim. Então, na recebe 4 e num 
recebe 132 
7) Volta no teste do loop... 132 /10 é diferente de zero ? Sim. Então, na recebe 5 e num recebe 
13 
8) Volta no teste do loop... 13 /10 é diferente de zero ? Sim. Então, na recebe 6 e num recebe 
1 
9) Volta no teste do loop... 1 /10 é diferente de zero ? Não. 
Então, retorna o valor e na que é 6. 
 
 
 
 
Ref.: 201513205444 
 
 
 
 6a 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); 
 
 
void volume (float, float, float &); 
 
float volume (float, float); 
 float volume (float ; float ; float); 
 
void volume (float , float); 
 float volume (float, float, float); 
 
 
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. 
 
 
 
 
 
Ref.: 201515056295 
 
 
 
 7a Questão 
 
 
Diga, para o trecho do programa abaixo, qual a opção que representa a saída em 
tela. Considere que o programa será compilado sem erros e irá executar também sem 
problemas . 
void troca (int x, int y){ 
 int tmp; 
 tmp = y; 
 y = x; 
 x = tmp; 
} 
int main( ) { 
 int a = 13, b = 10; 
 troca( a, b ); 
 cout<<"Valores: "<< a<<"\t"<< b<<< endl; 
 system("pause"); 
} 
 
 Valores: 13 10 
 
Valores: 13 13 
 
Valores: 31 01 
 Valores: 10 13 
 
Valores: 10 10 
 
 
Explicação: 
Acompanhando passo a passo a execução do trecho dado temos : 
void troca (int x, int y){ 
 int tmp; 
 tmp = y; 
 y = x; 
 x = tmp; 
} 
int main( ) { 
 int a = 13, b = 10; 
 troca( a, b ); 
 cout<<"Valores: "<< a<<"\t"<< b<<< endl; 
 system("pause"); 
} 
A execução começa pela main e os valores 13 e 10 são passados para a função na chamada 
em troca(a,b); 
Ao iniciar a execução em troca, temos que x recebe 13 e y recebe 10. Mas x e y são parâmetros 
passados por valor então, nada ocorrerá com a e b na main. ASsim, após a função terminar sua 
execução e voltarmos para a main temos a seguinte impressão na tela : 
Valores : 13 10 
 
 
 
 
Ref.: 201513406509 
 
 
 
 8a Questão 
 
 
Considere o trecho de um programa escrito em C++ : 
int func1 (int n1, int n2) { 
 int soma=0; 
 for ( ; n1 < n2 ; n1 += 2) { 
 soma += n1; 
 } 
 return soma; 
} 
main() { 
 cout << func1(1.20); 
} 
Marque a opção correta que mostra o que é impresso na tela. 
 
 
80 
 
102 
 
90 
 104 
 100 
 
 
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. 
 
 
Em C++, quando uma variável é declarada como uma struct, o acesso para atribuição e leitura 
dos membros (campos) deste registro se dá pelo operador : 
 
 
-> (seta). 
 
* (asterisco). 
 
& (e comercial ou eitza). 
 ∙ (ponto). 
 
, (vírgula). 
 
 
Explicação: 
Por definição, o operador que permite acessar os campos de uma variável struct é o ponto (.). 
 
 
 
 
Ref.: 201512889767 
 
 2a Questão 
 
 
Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, 
geralmente, agrupados sob uma lógica e associados por um nome. 
Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja 
a definição de uma estrutura como: 
 
 struct aluno { 
 string nome; 
 float nota; 
}; 
 
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].nota=5.7; 
 
aluno.vet[10]=5.7; 
 
aluno.vet[10].nota=5.7; 
 
vet[10].aluno.nota=5.7 ; 
 
 
 
Ref.: 201512974861 
 
 3a 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; } 
 
 
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. 
 
 
 
 
 
 
Ref.: 201512820289 
 
 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áveissimples, matrizes ou ainda outras estruturas. Seja a definição de uma estrutura 
como: struct aluno { string nome; float media; }; Suponha ainda que exista um vetor desta 
estrutura, definido como: aluno vet [ 10]; Marque a alternativa em que é atribuída de forma 
correta a media 6.0 para o quarto elemento deste vetor. 
 
 vet[3].media=6.0; 
 
vet[3].aluno=6.0; 
 
aluno[3].media=6.0; 
 
aluno[3].10=6.0; 
 
aluno[10]=6.0; 
 
 
 
Ref.: 201512863978 
 
 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].nota=5.7; 
 
aluno.vet[10]=5.7; 
 vet[10].nota=5.7; 
 
 
 
Ref.: 201512455128 
 
 6a Questão 
 
 
Com relação à struct, é correto afirmar que : 
 
 Não é possível criar um vetor de structs, pois o vetor trabalha apenas 
com dados do mesmo tipo. 
 Cada elemento da struct é chamado campo e cada campo deve ser, 
obrigatoriamente, de um tipo de dados distinto de outro campo. 
 A struct é sempre definida dentro da main. 
 Cada elemento da struct é denominado membro ou campo, sendo que a 
struct pode armazenar elementos de tipos diferentes ou não. 
 Cada elemento da struct é chamado componente. 
 
 
 
Ref.: 201513292994 
 
 7a Questão 
 
 
Dadas as afirmativas abaixo, identifique as corretas e marque a alternativa verdadeira. 
I- Vetores e matrizes servem apenas para construir agregados de dados heterogêneos. 
II- Registros em C++ são tipos de dados compostos formados por mais de um tipo de dados. 
III- Na Linguagem C++, "struct" é uma palavra reservada que serve para definir registros. 
IV- Registros são tipos de dados heterogêneos. 
 
 estão corretas apenas as afirmativas II, III e IV. 
 
estão corretas apenas as afirmativas I, II e III. 
 
estão corretas apenas as afirmativas I, II e IV. 
 
todas as afirmativas estão corretas. 
 
estão corretas apenas as afirmativas I, III e IV. 
 
 
Explicação: 
Analisando as afirmativas, temos : 
Afirmativa I : Falso. Vetores e matrizes são agregados homogêneos. 
Afirmativas II, III e IV : Estão corretas. Basicamente, structs são agregados heterogêneos. 
Logo, a opção correta é estão corretas apenas as afirmativas II, III e IV. 
 
 
 
Ref.: 201512249913 
 
 8a Questão 
 
 
Qual das seguintes estruturas de dados é classificada como heterogênea? 
 
 
Fila 
 Registro 
 
Vetor 
 
Loop 
 
Pilha 
 
 
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. 
 
 
 
 
 if(vet[j] < vet[j-1] ) 
 { 
 aux=vet[j]; 
 vet[j]< vet[j-1]; 
 vet[j-1]=aux; 
 } 
 if(vet[j] == vet[j-1] ) 
 { 
 aux=vet[j]; 
 vet[j]= 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-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; 
 } 
 
 
 
 
Ref.: 201512452690 
 
 
 
 2a Questão 
 
 
Entre os diversos algoritmos de pesquisa existentes, certamente os mais famosos são os 
da pesquisa sequencial e o da pesquisa binária. A busca ou pesquisa sequencial pode ser 
aplicada em vetores independente destes estarem ordenados, entretanto a busca binária 
só se aplica em vetores ordenados. 
Seja o vetor A= {10,35,41,55,69,70,98}, suponha que o número 70 foi pesquisado pelo 
algoritmo da busca sequencial e também pelo algoritmo da busca binária, ambos 
algoritmos realizam testes nos elementos do vetor até achar o que procuram ou 
definirem que o elemento não se encontra no vetor. Sendo assim marque a alternativa 
que expressa o número de testes realizados pela busca sequencial e o número de testes 
realizados pela busca binária, respectivamente, até encontrarem o 70. 
 
 
5 e 5 
 7 e 1 
 
6 e 4 
 6 e 2 
 
6 e 1 
 
 
 
 
Ref.: 201512250448 
 
 
 
 3a Questão 
 
 
Os algoritmos de busca são muito utilizados em estrutura de dados. Sendo assim, o algoritmo 
que realiza a busca em vetores e que exige acesso aleatório aos elementos do mesmo e que 
parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de 
busca comparando o elemento que se deseja com o elemento do meio do vetor, é chamado de: 
 
 
Tabela Hash 
 
Pesquisa de seleção 
 
Pesquisa sequêncial 
 Pesquisa ordenada 
 Pesquisa binária 
 
 
Explicação: 
O enunciado descreve a busca binária. 
A busca sequencial trabalha sequencialmente testando elemento a elemento. 
Pesquisa de seleção ou ordenada não foram abordadas. 
Tabela hash trabalha com função hash e não se encaixa na descrição feita. 
 
 
 
 
Ref.: 201513091329 
 
 
 
 4a Questão 
 
 
 
Este vetor foi ordenado pelo método: 
 
 
Ordenação por inserção (insertion sort). 
 Quicksort. 
 
Ordenação por seleção (selection sort). 
 Método da bolha (bubble sort). 
 
Mergesort. 
 
 
Explicação: 
O bubblesort trabalha comparando e trocando, se preciso, duplas de dados vizinhos. Portanto, 
pelo comportamento na sequÊncia descrita temos o método da bolha ou bubblesort. 
 
 
 
 
Ref.: 201513084820 
 
 
 
 5a Questão 
 
 
Qual característica NÃO podemos atribuir a PESQUISA BINÁRIA. 
 
 A lista pode estar desordenada. 
 
Quando o valor pesquisado é maior do que a chave do MEIO da lista, devemos 
dispensar a metade que vem antes do meio da lista. 
 
É eficiente quando se trata de listas ordenadas 
 
São realizadas sucessivas divisões da lista ao meio. 
 
A lista precisa estar ordenada. 
 
 
Explicação: Na pesquisa binária a lista obrigatoriamente deverá estar ORDENADA. 
 
 
 
 
Ref.: 201512838717 
 
 
 
 6a Questão 
 
 
Sabendo-se que o método de ordenção bolha ou bubble sort realiza a troca de elementos 
adjacentes até que todos os elementos de um vetor esteja ordenado. Então, se submetermos a 
sequencia de inteiros armazenada em um vetor inicialmente na seguinte ordem : 4, 2, 5, 1. 
Pode-se dizer que quando o maior elemento do vetor alcançar sua posição final, a ordenação 
apresentada no vetor é: 
 
 
1,4,2,5 
 
1,2,4,5 
 
4,1,2,5 
 2,1,4,5 
 2,4,1,5 
 
 
 
 
Ref.: 201512253485 
 
 
 
 7a Questão 
 
 
Existem vários algoritmos de busca em estruturas de dados, um destes realiza a busca em 
vetores, e requer acesso aleatório aos elementos desta estrutura e parte do pressuposto de que 
os dados do vetor estejam ordenados e utiliza a técnica de divisão e conquista comparando o 
elemento desejado com o elemento do meio do vetor. Esta técnica ainda verifica se o elemento 
do meio do vetor for o desejado, a busca termina. Caso contrário, se o

Continue navegando