C语言课件 第2章.ppt

上传人:本田雅阁 文档编号:2143280 上传时间:2019-02-21 格式:PPT 页数:43 大小:772.01KB
返回 下载 相关 举报
C语言课件 第2章.ppt_第1页
第1页 / 共43页
C语言课件 第2章.ppt_第2页
第2页 / 共43页
C语言课件 第2章.ppt_第3页
第3页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言课件 第2章.ppt》由会员分享,可在线阅读,更多相关《C语言课件 第2章.ppt(43页珍藏版)》请在三一文库上搜索。

1、第 2章 基本数据类型,2.1 整型 2.2 浮点型 2.3 字符型 2.4 逻辑类型 2.5 标准函数 2.6 量的定义方法 习 题 二,2.1 整 型,2.1.1 基本整型,1. 类型名称 int 2. 取值范围 -32768+32767(-215215-1) 3. 数据表示方法 整型数据的表示方法与数学中的类似,不能有分隔符。 C语言允许使用八进制整数与十六进制整数,八进制整数加前导符0(数字),十六进制整数加前导符0x(数字0和字母x)。,4运算操作 (1) 算术运算包括:+(加法)、 (减法)、*(乘法)、/(除法)、%(求余)。 运算规则除除法外,与数学中的相同。 整数的除法运算是

2、整除,结果得到商,如5/3结果为1。对于负数,多数机器采用向零取整法,如5/3结果为1。 求余运算又称取模运算,结果得到余数,即a%b等于a(a/b)*b,如5%3结果为2,5%3结果为2。 求余运算在许多场合都非常有用,如判断整数a是不是b的倍数,可看a%b是否等于零;a%10可得到a的个位数字,(a/10)%10可得到a的十位数字,如此可分离一个整数的每一位数字。 一般只有除数大于0时,求余运算才有意义。当a小于0时,a%b等于 (a)%b)。,(2) 关系运算包括: (大于)、 =(大于等于)等六种, 运算规则与数学中相同, 运算结果为逻辑类型数据。关系运算成立结果为1, 不成立结果为0

