这份讲义将知识点解析与针对性练习结合在一起,方便你系统性复习。
C++ 关系、逻辑运算与选择结构全程通关讲义
第一部分:关系运算表达式
1. 知识要点
- 运算符:
>(大于),<(小于),>=(大于等于),<=(小于等于),==(等于),!=(不等于)。 - 结果:布尔类型(
bool)。真为1,假为0。 - 优先级:
> , < , >= , <=优先级相同,高于== , !=。 - 经典表达:
- 奇偶判断:
n % 2 == 0(偶数),n % 2 != 0(奇数)。 - 约数判断:
a % b == 0(b 是 a 的约数)。 - 浮点数相等:不能直接用
==。应使用fabs(a - b) < 1e-9。
- 奇偶判断:
2. 随堂练习
Q1. 表达式 5 > 3 == 1 的结果是?
解析:先算
5 > 3结果为1。再算1 == 1结果为1。
Q2. 计算机表达:判断变量 c 是否为小写字母。
答案:
c >= 'a' && c <= 'z'
第二部分:逻辑运算表达式
1. 知识要点
- 运算符:
&&(与/且),||(或),!(非)。 - 优先级:
!>&&>||。 - 整体优先级口诀:“术、系、逻、赋”(算术 > 关系 > 逻辑 > 赋值)。
- 短路逻辑(重点):
A && B:如果 A 为假,不再计算 B。A || B:如果 A 为真,不再计算 B。
- 经典表达:
- 闰年:
(x%4 == 0 && x%100 != 0) || (x%400 == 0)
- 闰年:
2. 随堂练习
Q3. int a=1, b=2, c=3; 执行 (a > b) && (c = 5) 后,c 的值是多少?
解析:
1 > 2为假,&&短路,后面的赋值不执行。c依然是 3。
Q4. 写出“x 不在 [10, 20] 范围内”的计算机表达。
答案:
x < 10 || x > 20或者!(x >= 10 && x <= 20)
第三部分:格式化输入输出 (printf)
1. 知识要点
需要头文件:#include <cstdio>
* 格式符:%d (int), %lf (double), %c (char), %s (字符串)。
* 保留小数:%.3lf (保留3位)。
* 宽度控制:
* %8d:总宽8位,右对齐,空位补空格。
* %08d:总宽8位,右对齐,空位补0。
* %-8d:左对齐。
2. 随堂练习
Q5. 填空:printf("________", 3.14159); 输出结果为 0003.14。
解析:总长度 7 位(含小数点),保留 2 位小数,前补 0。 答案:
%07.2lf
第四部分:if 语句与分支结构
1. 知识要点
- if-else:满足条件执行 A,否则执行 B。
- 三目运算符:
条件 ? 值1 : 值2(if-else 的简写)。 - 打擂台思想:寻找最大值。先假设一个为最大,后面每一个跟它比,赢了就替换。
- switch-case:
- 执行入口匹配
case。 - 注意
break。没有break会产生“穿透”现象。
- 执行入口匹配
2. 随堂练习
Q6. 看程序写结果:
int x = 10, y = 20;
if (x > y)
x += 10;
else
y += 10;
if (x < y) x = 50;
cout << x << " " << y;
解析:第一个 if 失败,执行
y += 10,此时y=30, x=10。第二个 if10 < 30成功,执行x=50。 答案:50 30
第五部分:综合过关测试(模拟考)
1. [单选] 表达式 !(3 + 4 > 6 || 5 < 2) 的值是( )
A. 0
B. 1
C. true
D. 7
2. [填空] 用三目运算符表示:如果 a 大于 b 则返回 a,否则返回 b。 答:________
3. [编程题] 编写一段代码,输入一个百分制分数 s,如果 s >= 60 输出 "Pass",否则输出 "Fail"。(要求使用 if-else)
// 在此处补全代码
4. [分析题] switch 语句中,如果所有的 case 都不匹配,会执行哪个部分?
答:________
答案页
- A (括号内
7 > 6为真,||后面的不再看。!(真)即为0) a > b ? a : b- 如下:
cpp if (s >= 60) { printf("Pass"); } else { printf("Fail"); } - 执行
default后面的语句(如果有的话)。
学习提示:
* 考试坑点:if (a = 5) 是把 5 赋值给 a,结果永远为真;if (a == 5) 才是判断。
* 代码整洁:即使 if 后面只有一条语句,初学者也建议加上 {}。
—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com