Pular para o conteúdo principal

Questão de Programação — Programação Orientada a Objetos — VUNESP 2023

ProgramaçãoProgramação Orientada a Objetos
Código
vu073348
Banca
VUNESP
Órgão
DPE-SP
Ano
2023
Nível
Superior
Cargo
Agente de Defensoria - Analista Desenvolvedor
Os parâmetros que são passados para uma função de um programa são denominados parâmetros reais, enquanto que os parâmetros recebidos por uma função são denominados parâmetros formais. Neste contexto, em uma chamada de função por valor, os valores dos parâmetros reais
  1. Asão copiados para os parâmetros formais da função, e as alterações nestes efetuadas dentro da função refletem-se em alterações nos parâmetros reais.
  2. Bsão copiados para os parâmetros formais da função, e as alterações nestes efetuadas dentro da função não implicam em alterações nos parâmetros reais.
  3. Cnão são copiados para os parâmetros formais da função, e as alterações efetuadas nestes dentro da função, refletem-se em alterações nos parâmetros reais.
  4. Dnão são copiados para os parâmetros formais da função, e as alterações efetuadas nestes dentro da função, não implicam em alterações nos parâmetros reais.
  5. Enão são copiados para os parâmetros formais da função, e esta não pode realizar alterações em seus parâmetros formais.
Revelar gabarito e comentário

GabaritoB — são copiados para os parâmetros formais da função, e as alterações nestes efetuadas dentro da função não implicam em alterações nos parâmetros reais.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Programação: Parâmetros por Valor

Gabarito: letra B. Na chamada por valor, os valores dos parâmetros reais (argumentos) são copiados para os parâmetros formais da função. Como a função trabalha com cópias, quaisquer alterações feitas nos parâmetros formais dentro da função não afetam os parâmetros reais originais. Esse é o comportamento padrão em linguagens como C, Java (para tipos primitivos) e Python (para tipos imutáveis).

A questão testa justamente a diferença entre passagem por valor e passagem por referência. A alternativa B descreve corretamente o mecanismo.

Passagem de parâmetros
  • 1Parâmetros reais (argumentos)
  • 2Parâmetros formais (recebidos)
  • 3Por valor
    • Cópia dos valores
    • Alterações internas não refletem
  • 4Por referência
    • Sem cópia
    • Alterações refletem no original
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Afirma que as alterações nos parâmetros formais refletem nos parâmetros reais. Isso é característico da passagem por referência, não da passagem por valor. Na passagem por valor, as alterações são locais à função.

Alternativa B — ✅ Correta ⟵ GABARITO

Conforme descrito acima: os valores são copiados e as modificações internas não implicam em alterações nos parâmetros reais. Exatamente o que a passagem por valor faz.

Alternativa C — ❌ Incorreta

Diz que os parâmetros reais "não são copiados" e que as alterações refletem. A primeira parte é falsa (são copiados sim) e a segunda parte também é falsa (não refletem).

Alternativa D — ❌ Incorreta

Afirma que os parâmetros reais não são copiados. Na passagem por valor eles são copiados; a consequência (não refletir) está correta, mas a premissa está errada.

Alternativa E — ❌ Incorreta

Diz que não são copiados e que a função não pode realizar alterações nos parâmetros formais. Na verdade, a função pode alterar os parâmetros formais (as cópias), mas essas alterações não saem da função. A afirmação de que "não pode realizar alterações" é incorreta.

NÃO CAIA NESSA!

A banca explora a confusão clássica entre passagem por valor e por referência. Lembre-se: por valor = cópia, sem efeito colateral; por referência = sem cópia, alterações afetam o original.

Gabarito: letra B

Link permanente: /questoes/vu073348