c语言程序设计(包云)c第3章顺序程序设计.ppt

上传人:wuy****n92 文档编号:70101143 上传时间:2023-01-16 格式:PPT 页数:102 大小:1.04MB
返回 下载 相关 举报
c语言程序设计(包云)c第3章顺序程序设计.ppt_第1页
第1页 / 共102页
c语言程序设计(包云)c第3章顺序程序设计.ppt_第2页
第2页 / 共102页
点击查看更多>>
资源描述

《c语言程序设计(包云)c第3章顺序程序设计.ppt》由会员分享,可在线阅读,更多相关《c语言程序设计(包云)c第3章顺序程序设计.ppt(102页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、C C程序设计程序设计程序设计程序设计第三章第三章 最简单的最简单的C C程序设计程序设计-顺序程序设计顺序程序设计1 116-Jan-23第3章 数据类型、运算符与表达式3.1 3.1 顺序程序设计举例顺序程序设计举例3.2 3.2 数据的表现形式及其运算数据的表现形式及其运算3.3 C3.3 C语句语句3.4 3.4 数据的输入输出数据的输入输出主要内容主要内容216-Jan-23第3章 数据类型、运算符与表达式3.1 顺序程序设计举例顺序程序设计举例例例3.1将华氏温度转化为摄氏温度。将华氏温度转化为摄氏温度。分析:利用上面的公式,其中分析:利用上面的公式,其中f代表代表华氏温度,华氏温

2、度,c代表摄氏温度代表摄氏温度例例3.2见课本见课本38页页316-Jan-23第3章 数据类型、运算符与表达式3.2数据的表现形式及其运算数据的表现形式及其运算3.2.1 常量和变量常量和变量416-Jan-23第3章 数据类型、运算符与表达式概念概念在程序运行过程中,其值不能被改变的量。在程序运行过程中,其值不能被改变的量。分类分类字面常量(字面常量(直接常量直接常量):):12 -44.6 a Hello!符号常量:用一个符号常量:用一个标识符标识符代表一个常量。代表一个常量。字符串常量字符串常量符号常量符号常量的定义的定义格式:格式:#define 常量名常量名 字面常量字面常量举例:

3、举例:#define PRICE 100#define PI 3.14#define C1 a习惯上常量名用大写,习惯上常量名用大写,变量名用小写。变量名用小写。意义意义1、含义清楚。、含义清楚。2、在需要改变一个常量时,能够做到、在需要改变一个常量时,能够做到“一改全改一改全改”。符号常量的定义放在符号常量的定义放在函数外面。函数外面。1 1 常常 量量516-Jan-23第3章 数据类型、运算符与表达式常量举例(求某商品总价)#include#define PRICE 100 /定义符号常量int main()int sum;sum=PRICE*20;printf(%dn,sum);ret

4、urn 0;单价单价符号常量符号常量数量数量直接常量直接常量616-Jan-23第3章 数据类型、运算符与表达式表示方法表示方法十进制:十进制:123,-456,0八进制:八进制:0123,-0456,十六进制:十六进制:0 x123,-0 x456以数字以数字0开头开头以以0 x开头开头1)整型常量的表示方法分类分类基本整型(数据范围与基本整型(数据范围与int型一样)型一样)长整型长整型 (在数值后面加(在数值后面加“L(l)”,数据范围与数据范围与long int型一样)型一样)如如123l,315L类型匹配类型匹配规则规则一个整型常量,可以赋给能容纳下其值的整型变量一个整型常量,可以赋

5、给能容纳下其值的整型变量716-Jan-23第3章 数据类型、运算符与表达式表示方法表示方法十进制小数形式:十进制小数形式:123.34,-0.0045,0.0指数形式:指数形式:E(e)如如0.23e2 ,-0.45e-3,3.0+5规范化指数形式规范化指数形式数字和小数点组成数字和小数点组成2)浮点类型常量关于分类关于分类浮点型常量是浮点型常量是double型的。一个浮点型常型的。一个浮点型常量,可以赋给一个浮点变量(量,可以赋给一个浮点变量(float型或型或double型)型)。816-Jan-23第3章 数据类型、运算符与表达式指数形式指数形式(数符数符+小数部分小数部分+指数部分指

6、数部分)小数部分占的位数越多小数部分占的位数越多,数的有效数的有效数字越多数字越多,精度越高精度越高.指数部分占的指数部分占的位数越多位数越多,表示的数值范围越大表示的数值范围越大.浮点类型存储方式浮点型数据在内存中是按指数形式存储的。浮点型数据在内存中是按指数形式存储的。规范化指数形式:小数规范化指数形式:小数部分采用纯小数形式,部分采用纯小数形式,且最高位不为且最高位不为0。.314159 1举例:举例:3.14159在内存中的存放形式为:在内存中的存放形式为:916-Jan-23第3章 数据类型、运算符与表达式表示方法表示方法用单引号括起来的用单引号括起来的一个字符一个字符.a A 9

