C语言课件第3章顺序程序设计.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《C语言课件第3章顺序程序设计.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课件 顺序 程序设计
- 资源描述:
-
1、1第第 三三 章章顺序程序设计顺序程序设计2一、算术运算和算术表达式一、算术运算和算术表达式二、赋值运算和赋值表达式二、赋值运算和赋值表达式三、自增自减运算三、自增自减运算四、优先级和类型转换四、优先级和类型转换五、五、赋值语句赋值语句六、顺序结构程序设计六、顺序结构程序设计 主要内容主要内容31、算术运算符、算术运算符 +-*/%2、关系运算符、关系运算符 =!=3、逻辑运算符、逻辑运算符 !&|4、位运算符、位运算符|&5、赋值运算符赋值运算符 =及其扩展赋值运算符及其扩展赋值运算符6、条件运算符、条件运算符?:7、逗号运算符、逗号运算符 ,8、指针运算符、指针运算符 *&9、求字节数运算
2、符、求字节数运算符 sizeof10、强制类型转换运算符、强制类型转换运算符 (类型)类型)11、分量运算符、分量运算符 .12、下标运算符、下标运算符 13、其他、其他 如函数调用运算符()如函数调用运算符()分类分类 运算符运算符 4基本算术运算符基本算术运算符+-*/%说明说明 例:例:5/3=1 -5/3=-1模运算符或求余运算符模运算符或求余运算符算术表达式算术表达式用算术运算符和括号将用算术运算符和括号将运算对象运算对象(也称操作数)连接起(也称操作数)连接起来的、符合来的、符合C语法规则的式子。语法规则的式子。优先级和结合性优先级和结合性先乘除、后加减,有括号先算括号。先乘除、后
3、加减,有括号先算括号。自左至右自左至右常量、变量、函数等常量、变量、函数等说明说明如果一个运算符两侧的数据类型不同,先自动进行如果一个运算符两侧的数据类型不同,先自动进行类型转换类型转换,使二者具有同一类型,然后进行运算。,使二者具有同一类型,然后进行运算。两个整数相除的结果为整数,两个整数相除的结果为整数,舍去小数部分。舍去小数部分。当商为负数时,多采用当商为负数时,多采用“向零取整向零取整”的方法。的方法。求余运算的两侧均应为整数求余运算的两侧均应为整数 例:例:5%3=2例:例:a*b/c-1.5+a 5举例:举例:已知三角形的边长已知三角形的边长a a、b b、c c,求三角形,求三角
4、形周长的一半(数学公式为周长的一半(数学公式为s=-(a+b+c)s=-(a+b+c))。)。#include void main()float a,b,c,s;a=3;b=4;c=5;s=1/2*(a+b+c);printf(s=%8.2f,s);s=0.00程序运行结果:程序运行结果:?s=6.00程序运行结果:程序运行结果:改为:改为:1.0/2 (1/2.0)或或 (float)1/2 (1/(float)2)126赋值运算符赋值运算符简单赋值运算符:简单赋值运算符:=复合赋值运算符:复合赋值运算符:+=,-=,*=,/=,%=简单赋值运算符的一般形式为简单赋值运算符的一般形式为:变量
5、变量 =表达式表达式它的作用是将一个表达式的值赋给一个变量。它的作用是将一个表达式的值赋给一个变量。复合赋值运算的一般格式为:复合赋值运算的一般格式为:变量变量 双目运算符双目运算符=表达式表达式 复合赋值运算符复合赋值运算符 它等价于:变量它等价于:变量=变量变量 双目运算符双目运算符(表达式表达式)。只有当表达式。只有当表达式简化为一个变量或一个常数时,两边的括号可以省略。简化为一个变量或一个常数时,两边的括号可以省略。7例例1float a;int b;a=1.2;b=a*3;?b b=3例例2a+=3;x*=y+8a=a+3;x=x*(y+8)例例3a=b=5;a=7+(b=8)?a,
6、b a=5;b=5a=15;b=8自右而左自右而左的结合性的结合性赋值表达式赋值表达式格式:格式:赋值表达式的值:被赋变量的值赋值表达式的值:被赋变量的值类型转换类型转换转换条件:当赋值运算符两侧的数据类型不一致时转换条件:当赋值运算符两侧的数据类型不一致时转换原则:转换为被赋值变量的类型。具体见转换原则:转换为被赋值变量的类型。具体见P54。8两种格式:两种格式:运算符前置:运算符前置:+i -i 运算符后置:运算符后置:i+i-作用:作用:(1)自增运算符()使单个变量的值增自增运算符()使单个变量的值增1;(2)自减运算符()使单个变量的值减)自减运算符()使单个变量的值减1。i=i+1
7、i=i-1两种格式的区别:两种格式的区别:(1)运算符前置,则遵守前置规则:在使用运算符前置,则遵守前置规则:在使用i之前,使之前,使i的值加(减)的值加(减)1)(2)运算符后置,则遵守后置规则:在使用)运算符后置,则遵守后置规则:在使用i之后,使之后,使i的值加(减)的值加(减)1)两种格式的共同点:两种格式的共同点:运算符运算符+,不论前置还是后置,都使变量的值增,不论前置还是后置,都使变量的值增1;运算符运算符-,不论前置还是后置,都使变量的值减不论前置还是后置,都使变量的值减1。9例如例如:下面的程序使用了:下面的程序使用了+和和-运算符。运算符。#include int main(
8、)int i,j;i=2;j=2;+i;/*表达式表达式+i 加上加上分号分号后,就构成了一条合法的后,就构成了一条合法的C语句语句*/i+;/*这种语句称为这种语句称为 表达式语句表达式语句*/-j;j-;printf(i=%d,j=%d n,i,j);return 0;请大家写出该程序的每条语句执行后,变量请大家写出该程序的每条语句执行后,变量i和和j的值。的值。10在赋值语句中右侧的表达式中在赋值语句中右侧的表达式中使用了自增运算符后:使用了自增运算符后:(自减运算同理)(自减运算同理)k=+i;和 k=i+;在赋值语句中右侧的表达式中使用了在赋值语句中右侧的表达式中使用了+运算符,此时
9、将执行运算符,此时将执行两个操作:两个操作:(1)将)将i的值赋给的值赋给k;(2)i的值增的值增1。k=+i;因为因为+运算符在变量运算符在变量i 的前面,即的前面,即+前置,则按照前置,则按照前置规则前置规则:i先加先加1,后使用(即先给,后使用(即先给i的值加的值加1,后将,后将i 的值的值赋给赋给k)k=i+;因为因为+运算符在变量运算符在变量i 的前面,即的前面,即+前置,则按照前置,则按照后后置规则置规则:i先加先加1,后使用(即先给,后使用(即先给i的值加的值加1,后将,后将i 的值赋的值赋给给k)11程序举例程序举例#include int main()int i,j,k;i=
10、2;j=2;+i;/*表达式语句表达式语句*/k=+i;/*赋值语句赋值语句*/k=i+;/*+运算符后置,则遵守后置规则:先使用运算符后置,则遵守后置规则:先使用i赋值,赋值,后给后给i加加1*/k=-j;/*前置运算前置运算*/k=j-;/*后置运算后置运算*/printf(i=%d,j=%d,k=%d n,i,j,k);printf(i=%d,j=%d,k=%d n,i,j,-k);/*按照前置规则处按照前置规则处理理-k*/return 0;请大家写出该程请大家写出该程序的每条语句执序的每条语句执行后,变量行后,变量i,j,k的的值。值。(i,j,k)=(3,2,不定不定),(4,2,
11、4),(5,2,4),(5,1,1),(5,0,1)12四、四、优先级和类型转换优先级和类型转换隐式转换(自动转换)隐式转换(自动转换)对于表达式对于表达式 3 3*4+10.5/2-3.14+10.5/2-3.1C C语言是如计算的呢?计算结果应是什么语言是如计算的呢?计算结果应是什么数据类型呢?在计算过程中遵守如下规数据类型呢?在计算过程中遵守如下规则:则:131.1.隐式转换(自动转换)隐式转换(自动转换)转换发生条件转换发生条件v运算转换运算转换-不同类型数据混合运算时不同类型数据混合运算时先转换、后运算先转换、后运算v赋值转换赋值转换-把一个值赋给与其类型不同的把一个值赋给与其类型不
12、同的 变量时变量时v输出转换输出转换-输出时转换成指定的输出格式输出时转换成指定的输出格式v函数调用转换函数调用转换-实参与形参类型不一致实参与形参类型不一致时转换时转换 (到函数一章时再讲)(到函数一章时再讲)14转换规则转换规则doublefloatlongunsignedintchar,short高高低低 1、纵向向上的箭头表示不同类型的、纵向向上的箭头表示不同类型的 转换方向(由低类型转化为高类转换方向(由低类型转化为高类 型),不表示转换所经的步骤。型),不表示转换所经的步骤。2、横向向左的箭头表示必须的转换。、横向向左的箭头表示必须的转换。隐式转换(自动转换)隐式转换(自动转换)说
13、明说明:必定的转换必定的转换运算对象类型运算对象类型不同时转换不同时转换15int i;float f;double d;long e;i=2;f=2.5;d=3.9;e=3;10+a+i*f-d/e1075.01.3112.0110.7intdoubledoubledoubledouble 思考:思考:根据已知变量定义及赋值语句,根据已知变量定义及赋值语句,计算以下表达式的值,并说明每一步所得计算以下表达式的值,并说明每一步所得结果的数据类型。结果的数据类型。162.2.显式转换(强制转换)显式转换(强制转换)一般形式一般形式(要转换成的数据类型要转换成的数据类型)(被转换的表达式被转换的表
14、达式)注:当被转换的表达式是一个简单表达式时,注:当被转换的表达式是一个简单表达式时,外面的一对圆括号可以缺省。外面的一对圆括号可以缺省。举例举例 float x,y;x=2.3;y=4.5;说明说明强制转换得到的是所需类型的中间变量,强制转换得到的是所需类型的中间变量,原变量或表达式的类型不变。原变量或表达式的类型不变。(int)(x+y)(int)x+y值为值为 6 属于属于int类型类型 值为值为 6.5 属于属于double类型类型17六、顺序结构程序设计六、顺序结构程序设计 C语句概述 简单语句 顺序结构程序设计18结构化程序的基本结构之一是顺序结构。结构化程序的基本结构之一是顺序结
15、构。C程序由函数组成,程序由函数组成,而函数的功能靠语句实现。因此,需要先学习而函数的功能靠语句实现。因此,需要先学习C语句的语法。语句的语法。1、C语句概述语句概述C语言的语句用来向计算机系统发出指令,完成特定操作。语言的语句用来向计算机系统发出指令,完成特定操作。一个语句经编译后产生若干条机器指令。一个语句经编译后产生若干条机器指令。一个实际的一个实际的C程序通常包含若干语句。程序通常包含若干语句。C语言的语句分成两大类:语言的语句分成两大类:简单语句和控制语句简单语句和控制语句(包括复合语句包括复合语句)。简单语句执行一些基本的操作,控制语句控制程序中语句的简单语句执行一些基本的操作,控
展开阅读全文