Você está na página 1de 39

1a Questão (Ref.

: 201607622691) Fórum de Dúvidas (1) Saiba (1)

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.

246

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.

2468

2 4 6 8 10

2a Questão (Ref.: 201607045672) Fórum de Dúvidas (1) Saiba (1)

Com a utilização das estruturas de dados e seus tipos, em algumas situações é imprescindível a criação de
funções que façam determinada verificação ou ação nestas estruturas. Dessa forma, analise a função abaixo e
marque corretamente a alternativa que descreve as funcionalidades desta.

int funcao(float v[], float vl, int n)


{
for (int i = 0; i < n; i++)
if (v[i] == vl)
return i;
return -1;
}

Retorna o valor de vl se o valor n foi encontrado.


Retorna a posição de v se o valor vl foi encontrado.
Resulta em erro, se o valor de vl não estiver dentro de v.
Retorna -1 se o valor de vl estiver dentro de v.
Retorna -1 se o valor de n foi encontrado.

Gabarito Comentado
3a Questão (Ref.: 201607250321) Fórum de Dúvidas (1 de 1) Saiba (1 de 1)

Auxiliar = 111 Numero1 = 1000 Numero2 = 80


Auxiliar = 101 Numero1 = 900 Numero2 = 20
Auxiliar = 100 Numero1 = 900 Numero2 = 80

Auxiliar = 100 Numero1 = 1000 Numero2 = 20


Auxiliar = 100 Numero1 = 900 Numero2 = 20

Gabarito Comentado

4a Questão (Ref.: 201607112808) Fórum de Dúvidas (1) Saiba (1)

Assinale a opção certa.

Quando não se escreve o protótipo de uma função ...

A chamada da função não poderá ser feita em qualquer hipótese.


É preciso definir a função antes do programa principal.
O programa não funcionará de forma alguma.
A definição da função deverá ser escrita, obrigatoriamente, após o programa principal.
A chamada da função poderá ser feita em qualquer hipótese.

Gabarito Comentado
5a Questão (Ref.: 201607045676) Fórum de Dúvidas (1) Saiba (1)

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.

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

Gabarito Comentado

6a Questão (Ref.: 201607037191) Fórum de Dúvidas (1 de 1) Saiba (1 de 1)

Assinale a alternativa que apresenta duas formas de passagem de parâmetros para uma rotina ou função:

Por memória e por disco.


Por reforço e por referência.
Por valor e por referência
Por teste e por reforço.
Por inferência e por valor.

Gabarito Comentado

7a Questão (Ref.: 201607659196) Fórum de Dúvidas (1) Saiba (1)

Blocos únicos de códigos que realizam diversas tarefas distintas são de difícil manutenção. Portanto, utiliza-se a
técnica da modularização de programas, a fim de facilitar a implementação e a manutenção dos programas.
Esta técnica tem como principal elemento:

Os Grafos
As Filas
As funções
Os Vetores
As Estruturas de Dados
8a Questão (Ref.: 201607880035) Fórum de Dúvidas (1 de 1) Saiba (1 de 1)

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
28 e 08
08 e 18
28 e 18

1a Questão (Ref.: 201607627362) Fórum de Dúvidas (1) Saiba (1)

Considere a função:

void dobro(int x) {

x = 10 * x;

Qual será o valor impresso na tela quando o programa principal for executado?

int main() {

int n;

n = 5;

dobro(n);

cout << n;

return 0;

10
Haverá um erro de compilação
5
50
0
Gabarito Comentado

2a Questão (Ref.: 201607721575) Fórum de Dúvidas (1 de 1) Saiba (1 de 1)

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 e III estão corretas


Somente II está correta
Somente II III e IV estão corretas
Somente I e II estão corretas
Somente II e IV estão corretas

Gabarito Comentado

3a Questão (Ref.: 201607628068) Fórum de Dúvidas (1 de 1) Saiba (1 de 1)

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);
void func (int a, int &b);
int func (int &a, int b);
void func (int &a, int &b);

Gabarito Comentado
4a Questão (Ref.: 201607633949) Fórum de Dúvidas (1) Saiba (1)

Blocos únicos de códigos que realizam diversas tarefas distitintas são de dificil manutenção. Portanto, utiliza-se
a tecnica da modularização de programas, a fim de facilitar a implementação e a manutenção dos programas.
Esta técnica, também chamada de modularização, tem como principal elemento:

As Filas
Os Vetores
As Estruturas de Dados
As funções
Os Grafos

5a Questão (Ref.: 201607278649) Fórum de Dúvidas (1 de 1) Saiba (1 de 1)

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");
}

543215
534214
543216
543210
534210

6a Questão (Ref.: 201607880035) Fórum de Dúvidas (1 de 1) Saiba (1 de 1)

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; }

28 e 08
28 e 18
18 e 18
18 e 28
08 e 18

7a Questão (Ref.: 201607045675) Fórum de Dúvidas (1 de 1) Saiba (1 de 1)

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.


Registro.
Envio de valor.
Envio de inteiro.
Ponteiros.

Gabarito Comentado

8a Questão (Ref.: 201607045641) Fórum de Dúvidas (1) Saiba (1)

As variáveis em programação são utilizadas para armazenar um valor de determinado tipo em um espaço
reservado na memória. Em algumas linguagens de programação podemos declarar, ou seja, reservar um espaço
na memória, fora do escopo da função principal, e fora do escopo de qualquer outra função. Ao fazer a
declaração desta forma estamos declarando uma variável do tipo:

Local
Constante
Inteiro
Global
Real
Exercício: CCT0260_EX_A3_201607015935_V1 Matrícula: 201607015935

