


太好了,我们继续开启 "C++魔法冒险第二关" 🌟
这次是 第9~15题,难度升级,但我会讲成故事,让小朋友一听就懂!
🌟 第9题:取反魔法(~ 的秘密)
1、📖 题目:哪个说法是错误的?
2、🎬 故事:黑白翻转魔法镜
(1)有一面神奇镜子 ~:
👉 0 变 1
👉 1 变 0
(2)就像:
00000101(5)
变成
11111010
3、💡 关键知识
👉 在计算机中(补码):
~x = -(x + 1)
4、🧪 一个个验证
(1)✅ A:~5 = -6 ✔
~5 = -(5+1) = -6
(2)❌ B:~0 = 0 ❌(错!)
~0 = -1
👉 因为:
00000000 → 11111111 → -1
(3)✅ C:~(-3) = 2 ✔
(4)✅ D:~8 = -9 ✔
5、✅ 答案
👉 B(错误)
🌟 第10题:字符串切片小刀
1、📖 题目:substr(4,2) 得到什么?
2、🎬 故事:切蛋糕 🍰
(1)字符串:
"GESP2026"
(2)编号:
0:G 1:E 2:S 3:P 4:2 5:0 6:2 7:6
(3)🔪 切法
str.substr(4,2)
👉 从第4个开始,切2个
👉 就是:
"20"
3、✅ 答案
👉 A. 20
🌟 第11题:数组长度魔法
1、📖 题目:输出 count 是多少?
2、🎬 故事:糖果盒计数 🍬
int arr[] = {5,10,15,20,25,30};
一共有 6颗糖
3、💡 原理
sizeof(arr) / sizeof(arr[0])
👉 总大小 / 单个大小
4、🧮 计算
6个int × 4字节 = 24
24 / 4 = 6
5、✅ 答案
👉 B. 6
🌟 第12题:字符串长度陷阱
1、📖 题目:a - b 等于多少?
2、🎬 故事:字符串盒子 🎁
char s[10] = "abcde";
3、💡 两种长度
(1)🟡 sizeof(s)
👉 数组大小 char s[10],定义了10个长度,sizeof(s) = 10。
(2)🔵 strlen(s)
👉 实际字符 = 5
4、🧮 计算
10 - 5 = 5
5、✅ 答案
👉 B. 5
🌟 第13题:枚举法小侦探
1、📖 题目:哪个不适合枚举?
2、🎬 故事:小侦探破案 🕵️
枚举 = 一个个试!
3、🔍 分析
(1)A ✔
找1~100能被7整除 → 可以试
(2)B ✔
找质数 → 可以试
(3) C ❌
1+2+3+...+1000
👉 有公式!
n(n+1)/2
👉 不用一个个加!直接出结果
(4)D ✔
三位数 → 可以枚举
4、✅ 答案
👉 **C.**计算 1+2+3+...+1000 的和
🌟 第14题:鸡兔同笼 🐔🐰
1、📖 题目:哪种枚举最合理?
2、🎬 故事
鸡:2条腿
兔:4条腿
总头:35
总脚:94
要选最聪明的方法。
3、🧠 最聪明方法
👉 只枚举一个变量!
for(x=0;x<=35;x++)
{
y = 35 - x;
判断脚数
}
4、❌有点笨的方法
枚举两个变量 → 有些慢!
✅ 答案
👉 **A.**枚举鸡的数量 x (0~35),兔的数量 y=35-x ,判断 2*x + 4*y == 94

🌟 第15题:凯撒密码守门人 🔐
1、📖 题目:正确判断条件是?
2、🎬 故事
规则:
👉 字符 +3
👉 超过 'z' 要绕回 'a'
3、💡 正确逻辑
👉 关键判断:
if(str[i] + 3 > 'z')
4🧠如何处理绕回?
str[i] = 'a' + (str[i] + 3 - 'z') - 1;
👉 D、完整处理"绕回"
5、❌ 其他选项问题
-
没加 +3 判断 ❌
-
没处理循环 ❌
6、✅ 答案
👉**D.**if (str[i] + 3 > 'z') str[i] = 'a' + (str[i] + 3 - 'z') - 1
🎉 考点汇总:
🌟 ~x = -(x+1)
🌟 substr(起点,长度)
🌟 sizeof ≠ strlen
🌟 枚举法适合"小范围试"
🌟 鸡兔问题 → 枚举一个变量
🌟 字符加密 → 注意"循环"






