当前位置: 首页 > news >正文

C语言lesson6

#选择结构程序设计

一、关系运算符

1.1以“1”代表“真”,以“0”代表“假”(在C的逻辑运算中)

例题1:表达式的结果是0或者1

当a=3,b=2,c=1时
a>b的值为“真”,表达式值为1
(a>b)==c的值为“真”,表达式值为1

b+c>a的值为“假”,表达式值为0

d=a>b则d的值为1
f=a>b>c 则f的值为0

例题2:

非0的数值代表真,0代表假

例题3:优先级: ! (逻辑非)大于&& (逻辑与)大于|| (逻辑或)

!a && b || c

实际运算顺序是:

1. 先算 !a
2. 再算 (!a) && b
3. 最后算 [(!a) && b] || c

很好理解啊,因为!是单目运算符,&&和||是双目

例题4:闰年的判断方法记住

例5:

逻辑表达式可能会没有完全计算

比如这个例题: 左边x已经为假(0)了,因为是&&所以右边的不执行,y数值不变

二、if语句

注意知识点:

```c

if (表达式)

语句

```

这个 表达式 可以是: ·

关系表达式:a > b

逻辑表达式:x && y

算术表达式:a + b

赋值表达式:a = b

甚至直接是一个变量或常量:if(3)、if(x)

例如

重要例题

解析:

1. 第一步:if(num=0)

  • 这是赋值语句:把 0 赋给num

  • 赋值表达式(num=0)的值是0(赋的值)

  • C语言里,if 判断的是表达式的值:0 为假

  • 所以条件为假 → 不执行printf("111")

此时num 已经被赋值为 0


2. 第二步:else if(num)

  • 此时num的值是 0

  • if(num)判断num的值:0 为假

  • 所以条件为假 → 不执行printf("222")


3. 第三步:else if(!num)

  • num= 0

  • !num=!0= 1(真)

  • 条件成立 ✅

  • 执行printf("333")

2.1单分支

格式

if (表达式) { // 语句块 }

2.1.1两个数字比大小

2.1.2三个数字从大到小按顺序输出

解释一下思路:

题目:输入三个成绩 a, b, c,按从高到低输出。

1. 核心思路

我们想让最终:a 是最大的数,b 是中间的数, c 是最小的数

2. 分步解释

第 1 步:确保 a 是 a 和 b 中较大的

```c
if(a < b)
{
t = a; a = b; b = t; // 交换 a 和 b
}
```

如果 a < b,说明 b 比 a 大,交换后 a 变成原来 b 的值(较大的那个)。
如果 a >= b,不交换,a 已经是较大的。

第 2 步:确保 a 是三者中最大的

```c
if(a < c)
{
t = a; a = c; c = t; // 交换 a 和 c
}
```

现在 a 已经是 a、b 中的大者,再跟 c 比。
如果 a < c,说明 c 比 a 还大,交换后 a 变成原来 c 的值(三者中最大的)。
执行完这一步: a 是三者中最大的。

第 3 步:确保 b 是三者中第二大的

```c
if(b < c)
{
t = b; b = c; c = t; // 交换 b 和 c
}
```

此时 a 已经是最大,剩下 b 和 c 要排好顺序。
如果 b < c,说明 b 比 c 小,交换后 b 变成原来 c 的值(两者中较大的)。
执行完这一步:
b 是三者中第二大的,c 是最小的。

2.2双分支

格式

if (表达式) { // 语句块 1 (条件为真时执行) } else { // 语句块 2 (条件为假时执行) }

2.3多分支

格式

if (表达式 1) { // 语句块 1 } else if (表达式 2) { // 语句块 2 } else if (表达式 3) { // 语句块 3 } ... else { // 以上条件都不满足时执行的代码 (可选) }

2.4if嵌套

http://www.jsqmd.com/news/491702/

相关文章:

  • 书匠策AI:问卷设计领域的“匠心”与“智心”之争
  • 2026美国移民机构哪家靠谱?行业资深机构推荐 - 品牌排行榜
  • 核医学防护器材厂家优选:诚信辐射实力稳居第一 - 深度智识库
  • 数据类型之——变量
  • fs-cli连接到不同的freeSwitch
  • 小程序商城制作平台深度剖析:码云数智、有赞、微盟 - 码云数智
  • 用Selenium操控寺庙:香火钱自动分账系统
  • 2026年玻璃钢盐酸储罐厂家推荐:酸碱储罐/卧式储罐/FRP/PP储罐/现场缠绕储罐专业供应 - 品牌推荐官
  • MySQL 索引下推(Index Condition Pushdown, ICP)机制详解
  • 2026年护理考试TOP5押题率高机构最新排名揭晓
  • 计算机毕业设计java基于人脸识别的医疗保险系统的设计与实现 基于面部识别技术的智慧医保服务平台的设计与开发 融合生物特征识别的医疗健康保险管理系统的构建与实现
  • 清洁用具实测电路图两例
  • 2026年聚氨酯同步带厂家推荐榜:同步带、同步带轮的高性价比之选 - 深度智识库
  • javafx中能有异步调用业务方法吗
  • 搜索之DFS
  • 2026年,银川商用饮水机口碑优选|宁夏东立芯诺工厂直营,定制化净水方案更省心 - 宁夏壹山网络
  • AI绘画神器Midjourney全攻略
  • 求解,救命,各路大神
  • 凿岩机的设计图(CAD)
  • Dify+ComfyUI:AI绘画高效指南
  • UniformBuffer使用实践
  • 基于小程序的公园综合服务系统 工具租赁系统
  • 记录下载docker时,提示升级wsl太慢的问题
  • Unity报错?删Library秒解决!
  • 工业制造设备分类全解析
  • 在UOS上调试kwin
  • CoPaw for Windows 桌面版安装与应用指南(一键安装)
  • Windows10安装部署ZLMediaKit
  • 生产级 Redis 避坑指南:从选型决策到全链路内网调通
  • AIGC图像生成核心面试全解析