元素之间有多种可能的逻辑运算,本题中只需考虑如下两种:“与”(符号为&)和“或”(符号为|)。其运算规则如下: 0&0 = 0&1 = 1&0 = 0,1&1 = 1; 0|0 = 0,0|1 = 1|0 = 1|1 = 1。 在一个逻辑表达式中还可能有括号。规定在运算时,括号内的部分先运算;两种运算并列时,& 运算优先于 | 运算;同种运算并列时,从左向右运算。 比如,表达式 0|1&0 的运算顺序等同于0|(1&0) ;表达式 0&1&0|1 的运算顺序等同于 ((0&1)&0)|1。 此外,在 C++ 等语言的有些编译器中,对逻辑表达式的计算会采用一种“短路”的策略。:在形如 a&b 的逻辑表达式中,会先计算 a 部分的值,如果 a = 0 ,那么整个逻辑表达式的值就一定为 0,故无需再计算 b 部分的值;同理,在形如 a|b 的逻辑表达式中,会先计算 a 部分的值,如果 a = 1 ,那么整个逻辑表达式的值就一定为 1,无需再计算 b 部分的值。 【输入】 输入共一行,一个非空字符串 s 表示待计算的逻辑表达式。 【输出】 输出一个字符 0 或 1 ,表示这个逻辑表达式的值;
时间: 2023-05-19 19:01:35 浏览: 146
C语言位运算和sizeof运算符详解
&&)和“或”(符号为||),请问以下代码的输出结果是什么?
int a = 10, b = 20, c = 30;
if (a > b && b > c || c > a)
cout << "True" << endl;
else
cout << "False" << endl;
答案是:"True"。
解释:首先,&& 的优先级高于 ||,所以先执行 a > b && b > c,结果为 False。然后执行 c > a,结果为 True。因为 || 的逻辑是“或”,只要其中一个条件为 True,整个表达式就为 True,所以最终输出结果为 True。
阅读全文