Análise da Questão
Para resolver esta questão, precisamos analisar cada um dos trechos de código apresentados em C, considerando a variável inicializada como int idade = 12;. O objetivo é identificar quais instruções são sintaticamente corretas e produzem a saída "Menor de idade".
Análise Individual dos Itens
- Item I:
printf(idade<18?"Menor de idade":"Maior de idade"); - Mecanismo: Utiliza o operador ternário (
? :). Ele avalia a condição idade < 18. Se for verdadeiro, retorna a primeira string; caso contrário, a segunda. - Execução: Como $12 < 18$ é verdadeiro, a string "Menor de idade" é passada para o
printf. - Veredito: Correto. É uma sintaxe válida em C.
- Item II:
if(idade<18) {printf("Menor de idade");} else {printf("Maior de idade");} - Mecanismo: Estrutura condicional clássica if-else.
- Execução: A condição
idade < 18 é satisfeita ($12 < 18$), executando o bloco do if. - Veredito: Correto.
- Item III:
if(idade<18) {printf("Menor de idade");} else if (idade>=18) {printf("Maior de idade");} - Mecanismo: Estrutura condicional com else-if.
- Execução: Assim como no item II, a primeira condição é verdadeira, então o bloco é executado e os demais são ignorados.
- Veredito: Correto.
- Item IV:
switch(idade) {case<18: printf("Menor de idade"); break; case>=18: printf("Maior de idade");} - Mecanismo: Estrutura switch-case.
- Erro de Sintaxe: Em C, os rótulos
case devem ser seguidos por uma constante inteira (ex: case 10:). Não é permitido colocar operadores de comparação como < ou >= diretamente no case. - Veredito: Incorreto. O código não compilaria.
Tabela Comparativa
| Item | Instrução | Sintaxe Válida? | Resultado (idade=12) |
|---|
| I | Operador Ternário | ✅ Sim | "Menor de idade" |
| II | If-Else Simples | ✅ Sim | "Menor de idade" |
| III | If-Else-If | ✅ Sim | "Menor de idade" |
| IV | Switch-Case com Condicionais | ❌ Não | Erro de Compilação |
Conclusão
As instruções I, II e III são válidas e exibem a mensagem desejada. A instrução IV contém um erro fatal de sintaxe na linguagem C.
Portanto, a alternativa que lista corretamente as instruções válidas é a B.
Alternativa B - I, II e III, apenas.