Baixe o app para aproveitar ainda mais
Prévia do material em texto
04/06/2023, 13:20 Estácio: Alunos https://simulado.estacio.br/alunos/ 1/6 Meus Simulados Teste seu conhecimento acumulado Disc.: ESTRUTURA DE DADOS EM C Aluno(a): RAISSA DE CASTRO HOBAIK 202202629431 Acertos: 10,0 de 10,0 23/05/2023 Acerto: 1,0 / 1,0 Referente a alocação dinâmica de memória em C, é CORRETO a�rmar: As funções malloc e free e o operador sizeof, são essenciais para a alocação dinâmica de memória. A função malloc usa o número de blocos de memória que serão alocados na memória. 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 arrays. Respondido em 23/05/2023 15:00:16 Explicação: A resposta correta é: As funções malloc e free e o operador sizeof, são essenciais para a alocação dinâmica de memória. Acerto: 1,0 / 1,0 Leia o programa abaixo, veri�que o que a função func3() faz e assinale qual das opções será impressa na saída após a execução. #include < stdio.h > typedef struct pessoa { char nome[40]; int idade; �oat salario; Questão1 a Questão2 a https://simulado.estacio.br/alunos/inicio.asp javascript:voltar(); 04/06/2023, 13:20 Estácio: Alunos https://simulado.estacio.br/alunos/ 2/6 }; void func3(struct pessoa f1, struct pessoa f2, struct pessoa f3) { printf("%s %d %.2f\n",f1.nome, f2.idade, f3.salario); } main() { struct pessoa p1 = {"Maria Estrela",50,10000.00}; struct pessoa p2 = {"Alcogelson Medeiros",51,12000.00}; struct pessoa p3 = {"Paulo Lokidown",60,12500.00}; func3(p1,p2,p3); } Assinale a opção correta. Maria Estrela 51 12500,00 Maria Estrela 60 12500,00 Maria Estrela 50 10000,00 Paulo Lokidown 51 12000,00 Alcogelson Medeiros 60 12500,00 Respondido em 23/05/2023 15:01:26 Explicação: A função func3 recebe três estruturas pessoa como argumentos e imprime o nome da primeira estrutura (Maria Estrela), a idade da segunda (51) e o salário da terceira (12500.00). 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 a�rmativas: 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 a�rma em: V, apenas Questão3 a 04/06/2023, 13:20 Estácio: Alunos https://simulado.estacio.br/alunos/ 3/6 I, III e V, apenas I, II, IV e V, apenas I e III II e IV, apenas Respondido em 23/05/2023 15:04:24 Explicação: Resposta correta: I, II, IV e V, apenas Acerto: 1,0 / 1,0 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 CORRETA sobre a modularização: 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. O procedimento sempre retorna um valor ao programa. A função retorna um valor ao programa. As variáveis de�nidas no escopo de cada função são acessíveis em todo o programa. Respondido em 23/05/2023 15:05:52 Explicação: Resposta correta: A função retorna um valor ao programa. Acerto: 1,0 / 1,0 Uma lista ordenada alocada sequencialmente possui como desvantagem: Tamanho limitado de memória alocada para lista. Impossibilidade de acesso direto. Complexidade O(n) para a busca. A reserva de memória em posições contíguas. Impossibilidade de remoção no meio da lista. Respondido em 23/05/2023 15:06:31 Explicação: A resposta correta é: Tamanho limitado de memória alocada para lista. Acerto: 1,0 / 1,0 Levando em consideração a estrutura de dados do tipo "Pilha", analise os itens a seguir e, ao �nal, assinale a alternativa correta: I- Um elemento a ser removido é o que está há menos tempo na estrutura de dados. Questão4 a Questão5 a Questão6 a 04/06/2023, 13:20 Estácio: Alunos https://simulado.estacio.br/alunos/ 4/6 II- Um elemento a ser removido é o que está há mais tempo na estrutura de dados. III- Um elemento a ser inserido é colocado na base da pilha. Apenas os itens II e III são verdadeiros. Apenas o item III é verdadeiro. Apenas o item II é verdadeiro. Apenas os itens I e II são verdadeiros Apenas o item I é verdadeiro. Respondido em 23/05/2023 15:07:20 Explicação: A resposta correta é: Apenas o item I é verdadeiro. Acerto: 1,0 / 1,0 Comparando o Merge Sort com o Método da bolha podemos a�rmar que: 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 a�rmar qual irá executar em melhor tempo. 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 ). Respondido em 23/05/2023 15:07:55 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). Acerto: 1,0 / 1,0 Sobre o método da bolha é correto a�rmar 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 é de�nido pela complexidade computacional sempre, independentemente da instância apresentada. O tempo de execução pode ser linear em relação ao tamanho da entrada se a instância apresentada já estiver ordenada. A complexidade computacional deste algoritmo é O (n log n). O algoritmo executa sempre no mesmo tempo para instâncias de mesmo tamanho n. Respondido em 23/05/2023 15:08:39 2 Questão7 a Questão8 a 04/06/2023, 13:20 Estácio: Alunos https://simulado.estacio.br/alunos/ 5/6 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. Acerto: 1,0 / 1,0 Seja a seguinte árvore, marque a opção correta que indica o porquê a árvore abaixo não é uma árvore binária de busca: Não é uma árvore binária de busca pois essa árvore deve estar perfeitamente balanceada. Não é uma árvore binária de busca pois o nó 35 deveria estar inserido à direita do nó 20. Não é uma árvore binária de busca pois esta árvore deve estar com os níveis de suas folhas todas igualmente perfeitas. Não é uma árvore binária de busca pois está desbalanceada. Não é uma árvore binária de busca pois o nó 22 deveria estar inserido à direita do nó 20. Respondido em 23/05/2023 15:09:07 Explicação: Uma árvore binária de busca são árvores que obedecem às seguintes propriedades: Dado um nó qualquer da árvore binária, todos os nós à esquerda dele são menores ou iguais a ele. Dado um nó qualquer da árvore binária, todos os nós à direita dele são maiores ou iguais a ele. Observe que a sub-árvore 20-22 não respeitaa regra básica, portanto, o nó 22 deveria estar a direita do nó 20. Acerto: 1,0 / 1,0 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: Questão9 a Questão10 a 04/06/2023, 13:20 Estácio: Alunos https://simulado.estacio.br/alunos/ 6/6 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 acima não é binária de busca. 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). Respondido em 23/05/2023 15:09:59 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:
Compartilhar