Considere a existência de uma linguagem de programação na qu...
a = 100 // atribui o valor 100 à variável “a”
f(a + 1) // invoca a execução da função “f”
b = a // atribui o valor da variável “a” à variável “b”
def f(a) { // define a função “f”
a = a + 10
}
Assinale a alternativa CORRETA.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C - 100
Vamos entender como chegamos a essa conclusão analisando passo a passo o código apresentado na questão.
Primeiramente, a variável a
é atribuída com o valor 100
:
a = 100
Em seguida, a função f
é chamada com a + 1
como argumento:
f(a + 1)
Aqui, é crucial entender o conceito de passagem de parâmetros por valor. Quando uma função é chamada por valor, a função recebe uma cópia do valor original. Portanto, a função f
receberá 101
(já que a = 100
e a + 1
resulta em 101
).
Dentro da função f
, o parâmetro a
é incrementado em 10
:
def f(a) {
a = a + 10
}
No entanto, como essa alteração ocorre em uma cópia do valor original de a
, o valor da variável a
fora da função f
permanece inalterado.
Depois da chamada da função, atribuímos o valor de a
à variável b
:
b = a
Como o valor de a
fora da função não foi alterado pela chamada da função (devido à passagem por valor), b
receberá o valor 100
.
Portanto, a alternativa correta é C - 100.
Vamos agora justificar as alternativas incorretas:
A - 101: Esta alternativa estaria correta se a passagem de parâmetros fosse por referência e o valor de a
fosse modificado diretamente. No entanto, como a passagem é por valor, isso não ocorre.
B - 110: Esta alternativa sugere que o valor de a
foi modificado dentro da função e esta alteração impactou b
. Como discutido, isso não acontece na passagem por valor.
D - 111: Esta alternativa mistura os resultados e não faz sentido lógico dentro do contexto da passagem por valor e das operações realizadas.
E - 11: Esta alternativa não tem base no código fornecido e parece ser uma escolha arbitrária sem relação com as operações realizadas.
Espero ter esclarecido a questão. Se precisar de mais alguma informação ou tiver dúvidas adicionais, estou à disposição! Boa sorte nos estudos!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Como é passagem por valor, nada que é feito com a variável a, dentro da função, altera o a fora da mesma.
A questão é bem precisa quando pedi o valor será atribuído à variável “b” após a execução do seguinte código.
Então b = a que é mesma coisa que b =100
Logo a alternativa é a letra C
Passagem por valor, e não por endereço, questão bem elaborada.
Pegadinha do malandroooo!!
passagem por valor.
Gab C
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo