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,37 @@
### **C++ `cin` 输入 课后习题 - 答案**
#### **一、 填空题**
1. Console Input (或 控制台输入)
2. `>>` , 提取运算符
3. 输入 , 处理
4. 暂停 (或 阻塞)
5. 空格 , 回车
6. 定义
7. 放进
#### **二、 单项选择题**
1. **D**. `cin` 的核心就是获取键盘输入。
2. **C**. `cin` 使用提取运算符 `>>`,方向是从 `cin` 流向变量。
3. **C**. 链式输入使用 `>>` 连接多个变量。
4. **C**. `cin` 默认使用空白字符(空格、回车等)作为分隔符,逗号不是空白字符,无法正确分割。
5. **B**. `cin` 使得程序可以处理运行时才给定的数据,变得通用和灵活。
6. **B**. 程序先定义变量,然后通过 `cin` 获取值,再进行计算和输出,是完整的“输入-处理-输出”流程。
7. **C**. 两种写法在功能上完全相同,都能读取两个变量,但链式写法更为常用和简洁。
8. **B**. 程序能运行但结果不对,说明语法正确(不是CE),但计算或处理的思路(逻辑)错了。
9. **B**. `cin >> a;` 只会读取一个整数。它读到 `5`,遇到空格,就认为第一个数的输入结束了,所以 `a` 的值是 `5`。`6` 会留在输入缓冲区中等待下一次 `cin` 读取。
10. **C**. `int a, b;` 定义变量,`cin >> a >> b;` 使程序暂停,等待输入。
#### **三、 判断题**
1. × ( `c` 代表 "Console" (控制台)。)
2. √ (必须先准备好“抽屉”,才能往里面放东西。)
3. √ (`cin` 是输入,`cout` 是输出,方向和作用都相反。)
4. √ (`cin` 在读取数据前会跳过所有空白字符。)
5. × (回车也是一种空白分隔符,所以可以一个数字一行,分两行输入。)
6. √ (这是讲义中强调的程序设计基本结构。)
7. √ (这正是引入 `cin` 的核心价值。)
8. × (讲义中的6步法强调,应该先整理思路,再翻译成代码。)
9. √ (提取运算符 `>>` 的作用就是将读取到的值赋给变量。)
10. × ( `cout` 应该使用插入运算符 `<<`,正确的写法是 `cout << "请输入一个数字";`。)
@@ -0,0 +1,95 @@
### **C++ `cin` 输入 课后习题**
姓名: \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
#### **一、 填空题**
1. 在C++中,`cin` 是 \_\_\_\_\_\_\_\_\_\_\_\_\_\_ 的英文缩写,它的主要作用是接收用户的键盘输入。
2. `cin` 使用的运算符是 \_\_\_\_\_\_\_\_\_\_,这个运算符被称为 \_\_\_\_\_\_\_\_\_\_,它的箭头方向形象地表示数据从键盘流向变量。
3. 一个有输入功能的程序,其基本流程可以分为三个步骤:\_\_\_\_\_\_\_\_\_\_、处理和输出。
4. 当程序执行到 `cin >> a;` 语句时,会\_\_\_\_\_\_\_\_\_\_运行,并等待用户输入数据。
5. `cin` 通过空白字符来区分多个输入数据,最常见的两种空白字符是\_\_\_\_\_\_\_\_\_\_和\_\_\_\_\_\_\_\_\_\_。
6. 在使用 `cin >> num;` 之前,必须先\_\_\_\_\_\_\_\_\_\_变量 `num`,为输入的数据准备好存放空间。
7. 讲义中用生活中的例子做比喻,把变量比作“抽屉”,那么 `cin` 的作用就是把外面的数据\_\_\_\_\_\_\_\_\_\_“抽屉”里。
#### **二、 单项选择题**
( &nbsp; ) 1. 在C++中,`cin` 的核心功能是什么?
A. 在屏幕上打印文字和符号
B. 让程序暂停指定的时间
C. 定义新的变量类型
D. 从键盘读取数据并存入变量
( &nbsp; ) 2. 下面哪条语句可以正确地从键盘读取一个整数并存放到变量 `score` 中?
A. `cin << score;`
B. `cout >> score;`
C. `cin >> score;`
D. `cout << score;`
( &nbsp; ) 3. 如果要用一条语句连续读取用户的两个整数,分别存入变量 `width` 和 `height`,应该怎么写?
A. `cin >> width, height;`
B. `cin >> width; height;`
C. `cin >> width >> height;`
D. `cin << width << height;`
( &nbsp; ) 4. 对于语句 `cin >> x >> y;`,用户在键盘上**不正确**的输入方式是?
A. 输入 `10`,按空格键,再输入 `20`,按回车键
B. 输入 `10`,按回车键,再输入 `20`,按回车键
C. 输入 `10,20`,按回车键
D. 输入 `10`,按多个空格键,再输入 `20`,按回车键
( &nbsp; ) 5. `cin` 这个工具主要解决了程序中的什么根本性问题?
A. 计算速度太慢的问题
B. 只能计算和处理“写死”在代码里的固定数据的问题
C. 无法输出中文的问题
D. 代码必须从 `main` 函数开始的问题
( &nbsp; ) 6. 阅读以下代码,它的功能是什么?
```cpp
int base, height;
cin >> base >> height;
int area = base * height / 2;
cout << area;
```
​ A. 计算一个固定三角形的面积
​ B. 输入两个整数作为底和高,然后计算并输出三角形的面积
​ C. 只输入两个整数,不进行任何计算
​ D. 这段代码有语法错误,无法运行
( &nbsp; ) 7. `cin >> a; cin >> b;` 和 `cin >> a >> b;` 这两种写法是什么关系?
A. 前者正确,后者错误
B. 两者功能完全不同
C. 两者功能等价,但后者更简洁
D. 后者正确,前者错误
( &nbsp; ) 8. 编程的6个步骤中,如果在“输入测试数据,验证结果”时发现输出与预期不符,这通常说明发生了什么错误?
A. 语法错误
B. 逻辑错误
C. 编译错误
D. 硬件故障
( &nbsp; ) 9. 假如程序是 `int a; cin >> a;`,而用户输入了 `5 6` 然后按回车,那么变量 `a` 中存储的值是多少?
A. 56
B. 5
C. 6
D. 11
( &nbsp; ) 10. `int a, b; cin >> a >> b;` 这两行代码执行时,程序的行为是?
A. 立刻计算 a+b 的值
B. 在屏幕上输出 a 和 b
C. 定义了两个变量,然后暂停等待用户输入两个由空白字符隔开的数据
D. 定义了两个变量,然后程序直接结束
#### **三、 判断题 (对的打“√”,错的打“×”)**
1. `cin` 的 `c` 代表 "C++",`in` 代表 "input"。 ( &nbsp; )
2. 必须先定义变量,然后才能使用 `cin` 把数据存入这个变量。 ( &nbsp; )
3. `cin` 使用的运算符是 `>>`,`cout` 使用的运算符是 `<<`,两者方向相反,作用也相反。 ( &nbsp; )
4. `cin` 会自动忽略输入数据前多余的空格、Tab键或回车。 ( &nbsp; )
5. 如果写 `cin >> x >> y;`,用户必须在同一行内输入两个数字,不能换行输入。 ( &nbsp; )
6. “输入 -> 处理 -> 输出”是解决编程题目的三个基本步骤。 ( &nbsp; )
7. 一个好的程序应该通过 `cin` 接收用户的任意合法输入,而不是每次都让用户去修改源代码。 ( &nbsp; )
8. 在分析一个编程问题时,正确的做法是先动手写代码,再边写边想思路。 ( &nbsp; )
9. `cin >> a;` 这行代码执行后,变量 `a` 的值就变成了用户刚刚从键盘输入的值。 ( &nbsp; )
10. `cout >> "请输入一个数字";` 这行代码是正确的。 ( &nbsp; )