当前课程知识点:C语言程序设计(上) >  数据计算实现与顺序结构程序设计(一) >  2.2 关系运算的C程序实现 >  2.2.3关系运算优先级

返回《C语言程序设计(上)》慕课在线视频课程列表

2.2.3关系运算优先级 在线视频

2.2.3关系运算优先级

下一节:2.2.4 用关系运算做判断条件

返回《C语言程序设计(上)》慕课在线视频列表

2.2.3关系运算优先级 课程教案、知识点、字幕

关系运算里边

关系运算符有六个

它们有没有优先级

我们看是有的

关系运算符的前四个

大于 大于等于 小于 小于等于

级别是一样的

它们的级别比谁高

比不等于和恒等于的级别要高

但是总体来说是这样

比如说我们看这个式子

在这个式子里边

有一个恒等的比较

也有一个大于等于的比较

优先级是哪个高 大于等于

当然先算它

X大于等于90吗

如果按我们刚才说的X是58的话

NO 这个比较的结果是0

那现在说A恒等于0吗

A刚才给的是多少 80

当然不等了

所以这个式子的结果是0

也就说A的80

和这个关系运算的结果0去比较

比如说刚才我们看到的这个例题

在这个例题里边

我们说它的优先级应该是怎么样

我现在的变化是

把里边的括弧取掉了

这个括弧取掉以后

A的值还是3吗

大家考虑这个括弧取掉了以后

是不是这个优先级就发生了变化

大家看一下这个式子

I加上J 会先去做相加吗

不是

算式运算符里

加和求余那是谁的级别高呢

求余的级别高

那是先求余呢

还是算先说4不等于0吗

是先哪个

总体上是这样子

关系运算符

比算术运算符的优先级是要低的

所有的关系运算符

比算术运算符的优先级要低

所以在这个里边我们是说

加和求余都是算术运算符

一定是先做它们的

但是先做加还是先做求余

求余的级别高

所以先求余

还是我们刚才说的

7和4求余得3

那下来就是I加上3不等于0吗

先做谁呢 当然先做加法

i是2加上3是5

5不等于0吗

YES 不等于0

A的值是什么

A的值就不是3

A的值就是1

所以

我们看去掉了一个括弧

使它的优先级发生了变化

这里边大家要记住的是什么

记住的是说关系运算的优先级

是高于赋值运算的

比如说

我们在这个式子里边

最终是你要把这个算式的结果

赋值给A

而不是说我把I先赋值给A

如果赋值运算符的优先级高的话

那就是说先把I赋值给A

是因为赋值运算符的优先级别

在我们前面讨论过的运算里边

它是最低的

所以它是要把

等号后边所有式子的结果求出值来

才能赋值给它

所以它的优先级是最低的

对于关系运算符和赋值相比

关系运算符比它高

但是比算术运算符低

比如说我们再看一个给A赋值

赋谁 赋这边这个式子

这边这个式子是说

18大于5吗

再后边也是一个大于

再后边也是一个小于

再后边是相除

按照我们刚才的说法

大家心里想想

这个C里边是先判断18大于5吗

还是先判断说1除以2

在许多语言里边它是这样

按优先级算术优先级的级别高

那它就会先去做1除以2

但是C不是

C里边永远都是从前向后算

算到这一步有没有障碍

怎么叫有没有障碍

比如说18大于5吗

它后边紧接着是大于

这两个大于号是同级的

它们是同级

如果说

5后边不是一个大于号

5后边是一个加

这件事就不一样了

也就说18大于5吗

这个大于号的优先级

比这个加的优先级低

那就应该先算的是

比如说

我们把这个式子改成了这样子

大家看

这个情况就不同了

大家看这个式子

我们现在说

我这一块要做先做这个双目运算

还是先做5加1的双目运算呢

它们之间起了冲突

是 这时候就要比优先级

那我一定是先做加法的

那这时候C先来做5加1得6

