BCSP-X · 2024 BCSP-X 下半年活动基础知识测评(小学高年级组) 第 15 题

选择题 · 答案 B

← 整套速查表 BCSP-X 全部真题

题目

以下有关 C++ 运算优先级说法中,( )是错误的。

答案:B

解题思维

这题考的是C++运算符优先级,别被符号吓住,直接回忆优先级表里这几个符号的位置,尤其是取反和成员访问谁高谁低。

常见错误

学生最容易把逻辑取反!和成员访问.的优先级搞反,以为!比.低,或者误以为乘法比取模高。还有人会纠结运算符结合性,把赋值当成从左到右,或者把按位异或当成逻辑异或,这些坑在概念题里很常见。

详细解析(节选)

这道题考查的是C++运算符优先级这一基础但易错的概念,属于纯知识记忆与辨析类题目。命题人喜欢在优先级表中找两个位置相近但功能不同的运算符,比如取反!和成员访问.,或者乘法*和取模%,来设置陷阱,看考生是否真正理解优先级表的顺序。

拿到题先别慌,脑子里过一遍优先级表:一元运算符(如取反!、自增++)优先级非常高,通常在第二级;二元运算符(如乘法*、加法+)优先级较低,在第四、五级;而成员访问.属于一元运算符,优先级其实比取反!还要高一级。这是C++标准规定的,也是历年考试中反复出现的考点。

逐项分析选项:A项说!优先级高于&&,这是对的,一元运算符确实高于逻辑与;C项说*、/、%优先级相同,完全正确,它们同属一级;D项说+、-优先级相同,也没问题;E项说赋值=从右向左结合,这也是对的,C++里赋值运算符的结合性就是右结合;F项说^是按位异或,正确,它不是逻辑异或。

唯一错误的是B项,它声称!优先级高于.,这恰恰颠倒了事实。在C++中,成员访问.的优先级比逻辑取反!更高,也就是说!会先于.进行运算。比如表达式 a.b!c 会被解析为 (a.b)!c,而不是 a.(b!c)。这个细节很多考生会忽略,因为平时写代码很少遇到这种嵌套,但考试里专挑这个点挖坑。

考频与趋势方面,根据历史数据,运算符优先级一直是CSP-J/S及GESP考试中高频考点,尤其在程序阅读题和基础语法题中反复出现,近三年考频稳定在3-5次/年。此类题目通常不会单独大篇幅考,而是嵌入在综合题里作为干扰项,或者像本题这样以纯概念单选题形式出现,难度不高但陷阱隐蔽。

未来预测:基于当前考频和题型分布,预计在未来2-3年内,运算符优先级仍会作为必考知识点之一继续出现,命题人可能会继续用类似的对比项(如!与.、++与++i)来考察学生对优先级表的掌握程度,难度不会有太大变化,但会保持‘看似简单实则易错’的特点。暂无足够依据预测具体年份或题型变化。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断