Questões de Concurso sobre Paradigmas de Programação

 
 
Disciplina
Assunto 1
Banca
Instituição
Cargo
Ano
Carreira
Área de formação
Escolaridade
Dificuldade
 
Comentários:
Professores
Alunos
Meus Comentários
Vídeo
 
Minhas questões:
Resolvidas
Não resolvidas
Certas
Erradas
 
Tipo de questão:
Certo e errado
Múltipla escolha
Incluir questões:
Anuladas
Desatualizadas
 
Questões:
Todas as questões
 
Filtro simplificado
 
Questões
Todas as questões
 
548 questões encontradas
Questões por página
20
Mais recentes
 

A programação estruturada enfatiza a organização do código em módulos, o uso de estruturas de controle bem definidas e o controle rigoroso do escopo das variáveis, visando melhorar a legibilidade, a manutenção e a confiabilidade do software. Considerando esse contexto, assinale a alternativa que descreve corretamente um dos principais problemas do uso excessivo de variáveis globais:


A

O uso de variáveis globais reduz significativamente o espaço disponível na memória de pilha (stack).


B

O uso de variáveis globais aumenta diretamente o tempo de compilação do código-fonte.


C

O uso de variáveis globais exige que o programa seja executado em múltiplas threads.


D

O uso de variáveis globais impede a utilização de recursão nas funções do programa.


E

O uso excessivo de variáveis globais dificulta o rastreamento de efeitos colaterais, compromete o princípio da localidade e torna o princípio da localidade e torna o código mais difícil de entender, depurar e manter.

Um Professor do IFCE, ao ministrar Compiladores, propõe que os alunos desenvolvam um compilador simplificado. Em uma das etapas, devem percorrer o código-fonte caractere por caractere, identificar padrões (palavras reservadas, identificadores, operadores e constantes) e organizá-los em unidades estruturadas, podendo utilizar expressões regulares e autômatos finitos.


Considerando as fases clássicas da compilação, essa etapa é denominada


A

análise sintática.


B

análise semântica.


C

análise léxica.


D

análise pragmática.


E

análise estrutural.

Um professor IFCE está orientando estudantes no desenvolvimento de um sistema especialista para apoio à tomada de decisão em processos acadêmicos. Durante a explicação, o docente destaca que, nesse sistema, o programa é construído por meio da declaração de fatos e regras, enquanto um mecanismo de inferência responde às consultas dos usuários e determina automaticamente as conclusões possíveis.


Com base nessa situação, assinale a alternativa que apresenta corretamente o paradigma de programação utilizado e uma linguagem que o implementa, respectivamente.


A

Paradigma Lógico; Prolog.


B

Paradigma Orientado a Objetos; Java.


C

Paradigma Funcional; Haskell.


D

Paradigma Imperativo; C.


E

Paradigma Estruturado; Pascal.

As linguagens de programação são classificadas segundo diferentes critérios, como nível de abstração, paradigma e tipo de execução. Essa classificação orienta decisões importantes no desenvolvimento de sistemas, como a escolha da linguagem mais adequada para um projeto, a compatibilidade com o ambiente de produção e o perfil das equipes de desenvolvimento. Dominar esses conceitos é fundamental para avaliar soluções e dar suporte a aplicações institucionais. Com base nessa classificação, assinale a alternativa CORRETA.


A

As linguagens de alto nível possuem sintaxe próxima à linguagem humana e oferecem maior abstração do hardware, facilitando o desenvolvimento de software com maior independência de plataforma.


B

A linguagem Assembly é considerada uma linguagem de alto nível porque utiliza mnemônicos que abstraem completamente os registradores e as instruções do processador.


C

O paradigma de programação orientado a objetos tem aplicação restrita a linguagens compiladas e não encontra suporte em linguagens de script interpretadas como Python e JavaScript.


D

Os paradigmas de programação orientado a objetos e funcional são tecnicamente incompatíveis, pois a estrutura de classes e a imutabilidade de dados entram em conflito direto no modelo de execução de qualquer linguagem.

Uma aplicação de gerenciamento de pagamentos precisa oferecer suporte a diferentes métodos, como boleto, cartão de crédito e Pix. Para isso, a classe pagamento foi projetada com um método abstrato chamado processarPagamento(), que deve ser implementado de maneira específica por cada classe correspondente a um tipo de pagamento. Essa abordagem foi escolhida para aproveitar os conceitos de encapsulamento e interfaces na orientação a objetos. Nesse contexto, qual é a principal vantagem proporcionada pelo uso desses conceitos em relação à expansão e manutenção do sistema?


A

Garantir que todos os tipos de pagamento utilizem a mesma estrutura interna de dados.


B

Centralizar a lógica de todos os métodos em uma única classe, reduzindo a duplicação de código.


C

Reduzir a complexidade ao permitir que todos os métodos utilizem a mesma implementação genérica.