然后下边比较的是说

18大于6吗

大家会不会说你先做完加法

你为什么不再去做除法呢

C的游戏规则永远是从前向后的

我们刚才说过

它走这一步

它为什么不先做这个

关系比较而去做加法

是因为它走不动了

是这两个运算符起了冲突

大于和加起了冲突

所以

这个优先级高先做加法

这个加完了以后

再剩下的运算符就是大于小于

没有冲突了

所以它就先比较大于

说18大于6吗 YES

比较的结果是真的真的值是1

那现在说

1小于1除以2吗

这冲突了

你要做小于又有除

那是除的优先级高

所以先做除

1除以2得什么

得0.5吗

这前面我们强调过整数相除要小心

1除以2的结果

不是0.5是0

小数扔掉了

因为你是两个整型数做运算

所以是0

那现在是说这个结果是0

前边刚才比较的结果是1

1小于0吗

当然不是了

整个这个式子的结果

现在的结果是0

那赋值给A的是0

我们刚才说

如果不是这样子

我这是一个大于号

那情况就不一样了

大家看如果我是大于号的话

它是这样

这个是大于这个是大于它俩是平级

那去算18大于5吗 YES

得真值1

接下来是1大于1吗

要去做这个比较吗

是看后边是谁

后边是小于

它俩也是同级

大于和小于都是同级

当然先做这个

那1大于1吗

不是 那就得0

前面这个结果0

0小于后边的东西吗

后边的东西有冲突吗 有

后边的东西是除法吗

先算除法

除得的结果我们刚才说了是0

0小于0吗 NO

那结果是假

运算的结果是假

A的值是0

我们这样得到的A的值是0

但是运算过程里边

优先级是不一样的

所以

我们说这个

如果是关系运算和算术运算

混合在一起

和赋值运算混合在一起的时候

大家注意原则是

算术运算优先

下来是关系运算

最后才是赋值运算

而在算术运算里边是

乘除和求余是同一级的

高于加减

而在关系运算里边

大于 大于等于 小于 小于等于

这四种运算级别是高于不等于

在关系比较问题

以及它的C语言表达里边

优先级是一个非常重要的一个方面

把一个实际问题

实际需要关系比较的问题

表达成一个

C语言的关系表达式

在这个过程里正确表达的关键是说

你的优先级要掌握好

好 这块结束

C语言程序设计(上)课程列表:

从问题到C语言程序设计

-1.1 计算机的问题求解方法

--1.1.1--程序设计面向的问题

--1.1.2--关于计算

--1.1.3-1关于算法-算法的特征

--1.1.3-2关于算法——算法的表示

--1.1.3-3关于算法——算法的优化

--1.1.4-1-程序设计方法

--1.1.4-2-程序设计方法

--讨论题:数学模型

-1.1 计算机的问题求解方法--作业

-1.2 C语言与C程序

--1.2.1-1-C概述

--1.2.1-2-C概述

--1.2.2-C初步

--讨论题:运算符

-1.3 C语言处理系统与程序调试运行

--1.3.1C程序如何调试运行

--1.3.2常用C语言处理系统

--1.3.3DEVC++的使用-v1

--1.3.4C语言概貌小程序

--例程

-1.4 程序中的人机交互

--1.4 printf用法

--1.4.2 scanf的用法

--例程

--作业讨论区

数据计算实现与顺序结构程序设计(一)

-2.1 算术运算的C程序实现

--2.1.1 第二章

--2.1.2 C语言算术表达式概念

--2.1.3 算术运算的实现

--2.1.4 整数相除

--2.1.5 输入格式造成的计算错误

--2.1.6 求余运算

--2.1.7 自增自减运算

--2.1.8 复合运算

--fangcheng.c

--fangcheng-1.c

--fangcheng-2.c

--fangcheng-3.c

--fangcheng-4.c

--算术混合运算.c

--讨论题:自增自减符

--讨论题:程序输出结果