7、=?不同的两个字符不同的两个字符转义字符转义字符3)字符类型常量语言还允许使用一种特殊形式的字符常量,就是以语言还允许使用一种特殊形式的字符常量,就是以反斜杠反斜杠 开头的开头的转义字符转义字符。将将后面的字符转换后面的字符转换为另外的意义为另外的意义.即是即是一种一种控制符号控制符号.1016-Jan-23第3章 数据类型、运算符与表达式 字符形式字符形式 含义含义 n 换行换行,从当前位置移到下一行开头从当前位置移到下一行开头 t 水平制表水平制表(跳到下一个跳到下一个tab位置位置)b 退格退格,将当前位置移到前一列将当前位置移到前一列 r 回车回车,将当前位置移到本行开头将当前位置移到

8、本行开头 单撇号字符单撇号字符 反斜杠字符反斜杠字符 ”双撇号字符双撇号字符?问号字符问号字符 a 产生警告信息(声音或者视觉信号)产生警告信息(声音或者视觉信号)f 将当前位置移到下一页开头将当前位置移到下一页开头 v 将当前位置移到下一个垂直制表对齐点将当前位置移到下一个垂直制表对齐点 ddd 13位位8进制数所代表的字符进制数所代表的字符 xhh 12位位16进制数所代表的字符进制数所代表的字符1116-Jan-23第3章 数据类型、运算符与表达式概念概念4)字符串常量用一对双引号用一对双引号 括起来的若干字符序列括起来的若干字符序列字符串字符串长度长度字符串中字符的个数。长度为字符串中

9、字符的个数。长度为0的字符串的字符串(即一个字符都没有的字符串)称为空串,(即一个字符都没有的字符串)称为空串,表示为表示为(一对紧连的双引号)。(一对紧连的双引号)。存储方式存储方式C语言规定:在存储字符串常量时,由语言规定:在存储字符串常量时,由系统系统在字符串的末尾在字符串的末尾自动自动加一个加一个0作为字符作为字符串的结束标志。串的结束标志。注意:注意:没有专门的字符串变量。如果想将一个字符没有专门的字符串变量。如果想将一个字符串放在变量中保存和处理,必须使用串放在变量中保存和处理,必须使用字符型数组字符型数组或或者者字符指针字符指针1216-Jan-23第3章 数据类型、运算符与表达

10、式思考?1、字符串常量字符串常量How do you do.和和Good morning.的长的长度分别是多少?度分别是多少?2、字符串字符串C:msdosv6.22和和I say:Goodbye!在在C语语言中的字符串常量形式如何表示?言中的字符串常量形式如何表示?3、字符串字符串CHINA在内存中的实际存储形式是怎样的在内存中的实际存储形式是怎样的?占用多少个字节的内存空间?占用多少个字节的内存空间?14和和13C:msdosv6.22和和I say:Goodbye!CHINA0占用字节占用字节而非字节而非字节内存空间内存空间1316-Jan-23第3章 数据类型、运算符与表达式注意:注意

11、:1、a是字符,是字符,a是字符串。是字符串。2、不能把一个字符串赋给一个字符变不能把一个字符串赋给一个字符变 量。量。如如c=a、c=Hello!都是错误的。都是错误的。3、C语言中没有字符串变量,可以用语言中没有字符串变量,可以用字符字符数组数组来表示。来表示。1416-Jan-23第3章 数据类型、运算符与表达式举例举例#include int main()printf(abcbdnxyz);printf(“rlmntopqn);return 0;abdlmn opq实际中,不会实际中,不会这样使用!这样使用!#include int main()printf(x4Fx4Bx21n);/

