Alternativa B - I, II e III, apenas
Para determinar quais instruções exibem a frase "Menor de idade", analisamos o código com a variável inicializada como int idade = 12;.
Análise das Instruções
Abaixo detalhamos o funcionamento lógico de cada trecho de código apresentado:
- Item I (Operador Condicional Ternário):
A sintaxe condicao ? valorseverdadeiro : valorsefalso é válida em C.
$$idade < 18 \Rightarrow 12 < 18$$ (Verdadeiro)
O operador seleciona o primeiro valor ("Menor de idade") e o imprime via printf. - Item II (Estrutura Condicionais Simples):
A estrutura if ... else verifica a condição lógica.
Como $12 < 18$ é verdadeiro, o bloco do if é executado, imprimindo "Menor de idade". O else é ignorado. - Item III (Estrutura Encadeada):
Similar ao item anterior, mas com um else if.
A primeira condição if(idade<18) é satisfeita ($12 < 18$).
Portanto, a instrução de impressão ocorre e o restante da cadeia else if não é avaliado. - Item IV (Comando Switch):
Este comando contém um erro de sintaxe grave na linguagem C.
Os rótulos case devem ser constantes inteiras, não expressões lógicas ou comparações. - Incorreto:
case<18: - Correto:
case 17: (ou outro número específico)
O código não compilará corretamente devido a essa sintaxe inválida.
Conclusão
As instruções que funcionam corretamente e produzem a saída desejada são I, II e III. A instrução IV está incorreta devido à sintaxe do comando switch.
Portanto, a alternativa correta é a B.