Geral Múltipla Escolha

Em qual dos casos o fragmento de código não desempenhará, definitivamente, a tarefa para a qual foi desenhado?

Em qual dos casos o fragmento de código não desempenhará, definitivamente, a tarefa para a qual foi desenhado?

  1. Quando key é o primeiro elemento da array
  2. Quando key é o último elemento da array
  3. Quando key não está na array
  4. Quando key é 0
  5. Quando key é igual a a[key]

Resolução completa

Explicação passo a passo

C
Alternativa C

Alternativa C - Quando key não está na array

Análise da Questão

O fragmento de código apresentado implementa uma busca linear simples em um array. O objetivo é encontrar o primeiro índice onde o valor key aparece.

Funcionamento do Algoritmo

  1. Inicialização: index começa em 0.
  2. Loop While: while (a[index] != key)
  • Enquanto o valor na posição atual a[index] for diferente de key, o índice é incrementado (index++).
  1. Verificação Final: Se o loop terminar porque encontrou o valor, o if subsequente falha e o índice é mantido.

Onde está o erro?

O problema crítico reside na ausência de verificação de limites do array dentro do laço while. Em linguagens como C ou C++, arrays têm tamanho fixo definido. O código assume que key existirá em algum lugar.

Se key não estiver presente no array, a condição a[index] != key será sempre verdadeira. O índice index continuará aumentando indefinidamente:

  • Acessará posições fora da memória reservada para o array (estouro de buffer).
  • Provocará um erro de segmentação (Segmentation Fault) ou comportamento indefinido.
  • O programa não conseguirá chegar à linha 14 para definir index = -1.

Tabela Comparativa dos Cenários

CenárioComportamento do CódigoResultado Esperado
Key é o 1º elementoLoop não executa. index = 0.Sucesso
Key é o último elementoLoop executa até o fim. index = último.Sucesso
Key não está na arrayLoop infinito / Acesso ilegal de memória.Falha Fatal
Key é 0Depende se 0 existe no array.Variável

Conclusão

A opção c descreve o único cenário em que o falha é definitiva. Se o elemento não existe, a lógica do while não possui uma "porta de saída" segura baseada no tamanho do array, tornando o código instável e incapaz de realizar a tarefa proposta (retornar -1 de forma controlada).

Portanto, a alternativa correta é C.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Geral

Ver mais Geral resolvidas

Tem outra questão de Geral?

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