12、*等价于等价于printf(OK!n);*/printf(x15 xABn);return 0;!结果:结果:结果:结果:例例3.51516-Jan-23第3章 数据类型、运算符与表达式5)符号常量)符号常量格式:格式:#define 常量名常量名 字面常量字面常量举例:举例:#define PRICE 100#define PI 3.14#define C1 a使用符号常量的好处:使用符号常量的好处:1)含义清楚。)含义清楚。2)在需要改变程序中多处用到的同一个常量时,)在需要改变程序中多处用到的同一个常量时,能做到能做到”一改全改一改全改“。1616-Jan-23第3章 数据类型、运算符与

13、表达式概念概念其值可以其值可以改变的量称为变量。改变的量称为变量。2、变 量要素要素(1)变变量量名名。每每个个变变量量都都必必须须有有一一个个名名字字变变量量名名,变变量量命命名名遵遵循循标标识识符符命名规则。命名规则。(2)变变量量值值。在在程程序序运运行行过过程程中中,变变量量值值存存储储在在内内存存中中。在在程程序序中中,通通过过变量名来引用变量的值。变量名来引用变量的值。1716-Jan-23第3章 数据类型、运算符与表达式标识符标识符identifier1、标识符就是一个名字(如、标识符就是一个名字(如常量名、变量名、常量名、变量名、函数名函数名)。)。2、组成:只能由、组成:只能

14、由字母、数字、下划线字母、数字、下划线组成。且组成。且第一个字符必须为第一个字符必须为字母或下划线字母或下划线。3、长度:标识符的有效长度随系统而异,如果、长度:标识符的有效长度随系统而异,如果超长,则超长部分被舍弃。超长,则超长部分被舍弃。VC+6.0中规定最大中规定最大长度为长度为247个字符。个字符。Turbo C中的最大长度为中的最大长度为32.4、标识符命名的良好习惯、标识符命名的良好习惯见名知意见名知意例如,例如,name(姓名)、(姓名)、age(年龄)(年龄)1816-Jan-23第3章 数据类型、运算符与表达式下列标识符是否合法,为什么?下列标识符是否合法,为什么?sum a

15、1 b2 s_name123#ss a.b.c 1a8bc思 考?合法合法不合法不合法1916-Jan-23第3章 数据类型、运算符与表达式变量定义变量定义数据类型数据类型 变量名变量名,变量名变量名2;int a1,a2;float x1,x2;double y1,y2;char c1,c2;习惯上,变量名用小写字母。习惯上,变量名用小写字母。常量名用大写字母。常量名用大写字母。#define PRICE 1002016-Jan-23第3章 数据类型、运算符与表达式方式:方式:1、定义变量的同时赋初值(也叫变量初始化)。、定义变量的同时赋初值(也叫变量初始化)。格式:格式:数据类型数据类型

16、变量名变量名=初值初值,变量名变量名2=初值初值2;2、通过一个赋值语句给变量赋初值。、通过一个赋值语句给变量赋初值。格式格式:变量名变量名=初值初值;变量赋初值变量赋初值出现在函数体出现在函数体的的声明声明部分部分出现在函数体出现在函数体的的执行执行部分部分int a,b=3;int a,b;b=3;2116-Jan-23第3章 数据类型、运算符与表达式1、程序中用到的变量必须、程序中用到的变量必须“先定义(先定义(declare),后),后使用使用”。2、C语言的语言的关键字关键字不能用作变量名。不能用作变量名。3、C语言对英文字母的语言对英文字母的大小写敏感大小写敏感,即同一字母的,即同

17、一字母的大小写,被认为是两个不同的字符。对于变量的定大小写,被认为是两个不同的字符。对于变量的定义而言,义而言,int i,I;是定义了两个不同的变量。;是定义了两个不同的变量。4、定义变量时,给几个变量赋相同的初值,、定义变量时,给几个变量赋相同的初值,应写成应写成 :int a=3,b=3,c=3;不能写成不能写成:int a=b=c=3;5、给变量赋值时,正常情况下应给变量赋相同类、给变量赋值时,正常情况下应给变量赋相同类型的数据。若给变量赋与其类型不同的数据时,需型的数据。若给变量赋与其类型不同的数据时,需进行进行类型转换类型转换。关于变量以及变量赋初值的几点说明关于变量以及变量赋初值

