C语言课件第3章顺序程序设计.ppt

上传人(卖家):晟晟文业 文档编号:4300943 上传时间:2022-11-27 格式:PPT 页数:42 大小:474.50KB
下载 相关 举报
C语言课件第3章顺序程序设计.ppt_第1页
第1页 / 共42页
C语言课件第3章顺序程序设计.ppt_第2页
第2页 / 共42页
C语言课件第3章顺序程序设计.ppt_第3页
第3页 / 共42页
C语言课件第3章顺序程序设计.ppt_第4页
第4页 / 共42页
C语言课件第3章顺序程序设计.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

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语言的语句分成两大类:语言的语句分成两大类:简单语句和控制语句简单语句和控制语句(包括复合语句包括复合语句)。简单语句执行一些基本的操作,控制语句控制程序中语句的简单语句执行一些基本的操作,控

16、制语句控制程序中语句的执行流程。执行流程。默认情况下,默认情况下,C程序的执行流程是顺序的,即逐个执行按书程序的执行流程是顺序的,即逐个执行按书写顺序排列的语句,除非遇到控制语句改变流程的执行顺序。写顺序排列的语句,除非遇到控制语句改变流程的执行顺序。19C语句语句控制语句控制语句函数调用函数调用语句语句由一次函数调用加由一次函数调用加一个分号构成一个一个分号构成一个语句。语句。表达式语句表达式语句空语句空语句?1、出现在函数体的执行、出现在函数体的执行 部分。部分。2、作用是向计算机系统、作用是向计算机系统 发出发出操作操作指令。指令。复合语句复合语句if()else switchfor()

17、while()do while()continuebreakgotoreturnif (xy)z=x;else z=y;printf(Hello!);由表达式加一个分由表达式加一个分号构成一个语句。号构成一个语句。a=3;由由 将一些语句将一些语句括起来。括起来。t=a;a=b;b=t;?C C语言语句概述语言语句概述202、简单语句、简单语句简单语句由一个表达式以及紧跟其后的分号构成。简单语句由一个表达式以及紧跟其后的分号构成。表达式语句表达式语句表达式;表达式;例如例如,n+;x1=(-b+sqrt(b*b-4*a*c)/(2*a);x2=(-b-sqrt(b*b-4*a*c)/(2*a)

18、;z =x+a%3*(int)(x+y)%2/4;w =(float)(a+b)/2+(int)x%(int)y;p =money*pow(1+rate),year);21构成方式构成方式由由赋值表达式赋值表达式加加分号分号构成。构成。例如例如a=3;b=a*3+5;赋值语句赋值语句在程序中使用赋值语句完成所需的计算在程序中使用赋值语句完成所需的计算.例程例程:已知圆的半径已知圆的半径r=5cm,编程计算圆的面积编程计算圆的面积.提示提示:面积的计算公式为面积的计算公式为 s=r222赋值语句赋值语句例程例程:已知圆的半径已知圆的半径r=5cm,编程计算圆的面积编程计算圆的面积.提示提示:面积

19、的计算公式为面积的计算公式为 s=r2分析分析:(1)将数学公式转变为将数学公式转变为C语言的赋值语句语言的赋值语句,即即 s=3.1415926*r*r;(2)为程序定义变量为程序定义变量,半径用半径用r表示表示,面积用面积用s表示表示.(3)设计程序的每个执行步骤设计程序的每个执行步骤:给给r r赋值赋值;计算面积计算面积,计算结果保存到计算结果保存到s;s;输出输出s s的值的值23#include int main()float r,s;/*定义变量定义变量*/r=5;/*给给r赋值赋值*/s=3.1415926*r*r;/*计算面积计算面积,保存到保存到s*/printf(“圆的面积

20、为%f n”,s);/*输出输出s的值的值*/return 0;例程例程:已知圆的半径已知圆的半径r=5cm,编程计算圆的面积编程计算圆的面积.面积的计算公式为面积的计算公式为 s=r224函数调用语句函数调用语句 函数调用;函数调用;例如,例如,printf(Hello!);printf(sum=%fn,sum);scanf(“%d%d”,&a,&b);putchar(ch1);举例:两者结合可构成一个赋值语句举例:两者结合可构成一个赋值语句ch1=getchar();253、顺序结构程序设计顺序结构程序设计顺序结构是最简单、最常用的程序结构,在这种结顺序结构是最简单、最常用的程序结构,在这