--讨论题:程序运行结果

-2.1 算术运算的C程序实现--作业

-2.2 关系运算的C程序实现

--2.2.1 关系比较问题

--2.2.2 C语言关系表达式

--2.2.3关系运算优先级

--2.2.4 用关系运算做判断条件

--2.2.5 程序实例

--2.2.6 字符比较

--bukao.c

--pingshifen-1.c

--panduanzhengshu.c

--pingshifen-2.c

--字符比较.c

--讨论题:比较大小

--讨论题:程序的运行

-2.2 关系运算的C程序实现--作业

-第二周作业--作业

数据计算实现与顺序结构程序设计(二)

-2.3 逻辑运算的C程序实现

--2.3.1 逻辑运算问题~1

--2.3.2 逻辑运算表达式

--2.3.3 如何判断闰年

--2.3.4 逻辑运算优先级

--2.3.5 条件运算符

--计算结合性

--2.3.7 一个简单实例

--闰年.c

--自动购票问题.c

--讨论题:逻辑表达式

-2.3 逻辑运算的C程序实现--作业

-2.4 位运算的C程序实现

--2.4.1 什么是位运算

--2.4.2 位运算有哪些

--2.4.3 位运算怎么用

--讨论题:位运算

-2.5 几种很个别的运算

--2.5 几个很个别的运算

--讨论题

--讨论题

-2.5 几种很个别的运算--作业

-2.6 混合运算及数据类型转换

--2.6 混合运算及数据类型转换

--讨论题:数据类型

-2.7 顺序结构程序实例

--2.7.1 第一个程序:三角形

--Video

--三角形面积.c

--讨论题:工业产值

--讨论题:程序无效结果

-2.7 顺序结构程序实例--作业

选择结构的程序设计

-3.1 程序中的路径选择实现

--3.1.1_1 第三章

--3.1.1_2 神奇的if_else

--打印学生成绩.c

--一元二次方程.c

-3.1 程序中的路径选择实现--作业

-3.2 路径中的再选择——嵌套判断

--3.2.1_1 if语句的嵌套

--3.2.1_2三个数排序1029

--例程

--3.2.2 用户登录检查

--三个数排序_未优化.c

--三个数排序_优化.c

--讨论题:程序改错

-3.2 路径中的再选择——嵌套判断--作业

-3.3 复杂判断问题的C程序设计

--3.3 多级选择

--银行存款.c

--讨论题:多级选择

-3.4 多分支问题的C程序设计

--3.4.1 switch语句表达式

--3.4.2 加减乘除计算

--3.4.3 几类说明

--加减乘除运算.c

--讨论题:关于switch

-3.4 多分支问题的C程序设计--作业

-3.5 GOTO的适当使用

--3.5 GOTO的适当使用

-3.6 选择结构的程序实例

--3.6 程序展示

--计算第几天.c

--存款利息__switch实现.c

--讨论题:输出奇数

--讨论题:计算税金

-3.6 选择结构的程序实例--作业

-第四周作业--作业

循环结构的程序设计(一)

-4.1 需要重复执行的程序

--4.1.1----第四章~1

--4.1.2---while实现先判断后循环~1

--4.1.3----while循环的应用-录入速度~1

--求和.c

--打印学生成绩.c

--统计录入速度.c

--求平均数.c

-4.1 需要重复执行的程序--作业

-4.2 至少要执行一次的循环

--4.2.1至少要执行一次的循环

--4.2.2-do-while循环应用

--成绩录入_do while实现.c

--n的阶乘.c

--字符分类统计.c

--讨论题:关于while

-4.2 至少要执行一次的循环--作业

-4.3 已知循环次数用for语句

--4.3.1--用for语句控制循环次数

--4.3.2--循环的应用-求和

--求和问题.c

--斐波那契数列问题.c

--数列求和.c

--讨论题:循环语句的不同

--讨论题:循环语句

-4.3 已知循环次数用for语句--作业