Aluno(a): RENATO ADAUTO DA SILVA Data: 06/09/2017 22:50:00 (Finalizada)

1a Questão (Ref.: 201607045136) Fórum de Dúvidas (0) Saiba (0)


Qual das seguintes estruturas de dados é classificada como heterogênea?

Registro
Loop
Pilha
Fila
Vetor

Gabarito Comentado

2a Questão (Ref.: 201607684990) Fórum de Dúvidas (0) Saiba (0)

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;
aluno.vet[10].nota=5.7;
vet[10]=aluno.5.7;
vet[10].aluno.nota=5.7 ;
vet[10].nota=5.7;

3a Questão (Ref.: 201607717240) Fórum de Dúvidas (0) Saiba (0)

Marque a opção correta, considerando

struct Livro {
int codigo;
float preco;
} liv;

Livro.codigo = 12345;
Livro.liv.codigo = 12345;
liv->preco = 30.70;
Livro->liv.codigo = 12345;
liv.preco = 30.70;

4a Questão (Ref.: 201607045643) Fórum de Dúvidas (0) Saiba (0)

A armazenagem de dados pode ocorrer temporariamente em uma variável, um vetor ou em uma estrutura
chamada Struct na linguagem C e C++. Como se procede a atribuição de valor a um determinado campo de
uma estrutura do tipo Struct?

Nome da estrutura seta nome do campo


Nome da estrutura ponto nome do campo
Nome da estrutura vírgula tipo do campo
Nome da estrutura ponto tipo do campo
Nome da estrutura seta tipo do campo

Gabarito Comentado

5a Questão (Ref.: 201607250351) Fórum de Dúvidas (0) Saiba (0)

Com relação à struct, é correto afirmar que :

Cada elemento da struct é chamado componente.

Cada elemento da struct é denominado membro ou campo, sendo que a struct pode
armazenar elementos de tipos diferentes ou não.

A struct é sempre definida dentro da main.

Cada elemento da struct é chamado campo e cada campo deve ser, obrigatoriamente,
de um tipo de dados distinto de outro campo.

Não é possível criar um vetor de structs, pois o vetor trabalha apenas com dados do
mesmo tipo.

Gabarito Comentado

6a Questão (Ref.: 201607615512) Fórum de Dúvidas (0) Saiba (0)

Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, agrupados sob
uma lógica e associados por um nome. Esses elementos podem ser variáveis simples, matrizes ou ainda outras
estruturas. Seja a definição de uma estrutura como: struct aluno { string nome; float media; }; Suponha ainda
que exista um vetor desta estrutura, definido como: aluno vet [ 10]; Marque a alternativa em que é atribuída de
forma correta a media 6.0 para o quarto elemento deste vetor.

aluno[10]=6.0;
vet[3].aluno=6.0;
vet[3].media=6.0;
aluno[3].10=6.0;
aluno[3].media=6.0;

7a Questão (Ref.: 201607659201) Fórum de Dúvidas (0) Saiba (0)

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;

1a Questão (Ref.: 201607048708) Fórum de Dúvidas (1) Saiba (0)

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 elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior
do vetor. E se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor. O
algoritmo que utiliza esta metodologia é:

Pesquisa binária
Pesquisa sequencial
Seleção
Bolha
Inserção

Gabarito Comentado
2a Questão (Ref.: 201607048473) Fórum de Dúvidas (1) Saiba (0)

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 de cadeias
pesquisa indexada
pesquisa sequencial
pesquisa binária
pesquisa cadeias indexada

Gabarito Comentado

3a Questão (Ref.: 201607045303) Fórum de Dúvidas (1) Saiba (0)

Qual a importância de se entender a "ordenação" de dados ?

A ordenação é a base na qual, muitos algoritmos 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 sistemas 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 algoritmos são construídos. Entendendo a ordenação, tem-se
conhecimento para manter outros problemas.
Gabarito Comentado

4a Questão (Ref.: 201607633940) Fórum de Dúvidas (1 de 1) Saiba (0)

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

Gabarito Comentado

5a Questão (Ref.: 201607045562) Fórum de Dúvidas (1) Saiba (0)

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:

linear.
por contagem.
por comparação.
randômica.
binária.

Gabarito Comentado

6a Questão (Ref.: 201607775753) Fórum de Dúvidas (1) Saiba (0)

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 fosse utilizada a busca binária e se fosse
utilizada busca sequencial, respectivamente, seria de:

9 e 10
1024 e 512
10 e 10
10 e 1024
9e9

Gabarito Comentado

7a Questão (Ref.: 201607630770) Fórum de Dúvidas (1 de 1) Saiba (0)

Nos métodos de ordenação interna, quais são aqueles classificados como tipo método simples?

Shell Sort, Quick Sort e Heap Sort


Insert Sort, Bubble Sort e Quick Sort
Selection Sort, Shell Sort e Bubble Sort
Selection Sort, Insert Sort e Bubble Sort
Insert Sort, Bubble Sort e Shell Sort

Gabarito Comentado Gabarito Comentado Gabarito Comentado

8a Questão (Ref.: 201607045648) Fórum de Dúvidas (1 de 1) Saiba (0)

Os métodos de ordenação são muito utilizados para facilitar a recuperação posterior de itens ordenados. Existem
vários métodos de ordenação, por esse motivo, assinale corretamente a alternativa que mostra o nome do
método que utiliza a estratégia de ordenação por trocas de vizinhos e é considerado o método mais simples.

Bolha
Seleção
Hash
Binária
Inserção

1a Questão (Ref.: 201607045499) Fórum de Dúvidas (0) Saiba (0)

Com relação as listas lineares sequenciais:

I - Uma lista linear sequencial é um vetor em linguagens estruturadas, também chamado de array.

