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,74 @@
## C++ 整数提取与格式化输入输出 课后习题
姓名: \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
#### **一、 填空题**
1. C++ 中,获取一个整数个位数的“提取器”是 `% 10`,砍掉个位数的“削减器”是 \_\_\_\_\_\__\_\_\_\_。
2. 表达式 `456 % 10` 的计算结果是 `6`,表达式 `456 / 10` 的计算结果是 \_\_\_\_\_\_\_\_\_\_\_。
3. 要使用 `printf` 和 `scanf`,必须在代码顶部包含头文件 `#include <________________>`。
4. 在使用 `scanf` 读取数据时,必须在变量名前面加上符号 \_\_\_\_\_\_\_\_,它叫做取地址符。
5. 格式说明符 `%d` 用来对应 `int` 类型的整数,`%c` 用来对应 `char` 类型的字符,而 `%lf` 用来对应 \_\_\_\_\_\_\_\_ 类型的变量。
6. 阅读代码 `printf("User ID: %d", 99);`,它的输出结果是:\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_。
7. 如果想用 `printf` 输出一个浮点数,并严格保留 `1` 位小数,应该使用的格式说明符是 \_\_\_\_\_\_\_\_\_\_\_。
8. `int n = 87; printf("%d", n % 10);` 这段代码的输出结果是 \_\_\_\_\_\_\_\_\_\_\_。
9. `int n; scanf("%d", &n);` 如果用户输入 `123`,那么表达式 `n / 100` 的结果是 \_\_\_\_\_\_\_\_\_\_\_。
10. 表达式 `(528 / 10) % 10`它的计算结果是 \_\_\_\_\_\_\_\_\_\_\_。
#### **二、 单项选择题**
( ) 1. 为了获取整数 `921` 的个位数 `1`,应该使用哪个表达式?
A. `921 / 10` B. `921 % 10` C. `921 / 100` D. `921 % 100`
( ) 2. 下列哪条语句可以**正确**地用 `printf` 输出整数变量 `score` 的值?
A. `printf(score);` B. `printf("score");`
C. `printf("%d", score);` D. `printf("%d", &score);`
( ) 3. 下列哪条语句可以**正确**地用 `scanf` 读取一个整数并存入变量 `age` 中?
A. `scanf("%d", age);` B. `scanf("%c", &age);`
C. `scanf("%d", &age);` D. `scanf("%d", &age)`
( ) 4. `int a = 5, b = 2;`,`printf("结果是%d", a / b);` 的输出是?
A. `结果是2.5` B. `结果是2` C. `结果是%d` D. `结果是3`
( ) 5. `int n = 73; n = n / 10;` 执行后,`n` 的值变成了?
A. `73` B. `7` C. `3` D. `7.3`
( ) 6. 忘记在 `scanf` 的变量前加 `&` 符号,最可能导致什么后果?
A. 程序正常运行 B. 程序会卡住
C. 程序在运行时会崩溃或读入错误数据 D. 电脑会蓝屏
( ) 7. `int num; scanf("%d", &num);` 如果用户输入 `365`,那么 `printf("%d", (num/10)%10);` 会输出什么?
A. `3` B. `6` C. `5` D. `36`
( ) 8. 要输出一个浮点数并保留两位小数,应该用哪个格式说明符?
A. `%f` B. `%.2f` C. `%2f` D. `%d.2`
( ) 9. 拆分一个正整数 `n` 的所有位的通用步骤是?
A. 不断地:先用 `/ 10` 削减,再用 `% 10` 提取
B. 不断地:先用 `% 10` 提取,再用 `/ 10` 削减
C. 只需不断地 `/ 10`
D. 只需不断地 `% 10`
( ) 10. `int x=8, y=3; printf("%d %d", x/y, x%y);` 的输出结果是?
A. `2.66 2` B. `2 2` C. `3 2` D. `2 3`
#### **三、 判断题 (对的打“√”,错的打“×”)**
( ) 1. 运算符 `/` 是用来求余数的,运算符 `%` 是用来做除法的。
( ) 2. `printf` 中的占位符(如 `%d`)和后面的变量,它们的顺序和类型都必须一一对应。
( ) 3. `scanf("%d,%d", &a, &b);` 是一个安全的写法,用户输入 `10 20` 就能正确读取。
( ) 4. 对于任何正整数 `n`,`n / 10` 都能去掉它的个位数。
( ) 5. `printf` 和 `scanf` 都是 C++ 自带的核心功能,不需要包含任何头文件。
( ) 6. 整数 `5 % 10` 的结果是 `5`。
( ) 7. `printf` 只能输出一个变量,不能同时输出多个。
( ) 8. 拆分整数 `520` 时,`520 % 10` 的结果是 `0`。