Computação Múltipla Escolha

Considere o seguinte método: 1 public void strRecur(string s) 2 { 3 if (s.length() < 15) 4 { 5 cout << s << endl; 6 strRecur(s + "*"); 7 } 8 } Quando é que esse método terminará sem erro?

Considere o seguinte método:

1 public void strRecur(string s)
2 {
3 if (s.length() < 15)
4 {
5 cout << s << endl;
6 strRecur(s + "*");
7 }
8 }

Quando é que esse método terminará sem erro?

  1. Para todas as strings, sejam elas quais forem
  2. Quando o comprimento da string for menor que 15
  3. Quando a string for nula
  4. Para nenhuma string
  5. Quando o comprimento da string for maior ou igual a 15

Resolução completa

Explicação passo a passo

E
Alternativa E

Alternativa E

O código apresentado é uma função recursiva projetada para imprimir uma string e chamá-la novamente até atingir um limite específico de tamanho. Para entender quando ela termina, precisamos analisar a condição de parada (caso base) e como a variável muda em cada chamada.

Análise da Lógica do Código:

  1. Condição de Execução: A linha if (s.length() < 15) verifica se o tamanho atual da string é menor que 15 caracteres.
  2. Passo Recursivo: Se a condição for verdadeira, o código imprime a string e chama strRecur(s + "*"). Isso adiciona um asterisco à string em cada novo chamado, aumentando seu comprimento em 1 unidade.
  3. Encerramento: Como o comprimento cresce a cada passo, eventualmente ele atingirá o valor 15.
  • Quando s.length() for 15, a expressão 15 < 15 será falsa.
  • O bloco dentro do if não será executado.
  • A função retorna imediatamente, encerrando a execução sem novos chamados recursivos.

Por que a Alternativa E é a correta?

A pergunta pergunta "Quando é que esse método terminará?". A resposta deve descrever a condição exata sob a qual a execução cessa.

OpçãoAnáliseVeredito
aEmbora termine para a maioria das entradas, esta opção é genérica e não explica o mecanismo de parada.Incorreta (menos precisa)
bEsta é a condição para a recursão continuar, não terminar.Incorreta
cStrings nulas podem causar erros, mas não são o critério lógico de parada deste algoritmo.Incorreta
dO método possui um caso base definido, então ele termina sim.Incorreta
eDescreve exatamente o estado da string quando a condição if falha e a função retorna.Correta

Portanto, a função garante que a recursão pare quando o comprimento da string ultrapassar o limite definido na verificação.

Alternativa E.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Computação

Ver mais Computação resolvidas

Tem outra questão de Computação?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.