II - Um elemento de uma lista linear sequencial pode ser acessado diretamente através de um índice.

III - Uma lista linear sequencial pode ter elementos de um mesmo tipo, ou de tipos diferentes.
Apenas a afirmação I está correta.
Apenas as afirmações I e II estão corretas.
Apenas as afirmações II e III estão corretas.
Apenas as afirmações I e III estão corretas.
Apenas as afirmações II está corretas.

Gabarito Comentado

2a Questão (Ref.: 201607247916) Fórum de Dúvidas (0) Saiba (0)

As estruturas de dados são utilizadas para manter dados ou informações organizados na memória, o que
possibilita a otimização do uso destes dados. Porém, as estruturas guardam características especiais na
manipulação destes dados, assim deve-se escolher a estrutura certa ou mais adequada para uma determinada
aplicação. Portanto marque a opção que representa a melhor estrutura, quando se tem como requisitos
principais o acesso aleatório aos dados e alocação destes de forma contínua na memória.

Lista Sequencial
Pilha Sequencial
Lista Encadeada
Fila Sequencial
Pilha Encadeada

Gabarito Comentado

3a Questão (Ref.: 201607693185) Fórum de Dúvidas (0) Saiba (0)

Considere uma lista com n livros, em que cada livro é modelado pela struct :

struct Livro {
string titulo, editora, autor;
float preco;
};

A função X abaixo

void X (Livro v[ ], int &n, Livro L)


{
v[n] = L;
n++;
cout << "Operação realizada com sucesso.";
}

implementa a operação de :
Inicialização
Ordenação por inserção
Busca
Inserção
Substituição

Gabarito Comentado

4a Questão (Ref.: 201607037209) Fórum de Dúvidas (0) Saiba (0)

Um órgão público adotou dois sistemas de senhas para atender os cidadãos na ordem de chegada. O sistema I
atende os não idosos. O sistema II atende os idosos. Nessa situação:

o sistema I, adota o esquema LIFO de organização de dados e o II, o esquema LIFO.


tanto o sistema I, quanto o II, adotam o esquema vetor de organização de dados.
tanto o sistema I, quanto o II, adotam o esquema FIFO de organização de dados.
tanto o sistema I, quanto o II, adotam o esquema LIFO de organização de dados.
o sistema I, adota o esquema LIFO de organização de dados e o II, o esquema FIFO.

Gabarito Comentado

5a Questão (Ref.: 201607045119) Fórum de Dúvidas (0) Saiba (0)

O que acontece ao se inserir uma informação quando já usamos toda a área disponível do vetor (topo = fim)?

overflow
inclusão
ordenação
remoção
underflow

Gabarito Comentado

6a Questão (Ref.: 201607609366) Fórum de Dúvidas (0) Saiba (0)

__________________________ é uma lista linear em que a alocação de memória pode ser estática, e que a
forma de armazenamento é contígua ou sequencial na memória. Usamos este tipo de lista quando se tem em
mente um tamanho pré-definido, ou seja, quando se sabe até onde a lista pode crescer.
Lista Linear de Alocação de Memória
Lista Não Linear
Lista Linear Sequencial
Lista Linear Não Sequencial
Lista Linear Não Alocada

7a Questão (Ref.: 201607045642) Fórum de Dúvidas (0) Saiba (0)

As estruturas de dados em programação são muito utilizadas para tornar o acesso aos dados mais eficiente e
organizado. A estrutura de dados considerada mais simples e tem como característica apresentar apenas uma
dimensão é:

Matriz
Variável
Vetor
Função
Registro

Gabarito Comentado

8a Questão (Ref.: 201607045663) Fórum de Dúvidas (0) Saiba (0)

Analisando o trecho do algoritmo abaixo,

pode-se afirmar que se trata de uma operação de:

Remoção de um elemento de uma estrutura LIFO


Inserção de um elemento em uma estrutura FIFO
Inserção de um elemento em uma estrutura LIFO
Exibição de um elemento em uma estrutura LIFO
Remoção de um elemento de uma estrutura FIFO

1a Questão (Ref.: 201607267239) Fórum de Dúvidas (0) Saiba (0)

Um programador recebeu a tarefa de construir um programa que receba uma cadeia de caracteres e verifique
se esta cadeia de caracteres é um PALÍNDROME, sabendo-se que um PALÍNDROME apresenta a mesma
sequência de caracteres da esquerda pra direita, quanto da direita para esquerda, marque a opção que possui a
estrutura de dados mais adequada a este programa.
Pilha Sequencial
Lista Sequencial
Grafos
Fila Sequencial
Árvores

Gabarito Comentado

2a Questão (Ref.: 201607112764) Fórum de Dúvidas (0) Saiba (0)

A estrutura de dados do tipo pilha (stack) é um tipo abstrato de dado baseada no princípio:

De dividir para conquistar.


First In First Out (FIFO).
Da indiferença.
Last In First Out (LIFO).
Da localidade de referência.

Gabarito Comentado

3a Questão (Ref.: 201607045623) Fórum de Dúvidas (0) Saiba (0)

Ao remover um elemento armazenado em uma pilha é necessário a atualização da variável (Topo) indicadora de
posição. Qual das alternativas abaixo está correta?

Antes a operação de remoção decrementa a variável indicadora de posição.


Após a operação de remoção incrementa a variável indicadora de posição.
Antes da operação de remoção incrementa a variável indicadora de posição.
Após a operação de remoção incrementa a variável indicadora de inicio.
Após a operação de remoção decrementa a variável indicadora de posição.

Gabarito Comentado

4a Questão (Ref.: 201607045637) Fórum de Dúvidas (0) Saiba (0)

