Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

ESTRUTURA DE DADOS I - QUESTIONÁRIOS RESOLVIDOS - 2023 - FACAP, Exercícios de Estruturas de Dados e Algoritmos

ESTRUTURA DE DADOS I - QUESTIONÁRIO 1 AO 8 (RESOLVIDOS) 2023

Tipologia: Exercícios

2023

À venda por 04/07/2023

GilCard
GilCard 🇧🇷

5

(10)

105 documentos

1 / 24

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
ESTRUTURA DE DADOS I - QUESTIONÁRIO 1 (RESOLVIDO) 2023
QUESTÃO 1 - Uma variável tem um espaço na memória reservado para armazenar dados, dependendo do tipo e da
declaração esta pode armazenar tipos específicos de dados, vimos que podemos ter vários deles, mas os mais comuns
são INT, FLOAT e CHAR.
Com base nos estudos da disciplina, qual é a diferença entre os tipos FLOAT e INT, na linguagem C?
RESPOSTA: O tipo FLOAT é destinado para armazenar números reais, já o INT para números inteiros.
Feedback: O INT armazena apenas os números inteiros, enquanto o FLOAT armazena os números reais.
QUESTÃO 2 - “A melhor maneira de se aprender uma linguagem de programação é na prática, ou seja, codificando
um programa” (KERNINGHAN; RITCHIE, 1988). Um programa em C, ao ser elaborado, pode possuir bibliotecas
básicas ou avançadas, dependendo da complexidade no programa a ser desenvolvido pode-se ter diversas bibliotecas
importadas. (KERNIGHAN, B. W, 1988)
Analise as afirmações referentes às bibliotecas Padrão de C e assinale a alternativa correta.
I - Com a biblioteca assert.h, pode-se realizar o tratamento de caracteres, por exemplo, a conversão de maiúsculas,
minúsculas.
II - A biblioteca stdio.h é a responsável pelas funções de entrada/saída.
III - A biblioteca stdint.h, define os padrões de tipos de dados inteiros.
IV - Com a biblioteca math.h podemos efetuar a manipulação de funções matemáticas
RESPOSTA: II, III e IV apenas.
Feedback: A biblioteca stdio.h é a responsável pelas funções de entrada/saída; A biblioteca stdint.h, define os padrões de tipos de dados
inteiros; Com a biblioteca math.h podemos efetuar a manipulação de funções matemáticas.
QUESTÃO 3 - Correspondem a dois dos recursos mais utilizados em softwares e à entrada e à saída de dados, sendo
permitido o recebimento dos dados digitados pelo usuário, armazenando-os em variáveis, posteriormente, podemos
efetuar a saída de dados, onde mostramos os dados armazenados nas variáveis na impressão da tela do usuário.
Com base no exposto e em nosso material de estudos, assinale a alternativa correta para a entrada e saída de dados
dos tipos int e float.
I - scanf("%d",&num1); printf("%d",num1);
II - scanf("%d",num1); printf("%d",num1);
III - scanf("%i",&num1); printf("%s",num1);
IV - scanf("%f",&num1); printf("%f",num1);
V - scanf("%c",&num1); printf("d",&num1);
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18

Pré-visualização parcial do texto

Baixe ESTRUTURA DE DADOS I - QUESTIONÁRIOS RESOLVIDOS - 2023 - FACAP e outras Exercícios em PDF para Estruturas de Dados e Algoritmos, somente na Docsity!

ESTRUTURA DE DADOS I - QUESTIONÁRIO 1 (RESOLVIDO) 2023

