Raciocínio Lógico Múltipla Escolha

Considere o algoritmo na linguagem C: main(){ char 20 nome; char sexo; printf("Qual é o seu nome?"); scanf(nome); printf("Qual é o seu sexo? (f/m)"); scanf(&sexo); if (sexo == 'f' && sexo == 'F') { printf("Você é do sexo feminino."); } else { if (sexo == 'm' && sexo == 'M') { printf("Você é do sexo masculino."); } else { printf("Você digitou um valor de sexo inválido "); } } Sobre o algoritmo acima é correto afirmar que:

Considere o algoritmo na linguagem C:
main(){
char 20 nome;
char sexo;
printf("Qual é o seu nome?");
scanf(nome);
printf("Qual é o seu sexo? (f/m)");
scanf(&sexo);

if (sexo == 'f' && sexo == 'F')
{
printf("Você é do sexo feminino.");
}
else
{
if (sexo == 'm' && sexo == 'M')
{
printf("Você é do sexo masculino.");
}
else
{
printf("Você digitou um valor de sexo inválido ");
}
}

Sobre o algoritmo acima é correto afirmar que:

  1. a lógica do algoritmo está comprometida pela falta de um comando de repetição.
  2. em vez de utilizar comandos de decisão se aninhados, deveria ter sido usado um único comando de seleção múltipla, por isso a lógica ficou comprometida.
  3. se for digitada uma letra maiúscula 'F' ou minúscula 'f' será impresso Você é do sexo feminino.
  4. somente se a letra digitada para o sexo for diferente de 'F', 'f', 'M', 'm' é que a frase Você digitou um valor de sexo inválido será impressa.
  5. não importa o valor digitado no sexo, pois sempre será impresso Você digitou um valor de sexo inválido.

Resolução completa

Explicação passo a passo

E
Alternativa E

Alternativa E

Análise da Questão

O objetivo desta questão é identificar o comportamento lógico do trecho de código apresentado, especificamente nas instruções condicionais (if).

1. Identificação do Erro Lógico

O ponto central do código está na construção das condições dentro dos comandos if:

if (sexo == 'f' && sexo == 'F')
  • O operador lógico utilizado é o E (&&).
  • Isso significa que a condição só será verdadeira se a variável sexo for igual a 'f' AO MESMO TEMPO que for igual a 'F'.
  • Na computação, um único caractere armazenado em uma variável não pode assumir dois valores distintos simultaneamente.

Portanto, a expressão (sexo == 'f' && sexo == 'F') é sempre falsa. O mesmo ocorre na segunda verificação para o sexo masculino.

2. Rastreamento da Execução

Como as condições de entrada são impossíveis de serem atendidas:

  1. O primeiro if falha.
  2. O else if também falha.
  3. O programa inevitavelmente cai no bloco else final.

Consequentemente, a linha printf ("Você digitou um valor de sexo inválido "); será executada independentemente do que o usuário digitar.

3. Comparativo das Alternativas

AlternativaAvaliaçãoMotivo
AIncorretaNão há necessidade de loop/repetição; o erro é na lógica condicional.
BIncorretaA estrutura de decisão está correta; o erro é no operador lógico interno.
CIncorretaNunca ocorrerá, pois a condição exige dois valores iguais simultaneamente.
DIncorretaO erro ocorrerá mesmo que o usuário digite os valores válidos ('f', 'F', etc.).
ECorretaReflete a realidade do código: o else sempre será atingido.

Conclusão

Para corrigir o algoritmo, os operadores lógicos deveriam ser OU (||). Exemplo: if (sexo == 'f' || sexo == 'F').

Assim, a afirmação correta é que não importa o valor digitado no sexo, pois sempre será impresso "Você digitou um valor de sexo inválido", devido à impossibilidade lógica das condições de entrada.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Raciocínio Lógico

Ver mais Raciocínio Lógico resolvidas

Tem outra questão de Raciocínio Lógico?

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