Questão nº 10
Questão de Desenvolvimento de Sistemas · FGV CGE-SC 2022 (nº 10)
FGV2022Auditor do Estado - Ciências da ComputaçãoDesenvolvimento de Sistemas
Gabarito: Bver comentário ↓
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á
- A5
- B6 (alternativa correta)
- C8
- D9
- E10
Resposta comentada
Gabarito Alternativa B
Quando uma função chama outra, o Python primeiro executa a função mais interna para obter seu valor de retorno. Esse valor então substitui a chamada da função na expressão, permitindo que a função externa continue sua execução.
- (A) Incorreta: O erro aqui seria se a função
barsomasse o resultado defoo(x)comx(ou com o número2), ou seja,3 + 2 = 5, em vez de multiplicar. Armadilha: Confundir o operador de multiplicação (*) com o de adição (+), ou usar o valor dexdebarde forma incorreta após a chamada defoo. - (B) Correta: A execução começa com
print(bar(2)). Primeiro,bar(2)é chamado, ondexé2. Dentro debar, a expressãofoo(x) * 2é avaliada. Para isso,foo(x)(ou seja,foo(2)) é chamado. A funçãofoo(2)retorna2 + 1, que é3. Esse valor3então substitui a chamadafoo(x)na funçãobar, resultando em3 * 2, que é6. Finalmente,barretorna6, eprint(6)exibe6. - (C) Incorreta: Para obter
8, seria necessário quefoo(x)retornasse4(ex:x * 2) ebarfizesse4 * 2 = 8, ou alguma outra combinação que não corresponde ao código. - (D) Incorreta: Esta seria a resposta se
barmultiplicasse o resultado defoo(x)por ele mesmo, ou seja,3 * 3 = 9. Isso confunde o valor dexembarcom o valor de retorno defoo(x). - (E) Incorreta: Não há uma interpretação direta do código que leve a
10.
Fonte: FGV CGE-SC 2022 Auditor do Estado - Ciências da Computação (Caderno Tipo 1). Reproduzida para fins de estudo.