← Questões de Programação

Programação · FGV · 2021

Questão comentada de Programação

Considere o código Python a seguir. def F(a, b, c): for k in range(a,b): print k ** c Dado que uma execução da função F exibiu os números 16, 9, 4, 1, 0, 1, é correto afirmar que os valores dos parâmetros a, b, c empregados foram, respectivamente:

Gabarito: B

A funcao usa range(a, b), e isso significa que o Python gera valores começando em a e indo até b - 1. Ou seja, o limite inicial entra na conta, mas o final fica de fora. Depois, cada valor de k é elevado a c com o operador **, que faz exponenciação, nao multiplicacao repetida nem XOR, que muita gente confunde em outras linguagens. Aqui, a saida foi 16, 9, 4, 1, 0, 1. Esses numeros sao exatamente os quadrados de -4, -3, -2, -1, 0 e 1. Isso mostra que k percorreu de -4 ate 1, e que o expoente foi 2. Se k vai de -4 até 1, entao o intervalo veio de range(-4, 2), porque o 2 nao aparece na execucao. Logo, a = -4 e b = 2. Como os valores impressos sao quadrados perfeitos, c = 2. Portanto, o trio correto é -4, 2, 2, que corresponde à alternativa B. Questao classica de prova: basta lembrar que range exclui o limite superior e que ** é potencia.

Continue treinando

Questões relacionadas