《C语言教程》教学资源(PPT课件讲稿)第三讲 运算符与表达式

C语言教程:运算符与表达式 学习目的:在编制算法时,表达 式是十分重要的。通过讲解,使 学生熟悉表达式的书写方式,能 够正确、快速理解复杂表达式
C语言教程:运算符与表达式 学习目的:在编制算法时,表达 式是十分重要的。通过讲解,使 学生熟悉表达式的书写方式,能 够正确、快速理解复杂表达式

运算符与表达式内容介绍 1、算术运算符与算术表达式、强制类型转换运 算符 2、赋值运算符与赋值表达式 3、逗号运算符与逗号表达式 4、关系运算与逻辑运算 5、长度运算符与长度运算表达式 6、位运算
运算符与表达式内容介绍 1、算术运算符与算术表达式、强制类型转换运 算符 2、赋值运算符与赋值表达式 3、逗号运算符与逗号表达式 4、关系运算与逻辑运算 5、长度运算符与长度运算表达式 6、位运算

运算符 鱉运算符概述 ◆运算符的概念 运算符是一种特殊的符号,用以表示数据的运算、赋值、比 较等,一般由1到2个字符组成 ◆运算符的种类 C语言的运算符可分为以下几类: 算术运算符用于各类数值运算。包括取正(+)、取负(-)、 加(+)、减(-)、乘(*)、除()、求余(或称模运算,%)、自增 (++)、自减(-)共七种。 关系运算符用于比较运算。包括大于(>)、小于(=)、小于等于()和不等于(l=)六种 逻辑运算符用于逻辑运算。包括与(&&)、或()、非()三 种
运算符 运算符概述 运算符的概念 运算符是一种特殊的符号,用以表示数据的运算、赋值、比 较等,一般由1到2个字符组成 运算符的种类 C语言的运算符可分为以下几类: • 算术运算符:用于各类数值运算。包括取正(+)、取负( - )、 加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增 (++)、自减(--)共七种。 • 关系运算符:用于比较运算。包括大于(>)、小于(=)、小于等于(<=)和不等于(!=)六种。 • 逻辑运算符:用于逻辑运算。包括与(&&)、或(||)、非(!)三 种

