Buscar

Linguagens de Programação e Estruturas de Dados - Avaliação I - Individual FLEX

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 5 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

Prévia do material em texto

1. Escopo dinâmico: para as linguagens com escopo dinâmico, a vinculação das variáveis ao 
escopo é realizada em tempo de execução. Se uma variável é local ao bloco, então o uso da 
dada variável no bloco será sempre vinculado àquela local. Contudo, se a variável for não 
local, a sua vinculação depende da ordem de execução, a última vinculada na execução. A 
consequência disso é que, em um mesmo bloco de comandos, um identificador pode ter 
significados diferentes, e o programador precisa ter a ideia precisa de qual variável está 
sendo usada. Suponha que uma linguagem de programação tenha sido projetada com 
vinculação e verificação estáticas para tipos de variáveis, além de passagem de parâmetros 
por valor. Também é exigido pela especificação da linguagem que programas sejam 
compilados integralmente e que não é permitido compilar bibliotecas separadamente. 
Durante uma revisão da especificação da linguagem, alguém propôs que seja adicionado 
um mecanismo para suporte a variáveis com escopo dinâmico. Sobre a proposta de 
modificação da linguagem, analise as seguintes sentenças: 
 
I- As variáveis com escopo dinâmico podem ser tratadas como se fossem parâmetros para 
os subprogramas que as utilizam, sem que o programador tenha que especificá-las ou 
declarar seu tipo (o compilador fará isso). Assim, eliminasse a necessidade de 
polimorfismo e é possível verificar tipos em tempo de compilação. 
II- Como diferentes subprogramas podem declarar variáveis com o mesmo nome mas com 
tipos diferentes, se as variáveis com escopo dinâmico não forem declaradas no escopo 
onde são referenciadas, será necessário que a linguagem suporte polimorfismo de tipos. 
III- Se as variáveis dinâmicas forem declaradas tanto nos escopos onde são criadas como 
nos subprogramas em que são referenciadas, marcadas como tendo escopo dinâmico, será 
possível identificar todos os erros de tipo em tempo de compilação. 
 
Assinale a alternativa CORRETA: 
 a) Somente a sentença I está correta. 
 b) Somente a sentença II está correta. 
 c) As sentenças II e III estão corretas. 
 d) As sentenças I e III estão corretas.. 
 
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 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) F - F - F - V - F. 
 c) V - F - F - V - F. 
 d) V - V - V - V - F. 
 
3. 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: 
 
( ) Os tipos básicos de dados, também conhecidos como tipos primitivos, não possuem 
estrutura sobre seus valores, sendo assim não são indivisíveis. 
( ) Arranjos são tipos de dados estruturados capazes de agrupar componentes do mesmo 
tipo e possuem tamanho máximo predefinido. 
( ) Conjuntos são tipos de dados estruturados que servem para agregar componentes de 
tipos diferentes. 
( ) Sequências e registros não são tipos de dados estruturados. 
( ) Os tipos de dados definidos pelo usuário são estruturas de dados definidas, com a 
finalidade de representar os tipos de dados que não foram previstos pelas linguagens de 
programação. 
 
Assinale a alternativa que apresenta a sequência CORRETA: 
 a) V - F - V - V - F. 
 b) V - V - F - V - V. 
 c) F - V - F - F - F. 
 d) F - F - F - V - F. 
 
 
Um programa de computador é essencialmente um conjunto de instruções em linguagem 
de máquina para a manipulação de dados. O entendimento desta linguagem de máquina é 
complexo para os seres humanos, o que levou ao surgimento das linguagens de 
programação de alto nível, cuja estrutura se assemelha às linguagens naturais. A tradução 
do código fonte de alto nível para o código de máquina é feita através de processos de 
interpretação ou compilação. Considerando-se as características de cada um desses 
processos, analise as sentenças a seguir: 
 
I- A linguagem de programação C possui uma característica de linguagem de máquina 
multiplataforma. 
II- No processo de compilação, todo o código fonte é avaliado para somente então se 
proceder com a tradução para linguagem de máquina. 
III- A linguagem de programação Java é considerada mista, pois é tanto compilada quanto 
interpretada. 
IV- Em um programa interpretado, em cada execução ocorre o processo de tradução para 
linguagem de máquina. 
 
Agora, assinale a alternativa CORRETA: 
 a) As sentenças I, II e III estão corretas. 
 b) As sentenças II e IV estão corretas. 
 c) As sentenças I, II e IV estão corretas. 
 d) As sentenças I e III estão corretas. 
 * Observação: A questão número 4 foi Cancelada. 
 
5. Os termos da sequência de Fibonacci são definidos por: 
 
Fibonacci(0) = 0 
Fibonacci(1) = 1 
Fibonacci(n) = Fibonacci(n-1) + Fibonacci(n-2) 
 
Uma solução recursiva para o cálculo do i-ésimo termo da sequência é dada pela função 
apresentada na imagem a seguir. Sobre a execução recursiva dessa função, avalie as 
asserções a seguir: 
 
