《语言第12章PPT课件》由会员分享,可在线阅读,更多相关《语言第12章PPT课件(57页珍藏版)》请在金锄头文库上搜索。
1、第1章 C语言基础,2,1.1 程序设计方法,1.1.1 程序设计语言概述,1.1.2 程序设计的一般过程 1.1.3 结构化程序设计思想,机器语言程序: 01011100 11010101 11110000 00110101,汇编语言:符号语言 MOV AX,5 ADD AX,10,高级语言: 英语数学 P6例1.2,3,2、结构化编码,1、模块化设计方法 自顶向下,逐步细化如图所示,4,学生成绩管理,输 入 模 块,处 理 模 块,查 询 模 块,输 出 模 块,按 学 号 查 询,按 姓 名 查 询,统 计 平 均 成 绩,按 成 绩 排 序,5,1.2 C语言简介,1.2.1 C语言的
2、发展 1.2.2 C语言的特点,1.3 C语言程序基本结构及书写风格,1.3.1 C语言程序的基本结构 1.3. 2 C语言程序的书写风格,返回 目录,第2章 数据类型、运算符和表达式,7,2.1 C语言的基本语法单位,1、字符集 2、关键字,(1) 关键字是指由系统预先定义好的名字,用于表示C语言的语句、数据类型、存储类型或运算符。 (2) 标准C语言定义有32个关键字。 例:if int do for等。,3、标识符,例:下面哪些合法的标识符。 x name _ab3x na.me -ab Ifif,8,1、常量 2、变量,变量就像一个房间,2.2 常量与变量,9,2.3 基本数据类型,2
3、.3.1 整型数据 1、整型常量的表示 C的整型常量有三种表示形式: (1)十进制整数,如13,0,1 (2)八进制整数:以0(零)开头,后跟07八个数字组成的数字串。负数在0前加“”。如:012,0347,0500 (3) 十六进制整数:以0和字母X或x开头,后跟09和字母AF或af组成的数字串。负数在0X或0 x前加“”。如:0 x12,0Xab,0 x3f,10,以上三种表示形式都可以在整数后面加上后缀u或U,构成无符号整数,如:123u、300U、012u、0765U、0 x12u、0XA99U,整数后面加上后缀l或L,构成长整数,如: 123l、300L、015l、0605L、0 x
4、1al、0Xad6L 同时加上两个后缀,构成无符号长整数,如: 23ul、0765UL、0 x12ul,整型常量的类型:短整型和长整型 一般微机中短整型长整型占用2个字节其数值范围是3276832767 长整型占用4个字节其数值范围是 21474836482147483647,11,2、 整型变量,(1)整型变量的分类 符号型: 基本型 int 短整型 short 长整型 long 无符号型:只存放不带符号的整数,分三种 无符号整型 unsigned int 无符号短整型 unsigned short 无符号长整型 unsigned long,(2)各整型变量的所占的字节数及取值范围 P16表
5、2.1,12,一个整数(以13主例)在存储单元中的存储情况,long 型,unsigned long 型,int 型,short 型,unsigned int型,unsigned short 型,符号位,13,(3)整型变量的定义,例:int a, b; long c; unsigned long d, e;,P17例2.2:,14,2.3.2 实型数据,1、实型常量的表示,1e24表示1024 0.314159E1表示0.314159101 23.4E3表示23.4103,(1)十进制小数形式(定点形式):如16.5,-4.79 (2)指数形式(又称科学表示法),按绝对值来说,一般实数值很大
6、或很小时用指数形式表示方便。 定点部分e (E)整数指数部分 其中e或E相当于数学中幂底数10,如:,15,2、实型变量的定义,(3)实型变量的定义,(1)实型变量的分类 单精度型(float),内存占4个字节 双精度型(double),内存占8个字节 长双精度型(long double),内存占10个字节,例:float u, v ; double x, y ;,P18例2.3:,(2)各实型变量的所占的字节数、有效数字及取值范围 P18表2.2,16,思考:学生成绩的数据类型,设两门课程,int a, b; 或float a, b;,17,2.3.3 字符型数据,一、字符常量 1字符常数,
7、可显示字符,用单引号括起来的一个字符,如a,5 、#,2转义字符,不可显示字符 以一个“”开头的字符序列,意思是将反斜杠()后面的字符变成另外的意义,又称“转义字符”。可分为三种转义字符: (1) 一般转义字符,P19的表2.3,a的存储形式,18,(2) 八进制转义字符,由“”后的13个八进制数字构成的字符序列。如: 62 62是ASC的八进制,表示字符2 101101是ASC的八进制,表示字符A 141141是ASC的八进制,表示字符a,(3) 十六进制转义字符,由“”和字母x或X后的12个十六进制数字构成的字符序列。如: x3232是ASC的十六进制,表示字符2 x4141是ASC的十六
8、进制,表示字符A X61 61是ASC的十六进制,表示字符a,P19例2.4:,19,二、字符串常量,用双引号括起来的字符序列。例:“ABCD”、“data”、“126.7” 1字符串常量的存储方式,5个字节,20,2字符常量与字符串常量区别 (1)A“A” (2)字符常量只占1个字节存储单元,字符串常量则占一批连续的存储单元,其所占字节数是字符串长度加1。 (3)字符常量存放在字符变量中,字符串常量则存放在字符数组中。 (4)字符常量可以与整数混合运算。,21,三、字符变量,用于存放字符常量,即一个字符变量只能存放一个字符。 在内存中占一个字节,取值范围128127。,例:char c1,
9、c2 ;,2.4 变量的初始化,即定义变量的同时赋于其相同类型的初值。 如:int a=2, b=4 ; long x=110 ; double d=4.67 ;,例2.5, 例2.6,22,2.5 运算符和表达式,256 附录2,优先级:运算符的执行顺序 结合性:同一级别运算符的运算方向 自左至右运算,即运算量先与左边的运算符结合,又称左结合性。 自右至左运算,即运算量先与右边的运算符结合,又称右结合性,语言的运算符单目(一元)、双目(二元)、三目(三元)运算符,表示运算符所连接的运算量,运算符:,23,2.5.1 算术运算符和算术表达式,一、基本算术运算符,、*、/、% 优先级:*、/、%
10、高于、 结合性:自左至右,注意%的使用: (1)%两侧均为整型数据 (2)结果的符号由左边数据的符号决定。 如:5%(3)=2 5%3=2 5%3=2 5%3=2,24,二、自增、自减运算符,(加1或自增运算符) (减1或自减运算符) 优先级:、高于二元算术运算符 结合性:自右至左,自增和自减运算符只能连接一个运算量,主要用于给一个变量加1或减1。自增运算符和自减运算符可以放到变量前面或者后面,这两种方式同样实现了变量的自增或自减运算。 如a+,+a,都等价于a=a+1。 如a- -,- -a,都等价于a=a-1。,25,例:,例3.1:main( ) int i=3 , j ; printf
11、(“j=%dn”, j=i+) ; printf(“i=%dn”, i) ; printf(“j=%dn”, j=+i) ; printf(“i=%dn”, i) ; ,i j 4 3 5 5,先使用再+1,先+1再使用,P21例2.7:,26,三、算术表达式,表达式在计算机程序设计中使用非常广泛。在C语言中,具有多种形式的表达式,如算术表达式、关系表达式、逻辑表达式等。一个常量,一个变量都可以看成是一个表达式,一个表达式可通过运算符与另一个表达式构成新的表达式。,表达式:,27,表达式的书写规则:,(1)所有表达式必须以线性形式写出。因此分子、分母、指数、下标等都必须写在同一行。如: B2
12、B*B,(4)只能使用合法的标识符和函数。 2R+ 2*PI*R+ALFA |x+y|+sin380 fabs(a+b)+sin(38*3.14/180),(2)乘号“*”不得省略。如:2+3X 2+3*X (3)只能用圆括号“()”,且必须成对出现。如: (a+b)(a-b)-X*a (a+b)*(a-b)-X)*a,(A+B)/(C+D),B5 pow(B,5),28,2.5.2 表达式计算中的数据转换1、隐式转换,在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算,转换规则:,高double float long unsigned 低 int char, short,横向箭头表
13、示必定的转换 纵向箭头表示当运算对象为不同类型时的转换方向。,各类数值型数据间的转换例子,29,xint yint xy,int,xdouble ydouble xy,double,xlong xy,long,double,double,xdouble ydouble xy,xint x+y (x+y)double zdouble (xy)+z,30,2、强制类型转换,格式:(类型关键字)常量 (类型关键字)变量 (类型关键字)(表达式),例:(int) 5.4 (int) x (double)(w3),例:long m ; m=234*456/6 ;,m为-4061,而不是17784。 原因
14、:先进行int型数的乘法运算,结果仍以int型 保留起来。,改为:m=(long)234*456/6 ;,例2.8,234L*456/6,31,2.5.3 赋值运算符与赋值表达式,一、赋值运算符与表达式 1、= 优先级:低于算术运算符 结合性:自右至左 注意:赋值运算符左边必须是变量或数组元素; 右边可以是常量、变量或表达式等等。,2、赋值表达式的一般形式,一般形式: 赋值运算符 ,如:x=5 ; x=a ; y=a+b ;,3、赋值表达式的计算,32,(1)截取方式 左边类型右边类型 如:float x ; x=3结果x值为3.00000 思考:若整型赋给长整型或长整型赋给整型 如 i=32
15、768Llong j ; j=2,5、赋值运算中的类型转换 转换方式有两种:,4、赋值表达式的值取左边变量的值,33,1、复合赋值运算符 +=、-=、*=、/=、%= 2、复合赋值表达式,二、复合赋值运算符与表达式,使用时要把右边的运算量视为一个整体,如: a+=3+1,等价于 a=a+(3+1)。 a-=3+1,等价于 a=a-(3+1)。 a*=3+1,等价于 a=a*(3+1)。 a/=3+1,等价于 a=a/(3+1)。 a%=3+1,等价于 a=a%(3+1)。,一般形式: OP= ,34,三、赋值表达式作为右边运算量,形式: 赋值运算符 ,a+=a=a+b,设a=2, b=3,求
16、a=5+(c=6),(1) b=b-(b*b)=3-(3*3)=-6 (2) b=b+b=-6+(-6)=-12,a%=b%=2,b=b%2=3%2=1 a=a%b=2%1=0,b+=b-=(b*b),(1)a=a+b=2+3=5 (2)a=a+a=5+5=10,a=5+6=11,35,2.5.4 逗号运算符与表达式一、逗号运算符 ,,二、逗号表达式 一般形式:, 先解表达式1,再解表达式2,整个表达式的值是表达式2的值。,例:6,7其值为7 4+5,7-8其值为-1 a=4*5,a*7由a=4*5,得a=20 a*7=20*7=140 其值为140,优先级:最低 结合性:自左至右,36,扩展形式:,, 整个表达式的值是表达式n值。,3. 逗号表达式的应用 常用于for循环语