Análise das Questões de Programação em C
As questões apresentadas abordam conceitos fundamentais da linguagem de programação C, focando em estruturas de repetição, lógica condicional e análise de algoritmos. Abaixo, detalho a resolução de cada item presente na imagem.
1. Estruturas de Repetição (Baseado em SESAE/2015)
A questão solicita identificar as três estruturas de repetição (laços) nativas da linguagem C.
- Análise: Na linguagem C, existem três tipos principais de laços para executar blocos de código várias vezes:
while: Verifica a condição antes de executar.do...while: Executa pelo menos uma vez e verifica a condição depois.for: Estrutura mais completa, com inicialização, teste e incremento explícitos.
- Comparativo: As outras opções misturam estruturas condicionais (
if, switch, case) com palavras inexistentes ou incorretas no contexto de loops.
Alternativa A - "while", "do...while" e "for".
2. Lógica Condicional (Baseado em CESPE/2018 - ABIN)
A questão apresenta um enunciado sobre como modificar uma variável x com base nas condições de z e y.
- Enunciado:
- Se z > 0: adicionar z a x (x = x + z).
- Se y < 0: subtrair y de x (x = x - y).
- Se z = 0: manter x como está.
- Análise do Código:
- Precisamos de uma estrutura
if encadeada. - Primeiro teste:
if (z > 0). Ação: x += z (ou x = x + z). - Segundo teste (Else If):
else if (y < 0). Ação: x -= y (ou x = x - y). - A opção C corresponde exatamente a essa lógica:
if(z>0) x+=z; else if(y<0) x-=y;
- Conclusão: Esta alternativa representa corretamente a soma de z quando positivo e a subtração de y quando negativo.
Alternativa C - if(z>0) x+=z; else if(y<0) x-=y;
3. Análise de Algoritmo (Baseado em TRT/2015)
Esta questão analisa um trecho de código que lê um nome e um sexo, exibindo mensagens diferentes dependendo da entrada.
- Verifica se o sexo é 'F' ou 'f'. Se sim, imprime "feminino".
- Se não, verifica se é 'M' ou 'm'. Se sim, imprime "masculino".
- Se nenhuma das anteriores for verdadeira (caso
else final), imprime "valor de sexo inválido".
- Análise das Alternativas:
- A mensagem de erro só aparece se o valor não for Feminino e não for Masculino.
- Isso significa que ele só ocorre se a letra digitada for diferente das válidas ('F', 'f', 'M', 'm').
- Conclusão: A alternativa D descreve perfeitamente essa condição de exclusividade para o erro.
Alternativa D - 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.
4. Comandos Switch Case (Baseado em Analista Legislativo PE - 2015)
A questão trata das regras sintáticas e lógicas do comando switch em C.
- Análise das Regras:
- Opção A: Afirma que os valores após
case devem ser constantes ou literais. Em C, isso é uma regra estrita (expressões inteiras constantes). Embora a redação "segmento da palavra case" seja pouco usual, ela aponta para o requisito fundamental de que não podem ser variáveis dinâmicas. - Opção B: Afirma que
default é obrigatório. Falso, é opcional. - Opção C: Afirma que não pode ser definido por constantes. Falso, deve ser.
- Opção D: Afirma que apenas um grupo pode ser executado. Tecnicamente, sem o comando
break, ocorre o "fall-through" (vários grupos rodam), então esta afirmação não é estritamente correta sem qualificação. - Opção E: Afirma que
break não é permitido. Falso, é permitido e recomendado. - Conclusão: A única afirmação que toca em uma regra fundamental de validação sintática do
case (constância) é a A, considerando as outras opções claramente falsas.
Alternativa A - Cada segmento da palavra case deve ser definido por constantes ou literais.