首页/新闻资讯/正文详情

第5章 选择结构程序设计

发布时间:2026/11/8 8:16:41 来源:云帆数科 栏目:资讯中心
第5章 选择结构程序设计
if语句的三种形式单分支、双分支、多分支else if链。if的嵌套与else 与最近 if 配对规则。条件运算符?:构成的三目表达式。switch语句的结构、执行流程、case标签要求、default的摆放。C 语言没有布尔类型C99前条件判断中非 0 为真、0 为假关系/逻辑表达式结果为1真或0假。else与离它最近的、尚未配对的if配对缩进格式不影响配对关系只有{}能改变。switch(表达式)的表达式类型为整型含char其各个case标签必须是整型常量表达式不能是变量default子句可放在任何位置不一定在最后。switch遇break立即跳出没有break则贯穿执行后续所有case与default直到switch结束。条件运算符exp1 ? exp2 : exp3优先级仅高于赋值运算符与逗号运算符结合方向自右向左如a b ? a : c d ? c : d等价于a b ? a :(c d ? c : d)。if判断实型数据避免直接判等浮点误差可能使0.1 0.2 0.3为假应判断误差范围如fabs(x) 1e-6。三、!!! 辨析错误是什么 / 正确是什么!!! 1悬空 else——else 配对错误期望else与外层if配对实际配给了内层if。int a 1, b 2;if (a 1)if (b 3) printf(A);else // 这个 else 实际与内层 if (b3) 配对printf(B);// 执行结果什么都不输出a1 真 → 进入外层b3 假 → 执行 else错// 实际else 属于内层 ifb3 为假时执行 printf(B)正确是什么用花括号明确归属关系。if (a 1) {if (b 3) printf(A);} else {printf(B); // 明确属于外层 if}!!! 2switch的case标签写成变量或实型int n 2;switch (n) {case 1.5: ... // 错误case 标签必须是整型常量表达式case n: ... //错误不能是变量哪怕它此刻是常量值}正确是什么case后只能是整型常量含字符常量、#define宏或常量表达式。#define TWO 2switch (n) {case 1 1: ... // 正确常量表达式case TWO: ... // 正确宏替换后仍是常量case A: ... // 正确字符常量按 ASCII 整数值处理}!!! 3switch漏写break造成贯穿switch (2) {case 1: printf(一);case 2: printf(二); // 漏写 breakcase 3: printf(三);}// 输出二三错误地贯穿到 case 3正确是什么每个分支末尾加break跳出switch。switch (2) {case 1: printf(一); break;case 2: printf(二); break;case 3: printf(三); break;default: printf(其他); break;}// 输出二!!! 4if条件中把赋值当判断强调选择结构场景if (flag 0) { ... }恒为假if (ch A) { ... }恒为真且修改了ch——逻辑被悄悄改变。正确是什么判断用把常量写到左边可以防错if (0 flag)一旦写成编译直接报错。??? 1switch语句中表达式的结果类型为 ______。任意类型或实型——switch只能对离散的整型值分支实型float/double不能作switch表达式。正确是什么整型含字符型字符按 ASCII 码处理。注意枚举类型本质也是整型可用于switch。??? 2if (a 3, b 5) printf(ok);能否输出 ok______。答不能因为if里不能用逗号或答输出a3,b5——混淆了逗号表达式与多个判断。正确是什么填能输出。(a 3, b 5)是逗号表达式先执行a3再执行b5整个表达式取最后一项的值5非0为真故输出ok。若把逗号换成if (a 3 b 5)则是另一种先算3 (b5)且a 3部分语法错——考试中逗号表达式作if条件是经典陷阱。if (0, 0) // 结果0假不执行if (0, 100) // 结果100真执行这里括号里是逗号表达式逗号运算符规则从左往右依次执行 a3再执行 b5整个逗号表达式的值 最右边表达式的值也就是 5C 语言里非 0 即为真5 是真值条件成立执行 printf(ok);??? 3以下程序的运行结果是 ______。int x 1, y 2;if (x y)if (x 3) printf(A);else printf(B);答输出B——凭缩进直觉以为else属于外层if (x y)。C语言的配对规则与缩进无关else与最近的未配对 if配对即内层if (x 3)。于是内层if-else整体成为外层if的子语句外层条件1 2为假该子语句被整体跳过。正确是什么填什么都不输出。若确实想让else属于外层if必须用花括号限定if (x y){if (x 3) printf(A);} else {printf(B); // 加 {} 后才属于外层 if此时才输出 B}int a 2, b 3, c 4;执行if (a b) if (b c) c a; a b; b c;后a、b、c依次为___2 3 2___。if (x 0) y 1; else y -1;不等价的语句是___D___。A.y x 0 ? 1 : -1;B.if (x 0) y -1; else y 1;C.y 1; if (x 0) y -1;D.if (x 0) y 1; if (x 0) y -1;标准结论if-else不等价于两个连续 if。if…else互斥分支只会走其中一个两个 if 顺序写是两次独立判断语法结构不等价

相关推荐

usb_serial_generic_register / usb_serial_driver
usb_serial_generic_register / usb_serial_driver

