Qual é o valor de X? O programa a seguir usa a função

multiple para determinar se o inteiro digitado pelo teclado

é um múltiplo de um inteiro X. Examine a função

multiple e depois determine o valor de X.

Passo 1

Para determinar o valor de X, veremos o programa dado e examinaremos a função denominada multiple. Assim, considere o seguinte:

A função main lê um valor inteiro do usuário e invoca a função multiple passando o valor fornecido como entrada de parâmetro.

A função multiple determina se o valor dado é um múltiplo de X.

Dentro da função, as variáveis mask e multi são inicializadas com valor 1.

Em seguida, ele itera 10 vezes para comparar cada bit do valor inteiro com o valor da máscara. Se o resultado desta comparação for 1, então o loop termina e implica que o valor dado não é um múltiplo de X. Caso contrário, se o resultado for 0, ele prossegue com a iteração e passa para o próximo bit a ser comparado deslocando o valor da máscara para a esquerda em 1 bit.

Passo 2

Levando em consideração a situação acima, devemos notar que se o loop itera 10 vezes sem satisfazer a condição que determina se o valor não é múltiplo de X, então ele também desloca o valor da máscara 10 vezes em 1 bit. Isso implica que o valor da máscara nos dará os bits 10000000000 que é equivalente ao valor inteiro 1024.

Assim, o valor de X é 1024.

Resposta

Ver o desenvolvimento.