18、的几点说明2216-Jan-23第3章 数据类型、运算符与表达式变量变量举例举例include int main()int student,age;int if=adrress=1;float score=90;stadent=2;Age=20.7;printf(%d%d%d%f,if,student,age,score);return 0;本程序中有本程序中有几处错误?几处错误?undeclared identifier错误:错误:1、if:为关键词:为关键词2、int if=address=1;应分别赋初值。应分别赋初值。3、stadent:未定义的标识符,拼写错误:未定义的标识符,拼写错

19、误4、Age:未定义的标识符,大小写敏感。:未定义的标识符,大小写敏感。2316-Jan-23第3章 数据类型、运算符与表达式3、常变量、常变量常变量是指前面加常变量是指前面加const定义的变量,这种变量的特定义的变量,这种变量的特点是其值只能通过初始化给定,在其存在期里总代点是其值只能通过初始化给定,在其存在期里总代表着同一个值,不允许再赋值。如:表着同一个值,不允许再赋值。如:const int num=10;const double PI=3.1415926;const double E=2.71828;注意:课本注意:课本42上的思考:常变量和符号常量的区别。上的思考:常变量和符号常

20、量的区别。2416-Jan-23第3章 数据类型、运算符与表达式3.2.2数据类型数据类型C语言要求在定义所有的变量时都要指定变量的类语言要求在定义所有的变量时都要指定变量的类型,常量也是区分类型的。型,常量也是区分类型的。为什么用计算机运算时,要指定数据的类型呢?为什么用计算机运算时,要指定数据的类型呢?2516-Jan-23第3章 数据类型、运算符与表达式数据类型数据类型基本类型基本类型整型整型字符型字符型浮点型浮点型布尔型布尔型派生类型派生类型数组类型数组类型结构体类型结构体类型共用体类型共用体类型指针类型指针类型空类型空类型单精度型单精度型双精度型双精度型在程序中对用到的在程序中对用到

21、的所有数据都必须指所有数据都必须指定其定其数据类型数据类型.?不同类型的数据不同类型的数据,所占所占内存的字节数内存的字节数不同不同,对对应的应的操作操作也不相同。也不相同。C的数据类型函数类型函数类型枚举类型枚举类型26 计算机内部的数据我们通称为量,描述一个量,我们从计算机内部的数据我们通称为量,描述一个量,我们从如下如下4个方面来考虑:个方面来考虑:一个量一个量名字名字:为:为方便编程,以一个合法的字符串(标识符)方便编程,以一个合法的字符串(标识符)来表征对该量的使用。来表征对该量的使用。值值/内容内容:某个时刻量的大小。根据值在程序执行过某个时刻量的大小。根据值在程序执行过程中是否可

22、以修改产生了程中是否可以修改产生了常量常量和和变量变量的概念。的概念。存储地址存储地址:在内存的什么位置保存该量。对于一些在内存的什么位置保存该量。对于一些深层低端编程人员或者特定程序而言,地址是不可缺深层低端编程人员或者特定程序而言,地址是不可缺少的一种概念少的一种概念/工具。工具。类型类型:决定了量的基本操作和性质。同地址结合,决定了量的基本操作和性质。同地址结合,产生了产生了空间大小空间大小和和值域值域的概念。的概念。对于量的访问,高级语言一般提供的是名字,而汇编中往对于量的访问,高级语言一般提供的是名字,而汇编中往往直接面对地址的概念来处理。往直接面对地址的概念来处理。272716-J

