Baixe o app para aproveitar ainda mais
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.
Compartilhar