21、种结构的构的C语言程序中,完全语言程序中,完全按照语句书写的先后顺序执按照语句书写的先后顺序执行程序行程序,主要由表达式语句和标准库函数调用语句,主要由表达式语句和标准库函数调用语句构成,例如,由赋值操作、输入构成,例如,由赋值操作、输入/输出操作构成的程输出操作构成的程序有很多都是顺序结构的。序有很多都是顺序结构的。通常程序编写的步骤是:通常程序编写的步骤是:分析实际问题分析实际问题写出算法、画出流程图写出算法、画出流程图根据流程图写出相应的根据流程图写出相应的C语句程序语句程序26例例3.1:编写程序,实现两个变量值的交换功能。:编写程序,实现两个变量值的交换功能。分析:分析:假设两个变量

22、是假设两个变量是a和和b,a的初始值是的初始值是10,b的初始值是的初始值是25,经过程序的处理,结果使得,经过程序的处理,结果使得a的值为的值为25,b的值为的值为10。要求分别输出交换前。要求分别输出交换前后的变量值。后的变量值。要想实现两个变量值的交换,需要借助要想实现两个变量值的交换,需要借助于第三变量(假设为于第三变量(假设为t),先把),先把a的值暂存在的值暂存在t中,然后将中,然后将b的值存入的值存入a中,最后将中,最后将t的值(的值(a原原来的值)存入来的值)存入b中。中。27#include stdio.hint main()float a,b,t;printf(请输入请输入

23、a,b的初始值的初始值);scanf(%f%f,&a,&b);printf(交换之前交换之前a,b的值的值n);printf(a=%ftb=%fn,a,b);t=a;a=b;b=t;printf(交换之后交换之后a,b的值的值n);printf(a=%ftb=%fn,a,b);return 0;运行结果是:运行结果是:请输入请输入a,b的初始值的初始值10 25(键盘输入)(键盘输入)交换之前交换之前a,b的值的值a=10.000000 b=25.000000交换之后交换之后a,b的值的值a=25.000000 b=10.00000028例例3.2 编写程序,实现从键盘输入三角编写程序,实现从

24、键盘输入三角形的三边长,求三角形面积的功能。形的三边长,求三角形面积的功能。分析实际问题,假设保证输入的三角形三个边长的值能分析实际问题,假设保证输入的三角形三个边长的值能构成三角形。用变量构成三角形。用变量a、b、c分别表示三个边长,根据已分别表示三个边长,根据已有的数学知识,有有的数学知识,有面积公式:面积公式:其中,其中,将问题描述成将问题描述成C语言程序设计要求的具体算法。语言程序设计要求的具体算法。)()(csbsassarea)(21cbas29#include stdio.h#include math.hint main()double a,b,c,s,area;printf(请

25、输入三角形的三边长值请输入三角形的三边长值);scanf(%lf%lf%lf,&a,&b,&c);printf(输入的三角形三边长值输入的三角形三边长值);printf(a=%.2lf b=%.2lf c=%.2lfn,a,b,c);s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c);printf(三角形面积值三角形面积值n);printf(area=%.2lflfn,area);return 0;30其中,其中,sqrt()是一个标准数学函数,计()是一个标准数学函数,计算平方根,需要在程序开始处写一个预编算平方根,需要在程序开始处写一个预编译处理命令译处

26、理命令#include math.h。运行结果是:运行结果是:请输入三角形的三边长值请输入三角形的三边长值3 4 5(键盘输入)(键盘输入)输入的三角形三边长值输入的三角形三边长值a=3.00 b=4.00 c=5.00三角形面积值三角形面积值area=6.0031例例3.3:编写程序,实现从键盘输入一个编写程序,实现从键盘输入一个大写字母,输出对应的小写字母的功能。大写字母,输出对应的小写字母的功能。分析实际问题,从键盘输入一个大写字母,分析实际问题,从键盘输入一个大写字母,经过程序的处理得到对应的小写字母,将经过程序的处理得到对应的小写字母,将这个小写字母输出到显示器上。这个小写字母输出到

