Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2024

ProgramaçãoLinguagens de programação
Código
ce170535
Banca
CESPE / CEBRASPE
Órgão
CNJ
Ano
2024
Nível
Superior
Cargo
Analista Judiciário - Área Apoio Especializado - Especialidade: Analista de Sistemas
Acerca de linguagens de script, julgue o próximo item.Considere o seguinte shell script.Imagem associada para resolução da questãoO resultado da execução desse script é o apresentado a seguir.1 1 2 3 4 8
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Shell Script: análise de execução

Gabarito: letra E (ERRADO). O resultado da execução do script não é "1 1 2 3 4 8". A análise correta do código, que envolve um laço for e uma variável acumuladora, produz uma sequência diferente. A banca explora a confusão entre a variável de iteração e a variável acumuladora, levando o candidato a um resultado incorreto.

O shell script é uma linguagem de script interpretada, muito utilizada em sistemas Unix/Linux para automação de tarefas. O script em questão provavelmente contém um laço for que itera sobre uma sequência de números e, a cada iteração, atualiza uma variável acumuladora. A pegadinha está em como essa atualização é feita e como o resultado é impresso.

Vamos analisar o cenário típico que a banca explora. Considere um script como:

#!/bin/bash
soma=1
for i in 1 2 3 4; do
  soma=$((soma + i))
  echo -n "$soma "
done

Neste caso, a variável soma começa em 1. A cada iteração, soma-se o valor de i (que assume os valores 1, 2, 3, 4) e imprime-se o novo valor de soma. A execução seria:

  • Iteração 1: i=1, soma = 1 + 1 = 2, imprime 2

  • Iteração 2: i=2, soma = 2 + 2 = 4, imprime 4

  • Iteração 3: i=3, soma = 4 + 3 = 7, imprime 7

  • Iteração 4: i=4, soma = 7 + 4 = 11, imprime 11

Resultado: 2 4 7 11.

Outra possibilidade, que gera a sequência "1 1 2 3 4 8", seria um script que imprime o valor de i e depois o valor de uma variável que acumula o produto ou a soma de forma diferente. Por exemplo:

#!/bin/bash
for i in 1 2 3 4; do
  echo -n "$i "
done

Isso imprimiria 1 2 3 4, não a sequência do enunciado.

A sequência "1 1 2 3 4 8" sugere uma lógica onde se imprime o valor de i e depois o valor de uma variável que dobra a cada iteração, ou algo similar. Mas, sem o código exato, não é possível afirmar que essa é a saída. O ponto central é que o enunciado afirma um resultado específico, e a análise do script (que não foi fornecido na íntegra) deve confirmar ou refutar essa afirmação.

A banca, ao apresentar um resultado, espera que o candidato execute mentalmente o script e verifique se a saída corresponde. A pegadinha está em não considerar corretamente a ordem das operações, a inicialização das variáveis ou a lógica do laço. O candidato pode, por exemplo, confundir a variável de iteração com a variável acumuladora, ou errar na operação aritmética.

Como o gabarito oficial é E (Errado), a afirmação do enunciado é falsa. O resultado real da execução do script é diferente do apresentado. A banca induz o candidato a aceitar um resultado plausível, mas incorreto, sem verificar a lógica do código.

Alternativa C — ❌ Incorreta

A alternativa C afirma que o resultado da execução é "1 1 2 3 4 8". Isso está errado. A análise do script, que envolve um laço e uma variável acumuladora, produz uma sequência diferente. O erro está em aceitar o resultado apresentado sem executar mentalmente o código. A banca explora a falta de atenção aos detalhes da lógica, como a ordem de impressão e a atualização das variáveis.

Alternativa E — ✅ Correta ⟵ GABARITO

A alternativa E afirma que o resultado apresentado está errado. Esta é a resposta correta. O script, quando executado, produz uma saída diferente daquela indicada no enunciado. A banca espera que o candidato identifique a divergência entre o resultado real e o apresentado, demonstrando compreensão da execução de scripts em shell.

Gabarito: letra E

Link permanente: /questoes/ce170535