Baixe o app para aproveitar ainda mais
Prévia do material em texto
20/11/2018 Ilumno http://ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/1042748/c167d5d4-e9ec-11e5-afc6-b8ca3a5ebf30/ 1/7 Local: C311 - 3° Andar - Bloco C / Andar / Polo Tijuca / TIJUCA Acadêmico: VIRCLP-002 Aluno: GABRIEL DE OLIVEIRA TOPINI Avaliação: A2- Matrícula: 20161106506 Data: 21 de Novembro de 2017 - 18:20 Finalizado Correto Incorreto Anulada Discursiva Objetiva Total: 6,00/10,00 1 Código: 24372 - Enunciado: No momento da escolha da linguagem, foi analisada a seguinte situação: quanto mais fácil for seguir as instruções de um programa, mais fácil será entender o que está sendo feito e também descobrir os erros de programação. Indique a qual critério refere-se essa situação. a) Redigibilidade. b) Legibilidade. c) Modificabilidade. d) Reusabilidade. e) Facilidade de aprendizado. Alternativa marcada: b) Legibilidade. Justificativa: Resposta correta: Legibilidade. É importante que os programas escritos sejam de fácil leitura e entendimento. Distratores: Redigibilidade. Errada. Está ligada à legibilidade do código e à simplicidade. Modificabilidade. Errada. Está ligada à facilidade de alteração do código. Reusabilidade. Errada. Está relacionada ao reaproveitamento de código desenvolvido para uma aplicação em outras. Facilidade de aprendizado. Errada. Está relacionada à facilidade de compreensão, criação e desenvolvimento do código. 0,75/ 0,75 2 Código: 24379 - Enunciado: Durante o desenvolvimento de um programa em C, foi constatado que há a necessidade de se trabalhar com o conceito de vetor. Esse, por sua vez, com 50 posições de números inteiros. O programa deverá solicitar a entrada de dados ao usuário e os números armazenados, que serão armazenados nesse vetor. Sendo assim, represente a estrutura de repetição para a solicitação da entrada dos números. a) for (i = 1; i <= 50; i++). b) for (i = 0; i <= 50; i++). c) for (i = 1; i< 50; i++). d) for (i = 0; i < 50; i++). e) for (i = 50; i <= 1; i++). Alternativa marcada: d) for (i = 0; i < 50; i++). Justificativa: Resposta correta: for (i = 0; i < 50; i++). Na linguagem C, a primeira posição do vetor é 0 (zero). Como são 50 números, o contador i deve ir até 49. Distratores: for (i = 1; i <= 50; i++). Errada. Na linguagem C, a primeira posição do vetor é 0 (zero) e não 1. Além de a condição não poder ser enquanto o i <= 50, pois não existe a posição 50. for (i = 0; i <= 50; i++). Errada. Na linguagem C, a primeira posição do vetor é 0 (zero). Sendo assim, a condição não pode ser enquanto o i <= 50, pois não existe a posição 50. for (i = 1; i< 50; i++). Errada. Na linguagem C, a primeira posição do vetor é 0 (zero), e não 1. for (i = 50; i <= 1; i++). Errada. O valor inicial de i deve ser 0 (zero), e não o valor do tamanho do vetor. 0,75/ 0,75 3 Código: 24775 - Enunciado: A modularização tem como foco a decomposição (divisão) de um algoritmo maior em partes menores e de menor complexidade. É uma técnica capaz de organizar melhor o processo de programação, quando trabalhamos no desenvolvimento de programas maiores e, por consequência, mais complexos. Uma função normalmente é autônoma, mas uma tarefa de maior complexidade pode agrupar um conjunto de outras funções. A respeito dos métodos de implementação por referência, avalie as asserções, a seguir, e a relação proposta entre elas. I. Qualquer mudança nos parâmetros passados por referência na função afetarão e alterarão as variáveis originais do programa. PORQUE II. Os parâmetros locais da função são, na verdade, referências aos locais de memória, nos quais os argumentos originais passados estão armazenados. a) As asserções I e II são verdadeiras, e a II é uma justificativa correta da I. b) As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I. c) A asserção I é verdadeira, e a II é falsa. d) A asserção I é falsa, e a II é verdadeira. e) As asserções I e II são falsas. Alternativa marcada: 0,75/ 0,75 20/11/2018 Ilumno http://ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/1042748/c167d5d4-e9ec-11e5-afc6-b8ca3a5ebf30/ 2/7 a) As asserções I e II são verdadeiras, e a II é uma justificativa correta da I. Justificativa: Resposta correta: As asserções I e II são verdadeiras, e a II é uma justificativa correta da I. Na passagem por referência, é passado o endereço da variável original, e toda manipulação é realizada sobre a variável original do programa que chamou a função por meio dessa referência. Dessa forma, o valor da variável original poderá sofrer alterações durante a execução da função. 4 Código: 24377 - Enunciado: No decorrer do desenvolvimento de um dado programa, constatou-se a necessidade de modelar coleções de dados que não são do mesmo tipo ou tamanho e que residem em posições de memória adjacentes. Nesse caso, indique o tipo de dado mais indicado. a) Matrizes. b) Ponteiros. c) União. d) Registros. e) Enumeração. Alternativa marcada: d) Registros. Justificativa: Resposta correta: Registros. Um registro é uma estrutura de dados que agrupa um conjunto de dados primitivos ou outras estruturas. Esse conjunto pode, então, formar um registro capaz de armazenar um conjunto de dados sobre um objeto. Distratores: Matrizes. Errada. Uma matriz é um agregado homogêneo de elementos de dados, no qual um elemento individual é identificado por sua posição na agregação, relativamente ao primeiro elemento. Ponteiros. Errada. Diferentemente de matrizes e registros, não são tipos estruturados, apesar de serem definidos usando um operador de tipo (exemplo: Em C - *). União. Errada. É um tipo de dado que permite armazenar diferentes tipos de dados no mesmo local de memória. Enumeração. Errada. É um tipo de dado definido pelo usuário, no qual consiste de constantes inteiras, cada uma com um nome. 0,75/ 0,75 5 Código: 24787 - Enunciado: A linguagem Lisp foi a primeira linguagem funcional, desenvolvida por John McCarthy, em 1958, com influências do cálculo de lambda. Com base nessa afirmação, analise as assertivas a seguir. É com apenas esses dois tipos de dados que se constroem as expressões-S, as estruturas basilares de Lisp. A não dependência das operações de atribuição permite aos programas avaliações nas mais diferentes ordens. Lisp, em relação a outras linguagens funcionais mais recentes, é fortemente tipada. É correto afirmar o que se afirma em: a) Apenas I. b) Apenas II. c) I e II. d) I e III. e) II e III. Alternativa marcada: c) I e II. Justificativa: Resposta correta: I e II. Explicam adequadamente a linguagem Lisp, de acordo com suas estruturas e possibilidade de cálculo de lambda. Distrator: A afirmatiiva III está errada, pois a tipagem é fraca em relação a outras linguagens funcionais. 0,75/ 0,75 6 Código: 24784 - Enunciado: Este trecho de programa é uma linguagem em Java: public class Teste { String nome; public void imprimir(){ System.out.println(“Nome: “ + nome); } } public class TesteA extends Teste { String sexo; public void imprimir(){ System.out.println(“Nome: “ + nome + “ Sexo: “ + sexo); } } Analise-o e indique corretamente o conceito a que esse programa se aplica. a) Métodos construtores. b) Polimorfismo de sobrecarga. c) Polimorfismo de sobrescrita. d) Encapsulamento. e) Classes abstratas. Alternativa marcada: c) Polimorfismo de sobrescrita. Justificativa: Resposta correta: Polimorfismo de sobrescrita. Ocorre quando, em uma relação de herança, classes hierarquicamente relacionadas possuem métodos com o mesmo nome e a mesma assinatura, sobrescrevendo na subclasse (filha) o método original da sua superclasse. Distratores: Métodos construtores.Errada. São métodos 0,75/ 0,75 20/11/2018 Ilumno http://ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/1042748/c167d5d4-e9ec-11e5-afc6-b8ca3a5ebf30/ 3/7 responsáveis pela construção do objeto, usados para definir valores e realizar ações durante a criação do objeto. Polimorfismo de sobrecarga. Errada. A sobrecarga de métodos é obtida ao se criar métodos de mesmo nome em uma mesma classe, mas que possuam diferentes assinaturas de métodos. Encapsulamento. Errada. É o ato de esconder os membros de uma classe, seja por não serem de interesse ou por não serem de segurança. Classes abstratas. Errada. São classes usadas como superclasses e que, por não serem capazes de representar um objeto, não são completas e não devem ser instanciadas. Elas são caracterizadas pelo uso de pelo menos um método abstrato na classe. 7 Código: 24375 - Enunciado: Analise as afirmativas, a seguir, relativas à vinculação a que está relacionada a associação entre nomes e a sua identificação. A vinculação de um símbolo e a operação a que está associado ocorre em tempo de compilação. A vinculação de uma variável ao endereço de memória, responsável pelo armazenamento do dado, ocorre em tempo de carga. A vinculação de dinâmica de variáveis a endereços de memória, de forma explícita ou implícita, ocorre em tempo de ligação. A vinculação de um tipo de dado e o conjunto de valores, que podem ser associados, ocorre em tempo de implementação da linguagem. Está correto o que se afirma em: a) I e II. b) II e III. c) II e IV. d) I, II e IV. e) I, III e IV. Alternativa marcada: e) I, III e IV. Justificativa: Resposta correta: II e IV. Distratores: A afirmativa I está incorreta, pois a vinculação de um símbolo e a operação, a que está associado, ocorre em tempo de projeto da linguagem. A afirmativa III também está incorreta, pois a vinculação de dinâmica de variáveis a endereços de memória, de forma explícita ou implícita, ocorre em tempo de execução. 0,00/ 0,75 8 Código: 24779 - Enunciado: A maioria das linguagens de programação modernas disponibiliza uma estrutura de controle de fluxo alternativa, denominada tratamento de exceções. Essa estrutura permite que o fluxo de programa seja desviado, quando uma instrução desencadeia uma situação de anormalidade ou quando há uma situação atípica em uma compilação. Referente à linguagem Java, avalie as afirmativas a seguir. Na geração de exceções, utilizamos a palavra reservada throw para o retorno normal de valores por um método. A forma mais comum de uso é por meio da estrutura try-catch-finally. Finally é uma cláusula opcional nessa estrutura e é responsável por executar ações de finalização do trecho de código, sendo usada, normalmente, para a liberação de recursos abertos. Na hierarquia de classes para tratamento de exceções, a classe error mapeia os erros na execução do código Java. É correto apenas o que se afirma em: a) I e II. b) II e III. c) II e IV. d) III e IV. e) I e III. Alternativa marcada: e) I e III. Justificativa: Resposta correta: II e III. Aplicaram a linguagem Java apropriadamente, conforme as descrições das afirmativas. Distratores: A afirmativa I está incorreta, pois a palavra reservada é return. A afirmativa IV está incorreta, pois a classe é exception. 0,00/ 0,75 9 Código: 24781 - Enunciado: Em algumas linguagens de programação, como Java, podemos trabalhar com o tratamento de exceção e o tratamento de eventos. Sintetize o processo de tratamento de eventos. Resposta: Justificativa: Expectativa de resposta: O tratamento de eventos efetua um desvio no controle de fluxo de forma a executar um determinado trecho de código associado ao evento disparado. Ele desvia para um trecho de execução específico, determinado pelo programador, de forma a atender a uma requisição normalmente do usuário. Um evento é, geralmente, disparado por um usuário quando da interação desse com uma interface gráfica. 1,50/ 2,00 10 Código: 24380 - Enunciado: Sebesta define que uma avaliação em curto-circuito de uma expressão é uma avaliação na qual o resultado é determinado sem avaliar todos os operadores e/ou operandos. Procure criar dois exemplos de avaliação em curto-circuito, um que trabalhe com expressão matemática e outro com expressão condicional, 0,00/ 2,00 20/11/2018 Ilumno http://ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/1042748/c167d5d4-e9ec-11e5-afc6-b8ca3a5ebf30/ 4/7 identificando a linguagem utilizada em cada um. Resposta: Justificativa: Expectativa de resposta: Na linguagem C – Exemplo de expressão aritmética: (2 * n1) * (n2 / 4), onde se n1 for 0 (zero), não há necessidade de avaliar (n2/4). Na linguagem C – Exemplo de expressão condicional: if (n1 > n2 || n3 > 10), onde se a avaliação da primeira subexpressão resultar verdadeiro (true), não é necessário avaliar a próxima, pois o resultado será verdadeiro, independentemente do resultado da segunda. 20/11/2018 Ilumno http://ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/1042748/c167d5d4-e9ec-11e5-afc6-b8ca3a5ebf30/ 5/7 20/11/2018 Ilumno http://ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/1042748/c167d5d4-e9ec-11e5-afc6-b8ca3a5ebf30/ 6/7 (https://strtec.s3.amazonaws.com/ilumno/processamento/imagens_corrigidas/2017/12/01/a1f200c2- d689-11e7-8257-0242ac110002.jpg? Signature=YFbMj%2B72sFvgk%2FwG0d1t6NmQeno%3D&Expires=1542744966&AWSAccessKeyId=AKIAJ5OVDHP63TN 20/11/2018 Ilumno http://ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/1042748/c167d5d4-e9ec-11e5-afc6-b8ca3a5ebf30/ 7/7 (https://strtec.s3.amazonaws.com/ilumno/processamento/imagens_corrigidas/2017/12/01/a414f63e- d689-11e7-8257-0242ac110002.jpg? Signature=XETLJdADWVnhocKHxY27nhJ8dD0%3D&Expires=1542744966&AWSAccessKeyId=AKIAJ5OVDHP63TNWC3P
Compartilhar