Logo Passei Direto
Buscar

ESTRUTURA DE DADOS EM C GABARITO

User badge image
Lucas Angelo

em

Ferramentas de estudo

Questões resolvidas

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:
Está CORRETO o que se afirma em:
I. Na passagem por referência, 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.
III. Por exemplo, quando duas variáveis inteiras i1 e i2 são passadas por valor à função troca() chamada pelo programa principal, elas também são alteradas no programa principal.
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.
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 como argumentos para chamá-la.
I e III
V, apenas
I, III e V, apenas
I, II, IV e V, apenas
II e IV, apenas

Observe o trecho de código abaixo, escrito na linguagem C.
Com base nesse código, é correto afirmar que:
O escopo e o tempo de vida da variável soma são iguais e contidos pela função imprimecabecalho().
O tempo de vida da variável soma estende-se durante o tempo em que a função imprimecabecalho() é executada.
O escopo da variável soma é contido pela função imprimecabecalho().
O escopo da variável soma se estende da função calcula() para a função imprimecabecalho().
O escopo da variável soma é dinâmico e se estende durante toda execução do programa.

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

Comparando o Merge Sort com o Método da bolha podemos afirmar que:
A resposta correta é:
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.
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 sempre executará mais rápido que o buble sort uma vez que sua complexidade é O(n log n) e a do buble sort O(n).
Ambos têm complexidade comparável, assim, existem não é possível afirmar qual irá executar em melhor tempo.

Sobre o método da bolha é correto afirmar que:
A resposta correta é:
O tempo de execução pode ser linear em relação ao tamanho da entrada se a instância apresentada estiver ordenada em ordem reversa a desejada.
O tempo de execução é definido pela complexidade computacional sempre, independentemente da instância apresentada.
A complexidade computacional deste algoritmo é O(n log n).
O algoritmo executa sempre no mesmo tempo para instâncias de mesmo tamanho n.
O tempo de execução pode ser linear em relação ao tamanho da entrada se a instância apresentada já estiver ordenada.

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

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:
Está CORRETO o que se afirma em:
I. Na passagem por referência, 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.
III. Por exemplo, quando duas variáveis inteiras i1 e i2 são passadas por valor à função troca() chamada pelo programa principal, elas também são alteradas no programa principal.
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.
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 como argumentos para chamá-la.
I e III
V, apenas
I, III e V, apenas
I, II, IV e V, apenas
II e IV, apenas

Observe o trecho de código abaixo, escrito na linguagem C.
Com base nesse código, é correto afirmar que:
O escopo e o tempo de vida da variável soma são iguais e contidos pela função imprimecabecalho().
O tempo de vida da variável soma estende-se durante o tempo em que a função imprimecabecalho() é executada.
O escopo da variável soma é contido pela função imprimecabecalho().
O escopo da variável soma se estende da função calcula() para a função imprimecabecalho().
O escopo da variável soma é dinâmico e se estende durante toda execução do programa.

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

Comparando o Merge Sort com o Método da bolha podemos afirmar que:
A resposta correta é:
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.
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 sempre executará mais rápido que o buble sort uma vez que sua complexidade é O(n log n) e a do buble sort O(n).
Ambos têm complexidade comparável, assim, existem não é possível afirmar qual irá executar em melhor tempo.

Sobre o método da bolha é correto afirmar que:
A resposta correta é:
O tempo de execução pode ser linear em relação ao tamanho da entrada se a instância apresentada estiver ordenada em ordem reversa a desejada.
O tempo de execução é definido pela complexidade computacional sempre, independentemente da instância apresentada.
A complexidade computacional deste algoritmo é O(n log n).
O algoritmo executa sempre no mesmo tempo para instâncias de mesmo tamanho n.
O tempo de execução pode ser linear em relação ao tamanho da entrada se a instância apresentada já estiver ordenada.

Prévia do material em texto

Disc.: ESTRUTURA DE DADOS EM C 
 
1a 
 Questão 
Acerto: 1,0 / 1,0 
 
Sobre estruturas de dados, assinale a alternativa CORRETA. 
 
 Árvores de busca de binárias são estruturas nas quais nós filhos 
possuem valores numericamente inferiores aos dos nós pais. 
 Pilhas são tipos de dados abstratos caracterizadas pela política 
