执行下面 C++ 代码并输入 1 和 0,有关说法正确的是( )。
int a, b;
cin >> a >> b;
if (a && b)
cout << ("1");
else if (!(a | b))
cout << ("2");
else if (a || b)
cout << ("3");
else
cout << ("4");答案C。if-else语句中else与最近的if配对。花括号可以改变匹配关系。
if(a=b)合法但往往不是本意!它执行赋值后判断b的值是否为0。
【考点】逻辑运算符|布尔表达式|输入输出
这道题落在 GESP 二级 C++ 第 3 模块「逻辑运算与布尔表达式」,命题人把「逻辑运算符的优先级与短路与短路或」这两个最容易混淆的点塞进条件判断里,卡在考生对「非零即真」的理解上。