Computação Múltipla Escolha

Conforme expõem Forbellone e Eberspächer (2022), os operadores lógicos em C – como o operador && – seguem a regra de avaliação de curto-circuito. Suponha que um sistema de segurança verifica um código de acesso e, simultaneamente, tenta registrar a tentativa através de um incremento na mesma linha: if (codigo == 0 && tentativas++ > 0) Analise a relação entre as asserções: Caso a variável codigo tenha o valor 0 (falso), a variável tentativas permanecerá com seu valor original, sem sofrer o incremento. PORQUE II. A linguagem C interrompe a avaliação da expressão se o lado esquerdo de um operador && for falso, ignorando quaisquer efeitos colaterais (como incrementos) do lado direito.

Conforme expõem Forbellone e Eberspächer (2022), os operadores lógicos em C – como o operador && – seguem a regra de avaliação de curto-circuito. Suponha que um sistema de segurança verifica um código de acesso e, simultaneamente, tenta registrar a tentativa através de um incremento na mesma linha:

if (codigo == 0 && tentativas++ > 0)

Analise a relação entre as asserções:

I. Caso a variável codigo tenha o valor 0 (falso), a variável tentativas permanecerá com seu valor original, sem sofrer o incremento.

PORQUE

II. A linguagem C interrompe a avaliação da expressão se o lado esquerdo de um operador && for falso, ignorando quaisquer efeitos colaterais (como incrementos) do lado direito.

  1. As duas asserções são verdadeiras, e a segunda é uma justificativa correta da primeira.
  2. As duas asserções são verdadeiras, mas a segunda não justifica a primeira.
  3. A primeira é verdadeira, e a segunda é falsa.
  4. A primeira é falsa, e a segunda é verdadeira.
  5. Ambas as asserções são falsas.

Resolução completa

Explicação passo a passo

A
Alternativa A

Alternativa A

Avaliação de Curto-Circuito em C

A questão aborda o conceito fundamental de avaliação de curto-circuito (short-circuit evaluation) presente nas linguagens de programação baseadas em C, como C, C++, Java e C#.

Análise das Asserções

Para determinar a resposta correta, analisamos separadamente a assertiva principal e a justificativa fornecida.

1. Veracidade da Primeira Asserção (I)

A assertiva afirma: "Caso a relação válida tenha o valor 0 (falso), a variável tentativas permanecerá com seu valor original, sem sofrer o incremento."

  • Cenário: O código é if(codigo == 0 && tentativas++ > 0).
  • Lógica: Se a primeira parte da condição (codigo == 0) resultar em falso (valor 0), a lógica booleana determina que o resultado final será falso independentemente do segundo operando.
  • Consequência: O interpretador ou compilador ignora a execução da parte direita da sentença. Portanto, o operador tentativas++ não é executado.
  • Conclusão: A assertiva é VERDADEIRA.

2. Veracidade da Justificativa (PORQUE)

O texto explica: "A linguagem C interrompe a avaliação da expressão no lado esquerdo de um operador && para falso, ignorando quaisquer efeitos colaterais (como incrementos) do lado direito."

  • Definição Técnica: Esta é a definição exata do comportamento do operador lógico E (&&) na linguagem C.
  • Regra: Se o operando da esquerda é 0 (falso), o operando da direita nem sequer é avaliado. Isso evita erros de lógica e garante que efeitos colaterais (como incrementos de variáveis) não ocorram se não forem necessários.
  • Conclusão: A justificativa é VERDADEIRA.

Relação entre Asserções

A segunda asserção descreve o mecanismo técnico que causa o fenômeno descrito na primeira. Sem essa regra de curto-circuito, a variável seria incrementada mesmo que a condição inicial falhasse. Portanto, a segunda frase justifica corretamente a primeira.

AsserçãoStatusMotivo
PrimeiraVerdadeiraO tentativas++ é pular se a primeira condição falhar.
SegundaVerdadeiraDescreve a regra de curto-circuito do operador &&.
RelaçãoJustificaçãoA regra explica por que o incremento não ocorre.

Alternativa A.

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.