Baixe o app para aproveitar ainda mais
Prévia do material em texto
PERGUNTA 1 1. Considere o seguinte programa em Python: 2. def func(n): 3. if n <= 1: 4. return 1 5. else: 6. return n * func(n - 1) 7. print(func(4)) Assinale a alternativa correta: a. O programa irá retornar 1. b. O programa vai entrar em loop infinito. c. O programa irá retornar 4. d. O programa possui um ou mais erros e não vai executar. e. O programa irá retornar o fatorial de 4. PERGUNTA 2 1. Considere o seguinte programa em Python: 2. def f(v, i): 3. if i == 0: 4. return v[i] 5. else: 6. return max(v[i], f(v, i - 1)) 7. 8. l = [5,4,6,8,1,2] print(f(l, len(l) - 1)) Assinale a alternativa correta: a. O programa irá imprimir 5. b. O programa irá imprimir 4. c. O programa irá imprimir 6. d. O programa irá imprimir 8. e. O programa irá imprimir 1. PERGUNTA 3 1. Sobre funções recursivas, assinale V ou F para as alternativas: ( ) Uma função recursiva deve sempre ter um critério de parada. ( ) Uma função recursiva sempre será mais rápida que uma função não recursiva. ( ) Função recursiva é aquela que chama um método implementado em outra classe. ( ) Funções recursivas são úteis para resolver problemas cuja definição é também recursiva. a. F-F-F-F b. V-V-F-F c. V-V-V-V d. V-F-F-V e. F-F-V-V PERGUNTA 4 1. Considere o seguinte programa em Python: 2. def f(v, i): 3. if i == 0: 4. return v[i] 5. else: 6. return v[i] + f(v, i - 1) 7. 8. l = [5,4,6,8,1,2] print(f(l, len(l) - 1)) Assinale a alternativa correta: a. O programa irá imprimir 26. b. O programa irá imprimir 25. c. O programa irá imprimir 8. d. O programa irá imprimir 1. e. O programa irá imprimir 5. PERGUNTA 5 1. Considere o seguinte programa em Python: 2. def f(v, i): 3. if i == 0: 4. return v[i] 5. else: 6. return min(v[i], f(v, i - 1)) 7. 8. l = [5,4,6,8,10,12] print(f(l, len(l) - 1)) Assinale a alternativa correta: a. O programa irá imprimir 5. b. O programa irá imprimir 0. c. O programa irá imprimir 12. d. O programa irá imprimir 1. e. O programa irá imprimir 4. PERGUNTA 6 1. Considere o seguinte programa em Python: 2. def f(v, i): 3. if i == 0: 4. return i 5. else: 6. j = f(v, i - 1) 7. if v[i] > v[j]: 8. return i 9. else: 10. return j 11. 12. l = [5,4,6,8,1,12] print(f(l, len(l) - 1)) Assinale a alternativa correta: a. O programa irá imprimir 0. b. O programa irá imprimir 6. c. O programa irá imprimir 1. d. O programa irá imprimir 5. e. O programa irá imprimir 12. PERGUNTA 7 1. Considere as seguintes afirmativas em relação à recursão: I. A técnica de memoização tem como objetivo evitar chamadas repetidas a funções recursivas custosas. II. Uma função recursiva com memoização sempre executará mais rápido que sua respectiva função não recursiva. III. A técnica de memoização consome mais memória. Quais afirmativas estão corretas? a. Apenas I. b. I e II. c. I e III. d. Apenas II. e. Apenas III. PERGUNTA 8 1. Considere o seguinte programa em Python: 2. def f(n): 3. if n < 2: 4. return n 5. else: 6. return f(n-1) + f(n-2) 7. print(f(6)) Assinale a alternativa correta: a. O programa irá imprimir 13. b. O programa irá imprimir 8. c. O programa irá imprimir 6. d. O programa irá imprimir 2. e. O programa irá imprimir 5.
Compartilhar