23、an-23第3章 数据类型、运算符与表达式1、在内存中的存储方式、在内存中的存储方式整型数据在内存中是以整型数据在内存中是以补码补码表示的。表示的。(参见教材(参见教材P44)3.2.3 3.2.3 整型数据整型数据编码编码正数表示方法正数表示方法负数表示方法负数表示方法原码原码最高位为符号位(最高位为符号位(0正数,正数,1负数)。其他位为此数绝对值负数)。其他位为此数绝对值的二进制表示。的二进制表示。反码反码同原码同原码最高位为符号位(最高位为符号位(1),其他位为原码表),其他位为原码表示的各位取反。示的各位取反。补码补码同原码同原码最高位为符号位(最高位为符号位(1),其他位为原码表)

24、,其他位为原码表示的各位取反再末位加示的各位取反再末位加1。2816-Jan-23第3章 数据类型、运算符与表达式例如:例如:求求-10的补码表示(按的补码表示(按16位存储)。位存储)。-10的原码的原码1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0除符号位外除符号位外各位取反各位取反1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1末位加末位加11 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0则得到则得到-10的二进制补码的表示。的二进制补码的表示。2916-Jan-23第3章 数据类型、运算符与表达式2、整型变量的分类、整型变量的分类分类及取分类

25、及取值范围值范围类型类型比特数比特数范围范围intsigned int 16 -3276832767(215-1)unsigned int 16 065535short int signed short int 16 -3276832767(215-1)unsigned short int 16 065535long intsigned long int 32 -2147483648 2147483647unsigned long int 32 04294967295表示可以省略表示可以省略各类型整型变量各类型整型变量占用的内存字节占用的内存字节数,随系统而异。数,随系统而异。说明:明:C语言

26、言标准并没有准并没有规定各种整数定各种整数类型的表示范型的表示范围,只,只规定了定了long型的表示范型的表示范围不能小于不能小于int类型,型,不同的不同的C语言系言系统规定不同。定不同。TC中的数据类型中的数据类型3016-Jan-23第3章 数据类型、运算符与表达式类型类型(Visual c+6.0)比特比特数数取值范取值范围围signed int 32-231(231-1)unsigned int320(232-1)signed short int16-215(215-1)unsigned short int160(216-1)long int32-231(231-1)unsigned

27、 long int320(232-1)3116-Jan-23第3章 数据类型、运算符与表达式注意:在注意:在C99中新增了一种数据类型:中新增了一种数据类型:long long int 或或 long long,一般分配,一般分配8个字个字节,但许多节,但许多C编译系统尚未实现。编译系统尚未实现。C标准只要求标准只要求long型数据长度不短于型数据长度不短于int型,型,short不长于不长于int型。型。3216-Jan-23第3章 数据类型、运算符与表达式注意:注意:常常量量无无unsigned型型。但但一一个个非非负负整整型型常常量量,只只要要它它的的值值不不超超过过相相应应变变量量的的

28、值值域域(即即取取值值范围),也可以赋给范围),也可以赋给unsigned型变量。型变量。#include int main()long int c,d=9L;unsigned int e=-3,f;f=5;c=-6;printf(%ldn%ldn%un%u,c,d,e,f);return 0;/%ld是输出长整型数据是输出长整型数据举例举例-6942949672935tc运行结果运行结果(P46)3316-Jan-23第3章 数据类型、运算符与表达式3.2.4、字符型数据存储方式存储方式以以ASCII码存储码存储,占一个字节(占一个字节(参见教材参见教材)类型及范围类型及范围char 大小写

29、英文字母大小写英文字母,数字数字,运算符运算符,标点符号等标点符号等 注意:注意:字符型数据与整型数据在存储方式字符型数据与整型数据在存储方式上的相似性使得两者之间可以通用。但字上的相似性使得两者之间可以通用。但字符型数据的表示范围是:符型数据的表示范围是:0255。举例举例字符变量字符变量ch中存放字符中存放字符a,其,其ASCII码为码为97,在内存中以二进制形式存放,其格式如,在内存中以二进制形式存放,其格式如下:下:0 1 1 0 0 0 0 1ch1、字符与字符代码、字符与字符代码3416-Jan-23第3章 数据类型、运算符与表达式例例 字符变量的字符形式输出和整数形式输出字符变量

30、的字符形式输出和整数形式输出。#include int main()char ch1,ch2;ch1=a;ch2=b;printf(“ch1=%c,ch2=%cn”,ch1,ch2);printf(“ch1=%d,ch2=%dn”,ch1,ch2);return 0;“%c”是输出字符时使用的格式符。是输出字符时使用的格式符。2、字符变量举例1一个字符型数据,既可以字符形式输出,也可以整数形式输出一个字符型数据,既可以字符形式输出,也可以整数形式输出ch1=a,ch2=bch1=97,ch2=98程序运行结果:程序运行结果:3516-Jan-23第3章 数据类型、运算符与表达式字符类型举例2允

31、许对字符数据进行算术运算,此时就是对它们的允许对字符数据进行算术运算,此时就是对它们的ASCII码值进行算术运算码值进行算术运算例例字符数据的算术运算(参考教材的字符数据的算术运算(参考教材的ASCII码表)。码表)。#include void main()char ch1,ch2;ch1=a;ch2=B;/*字母的大小写转换字母的大小写转换*/printf(ch1=%c,ch2=%cn,ch1-32,ch2+32);/*用字符形式输出一个大于用字符形式输出一个大于256的数值的数值*/printf(ch1+200=%dn,ch1+200);printf(ch1+200=%cn,ch1+200

32、);printf(ch1+256=%dn,ch1+256);printf(ch1+256=%cn,ch1+256);ch1=A,ch2=bch1+200=297ch1+200=)ch1+256=353ch1+256=a程序运行结果:程序运行结果:3616-Jan-23第3章 数据类型、运算符与表达式总结:字符与字符串的区别有哪些?定定界界符符不不同同:字字符符常常量量使使用用单单引引号号,而而字字符串常量使用双引号;符串常量使用双引号;长长度度不不同同:字字符符常常量量的的长长度度固固定定为为1,而而字字符串常量的长度,可以是某个整数;符串常量的长度,可以是某个整数;存存储储要要求求不不同同:

33、字字符符常常量量存存储储的的是是字字符符的的ASCII码码值值,而而字字符符串串常常量量,除除了了要要存存储储有有效的字符外,还要存储一个结束标志效的字符外,还要存储一个结束标志0。3716-Jan-23第3章 数据类型、运算符与表达式3.2.5 浮点型数据浮点型数据类型名称类型名称字节数字节数有效数字有效数字表示范围表示范围floatfloat4 46 6(-3.410-3.410-38-38 3.4103.4103838)doubledouble8 81515(-1.710-1.710-308-308 1.7101.710308308)long doublelong double16161

34、919(-1.110-1.110-4932-4932 1.1101.11049324932)在在VC中中long double由由8字节构成字节构成在在codeblocks中由中由12字节构成字节构成可用例可用例3.3.1测试测试3816-Jan-23第3章 数据类型、运算符与表达式#includeint main()printf(the length is%dn,sizeof(long double);return 0;3916-Jan-23第3章 数据类型、运算符与表达式上例是在上例是在codeblocks中实验的结果。中实验的结果。因此,在因此,在ANCI C中并未具体规定每种类型数据的

35、中并未具体规定每种类型数据的长度、精度和数值范围。随着系统的升级和计算机长度、精度和数值范围。随着系统的升级和计算机硬件水平的提高,每种类型的数据的范围都会有所硬件水平的提高,每种类型的数据的范围都会有所增大。增大。4016-Jan-23第3章 数据类型、运算符与表达式浮点型数据的舍入误差浮点型数据的舍入误差由于浮点型变量是由有限的存储单元组成的,因此由于浮点型变量是由有限的存储单元组成的,因此能提供的有效数字总是有限的。在有效位以外的数能提供的有效数字总是有限的。在有效位以外的数字将被舍去。因此可能会产生一些误差。字将被舍去。因此可能会产生一些误差。4116-Jan-23第3章 数据类型、运

36、算符与表达式例例#includeint main()float a,b;a=123456.789e5;b=a+20;printf(%fn,b);将将a和和b改为改为double类型类型再试试再试试4216-Jan-23第3章 数据类型、运算符与表达式3.2.6怎样确定常量的类型怎样确定常量的类型整型常量:不带小数点的数值是整型常量,但应注整型常量:不带小数点的数值是整型常量,但应注意其有效范围。意其有效范围。浮点型常量:凡以小数形式或指数形式出现的实数,浮点型常量:凡以小数形式或指数形式出现的实数,是浮点型常量,在内存中以指数形式存储。是浮点型常量,在内存中以指数形式存储。C编译编译系统中把浮

37、点型常量都按双精度处理。系统中把浮点型常量都按双精度处理。4316-Jan-23第3章 数据类型、运算符与表达式(一)(一)C C运算符简介运算符简介(二)算术运算符和算术表达式(二)算术运算符和算术表达式(三)赋值运算符和赋值表达式(三)赋值运算符和赋值表达式(四)逗号运算符和逗号表达式(四)逗号运算符和逗号表达式3.2.73.2.7运算符与表达式运算符与表达式4416-Jan-23第3章 数据类型、运算符与表达式1、算术运算符算术运算符 +-*/%2、关系运算符、关系运算符 =!=3、逻辑运算符、逻辑运算符 !&|4、位运算符、位运算符|&5、赋值运算符赋值运算符 =及其扩展赋值运算符及其

