Baixe o app para aproveitar ainda mais
Prévia do material em texto
1a Questão Acerto: 1,0 / 1,0 Referente a alocação dinâmica de memória em C, é CORRETO afirmar: A função clear é usada para limpar o conteúdo de um ponteiro. 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. As funções calloc e realloc são usadas para liberar arrays. Respondido em 10/04/2023 14:40:06 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. 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 copiar o conteúdo das variáveis de end1 para end2: end1.strcpy = end2; Para armazenar a string "RJ" na variável estado: endereco.estado= "RJ" Para armazenar um valor inteiro na variável numero: scanf("%d",&end1.numero); Para mostrar o conteúdo da variável logradouro: printf("%s", logradouro.end1); Respondido em 10/04/2023 14:47:15 Explicação: Correta: Para armazenar um valor inteiro na variável numero: scanf("%d",&end1.numero). 3a Questão Acerto: 1,0 / 1,0 Em relação ao uso e conceitos de procedimentos e funções em lógica de programação, analise as seguintes afirmativas: I. Procedimentos e funções são blocos de instruções para realizar tarefas específicas e são considerados sub-rotinas. II. Em um procedimento, a passagem de parâmetros é obrigatória. III. Em uma função, a passagem de parâmetros e o retorno de um valor são obrigatórios. Está CORRETO o que se afirma em: II, apenas. I e II, apenas. II e III, apenas. I e III, apenas. I, apenas. Respondido em 10/04/2023 14:52:59 Explicação: Resposta correta: I, apenas. 4a Questão 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: O procedimento sempre retorna um valor ao programa. As variáveis definidas no escopo de cada função são acessíveis em todo o programa. As variáveis locais são declaradas no escopo do programa inteiro. A passagem de parâmetros para um subprograma pode ser somente por valor. A função retorna um valor ao programa. Respondido em 10/04/2023 14:56:49 Explicação: Resposta correta: A função retorna um valor ao programa. 5a Questão Acerto: 1,0 / 1,0 O acesso ao elemento de uma estrutura de dados tipo pilha se restringe ao mais recente na pilha. Já o acesso a um elemento de uma estrutura tipo fila ocorre ao dado há mais tempo na fila. Sobre pilhas e filas, avalie as assertivas a seguir: I - Uma forma de evitar o desperdício de memória numa fila em alocação sequencial é utilizar-se lista circular. II - Em uma pilha em alocação encadeada, a complexidade da remoção é O(n). III - Pilhas têm a propriedade de inverter a ordem de cadeias, enquanto as filas mantêm a ordem. A opção que contém todas as assertivas corretas é: I e II. II. II e III. I e III. I. Respondido em 10/04/2023 15:03:23 Explicação: A resposta correta é: I e III. 6a Questão Acerto: 0,0 / 1,0 (IBFC/2022 - Adaptada) Assinale, das alternativas abaixo, a única que identifica respectivamente uma Estrutura de Dados do tipo FIFO (First In, First Out) e uma outra com a Estrutura de dados do tipo LIFO (Last In, First Out): pilha - fila lista - vetor matriz - vetor fila - pilha vetor - lista Respondido em 10/04/2023 15:07:40 Explicação: Filas e Pilhas são estruturas de dados lineares que permitem o armazenamento e acesso a elementos. Ambas são utilizadas para armazenar coleções de elementos, mas possuem diferenças importantes no que diz respeito ao princípio de acesso aos elementos. Uma fila é uma estrutura de dados baseada no princípio First In, First Out (FIFO), ou seja, o primeiro elemento a ser adicionado é o primeiro a ser removido. É como se fosse uma fila de pessoas, onde a primeira pessoa a chegar é a primeira a ser atendida. As operações de inserção e remoção são chamadas de enfileirar e desenfileirar, respectivamente. Já uma pilha é uma estrutura de dados baseada no princípio Last In, First Out (LIFO), ou seja, o último elemento a ser adicionado é o primeiro a ser removido. É como se fosse uma pilha de pratos, onde o último prato colocado é o primeiro a ser retirado. O LIFO é a base para as operações de empilhamento e desempilhamento, que permitem adicionar e remover elementos na pilha, respectivamente. 7a Questão Acerto: 1,0 / 1,0 Comparando o Merge Sort com o Método da bolha podemos afirmar que: O buble sort sempre irá executar mais rápido que o merge sort por ter complexidade computacional inferior ao merge sort. 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 merge sort, por ser instável, sempre executará em tempo superior ao buble 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). Ambos têm complexidade comparável, assim, existem não é possível afirmar qual irá executar em melhor tempo. Respondido em 10/04/2023 15:12:41 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 algoritmo executa sempre no mesmo tempo para instâncias de mesmo tamanho n. A complexidade computacional deste algoritmo é O (n log n). O tempo de execução pode ser linear em relação ao tamanho da entrada se a instância apresentada já estiver ordenada. O tempo de execução é definido 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 estiver ordenada em ordem reversa a desejada. Respondido em 10/04/2023 15:16:37 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 As rotações são operações fundamentais para ajuste da propriedade AVL. Analise as afirmativas abaixo. I - A inserção de uma nova chave em uma árvore AVL pode desregular diversos nós no caminho da raiz até a folha onde a nova chave foi inserida. Só é necessário aplicar uma rotação no nó mais profundo desregulado. Porque II - A aplicação da rotação resulta em uma subárvore com a mesma altura da subárvore original, isto é, antes da inserção da nova chave. Marque a alternativa correta. As duas afirmativas são falsas. A primeira afirmativa é falsa e a segunda afirmativa é verdadeira. As duas afirmativas estão corretas e a segunda não justifica a primeira. A primeira afirmativa é verdadeira e a segunda afirmativa é falsa. As duas afirmativas estão corretas e a segunda justifica a primeira. Respondido em 10/04/2023 15:21:03 Explicação:As operações de rotação preservam a altura da árvore original, isto é, imagine que v é a raiz da subárvore Tv que ficará desregulada após a inserção. Antes da inserção Tv tem altura h, depois da inserção Tv terá altura h+1, porém v está desregulado. Ao aplicar a rotação Tv volta a ter altura h, por isso, eventuais nós ancestrais de v que estivessem desregulados voltam a estar regulados. 10a Questão Acerto: 1,0 / 1,0 As árvores binárias de busca são especializações das árvores binárias que permitem uma melhor organização dos algoritmos de busca. Sobre a inserção de uma nova chave em uma árvore binária de busca é correto afirmar que: A complexidade da inserção é sempre O(n), independentemente da altura da árvore. Todas as chaves são inseridas em folhas, a posição da folha é determinada pela busca. Para determinar a posição da nova chave é necessário calcular o percurso em ordem simétrica da árvore obtida. Com este percurso, verifica-se se a sequência está ordenada em ordem crescente. Caso esteja, a posição da nova chave está correta. O algoritmo de inserção em árvores binárias de busca é estático, isto é, é necessário recalcular toda árvore para inserir uma nova chave. Toda nova chave é inserida obrigatoriamente na raiz. Respondido em 10/04/2023 15:22:53 Explicação: Todas as chaves serão inseridas em folhas, considerando que na árvore binária de busca o objetivo é buscar pela posição correta de inserção dos dados e inserir (a esquerda ou a direita) o nó considerado, além de que em árvores binárias de busca não existem regras que mantenham o balanceamento da árvore.
Compartilhar