Prévia do material em texto
Peso da Avaliação2,00
Qtd. de Questões10
Acertos/Erros7/3
Nota7,00
1
Um programador criou uma lista dinâmica com base na estrutura apresentada a seguir:
struct no {
int dado;
struct no *proximo;
};
struct lista{
struct no *inicio;
}
struct lista l;
O programador criou um programa para percorrer toda a lista, fazendo com que um ponteiro ptr, iterador, seja inicializado em l->inicio e incrementado até atingir o final da respectiva lista. No critério de parada da estrutura de repetição utilizada para percorrer a lista, o programador deve esperar que ptr->proximo seja igual a que valor ou identificar o final da lista como?
A
NULL.
B
'\0'.
C
l->final.
D
Nulo.
E
END.
2
Ao trabalhar com ponteiros, o desenvolvedor tem a possibilidade de realizar acessos a endereços de memória arbitrários. Além disso, ela permite, ainda, que você monitore endereços na memória, atribua e recupere valores de variáveis sem ao menos invocá-las diretamente.
Dessa forma, analise o trecho de código a seguir:
int xi;
int xy;
int *ptr_xi;
xi = 5;
xy = xi;
ptr_xi = & xi;
xi = 12;
Assinale a alternativa correta que apresenta o valor de cada uma das variáveis após a execução do código:
A
xi é 12; xy é 5; ptr_xi é 5; *ptr_xi é um valor que representa o endereço de memória.
B
xi é 12; xy é 12; ptr_xi é 12; *ptr_xi é um valor que representa o endereço de memória.
C
xi é 12; xy é 12; *ptr_xi é 12; ptr_xi é um valor que representa o endereço de memória.
D
xi é 5; xy é 12; *ptr_xi é 12; ptr_xi é um valor que representa o endereço de memória.
E
xi é 12; xy é 5; *ptr_xi é 12; ptr_xi é um valor que representa o endereço de memória.
Revisar Conteúdo do Livro
3
Imagine um restaurante no qual, a todo momento, clientes deixam pratos sujos para serem lavados. Geralmente, um ou mais garçons recolhem os pratos e os depositam na cozinha, cada prato em cima do prato anterior, formando uma estrutura conhecida como pilha.
Sabendo que o conceito de pilha pode ser transportado para o contexto da análise de sistemas, analise as afirmativas a seguir:
I. As pilhas são um tipo especial de listas cuja regra segue os princípios FIFO.
II. O novo elemento, quando é adicionado à pilha, de maneira geral, deve-se incrementar o valor de seu topo.
III. A implementação de uma pilha estática dispensa o auxílio das estruturas conhecidas genericamente por "Nós".
É correto o que se afirma em:
A
III, apenas.
B
I, apenas.
C
I, II e III.
D
II e III, apenas.
E
I e II, apenas.
Revisar Conteúdo do Livro
4
A Pilha é uma das estruturas mais simples e mais versáteis dentre as utilizadas na computação. Pode-se imaginar uma pilha de tijolos, uma pilha de roupas, de pratos. Todavia, suas aplicações computacionais variam desde as chamadas recursivas até a manipulação de dados em memória principal.
Considere o código a seguir, cujo propósito seria o de remover um elemento na posição que demarca o topo da pilha:
01 - void pilha_remover(struct str_no pilha){
02 - struct str_no atual;
03 - atual = (struct str_no*) malloc(sizeof(struct str_no));
04 - while(pilha->proximo != NULL){
05 - atual = pilha;
06 - pilha = pilha->proximo;
07 - }
08 - atual->proximo = NULL;
09 - }
Com base no código-fonte apresentado, analise as afirmativas a seguir:
I. Os comandos compreendidos entre as linhas 4, 5, 6 e 7 são para percorrer a lista do início ao fim.
II. A função tenta realizar a remoção de um elemento sem a preocupação de liberar memória.
III. O funcionamento desse algoritmo permaneceria inalterado caso o comando da linha 3 fosse removido.
É correto o que se afirma em:
A
I, II e III.
B
I e III, apenas.
C
II, apenas.
D
III, apenas.
E
II e III, apenas.
5
Pode-se imaginar uma pilha ou fila nas quais seus elementos contivessem, além do dado armazenado, o endereço de referência para o próximo elemento. Para a estrutura de dados que se organiza dessa maneira, dá-se o nome de lista encadeada.
Fonte: adaptado de: DROZDEK, A. Estrutura de dados e algoritmos em C++. 2. ed. São Paulo: Cengage Learning, 2016.
Sobre a implementação de listas, avalie as asserções a seguir e a relação proposta entre elas:
I. A utilização de estruturas de dados que podem utilizar alocação dinâmica de memória, como as listas duplamente encadeadas, mostra-se vantajosa, principalmente por evitar desperdício de memória.
PORQUE
II. A memória física de um computador é como um grande vetor estático, que pode ser vasculhado à procura de posições livres para se realizar alocação de memória em tempo de compilação.
A respeito dessas asserções, assinale a opção correta:
A
As asserções I e II são falsas.
B
As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.
C
A asserção I é uma proposição falsa e a II é uma proposição verdadeira.
D
As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.
E
A asserção I é uma proposição verdadeira e a II é uma proposição falsa.
6
Tanto a fila como a pilha são conjuntos ordenados de itens, porém ambas se diferenciam pelas regras de entrada e saída. Na pilha, a entrada e a saída de dados se dão pela mesma extremidade, chamada de topo da pilha. Na fila, a entrada e a saída ocorrem em lugares opostos: a entrada acontece no final da fila e a saída no seu início.
Fonte: adaptado de: DROZDEK, A. Estrutura de dados e algoritmos em C++. 2. ed. São Paulo: Cengage Learning, 2016.
A respeito de tais estruturas de dados, assinale a alternativa correta:
A
Os registros são estruturas de dados para armazenamento heterogêneo, que possuem os dados a serem armazenados e um ponteiro para o próximo elemento.
B
As filas e pilhas podem armazenar dados do mesmo tipo, mudando apenas as regras para implementar suas respectivas funções de inserção e remoção de elementos.
C
As pilhas são estruturas homogêneas, de acesso direto, onde podemos armazenar elementos de tipos diferentes, sem uma ordem especificada.
D
A função de desempilhar retira da pilha sempre o último elemento, a não ser que um índice seja indicado por parâmetro.
E
A função de desempilhar retira da pilha sempre o primeiro elemento, a não ser que um índice seja indicado por parâmetro.
7
A Pilha é uma das estruturas mais simples e mais versáteis dentre as utilizadas na computação. Antes de entrar nas nuances técnicas sobre pilhas, vamos abstrair o seu conceito para uma situação real.
Fonte: adaptado de: DROZDEK, A. Estrutura de dados e algoritmos em C++. 2. ed. São Paulo: Cengage Learning, 2016.
As funções de desempilhar e de empilhar são comumente chamadas de pop() e push(), respectivamente. Considere a seguinte pilha de números inteiros:
PILHA:
INÍCIO -> 5, 2, 15, 3, 9, 8, 4, 12, 10, 7, 1, 11 dado != dado)){
05 - if(lista->proximo == NULL){
06 - break;
07 - }
08 - atual = lista;
09 - lista = lista->proximo;
10 - }
11 - if(lista->dado == dado){
12 - atual->proximo = lista->proximo;
13 - }
14 - }
Considere que, durante a invocação da referida função, o parâmetro lista recebe um ponteiro que aponta para o primeiro elemento da estrutura de dados. Ainda, leve em consideração que a struct ptr_no possui dois campos, a saber: dado, do tipo inteiro; e proximo, um ponteiro do tipo struct ptr_no. Assinale a alternativacorreta que descreve a funcionalidade executada pela função apresentada:
A
Remove um item da lista encadeada.
B
Remove um item da pilha.
C
Insere um item da fila.
D
Insere um item na lista encadeada.
E
Remove um item da fila.
9
Lista ligada, ou lista encadeada, é uma estrutura de dados linear e dinâmica. Ela é composta por uma sequência de nós que contém seus dados e também uma ou duas referências, ponteiros, que apontam para o nó anterior ou posterior. Há diversos modelos de lista ligadas como lista encadeada, listas duplamente encadeada e listas encadeadas circulares.
Com base no texto exposto, analise as afirmativas a seguir:
I. O processo de remoção de uma lista encadeada é simples, basta acessar a posição do vetor e inserir um valor vazio.
II. A lista duplamente encadeada é uma estrutura de dados na qual cada nó possui pelo menos três campos: um de dados e dois de endereço, sendo um dos endereços usado para apontar ao nó anterior e o outro aponta para o nó posterior (próximo nó).
III. O vetor estático, caso seja necessário aumentar o seu tamanho, basta alocar (adicionar) espaço no vetor.
IV. Os itens na lista são chamados de nó e contêm pelo menos dois elementos: um de dados e um de endereço. O campo de endereço contém o conteúdo do elemento armazenado na lista, já o campo de dados é um ponteiro para o próximo nó.
É correto o que se afirma em:
A
II e IV, apenas.
B
I e III, apenas.
C
II, apenas.
D
II, III e IV, apenas.
E
I, II e III, apenas.
Revisar Conteúdo do Livro
10
Considere o seguinte cenário:
Você está visitando um médico para um check-up. Há muitas pessoas na clínica. Uma senhora está digitando os nomes de todas as pessoas em um arquivo. A pessoa que chegar mais cedo será atendida primeiro. Quando o médico está livre, ele chama o próximo paciente na sequência de chegada.
Sobre o exposto, avalie as asserções a seguir e a relação proposta entre elas:
I. O cenário representa a estrutura Fila porque segue o método primeiro que entra é o primeiro que sai.
PORQUE
II. Em uma fila, adicionamos elementos na parte de trás e os removemos na frente.
A respeito dessas asserções, assinale a opção correta:
A
As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.
B
As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.
C
A asserção I é uma proposição falsa e a II é uma proposição verdadeira.
D
A asserção I é uma proposição verdadeira e a II é uma proposição falsa.
E
As asserções I e II são falsas.