1、0101020203032.1 2.1 数据类型数据类型2.2 2.2 标识符、常量与变量标识符、常量与变量2.3 2.3 运算符与表达式运算符与表达式第二章第二章 数据类型、运算符和表达式数据类型、运算符和表达式040405052.4 2.4 知识知识点强化与应用点强化与应用2.5 2.5 本章小结本章小结【学习要点】1.常量和变量2.几种基本的数据类型3.算术运算符、赋值运算符、自增自减运算符、逗号运算符等多种运算符本章主要介绍数据类型、运算符和表达式。希望大家能通过学习理解C语言中数据的存储及处理。描述某个学生的信息,包括性别,英语、高等数学、计算机考试成绩,计算该学生的考试平均分。【导
2、入案例:数据的存储及处理】根据学生的英语、高等数学、计算机考试成绩计算平均分,这些数据可能是整数也可能是小数,那么在C语言中如何表示整数和小数呢?学生的性别又该如何去表示呢?又如何用C语言去计算三门课的平均值呢?分析C语言提供了丰富的数据类型,整型、实型、字符型,它们可以用来描述学生的成绩和性别。无论是学生三门课的成绩还是平均成绩都不是固定不变的值,因此,C语言提供了变量来保存学生的成绩信息,以便对它们进行处理。C语言还提供了丰富的运算符,算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符等。这些运算符能够将算法的实现过程、对数据的处理流程在程序中用C语言描述出来。分析“程序=算法+数据
3、结构”,算法处理的对象是数据,C语言提供了丰富的数据类型,可分为基本数据类型、构造数据类型、指针类型和空类型四大类。2.1 数据类型数据类型概述C语言数据类型数据类型概述(续)ChinaThe quick brown foxTRUE数据 非数值非数值数值数值整型整型实型实型90.12899/12/19963.141519Jackie Chan字符类型字符类型 3.5%字符字符串数据类型概述(续)类型类型符号符号关键字关键字占字占字节数节数数的表示范围数的表示范围整整型型int(signed)int 在在32位系统下位系统下4-21474836482147483647unsigned int 在
4、在32位系统下位系统下04294967295short(signed)short2-3276832767unsigned short065535long(signed)long4-21474836482147483647unsigned long04294967295实实型型有有float4绝对值绝对值10-371038double8绝对值绝对值10-30710308long double12绝对值绝对值10-4931104932字符型字符型有有(signed)char1-128127无无unsigned char02552.2.1 标识符2.2.2 常量2.2.3 变量2.2 标识符、常量与
5、变量2.2.1 标识符例例:判断下列标识符号合法性判断下列标识符号合法性sum Sum M.D.John day Date 3days char ab _aboveM.D.John3dayschar 定义:用来标识变量、常量、函数等的字符序列 规则:只能由组成,且第一个必须是字母或下划线 区分大小写 不能使用关键字 最大长度编译器编译器TC、BCVC最大长度最大长度32255常量和变量v常量:程序运行时其值不能改变的量(即常数)v变量:其值可以改变的量v请分析,下面问题中的常量和变量。设银行定期存款的年利率为2.25%,已知存款期为n年,存款本金为capital元,试编程计算并输出n年后的本利
6、之和deposit。v5x+3y+z/3=100 x+y+z=100常量v已知的、确定的、不变的变量v未知的、不确定的或可变的2.2.2 常量&整型常量(整常数)无前缀十进制0八进制0 x或0X十六进制思考题:下列整型常量哪些是非法的?若合法,是多少进制的数。012,oX7A,00,078,0 x5Ac,-0 xFFFF,0034,7B。首字符不能是字母o 八进制数中不能有数字8 十进制数中不能有字母B v口诀:前缀决定进制,后缀决定类型2.2.2 常量&整型常量(整常数)v口诀:前缀决定进制,后缀决定类型无后缀有符号U或u无符号L或llong int 写程序时候除非有特别要求加上前缀后缀,一
7、般来说,我们只需要像平时使用整数那样来写就可以了。123L、-30u、358u、235Lu0XA5Lu,0 x38Au,0XAFL2.2.2 常量v表示形式:l十进制数小数形式(必须有小数点)0.123 .123 -123.0.0 123l十进制指数形式 或 12.3e+3 -1.23e4 e-5 1.2E-3.5&实型常量(实数)e或E之前必须有数字,e或E之后必须为整数v实型常量的类型l单精度后缀F或f,长双精度后缀L或l,默认double2.2.2 常量类 型精度(不含小数点)float 7 8 double 16 17 long double 17 182.2.3 变量变量类型变量类型
8、 变量名变量名1,变量名变量名2,变量名变量名n;至少一个空格以分号;结尾&整型变量、实型变量、字符变量v变量必须先定义再使用unsigned int male_num,female_num;float averge;double a,b,sum;char sex;2.2.3 变量&整型变量、实型变量、字符变量v变量初始化:变量的初值,int x=7,y=-3,sum;double a=7.0,b=-2.1E+3,c;char sex=M没有初始化的变量值多少呢?十进制整型常量小数形式的实型常量指数形式的实型常量a10n 表示为 aEn 或 aen数值类型的变量若未初始化则是一个很小的负数。2
9、.3.1 算数运算符与算数表达式2.3.2 赋值运算符与赋值表达式2.3.3 自增/自减运算符2.3.4 逗号运算符与逗号表达式2.3.5 位运算符2.3.6 数据类型转换2.3 运算符与表达式2.3 运算符与表达式C运运算算符符算术运算符:(算术运算符:(+-+-*/%+-/%+-)关系运算符:(关系运算符:(=!=!=)逻辑运算符:(!逻辑运算符:(!&|&|)位运算符位运算符 :(:(|&|&)赋值运算符:(赋值运算符:(=及复合赋值运算符)及复合赋值运算符)条件运算符:(条件运算符:(?:?:)逗号运算符:逗号运算符:(,)指针运算符:(指针运算符:(*&)求字节数求字节数 :(:(s
10、izeofsizeof)强制类型转换:(类型)强制类型转换:(类型)分量运算符:(分量运算符:(.-.-)下标运算符:(下标运算符:()其它其它 :(:(()-()-)2.3.1 算数运算符与算数表达式算术运算符(+-*/%)和表达式 结合性:从左向右 优先级:-*/%-+-说明:-可为单目运算符,右结合性 两整数相除,求商%要求两侧均为整型数据 单目运算符优先级最高x+y g*h*(t/20)+65 r%22.3.2 赋值运算符与赋值表达式赋值运算符(2.3.2 赋值运算符与赋值表达式赋值表达式的值赋值表达式的值 a=b=c=5;a=(b=5);a=5+(c=6);a=(b=4)+(c=6)
11、;a=(b=10)/(c=2);x=(a=5)+(b=8);2.3.2 赋值运算符与赋值表达式运算符表达式计算结果(假设 X=10X=10)含义+=X +=5X=X+515-=X -=5X=X-55*=X*=5X=X*550/=X /=5X=X/52%=X%=5X=X%50增加减少累乘2.3.3 自增/自减运算符 作用:使变量值加1或减1,用于for循环 i+i j-j 说明:单目(优先级比双目和三目都要高),右结合 优先级:-+-*/%+-+-不能用于常量和表达式,如 5+,(a+b)+种类:前置 +i -i (先执行i+1或i-1,再使用i值)后置 i+i-(先使用i值,再执行i+1或i-
12、1)2.3.3 自增/自减运算符(续)表达式如何计算结果(num1=5)num2=+num1;num1=num1+1;num2=num1;num2=6;num1=6;num2=num1+;num2=num1;num1=num1+1;num2=5;num1=6;num2=-num1;num1=num1-1;num2=num1;num2=4;num1=4;num2=num1-;num2=num1;num1=num1-1;num2=5;num1=4;2.3.4 逗号运算符与逗号表达式 形式:表达式1,表达式2,表达式n例 a=3*5,a*4 a=3*5,a*4,a+5例 x=(a=3,6*3)x=a
13、=3,6*a 优先级:最低 结合性:从左向右 逗号表达式的值:等于表达式n的值/a=15,表达式值表达式值60/a=15,表达式值表达式值20/赋值表达式,表达式值赋值表达式,表达式值18,x=18/逗号表达式逗号表达式,表达式值表达式值18,x=32.3.6 数据类型转换&自动转换:赋值,混合运算&把表示范围小的类型的值转换到表示范围大的类型的值&强制转换 float r=1;4/3.0*3.14*r*r*r2.3.6 数据类型转换(续)(类型说明符类型说明符)()(表达式或变量或常量表达式或变量或常量)类型转换运算符:单目,高优先级,右结合&强制转换2.4 知识点强化与应用 在解决实际问题的时候,首先要分析出该问题中有哪些数据,这些数据哪些是常量,哪些是变量,变量应该采用哪种数据类型描述,问题该如何求解,最后用C语言将数据和算法都描述出来。【例2-17】设计一程序,计算任意半径的球的体积。【例2-18】设银行定期存款的年利率是3.05%,并已知存款期为n年,存款本金任意x,试计算n年后本利之和y。【例2-19】计算并输出一个三位正整数x的个位、十位、百位数字之和。2.5 小结1常量和变量2数据类型3运算符和表达式4类型转换休息一会!