"primeiro a entrar, último a sair". 
 Filas são comumente implementadas sobre arrays ou grafos. 
 Listas duplamente ligadas são estruturas em que cada nó possui 
uma referência tanto ao nó que o antecede quanto ao nó que o 
sucede. Além disso, o último nó da lista também possui uma 
referência para o primeiro nó da lista. 
 Grafos são estruturas de dados em que cada nó possui um valor e 
um conjunto de relações unidirecionais com os demais nós. 
Respondido em 29/03/2021 21:18:52 
 
Explicação: 
A resposta correta é: Pilhas são tipos de dados abstratos 
caracterizadas pela política "primeiro a entrar, último a sair". 
 
 
 
2a 
 Questão 
Acerto: 1,0 / 1,0 
 
Considere a definição da seguinte struct escrita em linguagem de 
programação C. 
struct endereço { 
char logradouro [50]; 
int numero; 
char cidade[30]; 
char estado[2]; 
} end1; 
A alternativa que manipula corretamente a struct acima definida é: 
 
 Para criar um array de structs endereco: struct endereco[10]; 
 Para armazenar o valor 104 na 
variável numero: endereco.numero = 104; 
Disc.: ESTRUTURA DE DADOS EM C 
 
 Para criar 
um array de structs endereco: struct endereco end1[10]; 
 Para mostrar o conteúdo da variável 
logradouro: printf("%s", logradouro.end1); 
 Para copiar o conteúdo das variáveis de end1 para end2: 
end1.strcpy = end2; 
Respondido em 30/03/2021 16:15:57 
 
Explicação: 
A resposta correta é: Para mostrar o conteúdo da variável 
logradouro: printf("%s", logradouro.end1); 
 
 
 
3a 
 Questão 
Acerto: 1,0 / 1,0 
 
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: 
I. Na passagem por referência, 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. 
III. Por exemplo, quando duas variáveis inteiras i1 e i2 são passadas por valor à 
função troca() chamada pelo programa principal, elas também são alteradas no 
programa principal. 
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. 
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 como argumentos para chamá-la. 
Está CORRETO o que se afirma em: 
 
 
V, apenas 
 
I e III 
 
I, III e V, apenas 
 
II e IV, apenas 
 I, II, IV e V, apenas 
Respondido em 30/03/2021 16:16:21 
 
Explicação: 
Resposta correta: I, II, IV e V, apenas 
 
 
Disc.: ESTRUTURA DE DADOS EM C 
 
 
4a 
 Questão 
Acerto: 1,0 / 1,0 
 
Observe o trecho de código abaixo, escrito na linguagem C. 
void imprimecabecalho() { 
 ... 
} 
void calcula() { 
 int soma; 
 ... 
 imprimecabecalho(); 
} 
Com base nesse código, é correto afirmar que: 
 
 O tempo de vida da variável soma estende-se durante o tempo em que a função 
imprimecabecalho() é executada. 
 
O escopo e o tempo de vida da variável soma são iguais e contidos pela função 
imprimecabecalho(). 
 
O escopo da variável soma é contido pela função imprimecabecalho(). 
 
O escopo da variável soma é dinâmico e se estende durante toda execução do 
programa. 
 
O escopo da variável soma se estende da função calcula() para a função 
imprimecabecalho(). 
Respondido em 30/03/2021 16:16:27 
 
Explicação: 
Resposta correta: o tempo de vida da variável soma estende-se durante o tempo em que a 
função imprimecabecalho() é executada. 
 
 
 
5a 
 Questão 
Acerto: 1,0 / 1,0 
 
Sobre listas duplamente encadeadas, afirma-se: 
I) Cada nó usa o dobro do número de campos ponteiro de uma lista 
simplesmente encadeada. 
II) A complexidade de remoção é metade da complexidade de remoção 
Disc.: ESTRUTURA DE DADOS EM C 
 
em lista simplesmente encadeada. 
III) Não permitem a inserção de nó no meio da lista. 
É correto apenas: 
 
 II. 
 II e III. 
 I e III. 
 III. 
 I. 
Respondido em 30/03/2021 16:16:31 
 
Explicação: 
A resposta correta é: I. 
 
 
 
6a 
 Questão 
Acerto: 0,0 / 1,0 
 