-4.4 循环控制——简单循环应用

--4.4.1-循环的应用-找数-水仙花数

--4.4.2--循环的应用-求素数

--水仙花数.c

--讨论题:死循环

--讨论题:continue和break

--讨论题:猜数字

-循环结构的程序设计(一)--4.4 循环控制——简单循环应用

循环结构的程序设计(二)

-4.5 循环的嵌套

--4.5.1 循环的嵌套——九九乘法表

--4.5.2 循环的嵌套——打印三角形

--打印九九乘法表.c

--打印实心三角图案.c

--打印空心三角图案.c

--讨论题:程序运行

-4.5 循环的嵌套--作业

-4.6 break与continue

--4.6 循环中断与继续循环——break再讨论

--最大素数.c

--求正数个数及平均数.c

-4.6 break与continue--作业

-4.7 循环的综合应用

--4.7.1 数的排列组合问题

--4.7.2 循环综合应用——穷举算法

--4.7.3 循环综合应用——满足条件的数

--4.7.4 循环综合应用——求最后三位数

--4.7.5 循环综合应用——打印空心图案

--数的排列组合.c

--数的排列组合优化.c

--鸡兔同笼.c

--找满足条件的数.c

--输出14的13次方的最后三位数.c

--打印空心字符.c

--讨论题:打印图形

--讨论题:打印空心图形

--讨论题:计算闰年

-第六周作业

--虚拟实验:循环程序设计实验

-第六周作业--作业

数组(一)

-5.1 同类有序数据处理问题

--5.1.0 数组开篇

--5.1.1 同类有序数据存储问题

--讨论题:下标变量与下标

-5.2 一维数组的定义和引用

--5.2.1_1 数组的定义~1

--5.2.1_2 数组的初始化

--5.2.2 一维数组的输入输出

--5.2.3 一维数组的应用1--成绩排序(选择法)~2

--5.2.4 一维数组的应用2--Fibonacci数列

--数组定义.c

--数组初始化.c

--输出大于平均值的数.c

--反向输出.c

--选择法_成绩排序.c

--求斐波那契数列前n项.c

--讨论题:对称数

--讨论题:关于'\0'

-5.2 一维数组的定义和引用--作业

-5.3 一维字符串数组

--5.3 一维字符串数组11.24~1

--用函数测试字符串长度.c

--讨论题:编程

-5.4 字符串处理函数

--5.4 字符数组的输入与输出

--字符串反向.c

--字符串函数

--讨论题:程序如何运行

--讨论题:黑色星期五

数组(二)

-5.5 二维数组的定义与使用

--5.5 二维数组定义

--二维数组的定义与初始化.c

-5.6 二维数组的输入输出

--5.6 二维数组的输入与输出

--二位数组输出_矩阵输出.c

--讨论题:随机数据存储

-5.6 二维数组的输入输出--作业

-5.7 二维数组的应用‍

--5.7.1二维数组的应用-转置矩阵

--5.7.2 用一维数组方式引用二维数组元素

--转置矩阵.c

--找二维数组最大数.c

--讨论题:修改程序

--讨论题:关于随机数函数 rand()

-5.8 二维字符数组

--5.8 单词排序

--单词排序.c

--讨论题:回文字符串

-5.8 二维字符数组--作业

-5.9 数组综合应用

--5.9.1 应用1——学生成绩统计

--统计成绩.c

--5.9.2 应用2——删除重复字符

--删除串中的重复字符串

--5.9.3 应用3——统计字符

--5.9_4数组的应用4--矩阵相乘

--统计字符次数.c

--讨论题:洗牌

-本期课程结束语

--end

-第八周编程作业

--虚拟实验:冒泡排序算法程序设计实验

期末复习

-《C语言程序设计(上)》期末复习参考

--html

期末复习答案

-《C语言程序设计(上)》期末复习参考答案

--html

2.2.3关系运算优先级 笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。