3、。,5. 存储 C标准没有具体规定各类数据存储的字节数, 各种机器处理有所不同, 一般以一个机器字(Word)存放1个int数据, PC机上int数据存储用两个字节。 机器中用最高位表示数的符号, 正数符号位用0表示, 负数符号位用1表示。负数在机器中存放的是其补码。,6. 应用 例2-1 求两个整数的积。 /*程序2 - 1, 求两个整数之积*/ include stdio.h main( ) int a, b; int m; printf(请输入两个整数a, b: ); scanf(%d, %d”, 输入数据: 2000, 3 运行结果: 积=6000,2.1.2 拓展整型 1. 类型修饰

4、符 short: 缩短数值所占字节数。 long: 扩大数值所占字节数。 signed: 有符号位, 缺省方式。 unsigned: 无符号位。,2. 短整型 短整型类型名称为short int或short, 在TURBO C中, 短整型与基本整型相同。 3. 长整型 长整型类型名称为long int或long, 取值范围为2312311(2 147 483 6482 147 483 647), 长整型数据可加后缀L表示, 在TURBO C中, 存储占4个字节, 运算与基本整型相同。,4无符号整型 无符号数相对于有符号数的主要区别是数的最高位不做符号处理,而是常规的数字位,表示的数的绝对范围是

5、有符号数的2倍。 相应地,无符号整型有无符号基本整型、无符号短整型和无符号长整型三种。 无符号基本整型,类型名称为unsigned int或unsigned,取值范围为02161,即065 535,存储占2个字节。 无符号短整型,类型名称为unsigned short int或unsigned short ,取值、运算、存储与无符号基本整型相同。,无符号长整型,类型名称为unsigned long int或unsigned long,取值范围为02321,即04 294 967 295,存储占4个字节。 无符号整型常用于处理大整数及地址数据。 八进制数与十六进制数一般只用于unsigned类型

6、数据。,例2-2 整数9的机器表示。 作为int:0000000000001001。 作为short int:0000000000001001。 作为long int:00000000000000000000000000001001。 以上第一位为符号位,表示正整数。 以下第一位为正常的数据位,是非符号位。 作为unsigned int:0000000000001001。 作为unsigned short int:0000000000001001。 作为unsigned long int:00000000000000000000000000001001。,2.2 浮点型,2.2.1 单精度型,

7、1. 类型名称 float 2. 取值范围 绝对值范围为10381038, 7位有效数字。,3. 数据表示方法 实数有一般形式和指数形式两种表示方法。 一般形式又称小数表示法, 是一种常规形式, 由整数部分、 小数点、小数部分三部分组成。C语言中的实数可以没有小数部分或没有整数部分, 如20., .375。 指数形式由尾数、指数符号e或E、指数三部分组成, 尾数是一般形式的实数。指数形式适于表示较大或较小的实数。如2.34e10、2.34e-10, 相应于数学中2.341010、2.3410-10。,4. 运算操作 实型数据的运算操作有算术运算和关系运算两大类, 运算符同整型, 运算规则与数学

8、中实数的运算规则相同, 但运算结果可能是一个近似值。实数没有求余运算。 5. 存储 4个字节,6. 应用 例 2 3 求两个实数的积。 /*程序 2 - 3, 求两个实数之积*/ include stdio.h main( ) float a, b; float m; printf(请输入两个整数a, b: ); scanf(%f, %f, 输入数据: 1.1, 2.21 运行结果: 积= 2.431,2.2.2 双精度型 双精度型的类型名称为double或long float,较单精度型提高了计算精度,取值的绝对值范围为1030810308,有效数字为16位。 双精度型数的表示方法与运算操作

9、同单精度型数,要占用8个字节存储。 计算机中太大的数不能表示,太小的数也不能表示,超出数的表示范围称为溢出,相应有上溢与下溢。对于大的数的处理必须通过间接的方法进行。有不少的实数在机器中只能近似表示。,2.3 字符型,2.3.1 字符型数据 1类型名称 字符的类型名称:char。 2取值范围 字符型数据的取值范围:ASCII码字符集中的任何字符。 3数据表示方法 用单引号作界定符,将字符引起表示字符数据,如 a、+、%、:、1、2。,说明: (1) 单引号字符本身及双引号、反斜杠字符本身由于有特定的含义,不能如此表示,因而需采用其它表示方法。 (2) 字符数据本身除了可以直接出现外,还可以通过

10、反斜杠后跟ASCII码来描述。ASCII码可采用三位八进制数或两位十六进制数表示,相应描述形式是ddd与xhh(位数不够,加0补位),这种表示方法称为转义表示或转码表示。如此,字符A可表示为A、101、x41。 尤其是一些特殊的字符只能这样表示,如图形字符 可表示成 376,单引号、双引号、反斜杠可分别表示成 047、042、134。,(3) 对一些常用的特殊字符,C语言还提供特定的字符来转义表示。 n: 回车换行 : 反斜杠字符 : 单引号字符 : 双引号字符 a: 响铃报警 b: 退格 f: 走纸换行 r : 回车 t: 横向跳格 u: 竖向跳格 0,空操作字符(NULL) (4) 数字字

11、符与数字是不同的数据,如9与9不同。,4. 运算操作 C语言的字符数据在存储时实际上是存储其ASCII码,存储形式与整数的存储形式相同。基于此,C语言规定字符数据与整型数据在ASCII码取值范围内通用,因而C语言中字符数据可进行整型数据的相关运算及操作。 a+b, 等于97+98; a+2, 等于97+2; ab等于9798。,5存储 字符的存储占用1个字节。,6应用 例2-4 输出ASCII码表。 ASCII码用整型数据描述,字符当然用字符类型描述。 程序如下: /*程序2-4,输出ASCII码表*/ #include “stdio.h“ main( ) int i; char ch; pr

12、intf(“ASCII码表n“); for(i=0;i=255;i+) ch=i; printf(“字符%c,ASCII码%dn“,ch,i); 运行结果略。,2.3.2 字符串数据,多个字符构成的序列称为字符串,简称字串,是非数值问题处理的基础。 1字串表示 用双引号作界定符,将字符序列引起表示字串数据,如“chinaone“、“computer“、“$123.45“、“nabc“、“%d%f“。 2字串存储 字串数据的存储除存储构成字符串的字符序列本身外,还必须附加存储字符串的结束标志空操作字符 0。 存储一个字串的字节数等于字符个数加1,即字串长度再加1。 注意字串a与字符a的区别:表示

13、方式不同,存储也不同。,2.4 逻辑类型,2.4.1 逻辑类型 C语言没有专门提供逻辑类型,而是借用整型、字符型、实型来描述逻辑数据。 C语言规定:0作为逻辑数据代表假,非0的数作为逻辑数据代表真。 C语言同时规定:逻辑数据真为1,逻辑数据假为0。 在一个式子里面要注意区分作为普通数据的数与作为逻辑数据的数。例如:23为假,表达式的值为0。,2.4.2 逻辑运算,C语言中,逻辑类型数据是数,可以进行数的所有运算,如算术运算、关系运算。但逻辑类型数据更主要的是进行逻辑运算。基本的逻辑运算包括逻辑非运算“!”、逻辑与运算“&”和逻辑或运算“”三种。 假定有逻辑数据p、q,逻辑运算的运算规则为: !

14、p,得到与p相反的逻辑数据。p为真,!p为假;p为假,!p为真。 p&q,只有p、q同时为真时,运算结果为真;只要p、q有一个为假,运算结果为假。 pq,只要p、q中有一个为真,运行结果为真;只有p、q同时为假,运算结果为假。,例如: ! (23)等于1。 (23)&(32)等于0。 (23)(32)等于1。 (6%2=0)&(6%3=0)等于1。,2.5 标准函数,标准函数完成一些比较复杂的运算和比较常用的操作。对标准函数应了解三个方面:函数的名称、函数参数及类型(相当于数学函数中的自变量)、函数值及类型。另外,还应了解函数包含在哪个库文件中以及函数的调用方法。 函数调用通过函数名进行,以实

15、际数据(实参)代替函数中的参数(形参)。 函数调用格式:函数名(实参)。 数学函数包含在头文件math.h中,调用前需用预处理指令#include “math.h“指明。,常用的数学函数如下(参数x为double或float、int型数,函数值为double型): (1) acos(x),求x的反余弦,x必须在11的范围内。 (2) asin(x),求x的反正弦,x必须在11的范围内。 (3) atan(x),求x的反正切。 (4) cos(x),求x的余弦,x的单位必须为弧度。 (5) exp(x),求e x的值。 (6) fabs(x),求x的绝对值。,(7) floor(x),求不大于x

16、的最大整数。 (8) log(x),求lnx。 (9) log10(x),求lgx。 (10) pow(x、y),求x y。 (11) sin(x),求x的正弦,x的单位必须为弧度。 (12) sqrt(x),求x的平方根,x必须大于等于0。 对于其它数学中常用的函数,应尽量利用已有的标准函数来处理。,2.6 量的定义方法,常量是在程序运算过程中不变的量。 (1) 常量在程序中经常直接出现, 如123、3.14159、a、 computer, 此时只要求它们符合相应类型数据的表示方法。 相应于各种数据类型, 有整型常量、 浮点型常量、 字符型常量及字符串常量。,(2) 常量定义指的是定义符号常

17、量,它用一个标识符来代表一个常量,通过宏定义预处理指令来实现。 格式: #define 标识符 常量 由用户命名的标识符是符号常量名。符号常量名一般大写。一旦定义,在程序中凡是出现常量的地方均可用符号常量名来代替。 对使用了符号常量的程序在编译前会以实际常量替代。,例 2 5 求圆的面积。 /*程序2 - 5, 求圆的面积*/ define PI 3.14 define R 2 include stdio.h main( ) float s; s=PI*R*R; printf(面积=%6.3f, s); 运行结果: 面积=12.560,2.6.2 变量定义,1. 变量定义方法 格式: 类型名

18、变量表; 变量表是用逗号分开的变量名。 例如: int i, j; /*定义i, j为整型变量*/ float x, y; /*定义x, y为实型变量*/ char ch; /*定义ch为字符型变量*/,2变量的初始化 定义了变量,变量并没有值。可以在定义变量的同时给出变量初值,对其进行初始化。 例如: int i=9,j=38;/*定义整型变量i,初值为9;整型变量j,初值为38*/ float r=1.5;/*定义实型变量r,初值为1.5*/ char answer= y;/*定义字符型变量answer,初值为字符y*/,3数据分析方法 进行程序设计,一方面是对数据进行描述,另一方面是对操

19、作进行描述。对于一个问题,到底需要定义哪些量,定义什么样类型的量,必须经过数据分析。 数据分析根据求解的问题选择适当的类型来描述数据,明确求解问题用到的量的名字及类型。 对于任何问题,我们都可将数据分成三大类:输入数据、中间数据和输出数据。输入数据反应程序运行的数据源;中间数据是程序运行的中间结果;输出数据是程序运行的结果,反应编程的目的。相应地,程序中用输入量来描述输入数据,用中间量来描述中间数据,用输出量或称结果变量来描述输出数据。,对于一个问题, 在开始设计程序时输入量、 输出量一般是明确的, 中间量往往不能一下子全部确定, 可在程序的编制过程中根据需要动态追加。 数据分析一般采用如下格

20、式: 数据分析: 输入量: 中间量: 输出量:,例2-6 求三角形的面积与周长问题的数据分析。 输入数据是三角形三边,中间数据是半周长,输出数据是面积与周长。 本问题的数据分析如下: 数据分析: 输入量:三边s1、s2、s3,float 中间量:半周长hl,float 输出量:面积s、周长l,float,相应的变量定义如下: float s1,s2,s3;/*三角形三边*/ float hl;/*半周长*/ float l,s;/*周长,面积*/ 一般将作用相同的变量放在一起定义,以增加程序的可读性。,习 题 二,1. 从类型名称、取值、主要运算三个方面综述基本整型。 2. 从类型名称、取值、

21、主要运算三个方面综述单精度实型。 3. 从类型名称、取值、主要运算三个方面综述字符型。 4. 字符数据与字符串数据有什么区别? 5. C语言中逻辑类型数据如何描述?,6. 下列变量定义中,哪些地方不正确? (1) a,b,c:int; (2) float x;y;z; (3) char c1,c2; int c1; (4) int i,y,long k; (5) n1,n2,n3,long; (6) int char,zhang,li; (7) int i=j=k=1; (8) boolean b1,b2;,7. 取一个适当的名字描述下列数据,并考虑用哪种数据类型较好。 (1) 一个人去年的年

22、龄。 (2) 一个人的体重。 (3) 考试的分数。 (4) 今天的温度。 (5) 地球到月亮的距离。 (6) 一天的开支。,8. 给出下列问题的数据分析。 (1) 求两个整数的和、积与平均值。 (2) 求两个实数的和、积与平均值。 (3) 求长方形的面积和周长。 (4) 求正方形的面积和周长。 (5) 解方程ax+b=0。 (6) 求一元二次方程ax2+bx+c=0的两个实根。,9. 给出上题中相应的变量定义。 10. 编写程序,求两个整数的和、积与平均值。 11. 编写程序,求两个实数的和、积与平均值。 12. 编写程序,求正方形的面积和周长。 13. 编写程序,求长方形的面积和周长。 14. 编写程序,解方程ax+b=0。,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1