Sejam as seguintes propriedades de estruturas de dados: 
I- a remoção de um elemento interno obriga ao deslocamento de todos 
os sucessores. 
II- Um nó pode ser inserido no meio da estrutura com complexidade O 
(1). 
III- a inserção e a remoção podem ser feitas em ambas as 
extremidades. 
As descrições acima se referem respectivamente à: 
 
 Lista em alocação sequencial, Lista em alocação sequencial 
e deque. 
 Lista em alocação sequencial, Lista circular e Lista em alocação 
encadeada. 
 Lista em alocação encadeada, Lista em alocação sequencial e 
deque. 
 Lista em alocação sequencial, Lista em alocação encadeada e 
deque. 
 Lista em alocação encadeada, Lista circular e Lista em alocação 
sequencial. 
Respondido em 30/03/2021 16:16:36 
 
Disc.: ESTRUTURA DE DADOS EM C 
 
Explicação: 
A resposta correta é: Lista em alocação sequencial, Lista em 
alocação encadeada e deque. 
 
 
 
7a 
 Questão 
Acerto: 1,0 / 1,0 
 
Comparando o Merge Sort com o Método da bolha podemos afirmar 
que: 
 
 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(n22). 
 O buble sort sempre irá executar mais rápido que o 
merge sort por ter complexidade computacional inferior ao 
merge sort. 
 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. 
 Ambos têm complexidade comparável, assim, existem não é 
possível afirmar qual irá executar em melhor tempo. 
Respondido em 30/03/2021 16:16:57 
 
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). 
 
 
 
8a 
 Questão 
Acerto: 1,0 / 1,0 
 
Sobre o método da bolha é correto afirmar que: 
 
 O tempo de execução pode ser linear em relação ao tamanho da 
entrada se a instância apresentada estiver ordenada em ordem 
reversa a desejada. 
 O tempo de execução é definido pela complexidade 
computacional sempre, independentemente da instância 
Disc.: ESTRUTURA DE DADOS EM C 
 
apresentada. 
 A complexidade computacional deste algoritmo é O (n log n). 
 O algoritmo executa sempre no mesmo tempo para instâncias de 
mesmo tamanho n. 
 O tempo de execução pode ser linear em relação ao tamanho da 
entrada se a instância apresentada já estiver ordenada. 
Respondido em 30/03/2021 16:18:22 
 
Explicação: 
A resposta correta é: O tempo de execução pode ser linear em 
relação ao tamanho da entrada se a instância apresentada já 
estiver ordenada. 
 
 
 
9a 
 Questão 
Acerto: 1,0 / 1,0 
 
Ano: 2012 Banca: IDECAN Órgão: BANESTES Prova: Analista de Tecnologia da 
Informação ¿ Desenvolvimento de Sitemas 
Árvore de pesquisa é uma estrutura de dados eficiente para armazenar informação, 
sendo particularmente adequada quando existe a necessidade de considerar todos ou 
alguma combinação de registros. Assinale uma combinação correta desses registros.As operações de inserir, retirar e pesquisar são definidas. 
 
Utilização de estruturas de dados como lista, pilha e fila. 
 Acesso direto e sequencial eficientes, facilidade de inserção e retirada de 
registro, boa taxa de utilização de memória, utilização de memória primária e 
secundária. 
 
Não é necessário indexar os registros. 
 
Utilização de algoritmos de ordenação eficientes. 
Respondido em 30/03/2021 16:18:30 
 
Explicação: 
Resposta correta: Acesso direto e sequencial eficientes, facilidade de inserção e retirada de 
registro, boa taxa de utilização de memória, utilização de memória primária e secundária. 
 
 
 
10a 
 Questão 
Acerto: 1,0 / 1,0 
 
Ano: 2015 Banca: MP-RS Órgão: MP-RS Prova: Técnico em informática - Sistemas 
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 a possível 
sequência de elementos da árvore consultada. 
Disc.: ESTRUTURA DE DADOS EM C 
 
 
 
40 - 15 - 45 - 30 - 50. 
 40 - 60 - 45 - 48 - 50. 
 
42 - 60 - 20 - 48 - 50. 
 
40 - 10 - 45 - 30 - 50. 
 
42 - 60 - 20 - 30 - 50. 
Respondido em 30/03/2021 16:18:33 
 
Explicação: 
Resposta correta: 40 - 60 - 45 - 48 - 50.

Mais conteúdos dessa disciplina