QUESTÃO 1 - Uma variável tem um espaço na memória reservado para armazenar dados, dependendo do tipo e da declaração esta pode armazenar tipos específicos de dados, vimos que podemos ter vários deles, mas os mais comuns são INT, FLOAT e CHAR. Com base nos estudos da disciplina, qual é a diferença entre os tipos FLOAT e INT, na linguagem C? RESPOSTA: O tipo FLOAT é destinado para armazenar números reais, já o INT para números inteiros. Feedback: O INT armazena apenas os números inteiros, enquanto o FLOAT armazena os números reais. QUESTÃO 2 - “A melhor maneira de se aprender uma linguagem de programação é na prática, ou seja, codificando um programa” (KERNINGHAN; RITCHIE, 1988). Um programa em C, ao ser elaborado, pode possuir bibliotecas básicas ou avançadas, dependendo da complexidade no programa a ser desenvolvido pode-se ter diversas bibliotecas importadas. (KERNIGHAN, B. W, 1988) Analise as afirmações referentes às bibliotecas Padrão de C e assinale a alternativa correta. I - Com a biblioteca assert.h, pode-se realizar o tratamento de caracteres, por exemplo, a conversão de maiúsculas, minúsculas. II - A biblioteca stdio.h é a responsável pelas funções de entrada/saída. III - A biblioteca stdint.h, define os padrões de tipos de dados inteiros. IV - Com a biblioteca math.h podemos efetuar a manipulação de funções matemáticas RESPOSTA: II, III e IV apenas. Feedback: A biblioteca stdio.h é a responsável pelas funções de entrada/saída; A biblioteca stdint.h, define os padrões de tipos de dados inteiros; Com a biblioteca math.h podemos efetuar a manipulação de funções matemáticas. QUESTÃO 3 - Correspondem a dois dos recursos mais utilizados em softwares e à entrada e à saída de dados, sendo permitido o recebimento dos dados digitados pelo usuário, armazenando-os em variáveis, posteriormente, podemos efetuar a saída de dados, onde mostramos os dados armazenados nas variáveis na impressão da tela do usuário. Com base no exposto e em nosso material de estudos, assinale a alternativa correta para a entrada e saída de dados dos tipos int e float. I - scanf("%d",&num1); printf("%d",num1); II - scanf("%d",num1); printf("%d",num1); III - scanf("%i",&num1); printf("%s",num1); IV - scanf("%f",&num1); printf("%f",num1); V - scanf("%c",&num1); printf("d",&num1);

RESPOSTA: I e IV, apenas. Feedback: scanf("%d",&num1); printf("%d",num1) e scanf("%f",&num1); printf("%f",num1) estão corretas. QUESTÃO 4 - Para praticar seus novos conhecimentos em linguagem C um aluno fez um pequeno programa. O objetivo deste programa é fazer uma divisão de dois números inteiros e atribuir o resultado em uma variável. Analise o código a seguir: #include <stdio.h> int main(void) { int A=174, B=2; float C; C = A / B; printf ("%d / %d = %.1f\n", A,B,C); return (0); } Após analisar o código fonte, assinale a alternativa correspondente do que será impresso na tela. RESPOSTA: O resultado impresso na tela será 174 / 2 = 87.0. Feedback: O resultado correto a ser apresentado na tela é 174 / 2 = 87.0.

ESTRUTURA DE DADOS I - QUESTIONÁRIO 2 (RESOLVIDO) 2023

QUESTÃO 1 - Segundo Forbellone e Eberspacher (2005, p.33), “uma estrutura de seleção simples permite a escolha de um grupo de ações (bloco) a ser executado quando determinadas condições, representadas por expressões lógicas ou relacionais, são ou não satisfeitas”. Com base no exposto sobre as estruturas de seleção, análise o algoritmo a seguir: #include <stdio.h> int main() { int idade; printf("Qual a sua idade? "); scanf("%d", &idade); if(idade >= 18 && idade <=70){ printf("Voce deve votar!"); }else{ if(idade <= 15){ printf("Nao pode votar"); }else{ printf("Voto facultativo"); }

Podemos concluir que: I – No código fonte apresentado, temos uma estrutura condicional composta. II – Se o usuário digitar o número 75, a resposta será: “Não pode votar”. III – Se o usuário digitar o número 16, a resposta será: “Voto facultativo”. IV – Neste algoritmo, é utilizado apenas operadores lógicos, não sendo utilizado nenhum relacional. É correto o que se afirma em: RESPOSTA: I e III apenas Feedback: No código fonte apresentado, temos uma estrutura condicional composta; Se o usuário digitar o número 16, a resposta será: “Voto facultativo”. QUESTÃO 2 - As estruturas de seleção se utilizam de expressões relacionais para validar o desvio condicional, devemos atentar para o fato de que alguns desses operadores relacionais podem ser confundidos ao serem utilizados. A partir do exposto e de nosso material de estudos, analise as alternativas e assinale qual corresponde ao desvio condicional IF, comparado se a variável N é igual ao número 0: RESPOSTA: if (n == 0) Feedback: Para fazer a comparação se N é igual a zero utilizamos o duplo sinal de = (igual). QUESTÃO 3 - Para repetir um determinado trecho do código podemos utilizar as estruturas de repetição, temos dois tipos de estruturas de repetição que se utilizam de expressões condicionais para executar ou continuar o laço de repetição, cada qual com suas particularidades. Dentre estas estruturas temos uma que a sua característica é executar pelo menos uma vez o laço de repetição, de qual estrutura estamos falando? RESPOSTA: DO WHILE

