CAPL编程系列第八期-第十四期回顾

 第八期 回顾 - 运算符 (算术与赋值)

  1. 知识回顾: CAPL 的算术运算符(+, -, *, /, %)与 C 语言的主要区别是什么?(提示:考虑指针相关的运算符)
  2. 知识回顾: 表达式 15 / 4 在 CAPL 中的计算结果是多少?为什么?
  3. 逻辑推理: 如果 float f = 10.0; int i = 4;,那么表达式 f / i 的结果的数据类型是什么?值是多少?
  4. 知识回顾: 如果想让两个整数相除得到带小数的结果,应该怎么做?(写出代码示例)
  5. 知识回顾: 取余运算符 % 能否用于 floatdouble 类型的操作数?
  6. 知识回顾: 复合赋值运算符 a *= 3; 等价于哪个表达式?
  7. 知识回顾: ++ 运算符的作用是什么?前置 (++a) 和后置 (a++) 在单独作为语句使用时(如 a++;)效果有区别吗?
  8. 逻辑推理: int x = 5; int y = x++; 执行后,xy 的值分别是多少?
  9. 逻辑推理: int x = 5; int y = ++x; 执行后,xy 的值分别是多少?
  10. 逻辑推理: int a = 10; a %= 4; 执行后,a 的值是多少?

第九期 (capl学习-09.txt) 回顾 - 运算符 (关系与逻辑)

  1. 知识回顾: 关系运算符(如 >, ==, <=)运算结果的数据类型是什么?用什么值表示“真”和“假”?
  2. 知识回顾: 写出“不等于”的关系运算符和“逻辑与”的逻辑运算符。
  3. 逻辑推理: 表达式 (5 > 3) && (10 == 10) 的计算结果是 0 还是 1?
  4. 逻辑推理: 表达式 (5 < 3) || (10 != 10) 的计算结果是 0 还是 1?
  5. 逻辑推理: 表达式 !(5 == 3) 的计算结果是 0 还是 1?
  6. 知识回顾: 逻辑非运算符 ! 的优先级与其他逻辑运算符(&&, ||)和关系运算符相比,是高还是低?在不确定时,推荐使用什么来明确运算顺序?
  7. 逻辑推理: 假设 int age = 20; int salary = 5000;,表达式 age >= 18 && salary > 6000 的结果是 0 还是 1?
  8. 逻辑推理: 假设 int score = 75;,表达式 score < 60 || score >= 90 的结果是 0 还是 1?
  9. 知识回顾: 教程中提到的“短路求值”(虽然未明确用此术语)是指 &&|| 运算符的什么行为特性?(简述即可)
  10. 知识回顾: 本期教程原计划讲解哪三类运算符,但实际只详细讲解了哪两类?

第十期 回顾 - 运算符 (位运算)

  1. 知识回顾: 位运算符主要操作数的数据的哪种表示形式?它能用于浮点数吗?
  2. 知识回顾: &| 分别代表哪两种位运算?
  3. 逻辑推理: 9 & 5 (即 1001 & 0101)的按位与运算结果的十进制值是多少?
  4. 逻辑推理: 9 | 5 (即 1001 | 0101)的按位或运算结果的十进制值是多少?
  5. 知识回顾: ^ 代表哪种位运算?其运算规则是什么?
  6. 知识回顾: 按位取反运算符 ~ 如何操作?对整数 9 进行按位取反 (~9),在教程中(基于 16 位 int 和补码)得到的结果是多少?
  7. 知识回顾: 左移运算符 << 如何操作?右侧空出的位用什么填充?左移 n 位大致相当于乘以多少?
  8. 逻辑推理: 9 << 2 的运算结果是多少?
  9. 知识回顾: 右移运算符 >> 如何操作?对于正数和负数,左侧空出的位填充规则有何不同(这叫什么移位)?
  10. 逻辑推理: 正整数 9 >> 2 的结果是多少?负整数 -10 >> 2 (基于教程中的 16 位补码 -10...1111 0110) 的结果是多少?

第十一期 回顾 - 分支结构 (if)

  1. 知识回顾: CAPL 中 if 语句的条件判断遵循什么规则?(非零...)
  2. 知识回顾: if 语句的三种基本形式是什么?请简述其结构。
  3. 逻辑推理: 在 if (score > 90) { ... } else if (score > 80) { ... } 结构中,如果 score 的值为 95,会执行哪个代码块?else if 部分的条件会被判断吗?为什么?
  4. 知识回顾: 在 ifelse 后面,如果执行体只有一条语句,是否可以省略花括号 {}?教程是否推荐省略?
  5. 逻辑推理: if (0.0) { write("A"); } else { write("B"); } 会输出 "A" 还是 "B"?
  6. 逻辑推理: if (' ') { write("Space"); } 会执行 write 语句吗?为什么?(' ' 代表空格字符)
  7. 知识回顾: 三元运算符的语法结构是怎样的?
  8. 逻辑推理: 语句 int maxVal = (a > b) ? a : b; 的作用是什么?
  9. 逻辑推理: int grade = 75; char level = (grade >= 60) ? 'P' : 'F'; 执行后,level 的值是多少?
  10. 逻辑推理: 对比 if-else if-elseswitch(下一讲内容),if 结构在处理哪类条件时更具优势?(例如范围判断、逻辑组合等)

