精讲)
第1题IDE到底是什么题目问关于 IDE 功能的描述错误的是哪一个选项A. 可以提供代码自动补全提高编程效率B. 可以提供辅助信息帮助排查程序逻辑错误C. 可以直接控制机器人电机转动D. 支持语法高亮使代码更易阅读答案C① 什么是 IDEIDE 是Integrated Development Environment——集成开发环境这个名字看起来很吓人其实可以把它理解成 “程序员的超级学习桌”我们写 C 的时候需要很多工具✏️ 写代码 检查代码▶️ 运行程序 调试程序 给代码上颜色 自动提示代码如果这些工具全部放在一个地方这就是 IDE。例如我们平时使用的某些 C 编程软件就属于 IDE 或具有 IDE 功能。② A 对不对A. 代码自动补全比如你输入cou编辑器可能会提示cout这就像 “小朋友我猜你想输入的是 cout”所以A 正确。③ B 对不对B. 帮助排查程序逻辑错误IDE 可以提供断点单步执行查看变量调试信息例如int a 10; int b 20; int c a - b;我们可以一步一步运行看看a 10 b 20 c -10帮助我们寻找程序的问题。所以B 正确。④ D 对不对D. 语法高亮比如int a 10; cout a;不同的东西显示成不同颜色可以让程序更容易阅读。所以D 正确。⑤ C为什么错C. 可以直接控制机器人电机转动这是一个很容易掉坑的地方IDE 是写程序、编译程序、调试程序的工具。它本身并不是机器人电机控制器。真正控制机器人需要程序 ↓ 控制系统 ↓ 硬件接口 ↓ 电机所以❌ IDE ≠ 电机控制器因此答案是⭐ 第1题C 小口诀IDE管代码不直接管电机。 第2题Cache到底是什么答案B题目问 Cache 的说法中正确的是哪一个。试卷给出的选项和答案见原题。① 先认识电脑里的“储物柜”可以把电脑想象成一个仓库。里面有不同大小、不同速度的储物空间CPU寄存器 ↓ Cache 高速缓存 ↓ 主存 RAM ↓ 硬盘/SSD一般来说越靠近 CPU速度越快但容量越小。② Cache是什么Cache 可以翻译成高速缓存CPU 经常需要使用一些数据。如果每一次都跑到比较慢的主存那里去拿就会浪费时间。于是就在 CPU 附近准备一个⚡ “小而快的储物柜”这就是 Cache。③ B为什么正确BCache 通常用于暂存 CPU 频繁访问的数据。想象小明正在做数学题。他最常用的橡皮、尺子、铅笔就放在手边。不用每次都跑到书包里找。Cache 就有点像 CPU 手边的小工具箱。所以B 正确。④ A为什么错A说Cache 容量比主存大速度比主存快。错在Cache 通常比主存小得多。但是速度更快。所以应该记成Cache 容量小 速度快⑤ C为什么错C说Cache 断电后数据不会丢失。错。Cache 属于易失性存储器。断电之后 数据就没了。⑥ D为什么错D说Cache 比 CPU 寄存器还快。通常不是这么理解的。一般来说寄存器 Cache 主存越靠近 CPU速度越快。 小口诀Cache小、快、离 CPU 近断电数据丢。所以⭐ 第2题B 第3题3 和 3.0 相等吗题目代码cout (3 3.0);选项A. 1B. 1.0C. 0D. -1答案⭐ A① 关键是什么注意是赋值。而是比较两个东西是否相等。所以3 3.0是在问“3 和 3.0 相等吗”答案相等② 为什么3是整数int而3.0是浮点数。虽然它们的数据类型不同但是数值都是3所以比较结果为true③ true 输出什么C 默认情况下true → 1 false → 0所以cout (3 3.0);输出1⚠️ 小心一个超级大坑很多初学者会想“一个是 int一个是 double怎么可能相等”这是错误思维。比较时重点看数值是否相等。例如5 5.0 // true 2 2.0 // true 7 7.0 // true 第4题三个 bool 加起来是多少题目cout (bool(5) bool(-5) bool(5.0));选项A. 0B. 1C. 2D. 3答案⭐ D这道题非常值得掌握。① 什么是 boolbool只有两种状态true false而在 C 中true 1 false 0②bool(5)是什么5 是一个非零数字。C 中非零 → true所以bool(5)就是true也就是1③bool(-5)呢注意负数也是非零所以bool(-5)也是true即1④bool(5.0)呢5.0 也是非零true即1所以原式相当于1 1 1得到3所以答案⭐ D 必须背下来的规律对于数字转 bool0 → false → 0 非0数字 → true → 1例如bool(0) // 0 bool(10) // 1 bool(-10) // 1 bool(3.14) // 1 魔法口诀零是假非零是真。这是以后学习if、逻辑运算时非常重要的一条规则。 第5题如何判断闰年答案⭐ A题目给出的规则是能被 4 整除但不能被 100 整除或者能被 400 整除。选项 A(N % 4 0 N % 100 ! 0) || (N % 400 0)① 先理解“能不能整除”C 中%叫取模 / 求余数比如10 % 3结果是1因为10 ÷ 3 3 …… 1如果12 % 4结果0说明12 能被 4 整除。所以N % 4 0就是N 能被 4 整除。② 闰年的两条路题目实际上说第一条路能被4整除 并且 不能被100整除对应N % 4 0 N % 100 ! 0第二条路能被400整除对应N % 400 0两条路满足其中一条即可。所以用||连接。完整答案(N % 4 0 N % 100 ! 0) || (N % 400 0)③ 为什么 B 错BN % 4 0 N % 100 0 || N % 400 0注意这里N % 100 0表示能被 100 整除。但题目第一条要求的是不能被 100 整除。所以应该!而不是④ C为什么错C使用的是N / 4 0这里是/不是%一个是除法一个是求余数判断“能不能整除”应该想到%而不是/。⑤ D为什么错D(A) (B)它要求两部分同时成立但是闰年规则是第一种情况成立或者第二种情况成立。所以必须使用|| 闰年万能模板以后看到闰年直接想到(N % 4 0 N % 100 ! 0) || (N % 400 0) 第6题if(i)到底是什么意思题目代码int tot, i; tot 0; for (i 0; i 10; i) if (i) tot 1; cout tot;答案⭐ C. 9原题代码位于试卷第 2 页。这道题的核心只有一句if (i)是什么意思①if(i)就是判断 i 是否为真还记得刚才的口诀吗零是假非零是真。所以if(i)相当于if(i ! 0)② 循环到底执行哪些 ifor (i 0; i 10; i)所以i 0 i 1 i 2 i 3 i 4 i 5 i 6 i 7 i 8 i 9一共 10 次。③ 看if(i)iif(i)tot变化0假 ❌不变1真 ✅12真 ✅13真 ✅14真 ✅15真 ✅16真 ✅17真 ✅18真 ✅19真 ✅1除了i 0其他全部执行tot 1;所以一共执行9次最终tot 9答案⭐ C 这里一定要建立一个“条件翻译器”以后看到if(x)脑袋里自动翻译if(x ! 0)看到if(!x)可以理解成if(x 0)这个技巧在 GESP 选择题里非常有用。 第7题双重循环到底执行多少次题目int n, tot, i, j; cin n; tot 0; for (i 1; i n; i) for (j 1; j i; j) tot 1; cout tot;题目特别告诉我们输入4答案⭐ B. 3原题代码位于试卷第 2 页。① 第一层循环for (i 1; i n; i)因为n 4所以i 1 i 2 i 3② i 1时第二层for (j 1; j i; j)变成for (j 1; j 1; j)一开始1 1是假。所以一次都不执行。③ i 2时变成for (j 1; j 2; j)只有j 1执行一次。所以tot 1④ i 3时变成for (j 1; j 3; j)于是j 1 j 2执行两次。所以tot 1 2 3最终cout tot;输出3所以⭐ 第7题答案B 把第7题画成“小楼梯”这其实就是i1 0次 i2 1次 ● i3 2次 ● ●总次数0 1 2 3这就是非常经典的双重循环 循环次数分析题。 7道题一次性总结现在把今天的“七颗宝石”装进我们的知识背包题号核心知识答案记忆方法1IDECIDE管代码不直接管电机2CacheBCache小、快、靠近CPU3A3 3.0为真输出14boolD零是假非零是真5闰年A%判断整除与6if(i)Cif(i)≈if(i!0)7双重循环B一层一层数执行次数 最后送给同学们一张“考场魔法卡”魔法1看到%想到余数例如n % 4 0就是能被4整除。魔法2看到if(x)想到x是不是非0if(x)≈if(x ! 0)魔法3看到 bool记0是假非0是真。0 → false → 0 1 → true → 1 -5 → true → 1 3.14 → true → 1魔法4看到记并且两边都要满足。看到A B就是A和B必须同时成立。魔法5看到||记或者满足一个就可以。魔法6看到双重for千万不要急着算。先问自己外层循环每一次内层到底执行几次像第7题i1 → 0次 i2 → 1次 i3 → 2次 总共 3次这比直接“凭感觉猜答案”可靠得多。 今天应该掌握的知识链条IDE ↓ 程序开发环境 Cache ↓ 计算机基础 / bool ↓ 条件判断 % / / || ↓ 逻辑表达式 if ↓ 分支 for ↓ 循环 双重 for ↓ 循环次数分析如果这条知识链真正掌握后面的判断题、阅读程序题乃至编程题都会轻松很多。