)精讲)
第8题 not 的真正优先级答案A1、程序int i; for(i-2;i2;i) if(not i % 3 0) couti#; couti;答案A2、故事开始——真假魔法学院今天数字王国来了四个小朋友-2 -1 0 1他们排队接受真假魔法师not的考验。3、在 C 中表达式 not i % 3 0 的运算顺序优先级从高到低如下not (逻辑非)优先级最高。% (取模/求余)优先级次之。 (等于)优先级最低。4、因此该表达式等价于((not i) % 3) 0优先级规则依据1not (!)属于单目运算符一元运算符其优先级高于算术运算符和关系运算符。在 C 标准中not 是 ! 的关键字替代符两者完全等价。2%属于算术运算符乘法类优先级高于关系运算符但低于单目运算符。3属于关系/相等性运算符优先级低于算术运算符。5、逐步计算1当 i-2not i % 3 0真正的理解应该是(not -2) % 3 ) 0也就是先判断-2 是不是 0 然后再取反为0表达式最终为true2当 i-1(not -1) % 3 ) 0表达式最终为true输出-1#3当 i0(not 0) % 3 ) 0表达式最终为false不输出。4当 i1(not 1) % 3 ) 0表达式最终为true输出1#5循环结束以后i已经变成2所以最后输出2最终结果-2#-1#1#2答案✅A5、⭐记忆口诀单目运算符一元运算符其优先级高于算术运算符和关系运算符。在 C 标准中not 是 ! 的关键字替代符两者完全等价。第9题 三层循环里的工人答案A程序如下。1、故事开始——搬砖机器人三个工人i j cnt开始搬砖。开始cnt02、第一轮i0while不会执行。砖数03、第二轮i1执行一次cnt14、第三轮i2执行两次cnt35、循环结束i3j0cnt36、所以输出3 0 3答案✅A7、⭐知识点while结束以后循环变量不会自动恢复。最后保留的是退出循环时的值。第10题 continue 和 break 的区别答案D程序如下。1、故事开始——闯关游戏1机器人来到三层迷宫。i1里面j0判断0%3!0 ?不成立。于是count变成12随后break直接离开这一层。3第二层i2还是j0再次count变2。4第三层i3还是一样。count3循环结束i4j02、所以输出4 0 3答案✅D3、⭐记忆口诀1continue像这一题不会跳过去。继续下一次循环。2break像考试结束整个循环结束。第11题 三个运算符填空答案A1、这一题主要考 / 答案✅A2、模拟计算1程序开始是不断加11 2 3 ...11当 102就要num/2就减小了。3然后小于10了继续num1重新增长。3、⭐重点掌握 - * /都是复合赋值运算符。第12题 边界与主对角线答案B答案✅B1、绘制图形1最上面一行i 12最左侧一行j 13最下面一行i N4最右侧一行j N5主对角线i j2、答案✅ B第13题 什么叫 Corner Case答案D答案✅D1、故事开始——平均分机器人1机器人一直统计成绩。输入80 90 95 -1结束。没有问题。2但是如果有人第一下就输入-1那么cnt0最后tnt/cnt变成0÷0程序直接崩溃2、这就是Corner Case边界情况3、⭐常见Corner Case① 空数组② n0③ n1④ 全部相同⑤ 除数为0⑥ 最大值⑦ 最小值一定要养成检查边界情况的习惯。第14题 数字分段输出答案B答案✅B1、先看程序int n; cin n; for (int i n; i 0; i--) { // 第一段 for (int j 0; j n - i; j) cout 0 ; // 第二段 for (int k 0; k i; k) cout k 1 ; cout endl; }2、每个内循环分成两段1第一段for (int j 0; j n - i; j) cout 0 ;什么时候画0j 0 ~ j n - i -1这个区间先画0。2第二段for (int k 0; k i; k) cout k 1 ;接下来写数字写 i 个数字,值为1 ~ i 。3、答案✅ B第15题 去掉最高分最低分答案A答案✅A1、故事开始——校园歌手大赛18位评委打分90 88 95 86 91 89 87 922机器人统计最高95最低863总分全部相加。最后总分 - 最高 - 最低就是最终成绩。程序中的逻辑可以完成了这一过程因此答案✅A、上述代码能完成题目要求2、⭐为什么B错1有的同学觉得min_score0也可以。2其实如果最小值初始就是0而所有评委分数都在60100之间那么score0永远不会成立。最后最小值始终是0。显然错误。3所以min_score100;才是高明的写法。3、⭐为什么C错1程序寻找的是一个最高分一个最低分2即使有两个相同最高分99 99 98题目要求也是只去掉一个最高分。3因此 已经足够。4不需要改成 4、⭐为什么D错total_score total_score-max-min;完全正确。没有必要再定义新的变量。 第一部分815题知识总结这一部分的题目覆盖了下列 GESP 二级程序阅读能力题号考点难度必须掌握8not、运算符优先级⭐⭐⭐⭐⭐⭐⭐⭐⭐9while循环与变量变化⭐⭐⭐⭐⭐⭐⭐10continue与break⭐⭐⭐⭐⭐⭐⭐⭐⭐11复合赋值运算符 (、/)⭐⭐⭐⭐⭐⭐⭐12绘制图形⭐⭐⭐⭐⭐⭐⭐⭐⭐13Corner Case边界情况⭐⭐⭐⭐⭐⭐⭐⭐⭐14二维数组分段输出⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐15最大值、最小值与模拟统计⭐⭐⭐⭐⭐⭐⭐⭐⭐这套试卷需要同学们养成的习惯是不要急着看代码结果而是先学会“模拟程序运行”。每遇到一层循环就画出变量变化每遇到if、break、continue就像故事里的角色一样一步一步往下走。只要能把程序“演出来”二级的大多数选择题都会迎刃而解。