Sistemas operacionais utilizam filas para gerenciar, tarefas, processos e recursos. Qual é a ordenação dos
elementos armazenados aleatoriamente em uma lista do tipo LIFO?

Nenhuma das operações altera o estado da Pilha


Somente a operação POP altera o estado da Pilha
A operação TOP remove um elemento e altera o estado da Pilha
Ambas alteram o estado da Pilha
Somente a operação TOP altera o estado da Pilha

5a Questão (Ref.: 201607283514) Fórum de Dúvidas (0) Saiba (0)

Na pequena pizzaria de Dom Leopoldo os pedidos são anotados em uma planilha e assim que montam um lote
com 5 pizzas, as entregas começam. As pizzas são organizadas no veículo de entrega respeitando a ordem da
entrega, ou seja, a 1a. pizza a ser entregue fica na frente de todas e assim, sucessivamente. Dessa forma, a
última pizza a ser entregue ficará no final do veículo, após todas as outras pizzas. Qual a estrutura de dados é
mais adequada para modelar a organização das pizzas no veículo de entrega ?

grafo
árvore
pilha
lista
fila

Gabarito Comentado

6a Questão (Ref.: 201607247918) Fórum de Dúvidas (0) Saiba (0)

As pilhas sequenciais são estruturas que guardam a ordem reversa dos dados nelas armazenados, e isto em
muitas ocasiões é muito vantajoso. A operação usada para inserir um elemento X numa pilha é conhecida
na literatura como PUSH (X). Para remover um elemento de uma pilha a operação é o POP( ). Assim estas
duas funções devem implentar o algoritmo LIFO (Last In - First Out ) ou o último a entrar é o primeiro a
sair. Sendo assim se aplicarmos as seguintes operações em uma PILHA vazia:

PUSH(10),PUSH(5),POP(),PUSH(7),POP(),PUSH(2),POP(),POP( ).

Quais valores restarão na pilha?

Apenas o 10
Apenas o 2
Nenhum, a pilha estará vazia.
7e2
10 e 2

Gabarito Comentado

7a Questão (Ref.: 201607112768) Fórum de Dúvidas (0) Saiba (0)

Na estrutura de dados tipo pilha, há duas operações básicas para empilhamento e desempilhamento. Essas
operações são conhecidas como:
Base e Topo;
HEAP e POP;
PULL e POP;
PUSH e POP.
PUSH e PULL;

Gabarito Comentado

8a Questão (Ref.: 201607283509) Fórum de Dúvidas (0) Saiba (0)

Tei Ping, estudante de computação, precisou implementar parte de um jogo que trabalhava com cartas
especiais. Cada carta possui um número e uma letra. Alguns jogadores teriam que jogar as cartas na mesa,
enquanto outros deveriam devolver as cartas na sequência inversa à jogada. Tei Ping estudou o mecanismo do
jogo e decidiu usar a melhor estrutura de dados na sua implementação. Qual a estrutura escolhida ?

lista
fila
pilha
árvore
grafo

1a Questão (Ref.: 201607810144) Fórum de Dúvidas (0) Saiba (0)

Assumindo que estamos com uma estrutura de dados do tipo LIFO, as operações abaixo vão resultar em que
elementos na mesma: PUSH(2), PUSH(3), PUSH(4), POP(), POP(), PUSH(5), PUSH(7), POP()

25
57
247
345
234

Gabarito Comentado Gabarito Comentado Gabarito Comentado

2a Questão (Ref.: 201607250340) Fórum de Dúvidas (0) Saiba (0)

Navegadores para internet armazenam os últimos endereços visitados em uma estrutura de


dados. Cada vez que um novo site é visitado, o endereço do site é adicionado na estrutura de
endereços. Quando se aciona o retorno ("back"), o navegador permite que o usuário retorne no
último site visitado e retira o endereço do site da estrutura de dados.

Assinale a estrutura de dados mais adequada para este problema.


grafo
lista
árvore
pilha
fila

Gabarito Comentado

3a Questão (Ref.: 201607283517) Fórum de Dúvidas (0) Saiba (0)

Na pequena mercearia do Sr. Manuel os pedidos são anotados no papel e assim que montam um lote com 10
listas de compras dos fregueses, as entregas começam. As compras de cada freguês são postas em uma caixa.
As caixas são organizadas no veículo de entrega respeitando a ordem da entrega, ou seja, a 1a. caixa a ser
entregue fica na frente das demais caixas e assim, sucessivamente. Dessa forma, a última caixa a ser entregue
ficará no final do veículo, após todas as outras caixas que deverão ser entregues primeiro. Qual a estrutura de
dados mais adequada que traduz a organização das pizzas no veículo de entrega ?

árvore
grafo
fila
lista
pilha

Gabarito Comentado

4a Questão (Ref.: 201607584923) Fórum de Dúvidas (0) Saiba (0)

Abaixo temos algumas afirmativas sobre o uso da estrutura pilha de forma estática e sequencial. Leia com
muita atenção e assinale a opção correta.

I Não existe movimentação na pilha quando inserimos ou removemos um elemento. Apenas o valor da
variável que controla o topo é alterado.
II Não podemos usar estruturas homogêneas, ou heterogêneas e uma variável para controlar o topo na
alocação sequencial.
III Um dos fatores que limita o crescimento da pilha é a quantidade de memória alocada quando usamos
matrizes.
IV Quando formos empilhar um elemento, é preciso verificar se a pilha não está cheia. Isso evita underflow.
V Quando formos desempilhar um elemento, é preciso verificar se a pilha não está vazia. Isso evita overflow.

Somente a I está correta


