Questão nº 59

Questão de Análise de Sistemas · CESGRANRIO BNDES 01/2024 (nº 59)

CESGRANRIO2024Analista - Análise de Sistemas (Desenvolvimento)Análise de Sistemas
Gabarito: Aver comentário ↓

Considere o seguinte código em uma linguagem de programação hipotética, onde tipos escalares são passados por valor e tipos dinâmicos por referência:

```python
def modify_value(x):
x = x + 10
return x

def modify_list(lst):
lst.append(10)
return lst

a = 5
b = [5]

modify_value(a)
modify_list(b)

print(a) # Saída 1
print(b) # Saída 2
```

Considerando-se esse código e também a passagem de valores por referência e por valor, verifica-se que

Resposta comentada

Gabarito Alternativa A

Conceito-chave: Em linguagens com essa regra, tipos escalares (como int) são copiados ao serem passados para uma função — a função recebe uma “fotocópia” e alterações nela não afetam a variável original. Já tipos dinâmicos (como listas) são passados por referência — a função recebe o “endereço” do objeto original, então modificá-lo dentro da função altera o objeto fora dela.

  • (A) Correta: a é escalar, então modify_value(a) altera apenas a cópia local (a original continua 5); b é lista, então modify_list(b) modifica o objeto original, adicionando 10, resultando em [5, 10].
  • (B) Incorreta: Erra ao dizer que b é passado por valor — listas são passadas por referência, então b muda para [5, 10].
  • (C) Incorreta: Erra ao afirmar que a se torna 15 — como escalar é passado por valor, a variável original a permanece 5.
  • (D) Incorreta: Erra ao dizer que a é passado por referência — escalares são passados por valor, então a não muda.
  • (E) Incorreta: Erra tanto ao dizer que a é passado por referência (deveria ser por valor) quanto ao afirmar que b é passado por valor (deveria ser por referência).

Armadilha da banca: A pegadinha mais tentadora é a (C), pois o aluno vê que modify_value(a) retorna 15 e esquece que o retorno não é atribuído a a — a função altera apenas a cópia interna, e a variável original a continua 5. A banca explora exatamente essa confusão entre “o que acontece dentro da função” e “o que acontece com a variável fora dela”.

Fonte: CESGRANRIO BNDES 01/2024 Analista - Análise de Sistemas (Desenvolvimento) (Caderno Prova 3). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho