B19
第3章基础知识练习(自测)
引入
章前总览 本组题覆盖:输入输出设备、cin 读入、变量交换、printf/scanf 常识。先作答再提交查看解析。
怎么用:
- 选择题 9 道 + 判断题 6 道。
- 交换题优先想“临时变量三步”。
- 错题回到 B15–B18 对应小节复习。
第3章自测
每题选一个选项。判断题选「正确」或「错误」。
1. 以下不属于计算机输入设备的有( )。
音箱是输出设备;键盘、鼠标、传感器多为输入。
2. 如果输入数据为 99 和 100,下列代码的输出结果为( )。
#include <iostream>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
a = a + b;
b = a - b;
a = a - b;
cout << a << " " << b << endl;
return 0;
}加减法完成交换:先 a=199,再 b=99,再 a=100,输出 100 99。
3. 在下列代码的横线处填写( ),可以使得输出是“20 10”。
#include <iostream>
using namespace std;
int main() {
int a = 10, b = 20;
_________ // 在此处填入代码
cout << a << " " << b << endl;
return 0;
}标准临时变量交换。A 会丢掉原 a;C 的赋值顺序错误,得不到正确交换。
4. 执行下面的 C++ 代码,输出的是( )。
int a = 1;
printf("a+1=%d\n", a+1);格式串里等号后没有空格,再输出 2。
5. 在 C++ 中,下面可以完成数据输入的语句是( )。
scanf 用于输入;printf/cout 用于输出。
6. 对整型变量 i,执行 C++ 语句
cin >> i, cout << i; 时如果输入 5+2,下述说法正确的是( )。cin 读整数时遇到 + 停止,i 得到 5,再原样输出。
7. 成功执行下面的 C++ 代码,从键盘上输入 5,按 Enter 键;再输入 2,按 Enter 键,输出的是( )。
cin >> a; cin >> b; cout << a + b;
题目已说明“成功执行”,回车也是空白符,可分隔输入;a=5、b=2,输出两者之和 7。
8. 下面 C++ 语句( )执行后的输出是
__ 0322$$。%02d 把 3 格式化为 03,%2d 输出 22,整体为 __ 0322$$。
9. 下面 C++ 代码执行后的输出是( )。
int N = 10;
printf("{N}*{N}={%d*%d}", N, N, N * N);printf 不会替换花括号里的 N;两个 %d 依次输出 N、N。
判断 1. 在 C++ 中,不能用 scanf 作为变量名。
scanf 不是关键字,理论上可作标识符(但不推荐)。
判断 2. 在 C++ 中,语句 printf("%d#%d&",2,3); 执行后输出的是 2#3&。
按格式串原样插入分隔符输出。
判断 3. 在 C++ 中,函数 scanf() 必须含有参数,且其参数为字符串型字面量,其功能是提示输入。
scanf 主要用于按格式读入数据,不是“提示输入”的专用函数。
判断 4. 在 C++ 中,cin 是一个合法的变量名。
cin 不是关键字;但起名 cin 极易冲突,实际不要用。
判断 5. 在 C++ 中,整型变量 N 被赋值为 5,语句 printf("%d*2",N); 执行后将输出 10。
会输出 5*2,不会自动做乘法。
判断 6. X 是 C++ 语言的基本类型变量,则语句 cin>>X, cout <<X; 能接收键盘输入并原样输出。
典型的输入后原样回显。
1 易混提醒
提交后可对照。
高频陷阱
- 音箱是输出设备,不是输入设备。
- 交换必须先备份:
tmp=a; a=b; b=tmp; cin读整数时,5+2只会读到 5。printf按格式输出,不会“自动算”格式串里的文字乘法。
第3章收官
你会:用 cin 读入、按 IPO 解题、交换两个变量。
回顾清单:
✓ IPO:输入 → 处理 → 输出
✓ cin >> a >> b;
✓ 临时变量交换
✓ 空白符可分隔多次输入
✓
里程碑达成:
下一章进入「数据的运算」:学会整数除法、取余,以及买书、时间、星期等真题解法。