D

Facilitar a adição de novos tipos de pagamento sem alterar o código existente, respeitando o princípio de substituição de Liskov.

Um desenvolvedor precisa revisar um código em Java e verificar se a implementação dos princípios da Programação Orientada a Objetos (POO) está correta. Para isso, ele faz uma análise dos conceitos fundamentais de POO e suas definições. Associe cada conceito da POO à sua respectiva descrição:


1.Herança.

2. Polimorfismo.

3. Encapsulamento.

4. Abstração.


( ) Foca em identificar e expor apenas os aspectos essenciais de um objeto ou sistema, simplificando a complexidade ao ocultar detalhes desnecessários para o usuário final.

( ) Permite a criação de classes que compartilham características comuns sem duplicação de código.

( ) Permite que métodos com o mesmo nome tenham diferentes implementações em classes distintas.

( ) Envolve a organização dos dados e métodos relacionados dentro de uma única unidade ou classe, controlando o acesso aos seus componentes internos através de modificadores de acesso, como private ou protected, para proteger a integridade e a consistência dos dados.


A sequência está correta em


A

1, 2, 3, 4.


B

2, 1, 4, 3.


C

4, 1, 2, 3.


D

4, 3, 2, 1.

No paradigma imperativo, estruturas de controle de fluxo como condicionais e repetições são essenciais, enquanto, no paradigma declarativo, essas estruturas são frequentemente ausentes ou abstraídas.


C

Certo


E

Errado

O Processo de compilação é estruturado em várias fases sequenciais. Cada fase transforma uma representação intermediária do programa fonte em outra, até a geração do código executável. Assinale a alternativa que apresenta a ordem CORRETA dessas fases em um compilador:


1. Análise semântica.

2. Geração de código.

3. Análise léxica.

4. Otimização de código dependente de máquina.

5. Análise sintática.

6. Otimização de código independente de máquina.

7. Geração de código intermediário.


A

1, 3, 5, 7, 6, 4, 2.


B

3, 5, 7, 1, 6, 2, 4.


C

3, 5, 1, 7, 6, 2, 4.


D

5, 3, 1, 7, 2, 4, 6.


E

3, 5, 1, 7, 4, 2, 6.

O analista Pedro foi incumbido de analisar o mau funcionamento do compilador de software CMP+, utilizado no MPU. O CMP+ está apresentando erros na fase da compilação na qual é gerada a árvore de derivação, que guarda uma representação hierárquica do código-fonte.


Sabendo disso, Pedro deve concentrar sua análise do CMP+ na fase de:


A

análise léxica;


B

análise sintática;


C

análise semântica;


D

geração de código objeto;


E

geração de código de máquina.

Durante uma aula de fundamentos de programação, o professor explica aos alunos que existem diferentes estratégias de passagem de parâmetros em funções ou procedimentos. Sobre a distinção entre passagem por valor e passagem por referência é correta afirmar que


A

na passagem por valor, a função recebe acesso direto ao argumento, podendo modificá-lo; na passagem por referência, a função recebe apenas uma cópia.


B

na passagem por valor e na passagem por referência, o efeito é sempre o mesmo, já que a função pode alterar o valor original em ambos os casos.


C

a passagem por valor só existe em linguagens imperativas, enquanto a passagem por referência só existe em linguagens funcionais.


D

na passagem por valor, a função recebe uma cópia do argumento e não pode alterar o valor original; na passagem por referência, a função recebe acesso direto ao argumento, podendo modificar o valor original.


E

a escolha entre passagem por valor e por referência é feita automaticamente pelo compilador, sem que exista diferença conceitual entre elas.

Marque a associação correta entre forma de polimorfismo e exemplo típico de linguagem.


A

Paramétrico em genéricos com tipo variável uniforme, ad-hoc em sobrecarga por assinatura e subtipagem em herança de classes.


B

Ad-hoc em genéricos uniformes, paramétrico em sobrecarga por assinatura e subtipagem em coincidência nominal de nomes.


C

Subtipagem em monomorfismo, paramétrico em coerções implícitas por conversão e ad-hoc em inferência de tipos principal.


D

Paramétrico em especialização por cópia por cada instância, ad-hoc em relações de subclasse e subtipagem em operadores polimórficos universais.

Pseudocódigo é uma forma de descrever um algoritmo ou processo usando uma linguagem simples e próxima da linguagem natural, como o português, combinada com elementos de linguagens de programação. Considerando pseudocódigo para entrada e saída de dados, assinale a alternativa CORRETA que corresponde qual das opções apresenta a sequência adequada para ler um número e mostrar seu dobro.


A

leia numero; imprima numero + 2;.


B

receba numero; mostre numero * 2;.


C

receba numero; imprima numero + 2;.


D

leia numero; escreva numero * 2;.


