2017-02-20 2 views
-4

Мой преподаватель программирования на C++ дал студентам несколько упражнений о булевой алгебре.Каково значение следующих выражений?

Двое из них:
1) true || истинные
2) истинные & & ложные

Возможные ответы для двух являются следующие:
а) истинно
б) ложно
с) 1
г) -1

Что правильный способ оценить эти упражнения и, возможно, другие упражнения одного типа?

+0

'True || True' недействительный код AFAIK, потому что булевы литералы должны быть строчными. Значение «+ 1» в некоторых ситуациях может считаться истинным. –

+3

Что такое «Правда»? Это не действительный идентификатор C++. –

+1

Что такое 'True' здесь? Это объект? Если вы имели в виду логическое значение, оно должно быть «истинным» в малом случае. –

ответ

0

True не является допустимым ключевым словом в C++. Но true & false - это ключевые слова на C++.

Булева переменная - это переменные, которые могут иметь только два возможных значения: true (1) и false (0). так что true || true будет оценивать по 1. См. живую демонстрацию here.

+0

Не является ли 'bool' правильным типом в C++, как' int'? 'true' - это не то же самое, что' 1', но если вы выполняете 'true == 1',' true' будет передан 'int', что дает' 1'. Итак, 'true || true' не будет оцениваться до '1'. Он будет вычислять логическое значение 'true'. Демонстрация работает, потому что потоки C++ по умолчанию имеют флаг ['boolalpha'] (http://www.cplusplus.com/reference/ios/boolalpha/), что означает, что запись' true' в поток приведет к ' 1 ", а не' 'true". – Bernard

+0

Собственно, ваша ссылка упоминает 'boolalpha' и нигде не говорит, что' true || true' будет оцениваться до '1', или даже это' true' само по себе будет оцениваться до '1', если на то пошло. Ссылка не поддерживает ваш ответ. – Bernard