Você está na página 1de 7

ESTRUTURAS DE DADOS HETEROGÊNEAS

1.

(IF-RS/2016 - Adaptada) Estrutura de dados é um conceito fundamental na ciência da computação e na programação. Ela se refere a
maneira como os dados Assão organizados
funções malloceearmazenados em um
free e o operador programa
sizeof, ou sistema,
são essenciais paraa fim de que dinâmica
a alocação possam ser
deacessados,
memória.
manipulados e utilizados de forma eficiente. Referente a alocação dinâmica de memória em C, é correto afirmar:
A função free é geralmente usada com o operador sizeof.

A função clear é usada para limpar o conteúdo de um ponteiro.

As funções calloc e realloc são usadas para liberar arays.

A função malloc usa o número de blocos de memória que serão alocados na memória.

Data Resp.: 27/06/2023 18:53:19

Explicação:

A alocação dinâmica de memória em C é uma técnica importante que permite que o programador aloque
memória em tempo de execução. As funções malloc e free são usadas para alocar e liberar a memória,
respectivamente. Já o operador sizeof é usado para determinar o tamanho em bytes de um tipo de dado ou de
uma variável.

2.

(COSEAC/2009 - Adaptada) Uma escolha adequada de estrutura de dados pode proporcionar diversas vantagens, tais como a
otimização de processos de busca, inserção e remoção de dados, redução do consumo de recursos computacionais e aumento da
bidimensionais.
escalabilidade e desempenho de sistemas. Quando a Estrutura de dados é composta por variáveis do mesmo tipo primitivo, têm-se
por definição, estruturas compostas:
isonômicas.

homogêneas.

polivalentes.

heterogêneas.

Data Resp.: 29/06/2023 18:57:42

Explicação:
Estruturas de dados compostas homogêneas são aquelas em que as variáveis que as compõem têm o mesmo
tipo primitivo, ou seja, são do mesmo tipo de dado. Por exemplo, um vetor de inteiros ou uma matriz de ponto
flutuante. Essas estruturas de dados são importantes para armazenar e manipular grandes quantidades de
informações em uma forma estruturada e organizada, facilitando o acesso e a manipulação dos dados.

MODULARIZAÇÃO

3.

Há duas maneiras de se passar argumentos ou parâmetros para funções: por valor e por referência. Sobre passagem de parâmetros,
analise as seguintes afirmativas:
II e IV, apenas

I. Na passagem
I, por
III ereferência,
V, apenas o que é passado como argumento no parâmetro formal é o endereço da variável.

II. Na passagem por valor, o valor é copiado do argumento para o parâmetro formal da função.
V, apenas

III. Por exemplo, quando duas variáveis inteiras i1 e i2 são passadas por valor à função troca() chamada pelo programa
I e III
principal, elas também são alteradas no programa principal.
I, II, IV e V, apenas
IV. Na passagem por referência, dentro da função, o argumento real utilizado na chamada é acessado através do seu
endereço, sendo assim alterado. Data Resp.: 29/06/2023 19:00:53

V. Na passagem por valor, quaisquer alterações feitas nestes parâmetros dentro da função não irão afetar as variáveis usadas
Explicação:
como argumentos para chamá-la.

Está CORRETO oResposta correta: I,


que se afirma em: II, IV e V, apenas
 

4.

A modularização de algoritmos é importante para organizar melhor o código, facilitar a manutenção, entre outras coisas. Sobre
funções e procedimentos, assinale a alternativa
O procedimento CORRETA
sempre retorna sobreaoa programa.
um valor modularização:

As variáveis definidas no escopo de cada função são acessíveis em todo o programa.

A passagem de parâmetros para um subprograma pode ser somente por valor.

As variáveis locais são declaradas no escopo do programa inteiro.

A função retorna um valor ao programa.

Data Resp.: 29/06/2023 19:02:26

Explicação:

Resposta correta: A função retorna um valor ao programa.

LISTAS, PILHAS E FILAS

5.

Sejam as seguintes propriedades de estruturas de dados: 


