资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,-,*,-,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,2,章,C,语言程序设计基础,-,2,-,关系运算符与关系表达式,常量与变量,整型数据、实型数据、字符型数据,算述运算符及表达式,自增自减运算符及表达式,赋值运算符及表达式,自动转换与强制转换,位运算及混合运算,本章教学内容,本章教学目标,能,熟练正确地使用关系运算符和关系表达式。,理解基本类型及其常量的表示法,熟练掌握各种基本类型变量的说明规则和变量的赋初值,掌握各种运算符的使用方法和运算顺序,能够将各种数学表达式转换成,C,语言表达式,理解,C,语言的自动类型转换和强制类型转和赋值的概念,掌握位运算的概念及相关运算,-,3,-,-,4,-,数据的表现形式概述,在计算机高级语言中,数据有2种表现形式:,常量和变量,。,常量,1.整型常量,(1),十进制整型常量,:只能出现,09 的数字,且可带正、负号,,如:,3、100、-89等。,(,2),八进制整型常量,:以数字,0 开头的八进制数字串,其中数字为,07,。如:,0111(十进制,73)、,011(十进制,9)、,0123(十进制,83)等。,(,3),十六进制整型常量,:以,0 x或,0X开头的十六进制数字串,其中每个数字可以是,09、af或,AF 中的数字或英文字母,。如:,0 x11(十进制,17)、,0Xa5(十进制,165)、,0 x5a(十进制,90)等。,-,5,-,常量,实型常,(,1,),十进制小数形式,:由数字和小数点组成,必须要有小数点,,如,1.34,、,0.45,等。,?,注意,(,2,),十进制指数形式,:,类似数学中的指数形式,在,C,语言中,则以,“,e”,或,“,E”,后跟一个整数来表示以,“,10”,为底数的,幂数,,如,1.23,可以表示为,0.123E1,、,1.23e0,、,12.3e-1,等形式。,只要保证字母,“e”,或,“E,”,前有数字,,“e”,或,“E,”,后为整数即可,。,?,注意,-,6,-,常量,3.字符常量,(,1)普通字符,:,用单撇号,()括起来的一个字符,,,如A,a,,?,,+。,(,2)转义字符,:转义字符是,C语言中一种特殊形式的字符常量,,一组以反斜杠(,)开头的字符序列,,将反斜杠后面的字符转换成另外的意义。,-,7,-,【例题,2-1,】编写程序,输出多行信息。,#include,int main(),printf(ab*nhellon*n);,return 0;,-,8,-,常量,4.字符串常量,字符串是由零个或多个字符组成的有限序列,在,C语言源程序中,,字符串常量是用双引号,(“”)括起来的0个或者多个字符组成的序列,。,如,“”,“,how are you”,,“,a”,,“,$123.45”,等,。,字符串中的字符依次存储在内存中一块连续的区域内,并且把空字符,0自动附加到字符串的尾部作为,字符串的结束标志,,故字符个数为,n的字符串在内存中应占(n+1)个,字节,。,?“a”与,a,的区别,-,9,-,常量,5.符号常量,符号常量在使用之前,必须先定义,其一般形式为:,#define,标识符,常量,-,10,-,常量,变量,1.变量,变量在程序运行过程中其值是可以改变的量,,变量有三种属性:变量名、变量类型和变量值。,变量定义格式:,数据类型符号,变量名,1,变量名2,,;,-,11,-,2.变量名,程序中使用的变量名、函数名、标号等统称为,标识符,,在,C 语言中,变量的命名需要符合标识符的定义,遵循以下规则。,变量名可以由字母、数字和,_(下划线)组合而成;,变量名不能包含除_ 以外的任何特殊字符;,变量名必须以字母或_(下划线)开头;,变量名不能包含空白字符;,保留字具有特殊意义,不能用作变量名;,C 语言区分大小写。,-,12,-,变量,2.2.1 数据类型概述,-,13,-,2.2.2 整型数据,1.,整型数据的类型,(1)整型常量的类型,前缀、后缀可同时使用以表示各种类型的整型常量。,?前缀,?后缀,(2)整型变量的类型,整型变量表示能存放整型常量的变量。,在C,语言,中,整型,变量,的值可以是,十,进制,,八进制,十六进制,,但在内存中存储着是二进制整数。,-,14,-,【例题,2-3,】编写程序,分别以十,进制,,八进制,十六进制输出整型变量。,#includestdio.h,int main(),int a,b,c;,a=10;,b=012;,c=0 xa;,printf(a=%d,b=%d,c=%dn,a,b,c);,printf(a=%o,b=%o,c=%on,a,b,c);,printf(a=%x,b=%x,c=%xn,a,b,c);,return 0;,-,15,-,2.2.2 整型数据,2.整型变量的符号属性,-,16,-,2.2.2 整型数据,-,17,-,2.2.2 整型数据,【例题,2-4,】编写程序,整型变量的超出取值范围示,。,#includestdio.h,int main(),int a,b,c,d;,a=4;,b=6;,c=a+b;,d=32767+1;,printf(c=%dn,c);,printf(d=%dn,d);,return 0;,-,18,-,2.2.2 整型数据,2.2.3 实型数据,实型数据的类型,(,1,)实型常量的类型,?,前缀,?,后缀,(,2,)实型变量的类型,实型变量表示能存放实型常量的变量。在,C,语言,中,实型,变量,的值可以有,小数形式,和,指数形式,共,2,种表现形式。,-,19,-,2.2.3 实型数据,-,20,-,【例题,2-5,】编写程序,将实型常量按小数形式和指数形式输出。,#includestdio.h,int main(),float f1;,double f2;,f1=0.023f;,f2=10234.0;,printf(f1=%f,f2=%fn,f1,f2);,printf(f1=%e,f2=%en,f1,f2);,return 0;,2.实型变量的符号属性,-,21,-,2.2.3 实型数据,【例题,2-6,】编写程序,实型变量的定义、赋值和输出示例。,#include,int main(),float x=0.1234567,y=0.0;,double z=0.0;,y=123.0456789123456789;,z=123.0456789123456789;,printf(x=%f,y=%f,z=%lfn,x,y,z);,return 0;,-,22,-,2.2.3 实型数据,字符型数据,1.字符与ASCII代码,-,23,-,字符型数据,【例题,2-7,】编写程序,字符,0和整数0是不同的概念示例,。,#include,int main(),int a=0;,char b=0;,printf(a=%d,b=%cn,a,a);,printf(a=%d,b=%cn,b,b);,return 0;,-,24,-,字符型数据,2.字符型变量的符号属性,-,25,-,字符型数据,【例题,2-8,】编写程序,字符型数据的运算示例,。,#include,int main(),char c1,c2;,c1=A;/将字符A的ASCII代码放到c1变量中,c2=c1+32;/得到字符a的ASCII代码,放在c2变量中,printf(%cn,c2);/输出c2的值,是一个字符,printf(%dn,c2);/输出c2的值,是字符a的ASCII代码,return 0;,-,26,-,运算符与表达式概述,-,27,-,算术运算符及表达式,1.,算术运算符,-,28,-,算术运算符及表达式,2.算术表达式,-,29,-,2.3.3 自增自减运算符及表达式,-,30,-,【例题,2-10,】编写程序,自增运算符的应用示例,。,#include,int main(),int i,j,m,n;,i=5;,j=10;,m=i+*5;,n=+j*5;,printf(i=%d,m=%dn,i,m);,printf(j=%d,n=%dn,j,n);,return 0;,-,31,-,2.3.3 自增自减运算符及表达式,赋值运算符及表达式,1.赋值运算符与赋值表达式,赋值运算符用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,=,=,=)三类共十一种。,2.复合赋值运算符与复合赋值表达式,复合赋值表达式格式为:变量,复合赋值运算符 表达式,例如:,a+=8 在程序中等价于,a=a+8,a+=b 在程序中等价于,a=a+b,b-=s+k 在程序中等价于 b=b-(s+k),c*=a+b 在程序中等价于,c=c*(a+b),-,32,-,赋值运算符及表达式,【例题,2-11,】,已有变量a,其值为9,计算表达式a+=a-=a+a的值。,-,33,-,2.4.1,自动转换,-,34,-,2.4.2 强制转换,【例题,2-12,】编写程序,强制类型转换运算符的应用示例,#include,int main(),int i;,float f=5.75;,i=(int)f;printf(int)f=%d,f=%fn,i,f);return 0;,-,35,-,位运算概述,-,36,-,按位取反,-,37,-,按位与、或和异或,1.按位与运算符,-,38,-,按位与、或和异或,2.按位或运算符,-,39,-,按位与、或和异或,3.按位异或运算符,-,40,-,按位与、或和异或,【例题,2-13,】编写程序,按位与、或、异或运算的应用示例,#include,int main(),int x,y;,x=3;y=5;,printf(x,printf(3,printf(3|5=%d,3|4=%dn,3|5,3|4);,printf(35=%d,34=%dn,35,34);,return 0;,-,41,-,按位左移和右移,1.按位左移运算,-,42,-,按位左移和右移,【例题,2-14,】编写程序,按位左移运算的应用示例,#include,int main(),int a1=7,a2=-7;,unsigned int b=7;,printf(有符号正数72=%dn,a12);,printf(有符号负数-72=%dn,a22);,printf(无符号正数72=%dn,b2=%dn,a12);,printf(有符号负数-282=%dn,a22);,printf(无符号正数282=%dn,b2);,return 0;,-,45,-,按位左移和右移,-,46,-,位运算的混合运算,【例题,2-16,】编写程序,位运算的应用示例,#include,int main(),int a=5,b=1,t;,t=a2|b;,printf(51)/(42)=%dn,(a1)/(a2);,return 0;,-,48,-,位运算的混合运算,本章小结,计算机处理的基本对象是数据,变量和常量则是程序的最基本的数据形式。,C语言允许使用的数据类型有整型、实型、字符型、枚举类型、空类型、派生类型。根据数据类型的不同,变量可分为整型变量、实型变量、字符型变量等;常量可分为整型常量、实型常量、字符常量、字符串常量等。标识符是用来标识变量、常量、函数等的字符序列,只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线。变量的数据类型是可以转换的,转换的方法有自动转换和强制转换两种。,根据运算符所需要的,操作数,不同,分为伪运算符、单目运算符、双目运算符和三目运算符。根据运算符的运算优先级不同,分,15级,1 级最高,15 级最低。在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。,-,49,-,【本章小结】,算术运算符主要用于各类数值运算,包括加取正值,(+),、取负值,(-),、加,(+),、减,(-),、乘,(*),、除,(/),、求余,(,或称模运算,,%),。自增、自减运算符可用在操作数的前面(前缀形式),如,+i,、,-i,;也可用在操作数的后面(后缀形式),如,i+,、,i-,。赋值运算符用于赋值运算,分为简单赋值,(=),、复合算术赋值,(+=,-=,*=,/=,%=),和复合位运算赋值,(&=,|=,=,=,=),三类共十一种。常见的位运算符有按位与、或、异或、取反、左移、右移,6,种。,通过本章的学习,要求读者能够熟练掌握各种基本类型的变量和常量的用法,各种运算符的使用方法,能够将各种数学表达式转换成,C,语言表达式。,-,50,-,谢 谢!,
展开阅读全文