Prévia do material em texto
Disciplina: Linguagens de Programação e Estruturas de Dados (ADS12) Avaliação: Avaliação II - Individual FLEX ( Cod.:456743) ( peso.:1,50) Prova: 14104447 Nota da Prova: 9,00 Legenda: Resposta Certa Sua Resposta Errada 1. Estrutura de dados são utilizadas para acessar os dados armazenados de forma mais rápida e organizada. É um recurso facilitador, uma vez que dispensa análises criteriosas em busca da informação a ser recuperada. Considerando as estruturas de dados estudadas, é assinale a alternativa CORRETA: a) Vetores e matrizes são as únicas estruturas de armazenamento de dados possíveis. b) Vetores têm capacidade para armazenar somente um valor em cada estrutura. c) Somente os vetores têm alocação de memória dinâmica. d) Vetores têm de estrutura de dados (alocação de memória) estática. 2. As matrizes na linguagem de programação Java possuem características diferentes em sua definição. Ao invés de definir uma matriz na memória, a máquina virtual Java cria vetores de vetores, o que acaba por facilitar o gerenciamento e a visualização das matrizes por parte dos programadores. Sobre as características dos vetores na linguagem de programação Java e do nome do objeto que contém a matriz é "matriz", bem como a figura anexa, analise as sentenças a seguir: I- O número 31 pode ser referenciado usando matriz[0][0]. II- Ao acessar matriz[4][3], obteremos um erro de compilação. III- A posição [0][4] contém o número 1. IV- Ao acessar matriz[4][2], obteremos um erro na execuçã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 II e IV estão corretas. d) Somente a sentença II está correta. 3. As variáveis do tipo vetores unidimensionais, disponíveis em diversas linguagens de programação, são úteis em situações em que é necessário manter em memória um conjunto de informações que permita operações de busca e processamento. A sintaxe da declaração e utilização de vetores muda de linguagem de programação para linguagem de programação, o que acaba por tornar sua utilização razoavelmente complexa. Com relação aos vetores unidimensionais e suas características na linguagem de programação C, assinale a alternativa CORRETA: a) Os vetores unidimensionais caracterizam-se por possuírem um número finito de elementos, sendo que todos são do mesmo tipo. b) Uma string pode ser considerada como um vetor multidimensional. c) As operações de leitura e escrita em variáveis do tipo vetor podem ser feitas sem variáveis auxiliares de indexação. d) Um vetor unidimensional pode ser considerado como uma lista ordenada de elementos, sendo que um vetor de strings é ordenado alfabeticamente de forma automática pela linguagem C. 4. O algoritmo a seguir recebe um vetor v de números inteiros e rearranja esse vetor de tal forma que seus elementos, ao final, estejam ordenados de forma crescente. Considerando que nesse algoritmo há erros de lógica que devem ser corrigidos para que os elementos sejam ordenados de forma crescente, avalie as afirmativas a seguir: I- A linha 04 deve ser corrigida da seguinte forma: for(i = 1; i < n - 1 ; i ++) II- A linha 08 deve ser corrigida da seguinte forma: while( j >= 0 && v[j] >chave) III- A linha 10 deve ser corrigida do seguinte modo: v [ j + 1] = v [ j]; IV- a linha 13 deve ser corrigida do seguinte modo: v [ j - 1] = chave; Assinale a alternativa CORRETA: a) As afirmativas I e II estão corretas. b) As afirmativas II e III estão corretas. c) As afirmativas III e IV estão corretas. d) As afirmativas I e IV estão corretas. 5. A classe String foi projetada na linguagem de programação Java de forma a operacionalizar um conjunto de métodos utilitários que permitam a manipulação das cadeias de caracteres que são armazenadas nos objetos. Estes métodos facilitam a reutilização de código já escrito, uma vez que a JVM já vem com eles implementados. Considerando os métodos utilitários da classe String e o código fonte da figura a seguir, assinale a alternativa CORRETA que apresenta a letra que será escrita no console: a) w b) R c) r d) o 6. A ordenação por inserção funciona de modo semelhante à forma como algumas pessoas ordenam cartas de baralho. Inicia-se com a mão esquerda vazia e as cartas empilhadas na mesa. Remove-se da pilha uma carta de cada vez, inserindo-a na posição correta na mão esquerda. Para se identificar a posição correta de uma carta, deve-se compará-la com as cartas presentes na mão esquerda, no sentido da direita para a esquerda. Em todos os momentos, as cartas na mão esquerda estão ordenadas, tendo sido obtidas no topo da pilha da mesa. Um programador implementou um algoritmo de ordenação semelhante à forma de ordenação de cartas descrita no texto. Ao realizar um teste com um vetor de nove posições (vetor [ 1 .. 9] ), verificou que o algoritmo não funcionava corretamente. Considerando que nesse algoritmo há erros de lógica que devem ser corrigidos para que o algoritmo ordene corretamente um vetor de inteiros de forma crescente, analise as afirmativas a seguir: I- A linha 04 deve ser corrigida da seguinte forma: enquanto ( ( j >= 1 ) ou ( valor < vetor [ j ] ) ) II- A linha 05 deve ser corrigida da seguinte forma: vetor [ j + 1 ] <- vetor [ j ] III- A linha 11 deve ser corrigida do seguinte modo: vetor [ j ] <- valor Assinale a alternativa CORRETA: a) As afirmativas I e III estão corretas. b) As afirmativas II e III estão corretas. c) Somente a afirmativa II está correta. d) As afirmativas I e II estão corretas. 7. Na linguagem de programação Java, os tipos como int, double, boolean e char são escritos com letras minúsculas, no sentido de indicar que são tipos primitivos. Já as Strings são declaradas com letra maiúscula, pois são classes que possuem diversas operações já implementadas, o que facilita a vida do desenvolvedor. Com relação às String da linguagem de programação Java, assinale a alternativa CORRETA: a) O método indexOf retorna um caracter contido no índice, que é passado como parâmetro. b) Os métodos trim e split apresentam a mesma funcionalidade, sendo que a única diferença entre eles é o tipo de retorno. c) O método equals pode ser utilizado para verificar a equivalência entre dois objetos, sendo que, na classe String, ele verifica se o conteúdo de duas Strings é igual. d) Para se inicializar uma String, o seu conteúdo deve ser indicado através de aspas simples. 8. A sequência ou sucessão de Fibonacci, segundo a matemática, é a ordem de números inteiros que parte, geralmente, de 0 e 1 e que cada número subsequente representa a soma dos dois anteriores. No Proposta Leonardo Pisa, conhecido como Fibonacci, ele propôs a sequência numérica: (1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...). Essa sequência tem uma lei de formação simples: cada elemento, a partir do terceiro, é obtido somando-se os dois anteriores. Veja: 1+1=2, 2+1=3, 3+2=5 e assim por diante. Baseado no algorítimo, analise as sentenças a seguir: I- Ao informar a posição 8, o valor final em (T) será 21. II- Ao informar a posição 3, o valor final em (T) será 2. III- No estrutura de repetição utilizada nesse algoritmo (PARA- FAÇA), não se sabe a quantidade de vezes que será executada. IV- Se o valor da posição (lido por N) for 1 ou 2, o valor final em (T) será o mesmo. Assinale a alternativa CORRETA: a) As sentenças III e IV estão corretas. b) Somente a sentença II está correta. c) As sentenças I, II e IV estão corretas. d) As sentenças I e III estão corretas. 9. Os TADs (tipos abstratos de dados) podem ser representados através de diversas formas distintas na linguagem de programação C, sendo que uma característica comum entre as representações é a aglutinação de variáveis dentro de um tipo. Este tipo geralmente é uma abstração de alguma entidade do mundo real, cuja representação através de um TADtorna a manipulação menos complexa. Sobre as características dos TADs e o código-fonte apresentado a seguir, classifique V para as sentenças verdadeiras e F para as falsas: ( ) A utilização dessa struct implica ainda a declaração de uma variável do tipo Aluno. ( ) Este código apresenta um erro de compilação. ( ) Através da linha de comando: "struct Aluno a; Aluno.matricula=1;" o valor 1 será atribuído para a struct. ( ) Na linha 7 está declarado um tipo homogêneo de dados. Assinale a alternativa que apresenta a sequência CORRETA: a) F - V - F - V. b) V - F - V - V. c) V - F - V - F. d) V - F - F - V. 10.Tipos de dados abstratos (TAD) representam um conjunto de dados e as respectivas operações executadas sobre eles. Os TAD podem ser considerados uma metodologia de desenvolvimento de algoritmos onde se reduz o tamanho do código através da abstração. Com relação aos tipos de dados abstratos, classifique V para as sentenças verdadeiras e F para as falsas: ( ) A principal característica dos TAD é a finalidade das operações. ( ) Vetores, abstrato ponto e abstrato matriz são os três tipos de dados abstratos. ( ) Os TAD ficam externos ao módulo onde são criados, facilitando a visualização e a manipulação. ( ) Um programador não pode alterar os dados armazenados quando a implementação usa TAD. ( ) TAD é um tipo de dados que esconde a implementação de quem faz a manipulação. Assinale a alternativa que apresenta a sequência CORRETA: a) V - F - V - F - V. b) V - V - F - V - V. c) V - F - F - F - V. d) F - F - V - F - F. Prova finalizada com 9 acertos e 1 questões erradas.