← Questões de Programação

Programação · FGV · 2023

Questão comentada de Programação

Analise o código em Python a seguir. def foo(x): return x + 1 def bar(x): return foo(x) * 2 print(bar(2)) O resultado exibido será

Gabarito: B

Neste código, voce precisa acompanhar a chamada de funções como quem segue uma receita: uma função pode chamar outra, e o resultado vai sendo construído passo a passo. A função foo(x) recebe um valor e devolve esse valor somado a 1. Já a função bar(x) pega o valor recebido, passa para foo(x) e depois multiplica o resultado por 2. Quando o programa executa print(bar(2)), primeiro bar recebe 2. Dentro dela, acontece foo(2), que retorna 3, porque 2 + 1 = 3. Em seguida, bar multiplica esse 3 por 2, chegando a 6. Por isso, o valor exibido na tela é 6, que corresponde ao gabarito B. Em questões assim, a banca costuma cobrar leitura atenta da ordem de execução e do efeito de cada operação, então vale lembrar: primeiro a chamada interna é resolvida, depois a expressão continua. O ponto principal é não se confundir com a ideia de que bar(2) faria apenas 2 vezes 2 ou que o 1 de foo entraria antes da multiplicação sem alterar o resultado. Aqui a sequência importa bastante, e ela leva diretamente ao 6.

Continue treinando

Questões relacionadas