Prova de Revisão – Estrutura de Dados:
Algoritmos e Programação com Python
1. Considere o seguinte trecho de código em Python. Qual será a saída? def calcula_valor(n): if n
== 0: return 1 else: return n * calcula_valor(n - 1) print(calcula_valor(4))
A) 0
B) 10
C) 24
D) 120
2. Qual das seguintes afirmações sobre recursão e iteração é correta?
A) Iterações sempre usam menos memória que recursões.
B) Toda função recursiva pode ser convertida em uma função iterativa.
C) Recursão não pode ser usada para problemas com repetição.
D) A recursão é sempre mais eficiente que iteração.
3. Dado o código abaixo, qual será o valor final da variável 'soma'? soma = 0 for i in range(1, 6): if i
% 2 == 0: soma += i print(soma)
A) 15
B) 6
C) 9
D) 20
4. Qual é a principal vantagem do uso de funções em programação estruturada?
A) Eliminar a necessidade de variáveis globais.
B) Reduzir o número de comandos de repetição.
C) Organizar o código em blocos reutilizáveis e legíveis.
D) Substituir o uso de estruturas de decisão.
5. Considere a função abaixo. Qual será o resultado da chamada busca([4, 8, 15, 16], 15)? def
busca(lista, valor): for i in range(len(lista)): if lista[i] == valor: return i return -1
A) 2
B) 3
C) -1
D) 15
6. Em Python, o que o seguinte código imprime? lista = [1, 2, 3] [Link]([4, 5]) print(len(lista))
A) 3
B) 4
C) 5
D) 6
7. Qual estrutura de dados é mais adequada para simular chamadas de função com retorno após
finalização da execução?
A) Lista
B) Pilha
C) Fila
D) Dicionário
8. Em relação à complexidade de algoritmos, o que representa O(n²)?
A) O tempo de execução é constante.
B) O tempo cresce linearmente com a entrada.
C) O tempo cresce exponencialmente.
D) O tempo cresce proporcional ao quadrado do tamanho da entrada.
9. Considere a função: def inverter(palavra): return palavra[::-1] print(inverter('python'))
A) python
B) nohtyp
C) error
D) nothyp
10. Qual é a saída do código abaixo? x = 3 while x > 0: print(x) x -= 1 else: print('Fim')
A) 3 2 1 Fim
B) 3 2 1
C) Fim
D) 1 2 3 Fim