n = 27 的 3n+1 循环要转多少圈?—— 冰雹数的忽上忽下
27 的 3n+1 序列(Collatz/冰雹数):打印 111 个数,从 82 到 1,峰值 9232。附完整轨迹折线图(蓝点奇数步上升、绿点偶数步下降)、手算模拟、死循环风险分析与 CSP-J 考点总结。
a << 2 | 1 到底先算谁?—— 位运算优先级的一个坑
a=3 时 (a << 2 | 1) 输出 13:<< 优先级高于 |,先左移 2 位得 12,再按位或 1 得 13。附位运算优先级顺序、易错写法对比(a<<(2|1)=24、a<<2+1=24)与 CSP-J 考点总结。
n &= (n-1) 到底做了啥?一行代码数出二进制里有几个 1
n &= (n-1) 是 Brian Kernighan 算法,每执行一次清掉最低位的 1,循环次数即二进制中 1 的个数。n=10(1010₂) 输出 2。附模拟过程、原理、复杂度对比、判断 2 的幂与 CSP-J 考点总结。
-5 >> 1 的结果是什么?—— 算术右移与向下取整陷阱
-5 >> 1 的结果是 -3:负数是算术右移(补符号位),等价于向下取整除法 floor(-5/2),而 -5/2 = -2 是向零取整,两者在负奇数时差 1。附补码演示、通用规律与 CSP-J 考点总结。
cin >> a 后接 getline 读到空串?—— 缓冲区残留...
cin >> a 混用 getline 的经典陷阱:>> 不消耗换行符,残留的 \n 使 getline 读到空串,输出 []。附缓冲区逐步演示、cin.ignore 修复方法与 CSP-J 考点总结。
cout << scientific << x 输出什么?—— 默...
cout << scientific << 123456.789 的输出是 1.234568e+05。默认精度 6,scientific 下表示 6 位有效数字并四舍五入,指数至少 2 位带符号。附 fixed/sciencefic/...
f(++a, ++a) 输出是什么?—— 实参求值顺序与未定义行为
f(++a, ++a) 输出是什么?函数实参求值顺序无序,同一表达式内对同一变量修改两次属于未定义行为,答案是 D。附易混淆对比与 CSP-J 考点总结。