Prévia do material em texto
Disciplina: Linguagens de Programação e Estruturas de Dados (ADS12) Avaliação: Avaliação Final (Objetiva) - Individual FLEX ( Cod.:456745) ( peso.:3,00) Prova: 14318348 Nota da Prova: 7,00 Legenda: Resposta Certa Sua Resposta Errada Parte superior do formulário 1. O coordenador geral de um comitê olímpico solicitou a implementação de um aplicativo que permite o registro dos recordes dos atletas à medida que são quebrados, mantendo a ordem cronológica dos acontecimentos e possibilitando a leitura dos dados a partir dos mais recentes. Sobre os requisitos do aplicativo, avalie as asserções a seguir: I- A estrutura de dados mais adequada para a solução a ser implementada é pilha. PORQUE II- O último objeto a ser inserido na é o primeiro a ser lido, conhecido como estrutura LIFO (Last In- First Out). Assinale a alternativa CORRETA: a) A primeira asserção é uma proposição verdadeira, e a segunda, uma proposição falsa. b) A primeira asserção é uma proposição falsa, e a segunda, uma proposição verdadeira. c) As duas asserções são proposições verdadeiras, mas a segunda não é uma justificativa correta da primeira. d) As duas asserções são proposições verdadeiras, e a segunda é uma justificativa correta da primeira. 2. As estruturas de dados definem a organização, os métodos de acesso e as opções de processamento e armazenamento de todos os dados utilizados por um programa de computador. Com relação às estruturas de dados estudadas, classifique V para as sentenças verdadeiras e F para as falsas: ( ) Devido às características das operações da fila, o primeiro elemento a ser inserido será o último a ser retirado. Estruturas desse tipo são conhecidas como LIFO. ( ) As pilhas são utilizadas para controlar o acesso de arquivos que concorrem a uma única impressora. ( ) A fila é uma lista linear na qual as operações de inserção e retirada ocorrem apenas no início da lista. ( ) A pilha é uma lista linear na qual as operações de inserção e retirada são efetuadas apenas no seu topo. ( ) Devido às características das operações da pilha, o último elemento a ser inserido será o último a ser retirado. Estruturas desse tipo são conhecidas como FIFO. Assinale a alternativa que apresenta a sequência CORRETA: a) V - F - F - V - F b) V - V - V - V - F c) F - F - F - V - F d) F - V - F - F - V 3. Um dos fatores predominantes na escolha de uma estrutura de dados a ser utilizada no desenvolvimento de software é o grau de aderência desta estrutura à complexidade das informações a serem modeladas no domínio sobre o qual o software atuará. Com relação às estruturas de dados utilizadas na programação de computadores, assinale a alternativa CORRETA: a) As estruturas de dados surgiram com o objetivo de disciplinar parte do desenvolvimento de software, pois possuem as responsabilidades de organização e armazenamento dos dados. b) O domínio de conhecimento sobre o qual o software atuará influencia na escolha das estruturas de dados, mas não dos algoritmos. c) Os algoritmos têm a finalidade de armazenamento, enquanto as estruturas de dados determinam a lógica de processamento. d) As decisões sobre as estruturas de dados não têm relação com os algoritmos aplicados a elas. 4. As estruturas de dados definem a organização, os métodos de acesso e as opções de processamento e armazenamento de todos os dados utilizados por um programa de computador. Com relação aos tipos de dados das estruturas de dados estudadas, classifique V para as sentenças verdadeiras e F para as falsas: ( ) São sempre verificados pelo compilador. Caso se extrapole a capacidade do tipo, um erro ocorre e o programa é abortado. ( ) Mais comuns e mais utilizados são as matrizes e os registros. ( ) São associados a um descritor. Um descritor é uma estrutura de dados, que não ocupa espaço na memória, que armazena os atributos do tipo de dados. ( ) Na forma de caracteres geralmente são armazenados como codificações numéricas, como o padrão UTF. ( ) Inteiros são sempre representados como uma cadeia de caracteres. O caractere mais à esquerda representa o sinal positivo ou negativo. Assinale a alternativa que apresenta a sequência CORRETA: a) F - V - F - F - V. b) V - F - F - V - F. c) V - V - V - V - F. d) F - F - F - V - F. 5. No desenvolvimento computacional, as estruturas de dados apresentam maneiras distintas e bem específicas de armazenamento e organização no computador. Isso é necessário para que as informações sejam acessadas com eficiência. Pilhas e filas apresentam formas bem particulares de inserção, armazenamento e inclusão dos dados. Com relação ao armazenamento de dados em uma pilha, assinale a alternativa CORRETA: a) O último dado a entrar é o primeiro a sair. b) O último dado utilizado é o último a sair. c) Só é possível fazer a entrada de dados d) O último dado a entrar é o último a sair. 6. Uma pilha é uma estrutura de dados que armazena uma coleção de itens de dados relacionados e que garante o seguinte funcionamento: o último elemento a ser inserido é o primeiro a ser removido. É comum na literatura utilizar os nomes push e pop para as operações de inserção e remoção de um elemento em uma pilha respectivamente. O trecho de código apresentado na imagem, em linguagem C, define uma estrutura de dados pilha utilizando um vetor de inteiros, bem como algumas funções para sua manipulação. O programa a seguir utiliza uma pilha deste código. 1. int main() { 2. pilha * p = cria_pilha(); 3. push(p, 2); 4. push(p, 3); 5. push(p, 4); 6. pop(p); 7. push(p, 2); 8. int a = pop(p) + pop(p); 9. push(p, a); 10. a += pop(p); 11. printf("%d", a); 12. return 0; 13. } Com base no exposto, analise as afirmativas a seguir: I- O valor apresentado na tela após a execução da linha 11 é 10. II- O valor exibido pelo programa seria o mesmo caso a instrução a += pop(p) da linha 10; fosse trocada por a += a; III- O vetor usado pela pilha é alocado estaticamente (linha 2). Assinale a alternativa CORRETA: a) Somente a afirmativa II está correta. b) As afirmativas I e II estão corretas. c) As afirmativas II e III estão corretas. d) As afirmativas I e III estão corretas. 7. A decomposição de um problema é fator determinante para a redução da complexidade. Assim, surgem os subalgoritmos, que são trechos de programas que podem ser utilizados dentro de um programa maior, sempre que necessário ou conveniente. Permite, desta forma, focalizar a atenção em um problema pequeno de cada vez, o que ao final produzirá uma melhor compreensão do todo. Sobre o exposto, analise as sentenças a seguir: I- Os subalgoritmos podem ser do tipo função ou procedimento, sendo que o segundo sempre retornará um valor para o algoritmo que o chamou. II- Um subalgoritmo pode receber parâmetros, que são valores advindos de outro algoritmo. III- Um algoritmo somente poderá realizar a chamada de um tipo de subalgoritmo. IV- Os parâmetros utilizados no algoritmo principal, no ato da chamada da função, devem manter uma correspondência (número, ordem e tipo) com os parâmetros definidos na função. Assinale a alternativa CORRETA: a) As sentenças I, II e III estão corretas. b) Somente a sentença III está correta. c) As sentenças I e III estão corretas. d) As sentenças II e IV estão corretas. 8. As cadeias de caracteres são estruturas que possuem uma grande importância no desenvolvimento de programas, pois permitem a representação de variáveis que contenham palavras, frases e até mesmo textos. As linguagens de programação em geral abstraem do programador o controle das cadeias de caracteres, realizando-o internamente e disponibilizando um tipo de variável pronto para utilização. No que se refere às características das cadeias de caracteres na linguagem de programação C, assinale a alternativa CORRETA: a) Os caracteres são armazenados no computadoratravés de codificações numéricas. b) Não é possível colocar um caracter que represente um número em uma variável do tipo string. c) As strings são compostas por vetores de caracteres e marcadas por um caracter especial que sinaliza o seu início. d) A string BOMDIA seria armazenada em um vetor de caracteres de 6 posições. 9. A recursividade é um recurso poderoso, que quando bem aplicado pode simplificar a resolução de problemas computacionais através de linguagens de programação. Uma das vantagens desta estratégia é que ela independe de linguagem de programação, podendo ser implementada em qualquer linguagem que dê suporte a funções, procedimentos ou métodos. Com base no exposto, classifique V para as sentenças verdadeiras e F para as falsas: ( ) A recursividade indireta exige no mínimo a existência de duas funções distintas. ( ) Funções recursivas diretas não necessitam de uma condição específica para encerrar o processamento. ( ) A recursividade deve ser utilizada com parcimônia, pois pode diminuir o desempenho do programa em situações específicas. ( ) As funções recursivas necessitam de algum tipo de comando de repetição para funcionarem corretamente. Agora, assinale a alternativa que apresenta a sequência CORRETA: a) V - F - V - F. b) F - V - F - V. c) V - F - F - V. d) V - V - F - V. 10. Os vetores apresentam-se como alternativa ao desenvolvedor em situações em que existe a necessidade de armazenamento e recuperação de informações em memória de forma rápida e prática. Entretanto, a utilização dos vetores pode ocasionar erros que acontecem na execução do programa e que são imperceptíveis no momento da compilação. Considerando os cuidados a serem tomados pelo desenvolvedor na utilização de vetores, classifique V para as sentenças verdadeiras e F para as falsas: ( ) Colocar e definir o tamanho dos vetores em constantes pode auxiliar a manter a consistência do programa. ( ) Ao controlar cadeias de caracteres, o desenvolvedor deve encerrá-las com o caracter ?e?, de forma a indicar o seu final. ( ) Ao saber o número de elementos a serem armazenados em um vetor, o desenvolvedor pode diminuir a utilização da memória pelo programa. ( ) Para se percorrer uma matriz, basta iterar pela primeira dimensão da mesma através do comando for. Agora, assinale a alternativa que apresenta a sequência CORRETA: a) V - F - V - F. b) V - F - V - V. c) V - F - F - V. d) F - V - F - V. 11. (ENADE, 2011) A pilha é uma estrutura de dados que permite a inserção/remoção de itens dinamicamente seguindo a norma de último a entrar, primeiro a sair. Suponha que para uma estrutura de dados, tipo pilha, são definidos os comandos: PUSH (p, n): Empilha um número "n" em uma estrutura de dados do tipo pilha "p"; POP (p): Desempilha o elemento no topo da pilha. Considere que, em uma estrutura de dados tipo pilha "p", inicialmente vazia, sejam executados os seguintes comandos: PUSH (p, 10) PUSH (p, 5) PUSH (p, 3) PUSH (p, 40) POP (p) PUSH (p, 11) PUSH (p, 4) PUSH (p, 7) POP (p) POP (p) Após a execução dos comandos, o elemento no topo da pilha "p" e a soma dos elementos armazenados na pilha "p" são, respectivamente: a) 11 e 29. b) 11 e 80. c) 4 e 80. d) 7 e 29. Parte inferior do formulário