Baixe o app para aproveitar ainda mais
Prévia do material em texto
Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, agrupados sob uma lógica e associados por um nome. Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição de uma estrutura como: Struct empregado { string nome; float salario; }; Suponha ainda que exista um vetor desta estrutura, definido como: empregado vet [ 100]; Marque a alternativa em que é atribuída de forma correta o salario 805.7 para o décimo primeiro elemento deste vetor. empregado.vet[10].nota=805.7; vet[10].empregado.salario=805.7 empregado.vet[10]=805.7; vet[10]=empregado.805.7; vet[10].salario=805.7; 2 QUESTÃO 2 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 armazenar um valor inteiro na variável numero: scanf("%d",&end1.numero); 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 mostrar o conteúdo da variável logradouro: printf("%s", logradouro.end1); QUESTÃ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: 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: II e IV, apenas V, apenas I, III e V, apenas I e III I, II, IV e V, apenas QUESTÃO 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 CORRETA sobre a modularização: A função 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. O procedimento sempre retorna um valor ao programa. A passagem de parâmetros para um subprograma pode ser somente por valor. QUESTÃO 5 Uma pilha segue a regra: "o ultimo a chegar é o primeiro a sair". Já as filas obedecem à regra: o primeiro a chegar é o primeiro a sair. Com base nesses argumentos, Uma pilha P e uma fila F originalmente com n elementos cada (n > 5), onde suas operações são: empilha(P, elemento): insere elemento na pilha P; desempilha(P): remove da pilha P e retorna o elemento removido; enfileira(F, elemento): insere elemento na fila F; desenfileira(F): remove da fila F e retorna o elemento removido; para i = 1 até n, faça empilha(P, desempilha(P)) enfileira(F, desenfileira(F)) fim-para Ao final da execução do pseudocódigo, os estados finais de P e F serão respectivamente: elementos em ordem inversa e elementos em ordem inversa. elementos em ordem original e elementos em ordem original. elementos em ordem inversa e elementos em ordem original. Ambas as estruturas estarão vazias. elementos em ordem original e elementos em ordem inversa. QUESTÃO 6 Uma lista ordenada alocada sequencialmente possui como desvantagem: Impossibilidade de remoção no meio da lista. Tamanho limitado de memória alocada para lista. Complexidade O(n) para a busca. Impossibilidade de acesso direto. A reserva de memória em posições contíguas. QUESTÃO 7 Avalie as afirmativas abaixo: 1 - O merge sort executa em O(n log n). 2 - O bucket sort executa em O(n). 3 - Algoritmos que executam em uma complexidade abaixo de O(n log n) ordenam a sequência sem comparar os elementos desta sequência. Somente a 1 e a 2 estão corretas. Somente a 3 está correta. Todas estão corretas. Somente a 1 está correta. Somente a 2 e a 3 estão corretas. QUESTÃO 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. 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). Ambos têm complexidade comparável, assim, existem não é possível afirmar qual irá executar em melhor tempo. QUESTÃO 9 Ano: 2020 Banca: Instituto AOCP Órgão: Prefeitura de Nova Hamburgo - RS Prova: Analista de Desenvolvimento - Analista de Sistemas Analise a seguinte árvore binária e assinale a alternativa correta. "B" e "C" são caules da árvore. "B" tem grau de saída 3 e ¿C¿ grau 2. Com exceção do nó "A", que é raiz, os demais nós são conhecido como folhas "A" é filho de todos. TA é a subárvore enraizada em "A", portanto toda a árvore. QUESTÃO 10 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. 42 - 60 - 20 - 48 - 50. 40 - 60 - 45 - 48 - 50. 42 - 60 - 20 - 30 - 50. 40 - 10 - 45 - 30 - 50. 40 - 15 - 45 - 30 - 50.
Compartilhar