Questão nº 53

Questão de Tecnologia da Informação · FGV BANESTES 2021 (nº 53)

FGV2021Analista em Tecnologia da Informação - Desenvolvimento de SistemasTecnologia da Informação
Gabarito: Dver comentário ↓

Considere o código Python 2.7 a seguir.

```
def ABC(L, n):
while True:
if len(L) >= n:
return L
else:
L.append(len(L) ** 2)
print ABC([20],10)
```

O resultado da execução desse código é:

Resposta comentada

Gabarito Alternativa D

Este código Python utiliza um laço while True que continua adicionando elementos a uma lista (L) até que seu tamanho (len(L)) atinja ou ultrapasse um valor n especificado. A cada adição, o novo elemento é o quadrado do tamanho atual da lista.

(A) Incorreta: Esta alternativa está incorreta porque ignora o elemento inicial 20 da lista L e também para uma iteração antes do necessário (a lista final deveria ter 10 elementos, não 9).
(B) Incorreta: Esta é uma armadilha comum. A lista L é passada por referência para a função, o que significa que as modificações dentro da função afetam a lista original. Portanto, o elemento inicial 20 deve ser mantido. Além disso, a lista final deveria ter 10 elementos, não 9.
(C) Incorreta: Esta alternativa está incorreta porque, embora inclua o elemento inicial 20, ela para uma iteração antes do necessário. O loop deve continuar até que len(L) seja igual a n (10), resultando em 10 elementos.
(D) Correta: A função ABC recebe L = [20] e n = 10. O loop while True executa:

  1. len(L) é 1. 1 >= 10 é falso. L.append(len(L)**2) -> L.append(1**2) -> L se torna [20, 1].
  2. len(L) é 2. 2 >= 10 é falso. L.append(len(L)**2) -> L.append(2**2) -> L se torna [20, 1, 4].
  3. len(L) é 3. 3 >= 10 é falso. L.append(len(L)**2) -> L.append(3**2) -> L se torna [20, 1, 4, 9].
    ...
  4. len(L) é 9. 9 >= 10 é falso. L.append(len(L)**2) -> L.append(9**2) -> L se torna [20, 1, 4, 9, 16, 25, 36, 49, 64, 81].
  5. len(L) é 10. 10 >= 10 é verdadeiro. A função retorna L.
    O resultado final é [20, 1, 4, 9, 16, 25, 36, 49, 64, 81].
    (E) Incorreta: Esta alternativa está incorreta porque, embora inclua o elemento inicial 20 e tenha o tamanho correto, ela pula o valor 1 (que é 1**2), que deveria ser o primeiro elemento adicionado à lista.

Fonte: FGV BANESTES 2021 Analista em Tecnologia da Informação - Desenvolvimento de Sistemas (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