38、扩展赋值运算符6、条件运算符、条件运算符?:7、逗号运算符、逗号运算符 ,8、指针运算符、指针运算符 *&9、求字节数运算符、求字节数运算符 sizeof10、强制类型转换运算符、强制类型转换运算符 (类型)类型)11、分量运算符、分量运算符 .12、下标运算符、下标运算符 13、其他、其他 如函数调用运算符()如函数调用运算符()分类分类 运算符运算符 详见详见55页!页!4516-Jan-23第3章 数据类型、运算符与表达式基本算术运算符基本算术运算符+-*/%说明说明 例:例:5/3=1 -5/3=-1模运算符或求余运算符模运算符或求余运算符算术表达式算术表达式用算术运算符和括号将用算术

39、运算符和括号将运算对象运算对象(也称操作数)连接起(也称操作数)连接起来的、符合来的、符合C语法规则的式子。语法规则的式子。优先级和结合性优先级和结合性先乘除、后加减,有括号先算括号。先乘除、后加减,有括号先算括号。自左至右自左至右常量、变量、函数等常量、变量、函数等说明说明如果一个运算符两侧的数据类型不同,先自动进行如果一个运算符两侧的数据类型不同,先自动进行类型转换类型转换,使二者具有同一类型,然后进行运算。,使二者具有同一类型,然后进行运算。两个整数相除的结果为整数,舍去小数部分。两个整数相除的结果为整数,舍去小数部分。当商为负数时,多采用当商为负数时,多采用“向零取整向零取整”的方法。

40、的方法。求余运算的两侧均应为整数求余运算的两侧均应为整数 例:例:5%3=2例:例:a*b/c-1.5+a(二)算术运算符和算术表达式(二)算术运算符和算术表达式4616-Jan-23第3章 数据类型、运算符与表达式自增、自减自增、自减运算符运算符作用:自增运算符()使单个变量的值增作用:自增运算符()使单个变量的值增1;自减运算符()使单个变量的值减自减运算符()使单个变量的值减1。例例i=3;A)j=+i;B)j=i+;C)j=-i+;i=i+1i=i-1?j,i A)j=4 i=4B)j=3 i=4C)j=-3格式:格式:前置:前置:+i,-i(在使用(在使用i之前,使之前,使i的值加(

41、减)的值加(减)1)后置:后置:i+,i-(在使用(在使用i之后,使之后,使i的值加(减)的值加(减)1)+和和-结合方向结合方向是是“自右至左自右至左”4716-Jan-23第3章 数据类型、运算符与表达式例例i=3;A)c=(i+)+(i+);B)a=i+;b=i+;c=a+b;?c,i A)c=6 i=5B)c=7 i=5两处两处i值都为值都为3例例i=3;j=4;i+j (i+)+j?i,j i=4 j=4表达式的值:表达式的值:7自左而右组合自左而右组合例例i=3;printf(“%d,%d”,i,i+)?4,3函数参数自右至左求值函数参数自右至左求值有的系统中,从左至右求值,输出有

