C程序设计内容与例题讲解 -- 第四章--选择结构程序设计(第五版)谭浩强
前言:在第三章我们介绍了顺序结构程序设计。在顺序结构中,各个语句是按自上而下的顺序执行的,执行完上一个语句就自动执行下一个语句,是无条件的,不必做任何判断。是这最简单的程序结构。实际上,在很多情况下,需要根据某个条件是否满足来决定是否执行指定的操作任务。
目录标题
- 4.1 选择结构和条件判断
- 4.2 用if语句实现选择结构
- 4.2.2 if语句的一般形式
- 4.3 关系运算符和关系表达式
- 4.3.2 关系表达式
- 4.4 逻辑运算符和逻辑表达式
- 4.5 条件运算符与条件表达式
4.1 选择结构和条件判断
在现实生活中需要进行判断和选择的情况是很多的。如:从北京出发上高速公路,到一个岔路口,有两个出口,一个是去上海方向,另一个是沈阳方向。驾车者到此处必须进行判断,根据自己的目的地,从二者中选择一条路径。如下图
C语言有两种选择语句:
- if语句,用来实现两个分支的选择结构。
- switch语句,用来实现多分支的选择结构。
当然我们看例题来帮助我们来理解这些语句
例题:找出比较俩个数中的较大值
int main()
{int a = 0;int b = 0;scanf("%d %d", &a, &b);if (a > b){printf("较大值是a = %d\n", a);}else{printf("较大值是b = %d\n", b);}return 0;
}
运行结果:

*
4.2 用if语句实现选择结构
从刚刚的例子我们不难看出,在C语言中选择结构主要是用if语句实现的。为了更进一步了解if语句的应用,下面再举两个简单的例子。
例题1:输入两个数,按由小到大的顺序输出这两个数。
int main()
{int a = 0;int b = 0;scanf("%d%d", &a, &b);if (a > b){printf("%d %d", a, b);}else{printf("%d %d", b, a);}return 0;
}
运行结果:

例题2:输入3个数a,b,c按要求由小到大输出。
int main()
{int a = 0;int b = 0;int c = 0;int m = 0;scanf("%d%d%d", &a, &b,&c);//从小到大输出if (a > b){m = a;a = b;b = m;}if (a > c){m = a;a = c;c = m;}if (b > c){m = b;b = c;c = m;}printf("%d %d %d \n", a, b, c);return 0;
}
运行结果:

4.2.2 if语句的一般形式
通过上面3个简单的例子,可以初步知道怎样使用if语句去实现选择结构。
if语句的一般形式如下:
if (表达式) 语句1
[ else 语句2]
根据if语句的一般形式,if语句可以写成不同的形式,最常用的由以下3种形式:

4.3 关系运算符和关系表达式
在C语言中,比较符(或称比较运算符)称为关系运算符。
C语言提供了6种关系运算符:
① < (小于)
② <= (小于等于)
③ > (大于)
④ >= (大于或等于)
⑤ == (等于等于)
⑥ !=(不等于)
4.3.2 关系表达式
用关系运算符将两个数值或者数值表达式连接起来的式子,称为关系表达式。例如:a > b, a + b > b + c, (a = 3) > (b = 5)
4.4 逻辑运算符和逻辑表达式
| 运算符 | 含义 |
|---|---|
| && | 逻辑与(AND),a&&b如果a和b都为真,结果为真,否则为假 |
| ! | 逻辑非!a 如果a为假则!a为真,如果a为真,则!a为假 |
| || | 逻辑或 a||b |
4.5 条件运算符与条件表达式
条件表达式的一般形式为:
表达式1? 表达式2: 表达式3
他的执行过程如下图所示:

例题:输入一个字符,判别它是否为大写字母,如果是,将它转成小写字母,如果不是,不转换。然后输出最后得到的字符。
int main()
{char ch;scanf("%c", &ch);ch = (ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch;printf("%c\n", ch);return 0;
}
运行结果:
好了今天的内容就讲到这里了,如果有讲的不好的地方希望各位多多指出!谢谢各位观看
相关文章:
C程序设计内容与例题讲解 -- 第四章--选择结构程序设计(第五版)谭浩强
前言:在第三章我们介绍了顺序结构程序设计。在顺序结构中,各个语句是按自上而下的顺序执行的,执行完上一个语句就自动执行下一个语句,是无条件的,不必做任何判断。是这最简单的程序结构。实际上,在很多情况…...
Blued引流脚本
于多数人来说,引流都是一个比较困难的操作,因为流量不会听你的。所以任何人在网上做生意,或者开一个实体店,都会为流量而发愁,其实对于流量的吸引来说,我们越是刻意为之,可能所获得的效果也越不…...
数据结构之美:如何优化搜索和排序算法
文章目录 搜索算法的优化1. 二分搜索2. 哈希表 排序算法的优化1. 快速排序2. 归并排序 总结 🎉欢迎来到数据结构学习专栏~数据结构之美:如何优化搜索和排序算法 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒🍹✨博客主页:IT陈寒的博客&#x…...
Unity 鼠标悬浮时文本滚动(Text Mesh Pro)
效果 直接将脚本挂载在Text Mesh Pro上,但是需要滚动的文本必须在Scroll View中,否侧会定位错误,还需要给Scroll View中看需求添加垂直或者水平布局的组件 代码 using System.Collections; using System.Collections.Generic; using UnityE…...
GNN PyG~torch_geometric 学习理解
目录 1. PyG Introduction 2. PyG Installation 2.1 PyG 安装常见错误及原因 2.2 PyG 具体安装步骤 3. torch_geometric packages torch_geometric.data.Data Dataset 与 DataLoader Dropout、BatchNorm 3. torch_geometric: 理解edge_index 3.1 理解 mini-batch edg…...
ChatGPT 调教指南:从 PDF 提取标题并保存
一、请使用python编写一段代码,使用pymupdf包从pdf中提取标题,保存标题名称和页数。 我没有加任何的答案提示,看看 GPT 如何反应。它应该是知道 PDF 没有任何语义信息,一切标题或者正文全是文本框。 好的,以下是使用py…...
【day10.01】使用select实现服务器并发
用select实现服务器并发: linuxlinux:~/study/1001$ cat server.c #include <myhead.h>#define ERR_MSG(msg) do{\printf("%d\n",__LINE__);\perror(msg);\ }while(0)#define PORT 8880#define IP "192.168.31.38"int main(int argc, c…...
Android修行手册 - Activity 在 Java 和 Kotlin 中怎么写构造参数
点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&…...
【IPC 通信】信号处理接口 Signal API(7)
收发信号思想是 Linux 程序设计特性之一,一个信号可以认为是一种软中断,通过用来向进程通知异步事件。 本文讲述的 信号处理内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解信号编程。 exit(5) 遵循 C11, POSI…...
springboot和vue:十二、VueRouter(动态路由)+导航守卫
VueRouter的简介 VueRouter是官方的路由插件,适合单页面应用/网页的切换。VueRouter目前有3.x版本和4.x版本,3.x版本只能结合vue2使用,4.x版本只能结合vue3使用。安装:npm install vue-router3 目的 初始版本:我们想…...
文心一言 VS 讯飞星火 VS chatgpt (103)-- 算法导论10.1 1题
一、用go语言,仿照图 10-1,画图表示依次执行操作 PUSH(S,4)、PUSH(S,1)、PUSH(S,3)、POP(S)、PUSH(S,8)和 POP(S)每一步的结果,栈 S初始为空,存储于数组 S[1…6]中。 文心一言&…...
【ShaderLab罪恶装备卡通角色_二次元风格_“Sol Badguy“_角色渲染(第二篇)】
罪恶装备背德之炎卡通角色_二次元风格_Unity 角色渲染 角色初始效果:基础渲染SimpleBas 资源分析模型顶点颜色: 贴图资源SOL_base_基础色块效果:其中SOL_base_A通道的效果: SOL_ilm:如下SOL_ilm模型上区域分布- 左到右…...
raw智能照片处理工具DxO PureRAW mac介绍
DxO PureRAW Mac版是一款raw智能照片处理工具,该软件采用了智能技术,以解决影响所有RAW文件的七个问题:去马赛克,降噪,波纹,变形,色差,不想要的渐晕,以及缺乏清晰度。 Dx…...
1.centos7 安装显卡驱动、cuda、cudnn
安装conda 参考 python包 2.安装conda python库-CSDN博客3.Cenots Swin-Transformer-Object-Detection环境配置-CSDN博客 1.安装显卡驱动 步骤1:安装依赖 yum -y install kernel-devel yum -y install epel-release yum -y install gcc 步骤2:查询显…...
WordPress主题开发( 十四)之—— 主题开发示例
要深入了解WordPress主题开发的最佳实践和标准,参考主题示例是一种非常有效的方法。在这里,我们将介绍两个主题示例:默认的Twenty主题和Underscores主题,它们都是出色的学习资源。 默认“Twenty”主题 自WordPress 3.0版本开始&a…...
rust学习-any中的downcast和downcast_ref
背景 看rust官方文档,好奇Any和Go的Any是否是一回事,看到下文的一行代码,了解下它的功能 pub trait Any: static {// Required methodfn type_id(&self) -> TypeId; }std::any 用于 dynamic typing 或者 type reflection 模拟动态类型的trait。 大多数类型都实现 …...
js检测数据类型总结
目录 一、typeof 二、instanceof 三、constructor 四、Object.prototype.toString.call() Object.prototype.toString.call(obj)类型检测原理 五、__proto__ 六、 其他 一、typeof typeof在对值类型number、string、boolean 、symbol、 undefined、 function的反应是精准…...
获奖作品展示 | 2023嵌入式大赛AidLux系列作品精彩纷呈
第六届(2023)全国大学生嵌入式芯片与系统设计竞赛应用赛道全国总决赛已于8月下旬圆满结束。 本届赛事中,AidLux是广和通5G智能物联网赛题的唯一软件支持,阿加犀为该赛题学生们提供了全程线上辅导、技术答疑,以及大赛专…...
Mybatis 二级缓存(使用Redis作为二级缓存)
上一篇我们介绍了mybatis中二级缓存的使用,本篇我们在此基础上介绍Mybatis中如何使用Redis作为二级缓存。 如果您对mybatis中二级缓存的使用不太了解,建议您先进行了解后再阅读本篇,可以参考: Mybatis 二级缓存https://blog.csd…...
VMware vSphere ESXI 6.7 U3封装RTL8125B网卡驱动
之前的教程VMware vSphere ESXI 6.7 U3最新版本封装网卡驱动补丁可参考,本文为此文章的又一次实践 准备工作 1、ESXi-Customizer-PS-v2.6.0.ps1 (官网下载,Github下载) 2、ESXi670-202210001.zip (VMware vSphere Hy…...
Angular Signal Forms:以状态为先,革新表单验证、UI 更新与状态管理
Angular Signal Forms:为表单管理引入以状态为先的模型表单通常是前端应用中状态最复杂的部分,负责捕获用户输入、运行验证逻辑、跟踪交互状态,并协调更改在 UI 中传播。随着表单规模增大,保持内容同步所需代码量会迅速增加。Angu…...
为什么你的双色调总像PPT?揭秘Midjourney v6中未公开的--tint权重衰减算法与Gamma校准阈值
更多请点击: https://kaifayun.com 第一章:双色调视觉失真的本质归因 双色调视觉失真并非单纯由显示设备或图像压缩引发的表层现象,其根本源于人眼视锥细胞响应函数与数字色彩空间映射之间的结构性不匹配。当图像被强制量化为仅含两种色调&a…...
fastapi · FastAPI framework, high performance, easy to learn, fast to code, ready for production
fastapi FastAPI framework, high performance, easy to learn, fast to code, ready for production 本文整理自 GitHub,经重新整理编辑。 FastAPI framework, high performance, easy to learn, fast to code, ready for production Documentation: https://fas…...
Agentic Search能替代GraphRAG吗,结论清晰了
2024 年 GraphRAG 爆火以来,「要不要建图」成了 RAG 系统设计中最常被讨论的决策。建图能显著提升多跳推理性能,但代价高昂——实体抽取、图谱构建、索引维护,每一步都是真金白银。 与此同时,agentic search 系统快速崛起——Sear…...
全球化2.0 | ZStack亮相印尼云计算与数据中心大会 以新一代云底座助力数字印尼建设
近日,由 W.Media 主办的印尼云计算和数据中心大会(Indonesia Cloud & Data Center Convention 2026)在雅加达举行。云轴科技 ZStack受邀参会,与来自印尼及国际数据中心行业的专业人士共同探讨企业云底座的最新进展与未来趋势。…...
宣传片微电影制作拍摄
荣誉见证实力・匠心铸就品牌|国隆映像传媒,6 年深耕乌鲁木齐,斩获全国影像盛典、脱贫攻坚、文旅代言等多项大奖,为企事业单位提供一站式影视制作服务。...
夜色 galgame官方正版2026最新版pc免费下载(看到请立即转存 资源随时失效)手机版通用
下载链接、 解压密码:WWW.FZGAMER.COM 《夜色》(Muse:Night Out):基于图像解密与非对称博弈的独立派对游戏解析 在第一人称射击、硬核动作或竞技音游占据主流市场的当下,专注于“非对称信息传递”与“图像…...
YOLO格式标注避坑指南:用labelImg时,你的classes.txt文件生成对了吗?
YOLO格式标注避坑指南:labelImg中classes.txt的隐藏逻辑与实战解决方案 在计算机视觉项目的实际开发中,数据标注的质量往往直接决定了模型性能的上限。许多团队花费大量时间标注数据后,却在模型训练阶段遭遇"标签ID不匹配"、"…...
为Claude Code配置Taotoken解决密钥被封与Token不足的烦恼
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为Claude Code配置Taotoken解决密钥被封与Token不足的烦恼 应用场景类,聚焦于使用Claude Code的编程助手用户ÿ…...
智慧树自动刷课插件:3分钟完成安装的终极学习效率工具
智慧树自动刷课插件:3分钟完成安装的终极学习效率工具 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为智慧树平台繁琐的视频学习而烦恼吗?…...