II, IV e V estão corretas
I, IV e V estão corretas
I, IV e V estão corretas
I e III estão corretas

Gabarito Comentado
5a Questão (Ref.: 201607045134) Fórum de Dúvidas (0) Saiba (0)

A técnica LIFO (last in first out), utilizada em programação estruturada, é fundamentada no conceito de:

Loop
Fila
Ponteiro
Registro
Pilha

Gabarito Comentado

6a Questão (Ref.: 201607285500) Fórum de Dúvidas (0) Saiba (0)

As estruturas de dados devem ser especificadas de modo que estas auxiliem


as aplicações em sua principal tarefa ou funcionalidade. Sendo assim, pode-
se desenvolver uma aplicação capaz de fazer a conversão de números da
base 10, para a base binária, octal ou hexadecimal a partir de um algoritmo
de divisões sucessivas. Este algoritmo baseia na divisão de um número
decimal pela base que se deseja a transformação, armazenando o resto da
divisão em uma estrutura de dados, efetuando nova divisão no resultado
obtido da divisão prévia, novamente armazenando o resto desta operação na
estrutura de dados e assim por diante até que o resultado da divisão seja
zero. Neste momento, a estrutura possui exatamente, na ordem reversa, os
algarismos correspondentes ao número convertido para a nova base.
Analisando esta estratégia poder-se-ia dizer que a estrutura de dados mais
propícia para tal tarefa é :

Pilha
Fila
Árvore
Lista
Grafo

Gabarito Comentado
7a Questão (Ref.: 201607584857) Fórum de Dúvidas (0) Saiba (0)

Observe a função que manipula uma pilha e assuma que TAM é uma constante definida com valor 5. Saiba
que o nome da função já explícita a finalidade dela.

Considere a chamada da função conforme linha abaixo, sabendo-se que vet é um vetor de tamanho 5 e que
não tem nenhum valor ainda:

Analise as afirmativas abaixo que sugerem correções, ou não, na definição na função e assinale a opção
que contem as afirmativas corretas.

I Faltou & antes da variável vetor e irá acusar erro.


II A variável topo está sem tipo.
III O teste está correto porque o índice do primeiro elemento do vetor em C++ é 1, obrigatoriamente.
IV Na linha comentada deveria estar presente um comando de atribuição que decrementaria a variável topo.
V A linha vetor[topo]=valor; está correta.

II e V estão corretas
I , III e V estão corretas
I, II e IV estão corretas
I e III estão corretas
I e II estão corretas

Gabarito Comentado

8a Questão (Ref.: 201607045292) Fórum de Dúvidas (0) Saiba (0)

Em um container do tipo Pilha:

Utiliza-se a ordenação Last In First Out (LIFO).


Se permite acesso aos dados armazenados pelo seu conteúdo.
Utiliza-se a ordenação First In Fisrt Out (FIFO).
A ordenação utilizada não importa, uma vez que a recuperação dos dados é
feita pela posição do mesmo.
É possível acessar os dados armazenados por várias ordenações.

1a Questão (Ref.: 201607045458) Fórum de Dúvidas (0) Saiba (0)

Marque a afirmativa que represente uma Lista Circular Simplesmente Encadeada:

O ponteiro do "último" nó não é NULL, mas sim aponta de volta para o "primeiro" nó da lista.
O ponteiro do "primeiro" nó não é NULL, mas sim aponta de volta para o "último" nó da lista, formando
um ciclo.
Além do campo relativo ao dado, cada nó possui dois ponteiros,
Cada nó possui um só ponteiro que referencia o próximo nó da lista.
Cada ponteiro possui um só endereço que referencia o "primeiro" nó da lista.

Gabarito Comentado

2a Questão (Ref.: 201607045148) Fórum de Dúvidas (0) Saiba (0)

Seja Q uma estrutura de dados do tipo fila, em que ENQUEUE(X) significa a adição do elemento X à Q e que
DEQUEUE(), a retirada de um elemento. Q está inicialmente vazia e sofre a seguinte sequencia de operações:

ENQUEUE(1)

ENQUEUE(2)

DEQUEUE()

ENQUEUE(3)

ENQUEUE(4)

DEQUEUE()

DEQUEUE()

ENQUEUE(5)

Ao final da sequencia, a soma dos elementos de que (Q) será?

5
6
0
15
9

Gabarito Comentado

3a Questão (Ref.: 201607045617) Fórum de Dúvidas (0) Saiba (0)


Qual das alternativas a seguir pode definir uma estrutura de fila?

Entrada e saída de dados pelo início.


Entrada e saída de dados em qualquer local.
Entrada e saída de dados pelo final.
Entrada de dados pelo final e saída pelo início.
Entrada de dados pelo início e saída pelo final.

Gabarito Comentado

4a Questão (Ref.: 201607636579) Fórum de Dúvidas (0) Saiba (0)

Assinale a opção que, corretamente, mostra exemplos em que a estrutura de dados fila é usada, de acordo com o
critério de inserções e remoções que rege tal estrutura.

Buffer para gravação de dados em mídia e fila de pessoas para comprar o ticket do metrô.
Fila de documentos para xerox e fila de arquivos para impressão.
Fila de arquivos para impressão e buffer para gravação de dados em fila.
Fila de arquivos para impressão e fila de pessoas no caixa de um supermercado.
Fila de pessoas para tirar o visto e fila de pessoas para usar o caixa eletrônico.

Gabarito Comentado

5a Questão (Ref.: 201607636605) Fórum de Dúvidas (0) Saiba (0)

Considere uma fila simples F de inteiros, do tipo Fila definido abaixo. Tal fila deverá armazenar códigos de agentes de uma
firma de espionagem, desde que haja espaço para um novo agente. Assinale a opção que corretamente enfileira o código de
um agente, sabendo que a fila F foi inicializada de acordo com o trecho de código abaixo.