E

input numero; print numero * 2;.

Considerando o uso dos paradigmas de programação no desenvolvimento de sistemas para serviços públicos, marque verdadeiro (V) ou falso (F) nas afirmativas abaixo:


(__)O paradigma funcional promove a reutilização de estado global entre funções.

(__)O paradigma orientado a objetos favorece encapsulamento, herança e polimorfismo.

(__)O paradigma procedural estrutura o programa em funções e procedimentos sequenciais.

(__)A programação orientada a objetos evita o uso de classes e abstração de entidades.


Assinale a sequência correta de cima para baixo.


A

V, F, V, F.


B

V, V, V, F.


C

F, F, F, F.


D

F, V, V, F.


E

F, V, F, V.

Na programação orientada a objetos, qual é a definição CORRETA de polimorfismo?


A

Permite que uma classe herde atributos e métodos de outra classe. Isso promove a reutilização de código e cria uma hierarquia de classes.


B

Permite que objetos de diferentes classes respondam de maneira semelhante a mensagens ou métodos. Isso promove a flexibilidade e a extensibilidade do sistema.


C

É uma característica de um objeto que descreve seu estado.


D

É o conceito de esconder os detalhes internos de uma classe e fornecer uma interface pública para interagir com o objeto. Isso promove a modularidade e o controle sobre o acesso aos atributos e métodos.

Existe uma palavra em Programação Orientada a Objetos que é polimorfismo, assinale a alternativa que apresenta seu significado.


A

Herança de classes


B

Sobrecarga de métodos


C

Acesso controlado aos atributos


D

Encapsulamento de dados


E

Implementação de interfaces

Analise as afirmativas abaixo.


I. É um paradigma de programação que organiza o código em unidades autônomas chamadas objetos, encapsulando dados e comportamentos relacionados, promovendo reutilização, modularidade e facilitando a compreensão e manutenção do sistema.

II. É um paradigma de programação que enfatiza o uso de estruturas de controle, como sequência, seleção e repetição, para criar algoritmos organizados e eficientes, promovendo uma abordagem procedural e modular que facilita a compreensão, manutenção e depuração do código-fonte.


Assinale a alternativa que apresenta quais são os paradigmas de programação citados.


A

I. Programação Orientada a Depuração - II.Programação Orientada a Testes


B

I.Programação Orientada a Testes – II.Programação Orientada a Depuração


C

I.Programação Orientada a Objetos – II.Programação Estruturada


D

I.Programação Estruturada – II.Programação Orientada a Objetos

Observe o diagrama a seguir.

Imagem associada para resolução da questão

Qual é a forma correta de criar um objeto na linguagem de programação Java utilizando o conceito de polimorfismo?


A

Aluno a = new Pessoa();


B

Funcionario f = new Professor();


C

Pessoa p = new Aluno();


D

Funcionario f = new Funcionario();

Um desenvolvedor de software está iniciando um novo projeto e precisa decidir qual paradigma de programação utilizar. O desenvolvedor tem conhecimento em programação procedural, mas nunca utilizou Programação Orientada a Objetos. Assinale a alternativa que NÃO apresenta um dos princípios básicos da Programação Orientada a Objetos (POO).


A

Generalização: Visa encontrar soluções abrangentes para problemas comuns, utilizando abstração e herança para criar classes genéricas e reutilizáveis.


B

Abstração: Permite ocultar detalhes de implementação e expor apenas as funcionalidades essenciais de um objeto para o usuário.


C

Encapsulamento: Combina dados (atributos) e métodos (comportamentos) em uma única unidade, protegendo os dados de acessos indevidos.


D

Herança: Permite que novas classes herdem atributos e métodos de classes existentes, promovendo reuso de código e organização hierárquica.


E

Polimorfismo: Permite que objetos de diferentes classes respondam ao mesmo método de formas distintas, proporcionando flexibilidade e extensibilidade.

Paradigmas de linguagens de programação são diferentes abordagens ou estilos de programação que influenciam a maneira como os problemas são resolvidos e como o código é estruturado. Cada paradigma oferece um conjunto distinto de conceitos e métodos para desenvolver softwares. O paradigma de linguagens de programação que se destaca por seu foco na definição de funções e aplicação de funções para transformar dados, sem a ênfase na alteração de estado ou no fluxo de controle é o


A

Paradigma Imperativo.


B

Paradigma Orientado a Objetos.


C

Paradigma Funcional.


D

Paradigma Declarativo.


E

Paradigma Lógico.

No contexto do Microsoft COM (Component Object Model), a interface que permite que os clientes obtenham ponteiros para outras interfaces em um determinado objeto, por meio do método QueryInterface, é:


A

IBasic.


B

IUnknown.


C

AddRef.


D

Release.


E

IInterfacePointer.

 
Ir para a página:
OK
 
Gerar simulado