运算符 位操作运算符:参与运算的量,按二进制位进行运算。包括 位与(&)、位或()、位非()、位异或()、左移(>)六种。 赋值运算符用于赋值运算,分为简单赋值(=)、复合算术 赋值(+=-=*=/=%=)和复合位运算赋值(&=,,=,>=,<<=) 三类共十一种 条件运算符这是一个三目运算符,用于条件求值(? 逗号运算符用于把若干表达式组合成一个表达式(,)。 指针运算符用于取内容(*)和取地址(&)二种运算。 ·求字节数运算符用于计算数据类型所占的字节数( (Sizeof) 特殊运算符:有括号(,下标,成员(→,)等几种
运算符 • 位操作运算符:参与运算的量,按二进制位进行运算。包括 位与(&)、位或(|)、位非(~)、位异或(^)、左移(>)六种。 • 赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术 赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=) 三类共十一种。 • 条件运算符:这是一个三目运算符,用于条件求值(?:)。 • 逗号运算符:用于把若干表达式组合成一个表达式(,)。 • 指针运算符:用于取内容(*)和取地址(&)二种运算。 • 求字节数运算符:用于计算数据类型所占的字节数(sizeof)。 • 特殊运算符:有括号(),下标[],成员(→,.)等几种

运算符 ◆运算符的优先级和结合性 运算符的优先级(运算符相邻时谁先运算)(见下页) 1+3*5、1+2+3 运算符的结合性(解决优先级相同的情况下,谁先运算的问题) ◆左结合性:从左到右的次序运算,大部分均是 右结合性:从右到左的次序运算,常见的有: !、~、艹+、--、-、(类型)、*、&、 sizeof、?:、赋 值 举例:i=5;-i+
运算符 运算符的优先级和结合性 • 运算符的优先级(运算符相邻时谁先运算)(见下页) 1+3*5、1+2+3 • 运算符的结合性(解决优先级相同的情况下,谁先运算的问题) ⬧ 左结合性:从左到右的次序运算,大部分均是 ⬧ 右结合性:从右到左的次序运算,常见的有: !、~、++、- -、-、( 类型)、 * 、&、sizeof、? :、赋 值 举例:i=5 ; - i++

附: Turbo c运算符的优先级 O(小括号)可(数组下标)·(结构成员)一(指针型结构成员)!最高,二二 (逻辑非).(位取反)-负号)++(加1)-(减1)&(变量地址) *(指针所指内容)type(函数说明) sizeof(长度计算) *(果) /(除) %(取模) +(加) (减) >(位右移) (大于)>=(大于等于) ==(等于) !=(不等于) &(位与) (位异或) (位或) &&(逻辑与) |(逻辑或 ?:(?表达式) =+==(联合操作) ,(逗号运算符) 最低
附:Turobo C运算符的优先级

运算符 ※算术运算符 运算符 运算 范例 结果 正号 负号 b=4;-b; 5+ 10 加减乘除 6-4 2 3*4 12 5/5 取模 5%5 自增(前) a=2:b=++a a=3;b=3 自增(后) a=2:b=a++ a=3:b=2 自减(前) a=2:b=-a a=1:b=1 自减(后) a=2:b=a- a=1:b=2
运算符 算术运算符

运算符 ◆强调和技巧 两个整数相除5/3,结果应为整数1,又如 ntx=3510;x=x/1000*1000结果为多少? ·%只能对两个整数进行运算,5/3.2错误 %取模运算中,摸数和被摸数为负数的情况 举例23%3、23%3、-23%3、-23%3 结果为2、 2、 2 ◆规律:摸数为负数时,将负号忽略即可;若被取模的 数是负数时,先忽略负数,然后将结果置为负
运算符 强调和技巧 • 两个整数相除5/3,结果应为整数1,又如 int x=3510 ; x=x / 1000 * 1000结果为多少? • %只能对两个整数进行运算,5/3.2错误 • %取模运算中,摸数和被摸数为负数的情况 ⬧ 举例23%3、23%-3、-23%3、-23%-3 结果为 2、 2、 -2、 -2 ⬧ 规律:摸数为负数时,将负号忽略即可;若被取模的 数是负数时,先忽略负数,然后将结果置为负

算符 分析(计+)+(计++)+(i++)的结果 int 1=3, aa=(i++)+(i++)+(i++), printf( a=%d, i=%/dn", a, i) 结果为:a=9i=6 int 1=3 printf("(++)+(计++)+(i++)=%d,i=%dn"(i++)+(i++)+(i+), 结果为:(i++)+(i计+)+(i++)=12,i=3 :而在函数的参数中,则是从右到左,对各个子表达式进行运拿加 我的理解:在赋值语句中,对x++是先取值运算,再赋值,最后 举一反 分析(++i)+(++i)+(++i)的结果?答案是:18,6和15,3 再分析x=0;x=x+%10; printf(%dn”,x);的输出结果? 答案是:1 解释:取ⅹ++的值0;0%10为0;x=0;最后X自加 ◆a-3;a=a+(a=a-a*a++)的结果为a=11
运算符 • 分析(i++)+(i++)+(i++)的结果 int i=3,a;a=(i++)+(i++)+(i++);printf("a=%d,i=%d\n",a,i); 结果为:a=9,i=6 int i=3; printf("(i++)+(i++)+(i++)=%d,i=%d\n",(i++)+(i++)+(i++),i); 结果为:(i++)+(i++)+(i++)=12,i=3 我的理解:在赋值语句中,对x++是先取值运算,再赋值,最后x自加 1;而在函数的参数中,则是从右到左,对各个子表达式进行运算 举一反三: ⬧ 分析(++i)+(++i)+(++i)的结果?答案是:18,6和15,3 ⬧ 再分析x=0;x=x++%10;printf(“%d\n”,x);的输出结果? 答案是:1 解释:取x++的值0 ; 0%10为0;x=0;最后X自加1 ⬧ a=3;a=a+(a=a-a*a++)的结果为a=11

运算符 思考题1:某个培训中心要为新到的学员安排房间,假设 共有x个学员,每个房间可以在6人,让你用一个公式来计 算他们要住的房间数(不允许男女混住)? 正确答案:(x+5)6,错误答案:x6+1。上述算法还可以在 查看留言板的分页显示上:其中x是总共的留言数,结果 就是总共有多少页。 思考题2:假设你要让x的值在0到9之间循环变化请写出相 应的程序代码。 答案 0j=0; while(j<20) { xX%10: printf(-%/od,,x); x++: j++, 举一反三:在15到25之间循环变化。答案如下: a=15+(x-X%11), printf( a=%/od n, a); x+:j++
运算符 • 思考题1:某个培训中心要为新到的学员安排房间,假设 共有x个学员,每个房间可以住6人,让你用一个公式来计 算他们要住的房间数(不允许男女混住)? 正确答案:(x+5)/6,错误答案:x/6+1。上述算法还可以在 查看留言板的分页显示上:其中x是总共的留言数,结果 就是总共有多少页。 • 思考题2:假设你要让x的值在0到9之间循环变化请写出相 应的程序代码。 答案: int x= 0,j=0; while(j<20) { x=x%10;printf(“%d”,x);x++;j++; } 举一反三:在15到25之间循环变化。答案如下: a=15+(x=x%11);printf(“a=%d\n”,a);x++;j++;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C语言教程》教学资源(PPT课件讲稿)第二讲 数据类型.ppt
- 《C语言教程》教学资源(PPT课件讲稿)第一讲 基本知识.ppt
- 《高级程序设计语言原理》第一章 程序设计语言研究.ppt
- 《高级程序设计语言原理》第八章 抽象二:继承.ppt
- 《高级程序设计语言原理》第七章 子程序控制.ppt
- 《高级程序设计语言原理》第六章 顺序控制.ppt
- 《高级程序设计语言原理》第五章 抽象一:封装.ppt
- 《高级程序设计语言原理》第四章 数据类型.ppt
- 《高级程序设计语言原理》第三章 语言翻译.ppt
- 《高级程序设计语言原理》第二章 语言设计问题.ppt
- 《计算方法》第二章 迭代法.doc
- 《计算方法》第二章(2-1)求隔根区间.doc
- 《计算方法》第一章 绪论.ppt
- 《计算方法》习题一.doc
- 《计算方法》第七章 常微分方程数值解.doc
- 《计算方法》第六章(6-3)复化求积公式.doc
- 《计算方法》第六章(6-2)Newton-Cotes.doc
- 《计算方法》第六章(6-1) 值积分的基本概念.doc
- 《计算方法》第四章(4-2)牛顿插值公式.doc
- 《计算方法》第四章(4-1)代数多项式插值.doc
- 《C语言教程》教学资源(PPT课件讲稿)第四讲 顺序结构.ppt
- 《C语言教程》教学资源(PPT课件讲稿)第六讲 循环结构.ppt
- 《C语言教程》教学资源(PPT课件讲稿)第八讲 编译预处理.ppt
- 《C语言教程》教学资源(PPT课件讲稿)第七讲 数组.ppt
- 《C语言教程》教学资源(PPT课件讲稿)第五讲 选择结构.ppt
- 《C语言教程》教学资源(PPT课件讲稿)第十一讲 结构体与共用体.ppt
- 《C语言教程》教学资源(PPT课件讲稿)第十讲 指针.ppt
- 《C语言教程》教学资源(PPT课件讲稿)第九讲 函数.ppt
- 清华大学:《多媒体技术》课程教学资源(教材教案讲义)第1章 多媒体技术概要.doc
- 清华大学:《多媒体技术》课程教学资源(教材教案讲义)第2章 数字声音及MDI简介.doc
- 清华大学:《多媒体技术》课程教学资源(教材教案讲义)第3章 话音编码.doc
- 清华大学:《多媒体技术》课程教学资源(教材教案讲义)第4章 无损数据压缩.doc
- 清华大学:《多媒体技术》课程教学资源(教材教案讲义)第5章 彩色数字图像基础.doc
- 清华大学:《多媒体技术》课程教学资源(教材教案讲义)第6章 颜色的度量体系.doc
- 清华大学:《多媒体技术》课程教学资源(教材教案讲义)第7章 颜色空间变换.doc
- 清华大学:《多媒体技术》课程教学资源(教材教案讲义)第8章 小波与小波变换.doc
- 清华大学:《多媒体技术》课程教学资源(教材教案讲义)第9章 小波图像编码.doc
- 清华大学:《多媒体技术》课程教学资源(教材教案讲义)第10章 彩色数字电视基础.doc
- 清华大学:《多媒体技术》课程教学资源(教材教案讲义)第11章 MPEG简介.doc
- 清华大学:《多媒体技术》课程教学资源(教材教案讲义)第12章 MPEG声音.doc