Referência: CASAVELLA, Eduardo. A biblioteca padrão da linguagem C. Disponível em: http://linguagemc.com.br/a-biblioteca-padrao-da-linguagem-c/ Acesso em: 01 fev. 2023.

ESTRUTURA DE DADOS I - QUESTIONÁRIO 3 (RESOLVIDO) 2023

QUESTÃO 1 - Existe uma forma de organizar trechos de código em blocos para que sejam utilizados diversas vezes, mas de maneira diferente de como é feito em laços de repetição. As chamadas funções isolam partes de um código e permitem uma reutilização deste bloco de instruções toda vez que a função principal "main" necessite de suas funcionalidades, por exemplo. A partir dos conceitos fundamentais de funções vistos na disciplina, analise as afirmativas a seguir, dentre as informações passadas. I - Funções podem conter instruções de desvio de fluxo de execução dentro de si própria. II - Funções podem chamar a si mesmas para realizar cálculos e outros processamentos. III - Uma função pode conter blocos de instruções de laços de repetição, vetores, entrada e saída. IV - Em uma função não são permitidos parâmetros de tipos diferentes em sua declaração. V - Funções podem manipular dados internamente e devolver dados manipulados ao código chamador. É correto o que se afirma em: RESPOSTA: I, II, III e V, apenas. Feedback: Apenas a assertiva IV está incorreta, pois em uma função são permitidos parâmetros de tipos diferentes em sua declaração. QUESTÃO 2 - Uma função é uma sub-rotina que tem como objetivo desviar a execução do programa principal para realizar uma tarefa específica. (ASCENCIO, A. F. G, 2010)

Sendo assim, é correto o que se afirma em: RESPOSTA: I e II, apenas. Feedback: Se a função for invocada de maneira que o parâmetro "n" valha 0 (zero), o algoritmo não entrará em loop infinito, portanto a assertiva III está incorreta.

QUESTÃO 3 - Uma lista duplamente encadeada é representada com nó de 3 elementos: 1 para os dados, 1

para o ponteiro para o próximo e 1 para o ponteiro para o anterior. Analise a imagem a seguir e assinale a

alternativa correta.

RESPOSTA: A lista duplamente encadeada facilita percorrer os elementos em ambas as direções, pois possui ponteiros para o anterior e para o próximo. Feedback: Pelo fato de possuir ponteiros direcionados para o "próximo" e para o “anterior” a lista duplamente encadeada percorre os elementos em ambas as direções. QUESTÃO 4 - Uma lista encadeada pode ser representada como um elemento do tipo nó, que possui uma variável para o dado e outra que é um ponteiro para o próximo. Além disso, há uma variável que aponta para o início da lista. A respeito de listas encadeadas, assinale as afirmativas corretas: I – Uma lista dinâmica pode ter qualquer tamanho que caiba a memória, pois os elementos são adicionados dinamicamente, mas ela deve ter o mínimo de um elemento, para que o ponteiro que aponta para o início não se perca. II – O último elemento da lista deve apontar para o elemento nulo (NULL), mesmo que ele seja também o primeiro elemento da lista. III – Uma lista vazia possui o ponteiro de início apontando para o elemento nulo (NULL). IV – Uma lista é considerada cheia quando o último elemento aponta para o elemento fim

RESPOSTA: II e III Apenas. Feedback: O último elemento da lista deve apontar para o elemento nulo (NULL), mesmo que ele seja também o primeiro elemento da lista; Uma lista vazia possui o ponteiro de início apontando para o elemento nulo (NULL). Referência: ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos da programação de computadores. 5. ed. São Paulo: Prentice Hall, 2010.

QUESTÃO 3 - O uso de ponteiros possibilita a criação de listas dinâmicas. A respeito do uso de ponteiros e listas, analise as afirmativas a seguir. I - As listas dinâmicas não possuem um valor máximo de elementos fixos. Podemos inserir quantos elementos forem necessários, desde que caibam na memória. II - As listas estáticas reservam o tamanho máximo que podem ocupar em memória assim que são definidas. III - Ao remover um elemento em uma lista dinâmica, se não apontarmos corretamente o elemento anterior para o próximo, podemos perder os dados de parte da lista. IV - Listas dinâmicas crescem na memória dinamicamente até o tamanho máximo definido em sua criação. V - Listas dinâmicas podem ter tamanhos maiores que listas estáticas: É correto o que se afirma em: RESPOSTA: I, II, III e V. Feedback: As Listas dinâmicas crescem na memória dinamicamente porém não tem um limite máximo definido na sua criação. QUESTÃO 4 - Considere uma lista encadeada implementada com vetores, na qual cada elemento é armazenado no vetor dados e possui um ponteiro para o próximo no vetor, conforme a seguinte estrutura: struct lista { int dados[20]; int proximos[20]; int inicio; } Os elementos podem ser incluídos e removidos a qualquer momento, sobre a manipulação de dados em listas, analise as afirmativas a seguir e selecione a correta. RESPOSTA: Para remover um elemento da lista, precisamos fazer que o elemento anterior do que será removido aponte para o elemento que o nó removido apontava. Referência: UFMG. Uma aplicação de structs: as listas simplesmente encadeadas, 1999. Disponível em: https://www.pucsp.br/~so-comp/cursoc/aulas/cb70.html. Acesso em: 03 fev. 2023.

