第8章基础知识练习(自测)
章前总览 覆盖:关系/逻辑表达式、De Morgan、优先级、区间与闰年相关判断。先作答再提交;含代码题已完整展示。
怎么用:
- 选择题 16 道 + 判断题 9 道。
- 注意:不要写 a=b 当比较;不要写 a<b<c。
- 错题回到 B42–B45 复习。
每题选一个选项。判断题选「正确」或「错误」。
(1>1)||1 → false||true → true。A、B、D 均为 false。
奇数时 a%2=1,!(1) 为 false。A、B 为 true;D 的值为 1。
两边都非 0 即 a&&b。B、C 实际是“至少一个非 0”(或)。
由 A≥B≥C:若有严格下降则 A>C;若 B=C 则后半为真。总为 true。
德摩根:非“两者都为 0”= 至少一个非 0。C、D 是“且”。
a%=2 后奇数变成 1(非 0)、偶数变成 0,与要求相反。
出现 3.0 后整式向 double 提升,结果类型为 double。
a==b==0 先算 a==b 再和 0 比;a=b=0 时得到 false。
!(a||b) 表示 a、b 都为假(0)。C 在正负抵消时会误判。
(2-1)&&(2%10) → 1&&2 → true,值为 1。
2<4 已为真;且 !x<z 即 0<6 也为真。其余为假。
int P;
printf("请输入正整数P: ");
scanf("%d", &P);
if (P % 3 || P % 7)
printf("第5行代码%d, %d", P % 3, P % 7);
else
printf("第7行代码%2d", P % 3 && P % 7);scanf %d 只读入 14;14%3=2、14%7=0,条件为真,输出第5行代码2, 0。
先算 3*2=6,再 12-6=6,再 6&&2 → 1。
cin >> N;
if (_____________)
cout << "能被3整除的偶数" << endl;
else
cout << "其他情形" << endl;偶数且能被 3 整除:余数都为 0。
true 参与运算按 1 计:1*2=2。
for (int i = 0; i < 100; i++)
if _______________________
cout << i << " ";C 要求 i%7==0,不是余 2。
余数为 0 即整除,是 4 的倍数。
条件可为 int 等:非 0 为真,0 为假。
对 int,a/4==2 恰好对应 a=8,9,10,11。
a=b 是赋值;判断相等要用 a==b。
a%4==2 表示除以 4 余 2(如 2、6、10),不是“是否偶数”。
!!N 只可能是 0 或 1,不等于一般的 N。
这些标量类型之间可以进行比较(会按规则转换)。
(a<b)<c → (0)<3 → true,并非逻辑假。
2e-1=0.2<1 为真,输出 1 而不是 0。