Initial commit: C++ courseware

This commit is contained in:
xiaolinquan committed 2026-11-05 22:51:02 +08:00
commit 4a4ee7c287
1789 files changed
+373489

No files matched your search

@@ -0,0 +1,27 @@
### C++ if 条件分支 课后习题 - **答案**
#### **一、 填空题**
1. 顺序结构
2. 分支结构
3. 条件 (或 条件表达式)
4. `true` (真),`false` (假)
5. 有且仅有
6. `==`,`=`
#### **二、 单项选择题**
1. C 2. A 3. B 4. D 5. A 6. B 7. B 8. C 9. A 10. C
#### **三、 判断题**
1. √
2. √
3. √
4. × (两者是互斥的,只能执行一个)
5. × (判断相等必须用 `==`)
6. √
7. √
8. × (这个是单向判断,用 `if` 就足够了)
9. √
10. √
@@ -0,0 +1,83 @@
### C++ if 条件分支 课后习题
姓名: \_\_\_\_\_\_\_\_\_\_\_\_\_
#### **一、 填空题**
1. 程序从上到下、一条一条依次执行的结构,叫做\_\_\_\_\_\_\_\_\_\_\_\_\_结构。
2. 能够根据不同的情况做出不同反应的程序结构,叫做\_\_\_\_\_\_\_\_\_\_\_\_\_结构。
3. `if` 语句它会根据括号中的\_\_\_\_\_\_\_\_\_\_\_\_\_,来决定接下来该走哪条路。
4. `if (条件表达式)` 中,`条件表达式`的最终计算结果必须是一个布尔值,即\_\_\_\_\_\_\_\_\_\_\_\_\_或\_\_\_\_\_\_\_\_\_\_\_\_\_。
5. `if-else` 结构是“有你没我”的互斥关系,程序在一次判断中,\_\_\_\_\_\_\_\_\_\_\_\_\_(填写 **可能** 或 **有且仅有**)会有一个代码块被执行。
6. 在C++中,用来**判断**两个值是否相等的运算符是\_\_\_\_\_\_\_\_\_\_\_\_\_,用来**赋值**的运算符是\_\_\_\_\_\_\_\_\_\_\_\_\_。
#### **二、 单项选择题**
( ) 1. 如果说顺序结构是一条单行道,那么分支结构就像是程序中的什么?
A. 停车场 B. 收费站 C. 十字路口 D. 加油站
( ) 2. 观察下面的代码,当输入的 `score` 为 95 时,会输出什么?
```cpp
if (score >= 90) {
cout << "优秀";
}
```
A. 优秀 B. 良好 C. 95 D. 什么都不输出
( ) 3. 观察下面的代码,当输入的 `score` 为 85 时,会输出什么?
```cpp
if (score >= 90) {
cout << "优秀";
} else {
cout << "继续努力";
}
```
A. 优秀 B. 继续努力 C. 85 D. 什么都不输出
( ) 4. 要判断一个数 `n` 是不是偶数,`if` 括号中的条件表达式应该怎么写?
A. `n % 2 == 1` B. `n % 2 = 0` C. `n / 2 == 0` D. `n % 2 == 0`
( ) 5. 在C++中,`if` 括号里的条件如果是 `if (100)`,计算机会把它当作什么来处理?
A. `true` (真) B. `false` (假) C. 语法错误 D. 0
( ) 6. 在书本P37页 例3-5 洛谷团队系统的案例中,本地配置 `n` 道题的总时间是?
A. `11 + 3 * n` B. `5 * n` C. `3 * n` D. `11 + 5 * n`
( ) 7. `if` 语句和 `if-else` 语句的主要区别是什么?
A. `if` 只能判断一次,`if-else` 可以判断多次
B. `if` 只管条件成立做什么,`if-else` 还管条件不成立做什么
C. `if` 比 `if-else` 运行速度快
D. `if` 后面必须有大括号,`if-else` 不用
( ) 8. 下面的代码存在一个错误,它会导致什么后果?
```cpp
int password = 123;
if (password = 456) {
cout << "登录成功";
}
```
​ A. 程序无法编译 B. 条件判断永远为假 (false)
​ C. 条件判断永远为真 (true) D. 程序会崩溃
( ) 9. 在 `if-else` 结构中,如果 `if` 后面的条件为 `true`,程序会怎么执行?
A. 只执行 `if` 的代码块
B. 只执行 `else` 的代码块
C. `if` 和 `else` 的代码块都执行
D. `if` 和 `else` 的代码块都不执行
( ) 10. “如果明天下雨,我就待在家里,否则我就去公园。” 这句话最适合用哪种程序结构来描述?
A. 顺序结构 B. `if` 语句
C. `if-else` 语句 D. 循环结构
#### **三、 判断题 (对的打“√”,错的打“×”)**
( ) 1. 我们之前写的从上到下依次执行的代码,都属于顺序结构。
( ) 2. `if` 语句可以在 C++ 中实现分支结构。
( ) 3. `if (score >= 60)` 这个括号里的 `score >= 60` 是一个关系表达式。
( ) 4. 在 `if-else` 结构中,`if` 部分和 `else` 部分的代码可能会同时被执行。
( ) 5. 在判断一个数 `x` 是否等于10时,应该写成 `if (x = 10)`。
( ) 6. 在C++中,任何非零的整数在 `if` 的条件中都会被当作 `true`。
( ) 7. `if (a != b)` 这个条件是用来判断变量 `a` 和 `b` 的值是否不相等。
( ) 8. “如果我的零花钱超过20元,我就去买一个冰淇淋。” 这个逻辑只能用 `if-else` 实现。
( ) 9. 在“判断奇偶数”的案例中,如果一个数不是偶数,那么它一定是奇数。
( ) 10. `if` 语句可以让我们的程序变得更智能,能够根据不同情况做出反应。
@@ -0,0 +1,28 @@
### C++ if 条件分支实战演练 课后习题 - **答案**
#### **一、 填空题**
1. 分岔点 条件语句 数量 关系 逻辑代码
2. `&&`
3. `if-else`
4. `||`
5. 字符 (`char`)
6. `ch - '0'`
7. `(year % 4 == 0 && year % 100 != 0) || year % 400 == 0`
#### **二、 单项选择题**
1. A 2. C 3. C 4. B 5. B 6. C 7. C 8. C(还没讲if-else if -else) 9. B 10. C
#### **三、 判断题**
1. √
2. × (错误的,`<= 80` 前缺少了 `score`)
3. √ (例如计算器案例中,`+ - * /` 就是四种独立的情况)
4. × (正好相反,先用数学公式计算,再用`if`来验证结果是否合理)
5. √
6. √ (这是良好的代码风格)
7. × (因为使用的是多个独立的 `if`,程序会依次检查每一个 `if` 条件)
8. √
9. √
10. √
@@ -0,0 +1,66 @@
### C++ if 条件分支实战演练 课后习题
姓名: \_\_\_\_\_\_\_\_\_\_\_\_\_
#### **一、 填空题**
1. **解决条件判断问题的模板**的第一步是:找到需要程序做出选择的\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_。第二步是:写出判断分岔点的\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_。第三步是:根据分岔点的\_\_\_\_\_\_\_\_\_\_\_\_\_和\_\_\_\_\_\_\_\_\_\_\_\_\_选择合适的 `if` 分支语句。第四步是:实现各分支的\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_。
2. 在C++中,要表达“`score`在70到80之间(含边界)”这个条件,正确的代码是 `score >= 70` \_\_\_\_\_\_\_\_\_\_\_\_\_ `score <= 80`。
3. 要判断一个数是“奇数”还是“偶数”,这是一个“二选一”问题,应该使用\_\_\_\_\_\_\_\_\_\_\_\_\_结构。
4. 在“景点门票”案例中,半价的条件是“年龄小于等于6”**或者**“年龄大于等于60”,这里的“或者”应该用逻辑运算符\_\_\_\_\_\_\_\_\_\_\_\_\_来表示。
5. 在“简单计算器”案例中,需要输入例如 `5+3` 这种格式的数据,那么 `cin >> num1 >> ch >> num2;` 这行代码可以依次读入一个整数、一个\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_(填一种数据类型)和一个整数。
6. 在判断字符 `ch` 是否为数字时,我们可以通过表达式\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_将数字字符(如`'5'`)转换为它对应的整数数字(如`5`)。
7. 闰年的判断规则是:`year` 能被4整除**并且**不能被100整除,**或者**能被400整除。请写出它的条件表达式:\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
#### **二、 单项选择题**
( ) 1. “如果一个数是3的倍数,就输出‘Yes’,否则什么也不做。”这个逻辑最适合用哪种结构?
A. 一个 `if` 语句结构 B. `if-else` 结构 C. 多个 `if` 结构 D. 顺序结构
( ) 2. 判断一个字符 `ch` 是否为小写英文字母,正确的条件表达式是?
A. `ch >= 'a' || ch <= 'z'` B. `ch > 'a' && ch < 'z'`
C. `ch >= 'a' && ch <= 'z'` D. `ch == 'a'`
( ) 3. 在“简单计算器”案例中,如果想判断用户是否想做减法运算,`if` 的条件应该写成(`ch` 是字符类型变量,储存了运算符,例如`+-*/`)?
A. `ch = '-'` B. `ch == "-"` C. `ch == '-'` D. `ch != '-'`
( ) 4. 在数学中 `70 <= score <= 80` 是正确的,但在C++中这种写法是错误的,因为它会先计算什么?
A. `score <= 80` B. `70 <= score` C. `70 <= 80` D. 整个表达式一起计算
( ) 5. 在“鸡兔同笼”问题中,我们推断出无解的三个条件是“鸡的数量为小数”、“鸡的数量为负数”、“兔的数量为负数”。我们需要判断结果是否无解,那么这三个条件之间应该用什么逻辑运算符连接?
A. `&&` (并且) B. `||` (或者) C. `!` (非) D. `==` (等于)
( ) 6. 在“景点门票”的例子中,景点的票价为50元/人,一个6岁的孩子和一个60岁的老人去买票,根据条件 `age <= 6 || age >= 60`,他们的票价分别是多少?
A. 25元 和 50元 B. 50元 和 25元 C. 25元 和 25元 D. 50元 和 50元
( ) 7. 要判断“一个数 `x` 同时是3和5的倍数”,正确的表达式是?
A. `x % 3 == 0 || x % 5 == 0`
B. `x % 3 && x % 5 == 0`
C. `x % 3 == 0 && x % 5 == 0`
D. `x % 15 != 0`
( ) 8. “输入一个整数,如果是正数,输出‘Positive’;如果是负数,输出‘Negative’;如果是0,输出‘Zero’。” 这个问题最好用什么结构来解决?
A. 一个 `if` B. 一个 `if-else` C. 多个独立的 `if` D. `if-else if-else` 结构
( ) 9. 给出三角形的三条边长 L1、L2、L3 输出判断能否构成三角形。如果三条边长分别是 `L1=3, L2=4, L3=8`,程序判断的结果应该是?
A. 可以构成三角形,因为三条边都是正数
B. 不可以构成三角形,因为 `L1 + L2` 不大于 `L3`
C. 可以构成三角形,因为 `L1 + L3` 大于 `L2`
D. 不可以构成三角形,因为三条边不一样长
( ) 10. 在构建复杂的逻辑表达式时,如果搞不清楚 `&&` 和 `||` 的优先级,最好的习惯是什么?
A. 把 `&&` 写在前面 B. 把 `||` 写在前面
C. 使用括号 `()` 来明确指定运算顺序 D. 查阅C++手册
#### **三、 判断题 (对的打“√”,错的打“×”)**
( ) 1. 解决条件判断问题,可以套用四步解题模板。
( ) 2. `if(score >= 70 && <= 80)` 是一个合法的C++判断语句。
( ) 3. 多个独立的 `if` 语句可适用于处理几种互不相关的条件。
( ) 4. 在“鸡兔同笼”问题中,`if` 语句主要用来进行数学计算,而不是合理性验证。
( ) 5. 判断“一个数 `x` 是奇数”的条件是 `x % 2 != 0`。
( ) 6. 为了让代码更清晰易读,`if` 和 `else` 后面大括号里的语句应该向内缩进。
( ) 7. 在“简单计算器”的例子中,如果输入的是 `5+3`,程序在执行完加法的 `if` 语句后,就不会再去判断后面的减法、乘法、除法的 `if` 语句了。
( ) 8. 构成三角形的条件是“任意两边之和大于第三边”,所以三个“大于”条件必须同时满足,应该用 `&&` 连接。
( ) 9. 解决条件判断问题的步骤之一是将生活中的语言翻译成计算机能懂的条件表达式。
( ) 10. “判断一个英文字符是元音还是辅音”是一个“二选一”问题,适合用 `if-else` 结构。