ESTRUTURA DE DADOS I - QUESTIONÁRIO 5 (RESOLVIDO) 2023

QUESTÃO 1 - Uma estrutura em pilha é uma das mais simples no ambiente computacional e segue os

mesmos princípios de uma pilha no mundo real, ou seja, os elementos seguem o princípio do empilhar. As

pilhas são estruturas de dados conhecidas como lista LIFO (Last In, First Out); em português, significa

que o último elemento a entrar é o primeiro a sair UEPS.

binárias, como por exemplo a resolução de cálculos aritméticos de acordo com a precedência das operações, como ilustrado a seguir: Assinale a alternativa referente à expressão algébrica correta que originou esta árvore binária. RESPOSTA: p - ( p * ( d / 100 ) ) Feedback: A expressão algébrica correta é p - ( p * ( d / 100 ) )de acordo com a estrutura da árvore apresentada acima. QUESTÃO 4 - De maneira geral, utilizar árvores no desenvolvimento de programas é bom, pois elas provêm rápido acesso de dados (direto e sequencial), conta com fácil inserção e remoção de dados e ainda possuem boa taxa de utilização de memória. Nota-se que, para poder manipular árvores convenientemente, o desenvolvedor necessita ter em mente vários conceitos. Sobre árvores, avalie as afirmativas e assinale a alternativa correta. I – A raiz é o vértice inicial e não possui um nó pai. II – Considere que o nó V tem uma subárvore, cujo elemento é o nó W. Diz-se que V é pai de W. III – Considere que o nó V tem uma subárvore, cujo elemento é o nó W. Diz-se que W é pai de V. IV – Considere que o nó W tem uma subárvore, cujo elemento é o nó V. Diz-se que V é filho de W. RESPOSTA: I, II e IV apenas Feedback: A asserção III está incorreta pois o nó V que é pai do nó W, pois de acordo com as afirmações apresentadas o nó V está um nível acima do nó W.

Referência: UENP. Árvores - conceitos. Universidade Estadual do Norte do Paraná, 2017. Disponível em: https://estruturadedadosuenp.directorioforuns.com/t14-arvore-conceitos. Acesso em: 04 fev. 2023. ESTRUTURA DE DADOS I - QUESTIONÁRIO 6 (RESOLVIDO) 2023

QUESTÃO 4 - Com os dados armazenados em árvores podemos realizar buscas, em um elemento dentro de uma árvore, sendo também possível montar uma árvore binária para a busca através de elementos de a partir de um vetor, ordenado ou não ordenado. Conforme visto em nossas aulas um vetor é possível armazenar informações em uma única variável, guardando os dados em posições no vetor. Dada a seguinte árvore de busca: Sabendo que o nó raiz de um vetor com 4 elementos é originado da posição: (0 + 3) / 2 = 1.5 = 1, assinale a alternativa correspondente ao vetor que originou essa árvore.

RESPOSTA: [ 3 8 1 7 ]

Feedback: Sabendo que a posição que originou o vetor é 1,5 o vetor que originou essa árvore é [3 8 1 7]. Referência: UENP. Árvores - conceitos. Universidade Estadual do Norte do Paraná, 2017. Disponível em: https://estruturadedadosuenp.directorioforuns.com/t14-arvore-conceitos. Acesso em: 16 fev. 2023.

ESTRUTURA DE DADOS I - QUESTIONÁRIO 7 (RESOLVIDO) 2023

QUESTÃO 1 - Algumas técnicas de busca exigem que o conjunto de dados esteja ordenado, para que haja eficiência na procura por um elemento pertencente a esse conjunto. A figura abaixo representa o passo a passo da ordenação de um arranjo. Com base na ilustração abaixo, assinale a alternativa que corresponda ao algoritmo utilizado para ordenar o arranjo. RESPOSTA: O algoritmo utilizado é o InsertionSort. Feedback: O InsertionSort executa várias vezes a rotina até que o arranjo seja ordenado.