Buscar

Prova Conceitos de Linguagem de Programação Uva

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Continue navegando