struct Fila { in t v[100], inicio, fim; } ;

Fila F;

F. inicio = 0;

F.fim = -1;

void enfileirar(Fila &F, int codigo) {

if (F.fim == 99)
cout << "Não há espaço na firma para mais agentes. " << endl;

else {

F.fim++;

F.v[F.fim] = codigo;

void enfileirar(Fila F, int codigo) {

F.fim++;

F.v[F.fim] = codigo;

void enfileirar(Fila F, int codigo) {

if (F.fim == 100)

cout << "Não há espaço na firma para mais agentes. " << endl;

else {

F.fim++;

F.v[F.fim] = codigo;

void enfileirar(Fila &F, int codigo) {

F.v[F.fim] = codigo;

F.fim++;

}
void enfileirar(Fila &F, int codigo) {

if (F.fim == 99)

cout << "Não há espaço na firma para mais agentes. " << endl;
else

F.fim++;

F.v[F.fim] = codigo;

Gabarito Comentado

6a Questão (Ref.: 201607633946) Fórum de Dúvidas (0) Saiba (0)

Usa-se um vetor para se implementar uma fila sequencial, entretanto se nesta estrutura ocorrer diversas
operações de remoção e inserção podemos afirmar que:

Um vetor é uma estrutura base correta para esta implementação, já que está imune a fenômenos como
esgotamento de memória.
A estrutra sofrerá do fenômeno chamado esgotamento de memória e logo não poderá mais ser utilizada.
A solução é o uso da fila circular.
A estrutra sofrerá do fenômeno esgotamento de memória, mas se os dados estiverem ordenados isto
não afetará a estrutura.
Um vetor não pode ser usado na implementação de uma fila sequencial apenas em pilhas sequenciais.
A estrutura fila não sofre esgotamento de memória, isto ocorre com as pilhas já que implementam o
algoritmo LIFO.

Gabarito Comentado

7a Questão (Ref.: 201607633944) Fórum de Dúvidas (0) Saiba (0)

Ao inserirmos em uma estrutura de dados do tipo fila sequencial os seguintes elementos: A, B, C, D,


exatamente nesta ordem. E em seguida realizarmos duas operações consecutivas de remoção na fila e
imediatamente inserirmos dois novos elementos o X e o W. Podedmos afirmar que se realizarmos uma nova
operação de remoção, o elemento que será removido desta fila sera o:

W
D
C
A
X

Gabarito Comentado Gabarito Comentado Gabarito Comentado


8a Questão (Ref.: 201607636643) Fórum de Dúvidas (0) Saiba (0)

Considere uma fila simples F de inteiros, do tipo Fila definido abaixo. Tal fila deverá armazenar códigos de agentes de uma
firma de espionagem, desde que haja espaço para um novo agente. Assinale a opção que corretamente desenfileira o código
de um agente, sabendo que a fila F foi inicializada de acordo com o trecho de código abaixo.

struct Fila { in t v[100], inicio, fim; } ;

Fila F;

F. inicio = 0;

F.fim = -1;

void desenfileirar(Fila &F) {

if (F.inicio > F.fim)

cout << "Não há agentes para retirar. "


<< endl;

else {

cout << "Removido o agente "


<< F.v[F.inicio];

void desenfileirar(Fila F) {

cout << "Removido o agente "


<< F.v[F.inicio];

F.inicio--;

void desenfileirar(Fila &F) {


if (F.fim == -1 && F.inicio == 0)

cout << "Não há agentes para retirar. "


<< endl;

else {

cout << "Removido o agente "


<< F.v[F.inicio];

F.inicio++;

void desenfileirar(Fila &F) {

if (F.inicio > F.fim)

cout << "Não há agentes para retirar. "


<< endl;

else {

cout << "Removido o


agente " << F.v[F.inicio];

F.inicio++;

void desenfileirar(Fila F) {

if (F.inicio > F.fim)

cout << "Não há agentes para retirar. "


<< endl;

else {

cout << "Removido o agente "


<< F.v[F.inicio];

F.inicio++;

1a Questão (Ref.: 201607622071) Fórum de Dúvidas (0) Saiba (0)


Qual das inicializações de ponteiros apresentadas abaixo está correta?

int *p = new int*;


int *p = create int;
int *p = new int[];
int *p = new int;
int *p = new *int;

2a Questão (Ref.: 201607659216) Fórum de Dúvidas (0) Saiba (0)

As structs (estruturas) são utilizadas para modelar os nodos de estruturas dinâmicas como, por exemplo, as
listas encadeadas, seja o seguinte exemplo de nodo de uma lista de produtos: struct nodo{ float valor; string
produto; nodo * proximo; }; Suponha que um determinado ponteiro pt esteja apontando para um nodo desta
lista, e que se queira alterar o conteúdo do campo valor deste nodo, que está sendo apontado por pt, para 5.60.
Marque a alternativa que corretamente possibilita esta operação:

pt->próximo->valor=5.60;
pt->5.60;
pt->próximo.valor=5.60;
pt.valor->5.60;
pt->valor=5.60;

Gabarito Comentado

3a Questão (Ref.: 201607785126) Fórum de Dúvidas (0) Saiba (0)

Considere

int *ptr, *qtr, *r;

int a = 10, b = 20;

Após executar cada instrução conforme a ordem dada a seguir :

ptr = &a;

qtr = &b;

*ptr = *ptr + *qtr;

++(*qtr);

r = qtr;

qtr = ptr;
assinale a opção que mostra, correta e respectivamente, os valores de *ptr, *qtr
, *r , a e b .

30 20 20 10 20
30 21 21 10 20
30 20 0 30 21
30 30 21 30 21
30 30 21 10 20

4a Questão (Ref.: 201607668041) Fórum de Dúvidas (0) Saiba (0)

Assumindo que um valor do tipo inteiro ocupa 4 bytes na memória, e se baseando nas linhas de código abaixo,
marque a alternativa correta:
int *p;
p = (int *)malloc(20*sizeof(int));

Alocação dinâmica de 80 bytes na memória


Alocação dinâmica de espaço de memória suficiente para armazenar 20 x 4 valores inteiros
Alocação dinâmica 20 bytes na memória
A operação é inválida
Atribuição ao ponteiro ¿p¿ de um endereço estático de memória

5a Questão (Ref.: 201607278650) Fórum de Dúvidas (0) Saiba (0)

QUAL A SAÍDA DESTE PROGRAMA?

#include
main()
{
int i=10,*p;
p=&i;

cout << *p << " " << i + *p<< " " << *p**p << " " << i+**&p;
system("pause");
}

10 24 102 25
10 25 100 30
10 20 100 22
10 20 104 22
10 20 100 20
6a Questão (Ref.: 201607278651) Fórum de Dúvidas (0) Saiba (0)

QUAL A SAÍDA DO PROGRAMA ABAIXO?

#include

main()
{
int x=5,*p;
p=&x;

cout << x - *p << " " << **&*&p + 1 << " " << *p*2+*p << " " << x+**&p;
system("pause");
}

1 6 15 12
0 6 15 11
0 8 16 10
0 6 15 10
0 6 16 14

7a Questão (Ref.: 201607045667) Fórum de Dúvidas (0) Saiba (0)

Na área de estrutura de dados, em determinados casos, é necessário utilizar um tipo de dado onde seu valor
serve como referência direta a outro valor alocado em outro espaço de memória. Este tipo de dado se chama:

Variável
Vetor
Endereço
Ponteiro
Matriz

Gabarito Comentado

8a Questão (Ref.: 201607584221) Fórum de Dúvidas (0) Saiba (0)

Numa Lista Encadeada, podemos afirmar que:

I) Todos os nós são alocados de uma única vez.


II) Os nós não são alocados contiguamente na memória obrigatoriamente.
III) Os elementos de uma lista encadeada são ligados por dois ponteiros.
IV) Para que possamos percorrer toda a lista, precisamos armazenar o endereço do próximo elemento para
possibilitar o encadeamento.
I, III e IV estão corretas
II e IV estão corretas
I , II e III estão corretas
I, II, III e IV estão corretas
Só a II está correta

1a Questão (Ref.: 201607250593) Fórum de Dúvidas (0) Saiba (0)

Assinale a opção correta. Sobre pilha dinâmica podemos afirmar que :

usa o critério LIFO e é implementada usando-se listas encadeadas.


usa o critério FIFO, visto que é dinâmica.
é recomendada para qualquer tipo de aplicação em que insere-se no final e retira-se do
início.

insere-se em qualquer posição, antes ou após qualquer nó, visto que é dinâmica.

só pode ter seus dados impressos no sentido do último nó para o primeiro nó.

Gabarito Comentado

2a Questão (Ref.: 201607751438) Fórum de Dúvidas (0) Saiba (0)

Estava um aluno estudando Lista Simplesmente Encadeada quando encontrou em um site a


definição da struct nodo e de uma função cujo nome você deverá escolher para substituir XXX
nas opções abaixo depois que analisar a função, assumindo que teste foi realizado,
permitindo que a operação fosse realizada.

struct nodo
{
int info;
struct nodo *prox;
};

nodo* XXX(nodo *ptr, int valor)


{
nodo *temp = new nodo;
...
temp->info = valor;
temp->prox = ptr;
return temp;
}

BuscaNaLista
RemoveNo
InsereNoFrente
InsereNoFim
ListaNo

Gabarito Comentado

3a Questão (Ref.: 201607668036) Fórum de Dúvidas (0) Saiba (0)

Sobre uma estrutura de dados do tipo LIFO, observe as seguintes afirmações:


(1) É uma pilha.
(2) Pode ser uma fila com prioridades
(3) É uma estrutura onde o primeiro elemento a entrar é o último a sair.

Sobre estas afirmações marque a opção correta:

Apenas a afirmação (1) é verdadeira


Apenas as afirmações (1) e (3) são verdadeiras
Apenas a afirmação (3) é verdadeira
Todas as afirmações são verdadeiras
Todas as afirmações são falsas

4a Questão (Ref.: 201607717247) Fórum de Dúvidas (0) Saiba (0)

Para converter de decimal para binário usamos a estrutura de dados pilha. Assinale a opção que, corretamente,
indica as ações corretas para empilhar o resto da divisão gerado no processo de conversão, considerando uma
lista simplesmente encadeada. Considere o tipo definido abaixo :

struct no {
int dado;
struct no *link;
};

É preciso armazenar o resto da divisão do número por 2 no campo dado do primeiro nó da lista e
retornar o ponteiro para este nó.
É preciso alocar memória com new, armazenar o resto da divisão do número por 2 no campo dado do
novo nó, apontar o link do novo nó para o início da lista e enfim, retornar o ponteiro para o novo nó.
Basta alocar memória com new e armazenar o resto da divisão do número por 2 no campo dado do
novo nó .
Não é necessário alocar memória com new. Basta criar uma struct do tipo no, armazenar o resto da
divisão número por 2 no campo dado e aterrar o campo link.
Basta alocar memória com new, armazenar o resto da divisão do número por 2 no campo dado do
novo nó e aterrar o link do novo nó.

Gabarito Comentado

5a Questão (Ref.: 201607588761) Fórum de Dúvidas (0) Saiba (0)


Tínhamos declarado um ponteiro de nome ptr e precisávamos construir uma estrutura de repetição que
pudesse repetir enquanto o ponteiro não fosse nulo. Observe os trechos abaixo e assinale qual a afirmativa
correta.

I if (ptr !=NULL)
II if( !ptr )
III if(ptr)
IV while (ptr !=NULL)
V while (ptr)

I e II estão corretas.
III está correta
IV e V estão corretas.
I e IV estão corretas
III e V estão corretas

Gabarito Comentado

6a Questão (Ref.: 201607623249) Fórum de Dúvidas (0) Saiba (0)

Assinale a característica que NÃO está relacionada às estruturas de dados encadeadas:

Consomem memória de maneira permanente, só sendo liberadas ao fim do programa.


Cada elemento guarda pelo menos um ponteiro para outro elemento da estrutura.
A memória ocupada por seus elementos é, em geral, liberada com o uso de delete.
A memória para armazenar seus elementos é, em geral, alocada com o uso de new.
Em geral, marca-se o último elemento com um ponteiro de valor NULL.

7a Questão (Ref.: 201607717125) Fórum de Dúvidas (0) Saiba (0)

Sabendo que uma fila encadeada possui seus nós definidos pela :

struct no {
int x;
no *prox;
};

Marque a alternativa que representa corretamente a criação ou alocação do nó na sintaxe do C++ para
utilização na fila.

no *p=new no;
p *no=new no;
no *p -> new no;
no p -> new no;
p *no -> new no;
1a Questão (Ref.: 201607693181) Fórum de Dúvidas (0) Saiba (0)

Considere uma lista duplamente encadeada não circular em que

struct nodupla {
int dado;
struct nodupla *dlink; // aponta p/ o nó à direita
struct nodupla *elink; // aponta p/ o nó à esquerda
};

sendo nodupla *p; //ponteiro para o início da lista

A opção que corretamente mostra as instruções para inserir um valor no início da lista apontada
por p é :

nodupla *novo;

novo = new nodupla;


novo.dado = valor;
novo.dlink = p;
novo.elink = NULL;
if (p != NULL)
p.elink = novo;
p = novo;

n nodupla *novo;

novo = new nodupla;


novo->dado = valor;
novo->elink = NULL;
if (p != NULL)
p->elink = novo;
p = novo;

nodupla *novo;

novo = new nodupla;


novo->dado = valor;
novo->dlink = p;
novo->elink = NULL;
p->elink = novo;
p = novo;

nodupla *novo;

novo = new nodupla;


novo->dado = valor;
novo->dlink = p;
if (p != NULL)
p->elink = novo;
p = novo;
nodupla *novo;

novo = new nodupla;


novo->dado = valor;
novo->dlink = p;
novo->elink = NULL;
if (p != NULL)
p->elink = novo;
p = novo;

Gabarito Comentado

2a Questão (Ref.: 201607247937) Fórum de Dúvidas (0) Saiba (0)

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 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 removem o nodo apontado pelo ponteiro p.
As operações possibilitam o percurso do ponteiro p da direita para esquerda.
3a Questão (Ref.: 201607709592) Fórum de Dúvidas (0) Saiba (0)

Os registros também conhecidos como estruturas, são estruturas de dados do tipo heterogêneo, ou seja,
permitem que valores de tipos diferentes possam ser armazenados em uma mesma estrutura. Analisando a
estrutura abaixo, a mesma pode ser utilizada para qual tipo de estrutura de dados, marque a alternativa
correta.

struct nomeRegistro{
int info;
struct nomeRegistro* ant;
struct nomeRegistro* prox;
};

typedef struct nomeRegistro NOMEREGISTRO;

Matriz
Lista encadeada
Lista duplamente encadeada
Pilha
Fila

4a Questão (Ref.: 201607659219) Fórum de Dúvidas (0) Saiba (0)

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 removem 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.

Gabarito Comentado

5a Questão (Ref.: 201607250615) Fórum de Dúvidas (0) Saiba (0)

Com relação à lista duplamente encadeada, é correto afirmar que :

A lista precisa ter sempre um ponteiro apontando para o 1º. nó


Não pode ser vazia.

Não pode haver remoções no meio da lista.

A lista pode ser percorrida com igual facilidade para a direita ou para a esquerda,
pois existem dois ponteiros.

Consome menos memória do que uma lista simplesmente encadeada, se


tivermos uma mesma aplicação.

Gabarito Comentado

6a Questão (Ref.: 201607045535) Fórum de Dúvidas (0) Saiba (0)

Uma estrutura de dados em lista duplamente encadeada permite na cadeia movimentos para

cima e para baixo ou para frente e para trás.


cima e para baixo, apenas.
frente e para trás, apenas.
frente, apenas.
trás, apenas.

Gabarito Comentado

7a Questão (Ref.: 201607037194) Fórum de Dúvidas (0) Saiba (0)

Uma estrutura de dados em lista duplamente encadeada permite na cadeia movimentos para:

trás, apenas.
cima e para baixo, apenas.
frente e para trás, apenas.
cima e para baixo ou para frente e para trás.
frente, apenas.

Gabarito Comentado

8a Questão (Ref.: 201607045530) Fórum de Dúvidas (0) Saiba (0)

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, logo após o Z, e X, logo após o Y.


Y, antes do Z, e X, logo após o Z.
X, logo após o Z, e Y, logo após o X.
Y, antes do Z, e X, antes do Y.
X, antes do Z, e Y, logo após o Z.

Você também pode gostar