Lista em alocação encadeada, Lista circular e Lista em alocação sequencial. 
I- a remoção de um elemento interno obriga ao deslocamento de todos os sucessores. 
Lista em alocação encadeada, Lista em alocação sequencial e deque. 
II- Um nó pode ser inserido no meio da estrutura com complexidade O (1). 
Lista em alocação sequencial, Lista em alocação encadeada e deque. 
III- a inserção e a remoção podem ser feitas em ambas as extremidades. 
Lista em alocação sequencial, Lista em alocação sequencial e deque. 
As descrições acima se referem respectivamente à: 
Lista em alocação sequencial, Lista circular e Lista em alocação encadeada. 

Data Resp.: 29/06/2023 19:04:34

Explicação:

A resposta correta é: Lista em alocação sequencial, Lista em alocação encadeada e deque. 

6.

Sobre listas duplamente encadeadas, afirma-se: 
III. 
I) Cada nó usa o dobro do número de campos ponteiro de uma lista simplesmente encadeada. 
I e III. 
II) A complexidade de remoção é metade da complexidade de remoção em lista simplesmente encadeada. 
I. 
III) Não permitem a inserção de nó no meio da lista. 
II. 
É correto apenas: 
II e III. 

Data Resp.: 29/06/2023 19:05:57

Explicação:

A resposta correta é: I.

ORDENAÇÃO

7.
Todos os algoritmos de ordenação interna devem ter complexidade de espaço de: 
O(n2) 
O(n3) 
O(1) 

O(n) 

O(n log n) 

Data Resp.: 29/06/2023 19:27:18

Explicação:

A resposta correta é: O(n) 

8.

Comparando o Merge Sort com o Método da bolha podemos afirmar que: 


O merge sort tem complexidade computacional inferior ao buble sort, porém o
merge sort sempre executa em um tempo proporcional a n log n, enquanto o buble sort, pode
executar em tempo linear em algumas instâncias (melhores casos). 

O merge sort, por ser instável, sempre executará em tempo superior ao buble sort. 

O buble sort sempre irá executar mais rápido que o merge sort por ter complexidade


computacional inferior ao merge sort. 

Ambos têm complexidade comparável, assim, existem não é possível afirmar qual irá
executar em melhor tempo. 

O merge sort sempre executará mais rápido que o buble sort uma vez que sua complexidade
é O(n log n) e a do buble sort O(n2). 
Data Resp.: 29/06/2023 19:28:22

Explicação:

A resposta correta é: O merge sort tem complexidade computacional inferior ao buble sort,


porém o merge sort sempre executa em um tempo proporcional a n log n, enquanto
o buble sort, pode executar em tempo linear em algumas instâncias (melhores casos). 
ÁRVORES

9.

Ano: 2015 Banca: MP-RS Órgão: MP-RS Prova: Técnico em informática - Sistemas
40 - 15 - 45 - 30 - 50.
Imagine que temos números de 1 a 100 em uma árvore de pesquisa binária (ABP). Agora queremos procurar o número 50. Assinale a
alternativa que apresenta
40 -a 60
possível
- 45 - sequência
48 - 50. de elementos da árvore consultada.

42 - 60 - 20 - 30 - 50.

42 - 60 - 20 - 48 - 50.

40 - 10 - 45 - 30 - 50.

Data Resp.: 29/06/2023 19:38:35

Explicação:

Resposta correta: 40 - 60 - 45 - 48 - 50.

10.

Seja o seguinte código em Python cujo principal objetivo é implementar uma árvore binária. Marque a alternativa correta quanto a
execução do código: A árvore criada no código acima é uma árvore binária de busca com todas as folhas no último nível.
A árvore criada no código é binária de busca com altura 6, isto é, com 6 níveis distintos.

Não é possível inferir a topologia da árvore com base no código.

A classe NotArvore implementa regras que garantem que os nós inseridos respeitam a ordem de inserção dos
nós (maiores a direita e menores a esquerda).

A árvore criada no código acima não é binária de busca.

Data Resp.: 29/06/2023 19:40:37

Explicação:

Apesar de que a função NoArvore não tem regras quanto à inserção dos nós, a forma (e a ordem) de como os
nós foram inseridos (55-35-75-65-85-25-45) formam uma árvore binária de busca.

Resultado:

   Não Respondida      Não Gravada     Gravada

Exercício inciado em 27/06/2023 18:52:57.

Você também pode gostar