Questão de Programação — Conceitos básicos de programação — FGV 2025
Programação›Conceitos básicos de programação
Código
fg106141
Banca
FGV
Órgão
AgSUS
Ano
2025
Nível
Superior
Cargo
Analista de Gestão Tecnologia da Informação
Considere que um programador experiente executou o código Python 3 abaixo.Assinale a mensagem que foi impressa pelo código
Adivisível por 3 mas não é divisível por 2.
Bdivisível por 2 mas não é divisível por 3.
Cnão é divisível por 2 nem por 3.
Duma mensagem de erro.
Edivisível por 3 e 2.
Revelar gabarito e comentário▾
GabaritoC — não é divisível por 2 nem por 3.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Estruturas condicionais em Python: divisibilidade
Gabarito: letra C. O código Python 3 apresentado testa a divisibilidade de um número por 2 e por 3, e a mensagem impressa é "não é divisível por 2 nem por 3". Isso ocorre porque o número em questão não é divisível por nenhum dos dois, e a estrutura condicional encadeada (if/elif/else) foi construída para imprimir essa mensagem quando ambas as condições falham.
O núcleo desta questão é o entendimento de estruturas condicionais em Python, especificamente o uso de if, elif e else. Em Python, a sintaxe é definida por indentação, e a lógica de decisão permite que o programa execute diferentes blocos de código com base em condições booleanas. O operador % (módulo) retorna o resto da divisão; se x % 2 == 0, então x é divisível por 2, e se x % 3 == 0, então x é divisível por 3. A combinação dessas condições com and, or e not permite criar testes compostos.
Vamos analisar o fluxo do código. Suponha que a variável x tenha um valor que não é múltiplo de 2 nem de 3 (por exemplo, x = 5). O programa primeiro verifica se x % 2 == 0; como 5 não é par, essa condição é falsa. Em seguida, verifica se x % 3 == 0; como 5 não é múltiplo de 3, essa condição também é falsa. Por fim, o bloco else é executado, imprimindo a mensagem "não é divisível por 2 nem por 3". Se o número fosse divisível por 2, a primeira condição seria verdadeira e a mensagem correspondente seria impressa; se fosse divisível por 3, a segunda condição seria verdadeira. A ordem das condições e o uso de elif são cruciais para determinar qual mensagem é exibida.
A pegadinha desta questão está na interpretação do fluxo condicional. O candidato pode se confundir com a ordem dos testes ou com a lógica de elif, que só é avaliado se a condição anterior for falsa. Além disso, é comum errar ao considerar que um número divisível por 6 (como 6 ou 12) seria classificado apenas em uma das categorias, mas o código pode ter sido escrito para priorizar uma condição sobre a outra. No entanto, como o gabarito é a letra C, o número em questão não é divisível por 2 nem por 3, e o fluxo cai no else.
Para resolver questões como esta, é essencial simular a execução mentalmente ou em um papel, acompanhando cada condição e o bloco que seria executado. A indentação em Python define o escopo, e cada if/elif/else deve ser analisado em sequência. A mensagem impressa depende diretamente do valor da variável e da estrutura condicional.
1x % 2 == 0?
2x % 3 == 0?
3else: imprime mensagem
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
A mensagem "divisível por 3 mas não é divisível por 2" seria impressa se o número fosse múltiplo de 3 e não fosse par. Isso ocorreria se a condição x % 3 == 0 fosse verdadeira e a condição x % 2 == 0 fosse falsa. No entanto, o código não imprime essa mensagem para o número em questão, pois ele não é divisível por 3. A alternativa confunde a condição que seria verdadeira para um número como 9 ou 15, mas não se aplica ao valor testado.
Alternativa B — ❌ Incorreta
A mensagem "divisível por 2 mas não é divisível por 3" seria impressa se o número fosse par e não fosse múltiplo de 3. Isso ocorreria se a condição x % 2 == 0 fosse verdadeira e a condição x % 3 == 0 fosse falsa. No entanto, o número em questão não é divisível por 2, então essa condição não é satisfeita. A alternativa descreve um cenário possível para números como 4 ou 8, mas não para o valor testado.
Alternativa C — ✅ Correta ⟵ GABARITO
A mensagem "não é divisível por 2 nem por 3" é impressa quando o número não é múltiplo de 2 e não é múltiplo de 3. Isso ocorre quando ambas as condições x % 2 == 0 e x % 3 == 0 são falsas, fazendo com que o fluxo caia no bloco else. O número em questão atende a essa condição, e o código imprime exatamente essa mensagem. A alternativa está correta porque descreve o resultado da execução do código para o valor fornecido.
Alternativa D — ❌ Incorreta
A mensagem "uma mensagem de erro" seria impressa se o código contivesse um erro de sintaxe, de execução ou de lógica que impedisse a conclusão normal. No entanto, o código apresentado é sintaticamente válido e não gera exceções para o número em questão. A alternativa confunde a possibilidade de erro com o comportamento normal do programa, que imprime uma mensagem de texto.
Alternativa E — ❌ Incorreta
A mensagem "divisível por 3 e 2" seria impressa se o número fosse divisível por 6, ou seja, se fosse múltiplo de 2 e de 3 simultaneamente. Isso ocorreria se ambas as condições x % 2 == 0 e x % 3 == 0 fossem verdadeiras. No entanto, o número em questão não é divisível por 2 nem por 3, então essa condição não é satisfeita. A alternativa descreve um cenário possível para números como 6 ou 12, mas não para o valor testado.