I- O método recursivo é o mais eficiente para o cálculo do i-ésimo termo da sequência de 
Fibonacci. 
 
PORQUE 
 
II- Realiza duas chamadas por passo da recursão, cada uma mais simples do que a 
chamada original. 
 
Assinale a alternativa CORRETA: 
 
 a) A primeira asserção é uma proposição falsa, e a segunda, uma proposição verdadeira. 
 b) As duas asserções são proposições verdadeiras, mas a segunda não é uma justificativa 
correta da primeira. 
 c) As duas asserções são proposições verdadeiras, e a segunda é uma justificativa correta 
da primeira. 
 d) A primeira asserção é uma proposição verdadeira, e a segunda, uma proposição falsa. 
 
6. Java é uma linguagem de programação e plataforma computacional lançada pela primeira 
vez pela Sun Microsystems em 1995, fortemente conceituada, por ser rápida, segura e 
confiável. Com relação a essa tecnologia, classifique V para as sentenças verdadeiras e F 
para as falsas: 
 
( ) Java é uma linguagem fortemente tipada, ou seja, exige a declaração das variáveis e 
seus tipos de dados. 
( ) Java tem alta portabilidade: facilidade de realizar a comunicação entre equipamentos, 
sistemas e aplicativos de empresas diferentes. 
( ) Java 2 Micro Edition - J2ME faz parte da tecnologia JAVA, sendo útil na comunicação 
de equipamentos móveis. 
( ) As bibliotecas oi APIs da tecnologia JAVA engessam a linguagem, tornando menos 
flexível o processo de escrita do código-fonte. 
 
Assinale a alternativa que apresenta a sequência CORRETA: 
 a) F - F - V - F. 
 b) V - V - V - F. 
 c) F - V - F - F. 
 d) V - F - F - V. 
 
7. A linguagem de programação C possui diversas características que a tornam uma excelente 
escolha como ferramenta computacional para a resolução de problemas. Com relação às 
características da linguagem de programação C, assinale a alternativa CORRETA: 
 a) Ao término de uma função,existe a necessidade de se retornar um tipo primitivo para o 
código que efetuou a sua chamada. 
 b) Apesar de não ser uma linguagem orientada a objetos, através da inclusão de objetos, o 
C faz uso do reúso e de componentes. 
 c) Um tipo primitivo é um tipo que pode ser decomposto em diversos tipos menores. 
 d) Através do comando X=7, fazemos uma comparação do valor contido na variável x com 
o número 7. 
 
8. Cada linguagem de programação possui características específicas que a tornam mais ou 
menos adequada para a resolução de problemas através do desenvolvimento de software. 
Sobre as características da linguagem de programação C e da linguagem de programação 
Java, assinale a alternativa CORRETA: 
 a) A linguagem de programação Java possui uma característica de linguagem de máquina 
monoplataforma. 
 b) A linguagem de programação C é considerada multiplataforma, pois qualquer sistema 
operacional consegue ler o código de máquina gerado no processo de compilação. 
 c) A linguagem de programação C é considerada híbrida, pois é tanto compilada quanto 
interpretada. 
 d) O processo de tradução de código fonte para código de máquina na linguagem de 
programação C passa pelas seguintes etapas: Código-Fonte, Código-Objeto e Código-
Executável. 
 
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 - V - F - V. 
 b) V - F - F - V. 
 c) V - F - V - F. 
 d) F - V - F - V. 
 
10. Um algoritmo é, essencialmente, uma forma sem cérebro de fazer coisas inteligentes. É um 
conjunto de etapas precisas que não precisam de grande esforço mental para serem 
seguidas, mas que, se obedecidas exatamente e mecanicamente, levarão ao resultado 
desejado. A chave é: cada passo deve ser o mais simples possível, sem deixar espaço para 
ambiguidades ou dúvidas. Cozinhar e dirigir, por exemplo, são tipos de algoritmos. Mas as 
instruções como "cozinhas a carne até que fique macia" ou "siga em frente por alguns 
quilômetros" são muito vagas para serem seguidas sem, pelo menos, alguma interpretação. 
Com relação ao conceito apresentado, classifique V para as sentenças verdadeiras e F para 
as falsas: 
 
( ) É Uma sequência de passos para realizar uma atividade. 
( ) É a operação matemática inversa a potencia. 
( ) É parte de um programa em que se limita a definir os tipos de dados das variáveis. 
( ) É a parte de um programa em que se limita a definir as constantes. 
( ) É um software utilizado para escrever programas. 
 
Assinale a alternativa que apresenta a sequência CORRETA: 
 
FONTE: <https://epocanegocios.globo.com/Tecnologia/noticia/2017/09/o-que-sao-
algoritmos.html>. Acesso em: 28 nov. 2018. 
 a) V - F - F - F - F. 
 b) V - V - F - V - V. 
 c) F - F - F - F - V. 
 d) F - V - V - F - F.

Continue navegando