Questão 53 · Informática: Programação e algoritmos
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 é:
- A) [1, 4, 9, 16, 25, 36, 49, 64]
- B) [1, 4, 9, 16, 25, 36, 49, 64, 81]
- C) [20, 1, 4, 9, 16, 25, 36, 49, 64]
- D) [20, 1, 4, 9, 16, 25, 36, 49, 64, 81]
- E) [20, 4, 9, 16, 25, 36, 49, 64, 81]
Marque a alternativa correta:
Gabarito: D
Gabarito definitivo divulgado pela banca FGV (BANESTES 2021).
Comentário
Gabarito: D.
A função ABC recebe a lista L e o limite n. Enquanto o tamanho de L for menor que n, ela acrescenta ao final o quadrado do tamanho atual. Quando len(L) >= n, retorna L. Com L = [20] e n = 10:
- com 1 elemento, acrescenta 1; com 2, acrescenta 4; com 3, acrescenta 9; com 4, acrescenta 16;
- com 5, acrescenta 25; com 6, acrescenta 36; com 7, acrescenta 49; com 8, acrescenta 64; com 9, acrescenta 81.
A lista passa a ter 10 elementos e é retornada: [20, 1, 4, 9, 16, 25, 36, 49, 64, 81], alternativa D.
- (A) não contém o 20 inicial, que permanece na lista, e para em 64.
- (B) também não contém o 20 inicial.
- (C) contém o 20, mas tem só 9 elementos; faltou o 81, acrescentado quando a lista tinha 9 elementos.
- (E) omite o 1, primeiro valor acrescentado (quando a lista tinha 1 elemento).
Dica: em laços que acrescentam elementos, conte quantos valores são de fato adicionados. Se o limite é 10 e a lista começa com 1 elemento, são 9 acréscimos.
Fundamentos: funções e laços while em Python · método append e tamanho de listas · condição de parada em laços
Comentário gerado pela Cravei IA a partir do enunciado e do gabarito definitivo divulgado pela banca, e conferido por uma verificação automática. A IA pode errar: o gabarito oficial sempre prevalece.
Fonte: prova FGV BANESTES 2021 (Desenvolvimento de Sistemas), questão 53, com o gabarito definitivo da banca. Comentário: Equipe Cravei · como fazemos e revisamos.