Рубрики

C | Операторы | Вопрос 16

Прогнозируем вывод следующей программы:

#include <stdio.h>

int main()

{

    printf("%d", 1 << 2 + 3 << 4);

    return 0;

}

(А) 112
(Б) 52
(С) 512
(D) 0

Ответ: (с)
Пояснение: Основной логикой программы является приоритет и ассоциативность операторов. Оператор сложения (+) имеет более высокий приоритет, чем оператор сдвига (<<). Таким образом, выражение сводится к 1 << (2 + 3) << 4, что, в свою очередь, сводится к (1 << 5) << 4, поскольку оператор сдвига имеет ассоциативность слева направо.
Тест на этот вопрос

Рекомендуемые посты:

C | Операторы | Вопрос 16

0.00 (0%) 0 votes