42、的系统中,从左至右求值,输出“3,3”。4816-Jan-23第3章 数据类型、运算符与表达式(1)自增、自减运算是语言特有的,常用于循环语句中,使循环控自增、自减运算是语言特有的,常用于循环语句中,使循环控 制变量加(或减),以及指针变量中,使指针指向下(或上)一个制变量加(或减),以及指针变量中,使指针指向下(或上)一个地址。地址。(2)自增、自减运算符,不能用于常量和表达式。自增、自减运算符,不能用于常量和表达式。例如,例如,5+、-(a+b)等都是非法的。等都是非法的。(3)+和和-的结合方向为自右至左。(的结合方向为自右至左。(P58)(4)如果对一个变量的自增自减运算,单独构成语句

43、,而不是作为如果对一个变量的自增自减运算,单独构成语句,而不是作为表达式的一部分时,前置和后置运算效果一样,都是使变量自加。表达式的一部分时,前置和后置运算效果一样,都是使变量自加。如如i+;和和+i;是一样的,都是使是一样的,都是使i加。加。(5)在表达式中,连续使用同一变量进行自增或自减运算时,很容易在表达式中,连续使用同一变量进行自增或自减运算时,很容易出错,所以最好避免这种用法。出错,所以最好避免这种用法。说明说明4916-Jan-23第3章 数据类型、运算符与表达式4 4、不同类型数据间的转换(、不同类型数据间的转换(隐式转换(自动转换)转换发生条件转换发生条件v运算转换运算转换-不

44、同类型数据混合运算时不同类型数据混合运算时v赋值转换赋值转换-把一个值赋给与其类型不同的把一个值赋给与其类型不同的 变量时变量时v输出转换输出转换-输出时转换成指定的输出格式输出时转换成指定的输出格式v函数调用转换函数调用转换-实参与形参类型不一致时实参与形参类型不一致时 转换转换先转换、后运算先转换、后运算5016-Jan-23第3章 数据类型、运算符与表达式转换规则转换规则doublefloatlongunsignedintchar,short高高低低详见教材详见教材54页页 1、纵向向上的箭头表示不同类型的、纵向向上的箭头表示不同类型的 转换方向(由低类型转化为高类转换方向(由低类型转化

45、为高类 型),不表示转换所经的步骤。型),不表示转换所经的步骤。2、横向向左的箭头表示必须的转换。、横向向左的箭头表示必须的转换。隐式转换(自动转换)隐式转换(自动转换)说明说明:必定的转换必定的转换运算对象类型运算对象类型不同时转换不同时转换5116-Jan-23第3章 数据类型、运算符与表达式int 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 思考:思考:根据已知变量定义及赋值语句,根据已知变量定义及赋值语句,计算以下表达式的

46、值,并说明每一步所得计算以下表达式的值,并说明每一步所得结果的数据类型。结果的数据类型。5216-Jan-23第3章 数据类型、运算符与表达式5 5、显式转换(强制转换)、显式转换(强制转换)一般形式一般形式(要转换成的数据类型要转换成的数据类型)(被转换的表达式被转换的表达式)注:当被转换的表达式是一个简单表达注:当被转换的表达式是一个简单表达式时,外面的一对圆括号可以缺省。式时,外面的一对圆括号可以缺省。举例举例 float x,y;x=2.3;y=4.5;(int)(x+y)/6 (int)(int)x+y /6.5 (double)说明说明强制转换得到的是所需类型的中间变量,强制转换得

47、到的是所需类型的中间变量,原变量或表达式的类型不变。原变量或表达式的类型不变。5316-Jan-23第3章 数据类型、运算符与表达式#include void main()float x;int i;x=3.6;i=(int)x;printf(x=%f,i=%d,x,i);思考:思考:以下程序的输出结果是什么?以下程序的输出结果是什么?x=3.600000,i=3程序运行结果:程序运行结果:结论:结论:较高类型较高类型向较低类型转换向较低类型转换时可能发生时可能发生精度精度损失问题损失问题5416-Jan-23第3章 数据类型、运算符与表达式举例:举例:已知三角形的边长已知三角形的边长a a、

48、b b、c 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)5516-Jan-23第3章 数据类型、运算符与表达式3.3.1 C语言的语句 与与其其它它高高级级语语言言一一样样,语语言言也也是是利利用用函函数数体体中中的的可可执执行行语语句句,向向计计算算机机系系统统发发出

49、出操操作作命命令令。按按照照语语句句功功能能或或构构成成的的不不同同,可可将将语语言言的的语语句句分分为五类。为五类。1.控制语句控制语句控控制制语语句句完完成成一一定定的的控控制制功功能能。语语言言只只有有条条控控制制语语句句,又又可可细细分分为三种:为三种:(1)选择结构控制语句)选择结构控制语句 if()else,switch()(2)循环结构控制语句)循环结构控制语句 dowhile(),for(),while(),break,continue(3)其它控制语句)其它控制语句 goto,return3.3 C语句语句5616-Jan-23第3章 数据类型、运算符与表达式2.函数调用语句

50、 函数调用语句由一次函数调用加一个分号(语句结束标志)构成。函数调用语句由一次函数调用加一个分号(语句结束标志)构成。例如,例如,printf(This is a C function statement.);3.表达式语句表表达达式式语语句句由由表表达达式式后后加加一一个个分分号号构构成成。最最典典型型的的表表达达式式语语句句是是,在赋值表达式后加一个分号构成的赋值语句。在赋值表达式后加一个分号构成的赋值语句。例例如如,num=5 是是一一个个赋赋值值表表达达式式,而而num=5;却却是是一一个个赋赋值值语语句。句。4.空语句空语句仅由一个分号构成。显然,空语句什么操作也不执行。空语句仅由一

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com