usb_serial_generic_register1. usb_serial_generic_register1.1 usb_serial_device_match2. usb_serial_driver1. usb_serial_generic_register 初始化局部结构体udriver (struct usb_driver)通过 usb_register() 注册 USB 驱动到内核(整个流… · 2026/11/8 8:16:40

【共创稿事节】食材百科页的懒加载改造:LazyForEach、IDataSource 与缓存窗口的三次迭代
【共创稿事节】食材百科页的懒加载改造:LazyForEach、IDataSource 与缓存窗口的三次迭代

健康菜谱助手的食材百科页,最早一版是拿 ForEach 硬渲染的:一千二百多种食材,一进页面全部实例化。开发时用二十条数据测试毫无察觉,真机装上正式数据后,进页面的瞬间掉帧、内存直接涨了四十兆。这篇记录这一页的三次迭代:从 ForEach 到 LazyForEach 的第一次改造、数据源接口设… · 2026/11/3 12:44:46

34 · 两行 GEMV 共享激活,只换来 0.6%:一个反向证明
34 · 两行 GEMV 共享激活,只换来 0.6%:一个反向证明

34 两行 GEMV 共享激活,只换来 0.6%:一个反向证明 本篇对应源码:main/pie_dotprod.S main/kmcu.c 目标:单核 GEMV 只跑到 PSRAM 上限的 66–78%,怀疑是「每行重装激活」的开销。 结论:省掉 12.5% 的指令&… · 2026/11/4 9:58:57

执业持证高压电工证值不值得考?外省证书能转过来吗
执业持证高压电工证值不值得考?外省证书能转过来吗

执业持证高压电工证值不值得考?外省证书能转过来吗 之前考的证在外省能不能转过来?这个问题我听太多人问了,特别是从其他省份过来的学员,最担心的就是证书不能全国通用。其实, 执业持证高压电工证 是国家统一颁发的,属于全国通用的特种作业操作证,… · 2026/11/8 8:16:01

证书过期了不知道怎么复审延期?执业持证高压电工证良心建议全在这儿
证书过期了不知道怎么复审延期?执业持证高压电工证良心建议全在这儿

证书过期了不知道怎么复审延期?执业持证高压电工证良心建议全在这儿 你是不是正盯着手机里那个快到期的高压电工证,心里直打鼓?别慌,这事儿不是你一个人在经历,也不是无解。作为一个在郑州金水区做过三年项目现场管理员的“老电工”,我见过太多人因为证… · 2026/11/8 8:16:01

万能电工作业指导书怎么考?官方报名入口在哪儿找?
万能电工作业指导书怎么考?官方报名入口在哪儿找?

万能电工作业指导书怎么考?官方报名入口在哪儿找? 之前考的证在外省能不能转过来?这是很多电工朋友最关心的问题,特别是在河南施工行业打拼的朋友,常常因为项目跨省而面临证书使用受限的困扰。今天我们就围绕【万能电工作业指导书】这个关键词,结合河南… · 2026/11/8 8:16:01

电工证理论分数比例多久拿证关系到你的上岗机会
电工证理论分数比例多久拿证关系到你的上岗机会

电工证理论分数比例多久拿证关系到你的上岗机会 你是不是正盯着招聘信息上的“持证上岗”四个字发愁?电工证是特种作业人员上岗的“敲门砖”,尤其在建筑、电力、工程等行业,没有电工证就等于没有工作机会。而 电工证理论分数比例 和 多久拿证… · 2026/11/8 8:16:01

江苏无锡电工证考试题值不值得考?看这篇就够了
江苏无锡电工证考试题值不值得考?看这篇就够了

江苏无锡电工证考试题值不值得考?看这篇就够了 你是不是正在为找工作发愁?很多岗位都明确写着“持证上岗”,尤其是像电工这种特种作业岗位,没有电工证根本进不了门。而江苏无锡电工证考试题,是很多求职者心中的“拦路虎”——值不值得考?今天就从一个在… · 2026/11/8 8:16:01

潜江特种工怎么收费 怎么报名能省时省力
潜江特种工怎么收费 怎么报名能省时省力

潜江特种工怎么收费 怎么报名能省时省力 工地太忙根本没时间复习考试,这几乎是每个一线特种作业人员的真实写照。你可能正面临一个选择:是继续在高强度工作中挣扎,还是抓住机会考取一张能改变职业未来的证书?潜江特种工怎么收费?怎么报名才能少走弯路?… · 2026/11/8 8:15:01

电工证丢失还能补吗?千万别踩坑,丢了证等于失业
电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/8 0:00:20

电力电缆作业证直播报名入口与办理流程良心建议
电力电缆作业证直播报名入口与办理流程良心建议

电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/8 0:00:20

英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑

英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/8 0:00:20

电工证丢失还能补吗?千万别踩坑,丢了证等于失业
电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/8 0:00:20

电力电缆作业证直播报名入口与办理流程良心建议
电力电缆作业证直播报名入口与办理流程良心建议

电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/8 0:00:20

英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑

英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/8 0:00:20

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/7 11:25:08

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/7 12:02:18

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/8 1:18:25

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码