Analise o código abaixo escrito em C. int main() { int a = 0; while(a < 100) { if((a % 2) == 0) { a++; } else { a = a + 3; } } return } Assinale, a seguir, um conceito ou estrutura de programação que NÃO foi utilizado no código.
- A)Variável.
Errada, porque a variável inteira a foi declarada e usada no código.
- B)Recursividade.
Certa, porque não há chamada da função a si mesma nem qualquer mecanismo de recursão.
- C)Estrutura condicional.
Errada, porque o if/else é uma estrutura condicional claramente presente.
- D)Estrutura de repetição.
Errada, porque o while é uma estrutura de repetição usada no código.
Gabarito: B
A questão cobra leitura básica de código em C e identificação de estruturas de programação. No trecho apresentado, você vê claramente uma variável inteira, uma estrutura de repetição com while e uma estrutura condicional com if/else. Isso já basta para eliminar várias alternativas de cara, porque o código está funcionando em torno de decisão e laço. A lógica é simples: enquanto a variável a for menor que 100, o programa testa se ela é par. Se for, soma 1; se não for, soma 3. Ou seja, há controle de fluxo repetitivo e condicional o tempo todo. Esse tipo de análise é muito comum em provas: a banca quer saber se você reconhece a estrutura usada, não se o código está bonito ou completo. O gabarito é a letra B porque recursividade não aparece em nenhum momento. Recursividade ocorre quando uma função chama a si mesma, direta ou indiretamente, e isso não acontece no código. Há apenas um laço while e uma decisão if/else, sem chamadas da própria função main ou de qualquer outra função do mesmo tipo. Portanto, o segredo aqui é separar o que existe no código do que está ausente. Variável, condicional e repetição estão presentes sem mistério; recursão é que ficou de fora. Em prova, essa distinção costuma render ponto para quem lê com calma e não cai no susto.