下面有关布尔类型的函数的说法,正确的是( )。
逻辑代数运算:与(∧/×)、或(∨/+)、非(┐/¬)。德摩根律:┐(A∧B)=┐A∨┐B,┐(A∨B)=┐A∧┐B。
注意德摩根律的正确应用:┐(A∧B)=┐A∨┐B,┐(A∨B)=┐A∧┐B。C++中逻辑运算符有短路求值特性。
【考点】布尔返回值|函数返回类型|隐式类型转换
🎯 考纲定位:本题对应 GESP 六级《C++ 基础语法》模块中"函数定义与返回类型"知识点。命题人卡住的是初学者对"返回类型约束"的盲区——误以为函数能返回任意值,而忽略类型系统对返回值范围的硬性规定。
🧠 解题思维:先看函数签名中的 bool 返回类型,锁定布尔值范围。C++ 规定布尔类型仅接受 true/false,对应整数值 1/0。任何非零整数会被隐式转换为 true,但函数仍必须返回布尔值,因此只能返回 0 或 1 两种合法结果。选项 B 看似合理(非零即真),实则混淆了"返回值"与"转换后结果";选项 C、D 则完全违背函数基本规则(参数可选、必须返回)。
🪤 陷阱拆解:A 正确,因布尔函数返回值被类型系统严格限定;B 错在偷换概念——返回值本身是布尔,非零整数会被转换,但不能直接返回任意整数值;C 错在绝对化表述,函数可无参数;D 错在否定返回机制,所有函数必须返回(void 函数无返回,但本题是 bool)。
🔄 反命题思维:若将返回类型改为 int,则 B 成立;若改为 void,则 D 成立。刷到同类题先问"返回类型是什么",再判断约束边界。