第4章基础知识练习(自测)
章前总览 本组题覆盖:运算符、整数除法与取余、复合赋值、表达式求值。先作答再提交;含代码的题目已按完整代码块展示。
怎么用:
- 选择题 30 道 + 判断题 7 道。
- 算表达式时:先括号,再 * / %,后 + -;整数相除取整。
- 错题回到 B20–B23 复习。
每题选一个选项。判断题选「正确」或「错误」。
c + b; 只是表达式,不是赋值语句。
$ 不是 C++ 运算符。
12/3*2=8,再 3+8=11。
a ++ b 写法不合法。
a + b*2 = a+2b,不是 2(a+b)。
a *= 3; 之后,a 的值是( )。a *= 3 即 a = a * 3 → 18。
(a+3)/4*4 是向上对齐到 4 的倍数;a 已是倍数时保持不变。
#include <iostream>
using namespace std;
int main() {
int a = 10, b = 20;
a = ________; // 填空
b = a / 100;
a = a % 100;
cout << a << " " << b << endl;
return 0;
}填 b*100+a 得 2010;再 /100 与 %100 拆成 20 和 10。
C++ 没有 ** 乘方运算符。
^ 是按位异或,不是平方。
4*23/4 = 92/4 = 23。
a %= 4; 之后,a 的值是( )。6%4=2。
#include <iostream>
using namespace std;
int main() {
int a = 10, b = 20;
a = ________; // 填空
b = a + b;
a = b - a;
cout << a << " " << b << endl;
return 0;
}填 a-b 得 -10;再 b=10、a=20,输出 20 10。
% 要求整数操作数,不能对 2.5 取余。
3*3%10=9,10-9=1。
1*3+5=8。
cout << \"5%2=\" << 5 % 2,输出的是( )。字符串原样输出 5%2=,再输出 5%2 的结果 1。
3*3/5=9/5=1,再 3-1=2。
N%3 最大 2,N%7 最大 6,和最大 8。
printf(\"5%%2={%d}\n\", 5 % 2),输出的是( )。%% 输出一个 % 号;%d 输出 1。
9/4=2,6%4=2,2-2*10=−18。
先乘后减:10-6=4。
10/3+10%3 = 3+1 = 4。
printf(\"6%2={%d}\", 6%2); 执行后的输出是( )。格式串中单独的 % 需写成 %% 才会输出百分号;本题按常见考点,输出 6%2={0}。
2/3+2%3 = 0+2 = 2。
cout << 7%3 << ' ' << "7%3" << ' ' << "7%3={7%3}";先输出 1,再原样输出两个字符串。
边长 +1,周长 +4;A/B/C 没有真正改变 a。
16/4=4,4%2=0。
12%3+12/5 = 0+2 = 2。
int first, second; cout << "请输入第1个正整数:"; cin >> first; cout << "请输入第2个正整数:"; cin >> second; cout << (first / second * second) << endl;
整数除法 100/200=0,再乘 200 仍为 0。
乘除取余优先于加减。
整数除法取整为 9。
27%10=7。
// 开始行注释,实际相当于 N += 8/4。
恰巧相等不能说明可互相替换。
二者都是 2(仅就此表达式而言)。
(2N)%N = 0,不是 2。
1 易混提醒
提交后可对照。
高频陷阱
- 整数除法先取整:100/200=0。
^不是平方;**不是 C++ 乘方。%只能用于整数。- 复合赋值右边像带括号:
z -= 5+2→z-(5+2)。
你会用算术运算与取余解决买书、时间、星期等问题。
回顾清单:
✓ + - * / % ++ --
✓ 整数商与余数
✓ += %= 等复合赋值
✓ 表达式优先级
下一章将进入浮点型与字符型数据,让程序能处理小数和单个字符。