书签 分享 收藏 举报 版权申诉 / 102
上传文档赚钱

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

  • 上传人(卖家):三亚风情
  • 文档编号:3592351
  • 上传时间:2022-09-22
  • 格式:PPT
  • 页数:102
  • 大小:1.27MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《c语言程序设计(包云)c第3章顺序程序设计课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    语言程序设计 顺序 程序设计 课件
    资源描述:

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

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

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

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

    5、022/7/18第3章 数据类型、运算符与表达式8表示方法表示方法十进制小数形式:十进制小数形式:123.34,-0.0045,0.0指数形式:指数形式:E(e)如如0.23e2 ,-0.45e-3,3.0+5规范化指数形式规范化指数形式数字和小数点组成数字和小数点组成2)浮点类型常量关于分类关于分类浮点型常量是浮点型常量是double型的。一个浮点型常型的。一个浮点型常量,可以赋给一个浮点变量(量,可以赋给一个浮点变量(float型或型或double型)型)。2022/7/18第3章 数据类型、运算符与表达式9指数形式指数形式(数符数符+小数部分小数部分+指数部分指数部分)小数部分占的位数越

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

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

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

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

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

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

    12、tf(OK!n);*/printf(x15 xABn);return 0;!结果:结果:结果:结果:例例3.52022/7/18第3章 数据类型、运算符与表达式165)符号常量)符号常量格式:格式:#define 常量名常量名 字面常量字面常量举例:举例:#define PRICE 100#define PI 3.14#define C1 a使用符号常量的好处:使用符号常量的好处:1)含义清楚。)含义清楚。2)在需要改变程序中多处用到的同一个常量时,)在需要改变程序中多处用到的同一个常量时,能做到能做到”一改全改一改全改“。2022/7/18第3章 数据类型、运算符与表达式17概念概念其值可以

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

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

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

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

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

    18、说明2022/7/18第3章 数据类型、运算符与表达式23变量变量举例举例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:未定义的标识符,拼写错误:未定义的标识符,拼写错误4、

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

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

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

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

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

    24、表示的各位取反再末位加示的各位取反再末位加1。2022/7/18第3章 数据类型、运算符与表达式29例如:例如:求求-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的二进制补码的表示。的二进制补码的表示。2022/7/18第3章 数据类型、运算符与表达式302、整型变量的分类、整型变量的分类分类及取分类及取值范围值范

    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中的数据类型中的数据类型2022/7/18第3章 数据类型、运算符与表达式31类型类型(Visual c+6.0)比特数比特数取值范围取值范围signed int32-231(231-1)unsigned int320(232-1)signed short int16-215(215-1)unsigned short int160(216-1)long int32-231(231-1)unsi

    27、gned long int320(232-1)2022/7/18第3章 数据类型、运算符与表达式32注意:在注意:在C99中新增了一种数据类型:中新增了一种数据类型:long long int 或或 long long,一般分配,一般分配8个字个字节,但许多节,但许多C编译系统尚未实现。编译系统尚未实现。C标准只要求标准只要求long型数据长度不短于型数据长度不短于int型,型,short不长于不长于int型。型。2022/7/18第3章 数据类型、运算符与表达式33注意:注意:常量无常量无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)2022/7/18第3章 数据类型、运算符与表达式343.2.4、字符型数据存储方式存储方式以以ASCII码存储码存储,占一个字节(占一个字节(参见教材参见教材)类型及范围类型及范围c

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

    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程序运行结果:程序运行结果:2022/7/18第3章 数据类型、运算符与表达式36字符

    31、类型举例2允许对字符数据进行算术运算,此时就是对它们的允许对字符数据进行算术运算,此时就是对它们的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,c

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

    33、求不同:字符常量存储的是字符的存储要求不同:字符常量存储的是字符的ASCII码值,而字符串常量,除了要存储有码值,而字符串常量,除了要存储有效的字符外,还要存储一个结束标志效的字符外,还要存储一个结束标志0。2022/7/18第3章 数据类型、运算符与表达式383.2.5 浮点型数据浮点型数据类型名称类型名称字节数字节数有效数字有效数字表示范围表示范围floatfloat4 46 6(-3.4-3.41010-38-38 3.43.410103838)doubledouble8 81515(-1.7-1.71010-308-308 1.71.71010308308)long doublelon

    34、g double16161919(-1.1-1.11010-4932-4932 1.11.1101049324932)在在VC中中long double由由8字节构成字节构成在在codeblocks中由中由12字节构成字节构成可用例可用例3.3.1测试测试2022/7/18第3章 数据类型、运算符与表达式39例例3.3.1#includeint main()printf(the length is%dn,sizeof(long double);return 0;2022/7/18第3章 数据类型、运算符与表达式40上例是在上例是在codeblocks中实验的结果。中实验的结果。因此,在因此,在

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

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

    37、存中以指数形式存储。C编译编译系统中把浮点型常量都按双精度处理。系统中把浮点型常量都按双精度处理。2022/7/18第3章 数据类型、运算符与表达式44(一)(一)C C运算符简介运算符简介(二)算术运算符和算术表达式(二)算术运算符和算术表达式(三)赋值运算符和赋值表达式(三)赋值运算符和赋值表达式(四)逗号运算符和逗号表达式(四)逗号运算符和逗号表达式3.2.73.2.7运算符与表达式运算符与表达式2022/7/18第3章 数据类型、运算符与表达式451、算术运算符算术运算符 +-*/%2、关系运算符、关系运算符 =!=3、逻辑运算符、逻辑运算符 !&|4、位运算符、位运算符|&5、赋值运

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

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

    40、数时,多采用“向零取整向零取整”的方法。的方法。求余运算的两侧均应为整数求余运算的两侧均应为整数 例:例:5%3=2例:例:a*b/c-1.5+a(二)算术运算符和算术表达式(二)算术运算符和算术表达式2022/7/18第3章 数据类型、运算符与表达式47自增、自减自增、自减运算符运算符作用:自增运算符()使单个变量的值增作用:自增运算符()使单个变量的值增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(在

    41、使用(在使用i之前,使之前,使i的值加(减)的值加(减)1)后置:后置:i+,i-(在使用(在使用i之后,使之后,使i的值加(减)的值加(减)1)+和和-结合方向结合方向是是“自右至左自右至左”2022/7/18第3章 数据类型、运算符与表达式48例例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”。2022/7/18第3章 数据类型、运算符与表达式49(1)自增、自减运算是语言特有的,常用于循环语句中,使循环控自增、自减运算是语言特有的,常用于循环语句中,使循环控 制变量加(或减),以及指针变量中,使指针指向下(或上)一个制变量加(或减),以及指针变量中,使指针指向下(或上)一个地址。地址。(2)自增、自减运算符,不能用于常量和表达式。自增、自减运算符,不能用于常量和表达式。例如,例如,5+、-(a+b)等都是非法的。等都是非法的。(3)+和和-的结合方向为自右至左。(的结合方向为自右至左。(P58)(4)如

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

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

    45、由低类型转化为高类转换方向(由低类型转化为高类 型),不表示转换所经的步骤。型),不表示转换所经的步骤。2、横向向左的箭头表示必须的转换。、横向向左的箭头表示必须的转换。隐式转换(自动转换)隐式转换(自动转换)说明说明:必定的转换必定的转换运算对象类型运算对象类型不同时转换不同时转换2022/7/18第3章 数据类型、运算符与表达式52int 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、已知变量定义及赋值语句,计算以下表达式的值,并说明每一步所得计算以下表达式的值,并说明每一步所得结果的数据类型。结果的数据类型。2022/7/18第3章 数据类型、运算符与表达式535 5、显式转换(强制转换)、显式转换(强制转换)一般形式一般形式(要转换成的数据类型要转换成的数据类型)(被转换的表达式被转换的表达式)注:当被转换的表达式是一个简单表达注:当被转换的表达式是一个简单表达式时,外面的一对圆括号可以缺省。式时,外面的一对圆括号可以缺省。举例举例 float x,y;x=2.3;y=4.5;(int)(x+y)/6 (int)(int)x+y /6.5 (double)说明说明强制转

    47、换得到的是所需类型的中间变量,强制转换得到的是所需类型的中间变量,原变量或表达式的类型不变。原变量或表达式的类型不变。2022/7/18第3章 数据类型、运算符与表达式54#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程序运行结果:程序运行结果:结论:结论:较高类型较高类型向较低类型转换向较低类型转换时可能发生时可能发生精度精度损失问题损失问题2022/7/18第3章 数据类型、运算符与表达式55举例:举例:

    48、已知三角形的边长已知三角形的边长a a、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)2022/7/18第3章 数据类型、运算符与表达式563.3.1 C语言的语句 与其它高级语言一样,语言也是利用函数体中的可执行语句,向计与其它高级语言一样,语言也是利用函数

    49、体中的可执行语句,向计算机系统发出操作命令。按照语句功能或构成的不同,可将语言的语句分算机系统发出操作命令。按照语句功能或构成的不同,可将语言的语句分为五类。为五类。1.控制语句控制语句控制语句完成一定的控制功能。语言只有条控制语句,又可细分控制语句完成一定的控制功能。语言只有条控制语句,又可细分为三种:为三种:(1)选择结构控制语句)选择结构控制语句 if()else,switch()(2)循环结构控制语句)循环结构控制语句 dowhile(),for(),while(),break,continue(3)其它控制语句)其它控制语句 goto,return3.3 C语句语句2022/7/18

    50、第3章 数据类型、运算符与表达式572.函数调用语句 函数调用语句由一次函数调用加一个分号(语句结束标志)构成。函数调用语句由一次函数调用加一个分号(语句结束标志)构成。例如,例如,printf(This is a C function statement.);3.表达式语句表达式语句由表达式后加一个分号构成。最典型的表达式语句是,表达式语句由表达式后加一个分号构成。最典型的表达式语句是,在赋值表达式后加一个分号构成的赋值语句。在赋值表达式后加一个分号构成的赋值语句。例如,例如,num=5 是一个赋值表达式,而是一个赋值表达式,而num=5;却是一个却是一个赋值语句。赋值语句。4.空语句空语句

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:c语言程序设计(包云)c第3章顺序程序设计课件.ppt
    链接地址:https://www.163wenku.com/p-3592351.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


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

    163文库