Ir para o conteúdo

Questões sobre Recursão

Questão 1
O que é uma função recursiva em Python?
  • A. Uma função que chama a si mesma durante sua execução.
  • B. Uma função que pode ser chamada apenas uma vez.
  • C. Uma função que não possui parâmetros.
  • D. Uma função que sempre retorna uma String.
  • Questão 2
    Qual é a principal característica de uma função recursiva?
  • A. Ela chama outra função obrigatoriamente.
  • B. Ela chama a si mesma.
  • C. Ela não pode possuir parâmetros.
  • D. Ela não pode utilizar `return`.
  • Questão 3
    Analise o código abaixo. Qual é a característica que torna essa função recursiva?
    
    def contar(n):
        if n == 0:
            return
        print(n)
        contar(n - 1)
    

  • A. A função possui um parâmetro.
  • B. A função utiliza um `if`.
  • C. A função chama `contar` dentro de seu próprio corpo.
  • D. A função utiliza `print`.
  • Questão 4
    Uma função recursiva normalmente precisa de uma condição que determine quando a recursão deve parar. Essa condição é chamada de:
  • A. Caso inicial.
  • B. Caso base.
  • C. Caso final.
  • D. Caso padrão.
  • Questão 5
    Analise o código abaixo. Qual parte representa o caso base?
    
    def contar(n):
        if n == 0:
            return
        print(n)
        contar(n - 1)
    

  • A. `print(n)`
  • B. `contar(n - 1)`
  • C. `if n == 0:`
  • D. `def contar(n):`
  • Questão 6
    Analise o código abaixo. O que será impresso?
    
    def contar(n):
        if n == 0:
            return
        print(n)
        contar(n - 1)
    
    contar(3)
    

  • A. 1, 2, 3
  • B. 3, 2, 1
  • C. 3, 2, 1, 0
  • D. 0, 1, 2, 3
  • Questão 7
    Analise o código abaixo. Quantas vezes a função `contar` é chamada?
    
    def contar(n):
        if n == 0:
            return
        print(n)
        contar(n - 1)
    
    contar(3)
    

  • A. 2 vezes.
  • B. 3 vezes.
  • C. 4 vezes.
  • D. 5 vezes.
  • Questão 8
    Analise o código abaixo. O que acontece quando `n` é igual a `0`?
    
    def contar(n):
        if n == 0:
            return
        print(n)
        contar(n - 1)
    

  • A. A função chama `contar(-1)`.
  • B. A função é encerrada pelo `return`.
  • C. A função imprime `0`.
  • D. A função começa novamente com `n = 3`.
  • Questão 9
    O que pode acontecer se uma função recursiva não possuir uma condição adequada para interromper as chamadas?
  • A. A função será executada apenas uma vez.
  • B. A função poderá realizar chamadas recursivas indefinidamente.
  • C. O Python transforma automaticamente a função em um laço.
  • D. A função sempre retornará `None`.
  • Questão 10
    Analise o código abaixo. Qual valor será retornado?
    
    def fatorial(n):
        if n == 0:
            return 1
        return n * fatorial(n - 1)
    
    print(fatorial(3))
    

  • A. 3
  • B. 6
  • C. 9
  • D. 12
  • Questão 11
    No código abaixo, qual é o caso base da função `fatorial`?
    
    def fatorial(n):
        if n == 0:
            return 1
        return n * fatorial(n - 1)
    

  • A. `return n`
  • B. `return n * fatorial(n - 1)`
  • C. `if n == 0:`
  • D. `fatorial(n - 1)`
  • Questão 12
    Analise o código abaixo. Qual é a chamada recursiva?
    
    def fatorial(n):
        if n == 0:
            return 1
        return n * fatorial(n - 1)
    

  • A. `fatorial(n)`
  • B. `fatorial(n - 1)`
  • C. `return 1`
  • D. `if n == 0`
  • Questão 13
    Analise o código abaixo. Qual será a primeira chamada realizada pela função?
    
    def fatorial(n):
        if n == 0:
            return 1
        return n * fatorial(n - 1)
    
    print(fatorial(4))
    

  • A. `fatorial(0)`
  • B. `fatorial(1)`
  • C. `fatorial(3)`
  • D. `fatorial(4)`
  • Questão 14
    Analise o código abaixo. Qual será a sequência de chamadas até chegar ao caso base?
    
    def contar(n):
        if n == 0:
            return
        contar(n - 1)
    
    contar(3)
    

  • A. `3 → 2 → 1 → 0`
  • B. `3 → 1 → 0`
  • C. `0 → 1 → 2 → 3`
  • D. `3 → 2 → 0`
  • Questão 15
    Analise o código abaixo. O que será impresso?
    
    def contar(n):
        if n == 0:
            return
        print(n)
        contar(n - 1)
    
    contar(5)
    

  • A. 5, 4, 3, 2, 1
  • B. 1, 2, 3, 4, 5
  • C. 5, 4, 3, 2, 1, 0
  • D. 0, 1, 2, 3, 4, 5
  • Questão 16
    Analise o código abaixo. O que será impresso?
    
    def contar(n):
        if n == 0:
            return
        contar(n - 1)
        print(n)
    
    contar(3)
    

  • A. 3, 2, 1
  • B. 1, 2, 3
  • C. 3, 1, 2
  • D. 0, 1, 2, 3
  • Questão 17
    Analise o código abaixo. Qual será o resultado?
    
    def soma(n):
        if n == 0:
            return 0
        return n + soma(n - 1)
    
    print(soma(4))
    

  • A. 4
  • B. 6
  • C. 10
  • D. 16
  • Questão 18
    No código abaixo, qual valor é retornado pelo caso base?
    
    def soma(n):
        if n == 0:
            return 0
        return n + soma(n - 1)
    

  • A. `0`
  • B. `1`
  • C. `n`
  • D. `n - 1`
  • Questão 19
    Analise o código abaixo. Quantas chamadas recursivas são realizadas durante a execução de `soma(4)`?
    
    def soma(n):
        if n == 0:
            return 0
        return n + soma(n - 1)
    
    print(soma(4))
    

  • A. 2
  • B. 3
  • C. 4
  • D. 5
  • Questão 20
    Analise o código abaixo. Qual afirmação está correta?
    
    def dobro(n):
        if n == 0:
            return 0
        return 2 + dobro(n - 1)
    

  • A. A função não é recursiva porque possui um `return`.
  • B. A função é recursiva porque chama `dobro` dentro de seu próprio corpo.
  • C. A função é recursiva somente quando `n` é negativo.
  • D. A função não possui caso base.
  • Questão 21
    Analise o código abaixo. Qual será o valor retornado?
    
    def dobro(n):
        if n == 0:
            return 0
        return 2 + dobro(n - 1)
    
    print(dobro(3))
    

  • A. 2
  • B. 3
  • C. 5
  • D. 6
  • Questão 22
    Qual dos códigos abaixo apresenta corretamente uma função recursiva com um caso base?
  • A.
    
    def contar(n):
        if n == 0:
            return
        contar(n - 1)
    

  • B.
    
    def contar(n):
        contar(n - 1)
    

  • C.
    
        def contar(n):
            print(n)
    

  • D.
    
        def contar(n):
            return n
    

  • Questão 23
    Analise o código abaixo. O que será impresso?
    
        def fatorial(n):
          if n == 1:
            return 1
          return n * fatorial(n - 1)
        print(fatorial(4))
        

  • A. 4
  • B. 10
  • C. 16
  • D. 24
  • Questão 24
    Considere a execução de fatorial(3):
    
            def fatorial(n):
               if n == 1:
                 return 1
               return n * fatorial(n - 1)
            

    Qual sequência representa corretamente as chamadas realizadas?
  • A. fatorial(3) → fatorial(2) → fatorial(1)
  • B. fatorial(3) → fatorial(1) → fatorial(2)
  • C. fatorial(1) → fatorial(2) → fatorial(3)
  • D. fatorial(3) → fatorial(0) → fatorial(1)
  • Questão 25
    Em uma função recursiva, qual é a função do caso base?
  • A. Realizar a primeira chamada da função.
  • B. Aumentar o valor do parâmetro a cada chamada.
  • C. Determinar uma condição para interromper a recursão.
  • D. Fazer a função chamar outra função.
  • Questão 26
    Analise o código abaixo. Qual será o resultado?
    
            def potencia(base, expoente):
               if expoente == 0:
                 return 1
               return base * potencia(base, expoente - 1)
            print(potencia(2, 3))
            

  • A. 5
  • B. 6
  • C. 8
  • D. 9
  • Questão 27
    No código abaixo, o que acontece quando expoente chega a 0?
    
                def potencia(base, expoente):
                    if expoente == 0:
                        return 1
                    return base * potencia(base, expoente - 1)
                

  • A. Uma nova chamada é realizada com expoente = -1.
  • B. A função retorna 1 e não realiza outra chamada recursiva.
  • C. A função retorna 0.
  • D. A função reinicia com o valor original do expoente.