Published

14/04/2026

Modified

14/04/2026

Aqui está o gabarito (chave de correção) detalhado e estruturado para a sua prova de Conceitos de Linguagens de Programação (CLP).

Preparei os critérios de correção para facilitar a atribuição dos pontos em cada questão.


Gabarito Oficial – Avaliação de Linguagens de Programação

Questão 1. Asserção-Razão: Compilação vs Interpretação (7 pts)

  • Resposta Correta: a) As asserções I e II são verdadeiras, e a II é uma justificativa técnica correta da I.
  • Critério de Correção: Atribuir os 7 pontos apenas para a marcação da alternativa A. A linguagem C (compilada nativamente) converte o código para instruções de máquina antes da execução, o que a torna extremamente eficiente em laços e recursões em comparação com a sobrecarga de traduzir bytecode em tempo de execução na máquina virtual do Python.

Questão 2. Auditoria Técnica: Amarrações e Escopo (7 pts)

  • a) (2 pts) A afirmação é: ( x ) Falsa.
  • b) (5 pts) Justificativa e Correção:
    • Termos a riscar no texto: A palavra “dinâmico” e a frase “acessar e modificar diretamente a variável x da funcao_A”.
    • Justificativa Esperada: C e Java utilizam o escopo estático (léxico). Isso significa que a visibilidade e a amarração da variável são determinadas pela estrutura de blocos do código-fonte (em tempo de compilação), e não pela ordem das chamadas em tempo de execução. Logo, a funcao_B não tem visibilidade sobre as variáveis locais da funcao_A.

Questão 3. Análise de Cenário: Gestão de Memória (7 pts)

  • Resposta Esperada (em tópicos para facilitar a correção):
    1. Resolve o vazamento? Sim, o free(q) liberta a memória alocada dinamicamente no Heap.
    2. O valor 10 será impresso? Não.
    3. Explicação (O que ocorrerá): A passagem do ponteiro x para o parâmetro p em C ocorre por valor. O ponteiro p recebe apenas uma cópia de x. Alterar p não afeta x na main. Assim, x continua a ser NULL. Tentar fazer printf de *x resultará num erro fatal de execução (Segmentation Fault / Falha de segmentação). Além disso, invocar free(q) destrói a zona de memória onde o 10 foi guardado.
  • Critério de Correção: 2 pontos para dizer que resolve o leak, 2 pontos para confirmar que não imprime o 10, e 3 pontos para a explicação técnica da passagem por valor e do erro do ponteiro NULL.

Questão 4. Matriz de Decisão Arquitetural: Persistência (7 pts)

  • Associações (4 pts totais / 1,33 pts cada):
    • [ C ] 1. Sistema bancário… (SGBD gere concorrência e integridade transacional).
    • [ B ] 2. API REST que envia o estado… (A serialização converte o estado em texto estruturado leve para transporte via rede).
    • [ A ] 3. Script em background registrando uso de CPU… (Logs textuais são rápidos para inserções sequenciais simples).
  • Tarefa 2 - Justificativa (3 pts): * Resposta Esperada: Para comunicar um estado complexo via rede entre um backend (Java) e um frontend (Angular), a serialização (JSON) é a única viável por criar um formato estruturado, leve e agnóstico de plataforma. Arquivos de texto seriam difíceis de interpretar (parse) de forma fiável, e abrir uma ligação direta ao SGBD no frontend comprometeria a segurança e a arquitetura.

Questão 5. Refatoração: Paradigmas de Programação (7 pts)

  • Pilar violado (2 pts): Encapsulamento (ou Ocultação de Informação).
  • Código Refatorado (5 pts):
    • Critérios: O estudante deve obrigatoriamente tornar o atributo privado e fornecer um método de comportamento (ex: sacar ou levantar) que faça a verificação de negócio.
public class ContaBancaria {
    private double saldo; // 1. Mudou para private
    
    // 2. Criou método de manipulação com regra de negócio
    public void sacar(double valor) {
        if (valor > 0 && (this.saldo - valor >= 0)) {
            this.saldo -= valor;
        }
    }
}

(Nota de correção: Considere correto se o estudante criar um método setSaldo* desde que este inclua o if de validação para impedir valores negativos. Soluções que apenas colocam métodos get/set vazios sem lógica de validação não ganham a cotação total, pois não resolvem o problema arquitetural descrito no cenário).*

Back to top