27、显示器上。大小写字母的转换算法可以采用大写字母大小写字母的转换算法可以采用大写字母ASCII码值加上码值加上32得到对应小写字母得到对应小写字母ASCII码值的方法。码值的方法。变量输入、输出均采用字符格式。变量输入、输出均采用字符格式。32#include stdio.hint main()char ch1,ch2;printf(请输入一个大写字母:请输入一个大写字母:n);ch1=getchar();printf(转换前:转换前:%c%dn,ch1,ch1);ch2=ch1+32;printf(转换后:转换后:%c%dn,ch2,ch2);return 0;运行结果是:运行结果是:请输入一

28、个大写字母:请输入一个大写字母:D(键盘输入)(键盘输入)转换前:转换前:D 68转换后:转换后:d 10033例例3.4:编写程序,分行输出一个:编写程序,分行输出一个3位整数位整数的每一数字,先输出百位数字,再输出十的每一数字,先输出百位数字,再输出十位数字,最后一行输出各位数字。位数字,最后一行输出各位数字。分析:可以采用整数的分析:可以采用整数的除法除法、求余求余运算,运算,将一个将一个3位整数的每一数字分离出来并保位整数的每一数字分离出来并保存,然后进行分行输出。存,然后进行分行输出。实际数据举例:实际数据举例:假设要分离的整数为假设要分离的整数为836,则:,则:836/100;8

29、36%100/10;836%10;分别为百位、十位、个位数字分别为百位、十位、个位数字计算过程可写为:计算过程可写为:假设要分离的整数保存在假设要分离的整数保存在变量变量 x 中,则:中,则:a=x/100;b=x%100/10;c=x%10;执行后,变量执行后,变量a,b,c中分别中分别为百位、十位、个位数字为百位、十位、个位数字34#include stdio.hint main()int x,a,b,c;printf(请输入一个请输入一个3位整数位整数n);scanf(%d,&x);printf(您输入的您输入的3位整数是:位整数是:%dn,x);a=x/100;b=x%100/10;c

30、=x%10;printf(分行输出结果是:分行输出结果是:n);printf(%dn,a);printf(%dn,b);printf(%dn,c);return 0;运行结果是:运行结果是:请输入一个请输入一个3位整数位整数836(键盘输入)(键盘输入)您输入的您输入的3位整数是:位整数是:836分行输出结果是:分行输出结果是:83635上述例题程序的构成是类似的:上述例题程序的构成是类似的:预处理命令预处理命令主函数首部主函数首部主函数体开始主函数体开始 变量声明变量声明 输入已知变量值输入已知变量值 计算或处理操作计算或处理操作 输出结果输出结果主函数体结束主函数体结束程序中语句是顺序执行

31、的。程序中语句是顺序执行的。36 运行简单程序时,包含三个阶段:运行简单程序时,包含三个阶段:输入阶段:输入阶段:从键盘输入两个整数;从键盘输入两个整数;计算阶段:计算阶段:通过表达式和赋值语句求值通过表达式和赋值语句求值 输出阶段:输出阶段:结果在屏幕上输出。结果在屏幕上输出。总结总结37作作 业业P66:3.6,3.7,3.9 381、编辑、编辑方法一:先创建方法一:先创建C源程序源程序方法二:先创建空工程方法二:先创建空工程2、编译和链接、编译和链接编译编译|编译编译 Ctrl+F7编译编译|构件构件 F7 3、执行、执行编译编译|执行执行 Ctrl+F5一、上机环境与步骤一、上机环境与步骤 Visual C+Visual C+集成开发环境集成开发环境文件文件|新新建建39方法一:先创建方法一:先创建C C源程序源程序文件文件标签标签文件文件类型类型文件名文件名目录目录40方法二:先创建空工程方法二:先创建空工程步骤步骤1 1工程工程标签标签工程工程类型类型工程名工程名目录目录41方法二:先创建空工程方法二:先创建空工程步骤步骤2 2选择空工程选择空工程42方法二:先创建空工程方法二:先创建空工程步骤步骤3 3文件文件标签标签文件文件类型类型文件名文件名选中此项选中此项

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(C语言课件第3章顺序程序设计.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|