Files

75 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 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`。