第十二期 回顾 - 分支结构 (switch)

  1. 知识回顾: switch 语句主要用于判断一个表达式与多个什么类型的值进行相等比较?
  2. 知识回顾: switch 语句中,case 后面跟的值有什么要求?(常量?变量?类型?)
  3. 知识回顾: break 语句在 case 分支中的主要作用是什么?如果省略 break 会发生什么?
  4. 知识回顾: default 分支的作用是什么?它在 switch 语句中是必须的吗?
  5. 逻辑推理: int option = 2; switch(option) { case 1: write("A"); case 2: write("B"); case 3: write("C"); break; default: write("D"); } 这段代码会输出什么?
  6. 逻辑推理: 如何修改上一题的代码,使得当 option 为 2 时,只输出 "B"?
  7. 知识回顾: 如何利用 switch 的贯穿特性来处理多个 case 值对应相同操作的情况?(写出简要结构)
  8. 逻辑推理: float value = 1.0; switch(value) { case 1.0: write("One"); break; } 这段代码在 CAPL 中是否合法?为什么?
  9. 逻辑推理: char key = 'A'; switch(key) { case 'A': write("Start"); break; case 'S': write("Stop"); break; } 这段代码是否合法?
  10. 逻辑推理: 考虑一个场景:根据错误码(整数)显示不同的错误信息。使用 if-else if-elseswitch 哪种结构可能更清晰易读?

第十三期 回顾 - 循环结构 (while, do-while)

  1. 知识回顾: while 循环和 do-while 循环在执行逻辑上的主要区别是什么?哪个循环至少会执行一次循环体?
  2. 知识回顾: while (condition) { ... } 语句中,循环体执行的条件是什么?
  3. 逻辑推理: int count = 5; while (count > 5) { write("Looping"); count--; } 这段代码会输出几次 "Looping"?
  4. 逻辑推理: int count = 5; do { write("Looping"); count--; } while (count > 5); 这段代码会输出几次 "Looping"?
  5. 知识回顾: 在循环体内部使用 break 关键字会产生什么效果?
  6. 知识回顾: 在循环体内部使用 continue 关键字会产生什么效果?
  7. 逻辑推理: 在 while(1) 这样的循环中(条件永远为真),必须使用什么语句才能正常退出循环?
  8. 逻辑推理: int i = 0; while (i < 5) { i++; if (i == 3) continue; write("%d", i); } 这段代码会输出哪些数字?
  9. 逻辑推理: int i = 0; while (i < 5) { i++; if (i == 3) break; write("%d", i); } 这段代码会输出哪些数字?
  10. 知识回顾: 为什么在循环体内部通常需要有能够改变循环条件的语句?是为了避免什么问题?

第十四期 回顾 - 循环结构 (for)

  1. 知识回顾: for 循环语句的基本语法结构包含哪三个部分?用分号分隔。
  2. 知识回顾: 在 for (A; B; C) { D; } 结构中,A、B、C、D 四部分代码的执行顺序大致是怎样的(考虑循环过程)?哪部分只执行一次?
  3. 逻辑推理: for (int i = 0; i < 3; i++) { write("Hi"); } 这段代码会输出几次 "Hi"?
  4. 知识回顾: for 循环括号内的三个部分(初始化、条件、更新)是否都可以省略?如果省略条件部分,意味着什么?
  5. 逻辑推理: for (;;) 是什么循环?如何退出这种循环?
  6. 知识回顾: breakcontinue 关键字能否用在 for 循环中?它们的作用与在 while 循环中相同吗?
  7. 知识回顾: CAPL 的 for 循环与 C 语言的 for 循环在语法上有一个重要的区别,涉及到哪个运算符的使用?
  8. 逻辑推理: 如果想在 CAPL 的 for 循环的更新部分同时对变量 i 加 1 和变量 j 减 1,应该如何书写代码(考虑到 CAPL 的限制)?
  9. 逻辑推理: 对于需要明确循环次数(例如从 1 循环到 100)的情况,使用 for 循环和 while 循环哪个通常更简洁?
  10. 逻辑推理: 在判断质数的例子中,使用 for (i = 2; i < number; i++) 比起上一期使用 while 循环,在代码结构上有什么优势?