3.8 KiB
C++ 整数提取与格式化输入输出 课后习题
姓名: ___________________
一、 填空题
-
C++ 中,获取一个整数个位数的“提取器”是
% 10,砍掉个位数的“削减器”是 ___________。 -
表达式
456 % 10的计算结果是6,表达式456 / 10的计算结果是 ___________。 -
要使用
printf和scanf,必须在代码顶部包含头文件#include <________________>。 -
在使用
scanf读取数据时,必须在变量名前面加上符号 ________,它叫做取地址符。 -
格式说明符
%d用来对应int类型的整数,%c用来对应char类型的字符,而%lf用来对应 ________ 类型的变量。 -
阅读代码
printf("User ID: %d", 99);,它的输出结果是:________________。 -
如果想用
printf输出一个浮点数,并严格保留1位小数,应该使用的格式说明符是 ___________。 -
int n = 87; printf("%d", n % 10);这段代码的输出结果是 ___________。 -
int n; scanf("%d", &n);如果用户输入123,那么表达式n / 100的结果是 ___________。 -
表达式
(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。