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á

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 bar somasse o resultado de foo(x) com x (ou com o número 2), 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 de x de bar de forma incorreta após a chamada de foo.
  • (B) Correta: A execução começa com print(bar(2)). Primeiro, bar(2) é chamado, onde x é 2. Dentro de bar, a expressão foo(x) * 2 é avaliada. Para isso, foo(x) (ou seja, foo(2)) é chamado. A função foo(2) retorna 2 + 1, que é 3. Esse valor 3 então substitui a chamada foo(x) na função bar, resultando em 3 * 2, que é 6. Finalmente, bar retorna 6, e print(6) exibe 6.
  • (C) Incorreta: Para obter 8, seria necessário que foo(x) retornasse 4 (ex: x * 2) e bar fizesse 4 * 2 = 8, ou alguma outra combinação que não corresponde ao código.
  • (D) Incorreta: Esta seria a resposta se bar multiplicasse o resultado de foo(x) por ele mesmo, ou seja, 3 * 3 = 9. Isso confunde o valor de x em bar com o valor de retorno de foo(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.

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