《C语言语法基础.pptx》由会员分享,可在线阅读,更多相关《C语言语法基础.pptx(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2.1 C2.1 C语言字符集和词汇语言字符集和词汇CC语言词汇语言词汇标识符:变量名,函数名标识符:变量名,函数名关键字:关键字:CC语言规定的保留字语言规定的保留字运算符:运算符:2.42.4节节分隔符:逗号和空格分隔符:逗号和空格常量:常量:2.22.2节节注释符:注释符:/*/*/第1页/共52页2.1 C2.1 C语言字符集和词汇语言字符集和词汇CC语言词汇语言词汇标识符:变量名,函数名标识符:变量名,函数名第2页/共52页2.1 C2.1 C语言字符集和词汇语言字符集和词汇CC语言词汇语言词汇标识符:变量名,函数名标识符:变量名,函数名n标识符定义规则:标识符定义规则:u由字母、数
2、字、下划线组成由字母、数字、下划线组成:0-9,a-z,A-Z,_u第一个字母必须是字母或下划线第一个字母必须是字母或下划线:a-z,A-Z,_u区分大小写区分大小写:sum和和Sum是两个变量名字是两个变量名字u不能和系统的关键字重名不能和系统的关键字重名u尽量有实际意义尽量有实际意义第3页/共52页2.1 C2.1 C语言字符集和词汇语言字符集和词汇CC语言词汇语言词汇u正确的标识符:正确的标识符:字母开头字母开头:abc a b area str_1下划线开头下划线开头:_ab _stop _s1u不正确的标识符:不正确的标识符:含有特殊字符含有特殊字符:abc*4 str+9 blue
3、3&ab s*T 不是以字母或下划线开头不是以字母或下划线开头:23Top ()abc 09num -under -3x第4页/共52页2.1 C2.1 C语言字符集和词汇语言字符集和词汇分隔符包括逗号和空格例如:定义一个变量 int a 若写成inta则错误第5页/共52页2.2 2.2 常量与变量常量与变量常量常量定义:程序运行时其值不能改变的量(即常数)分类:数值常量、符号常量n数值常量:数值常量:整型常量,实型常量,字符型,字符串常量整型常量,实型常量,字符型,字符串常量举例:举例:45,23.4,”hello”第6页/共52页2.2 2.2 常量与变量常量与变量常量常量例例 符号常量
4、举例符号常量举例#define PRICE 30main()int num,total;num=10;total=num*PRICE;printf(total=%d,total);运行结果:运行结果:total=300&符号常量:符号常量:定义格式:定义格式:#define 符号常量符号常量 常量常量第7页/共52页2.2 2.2 常量与变量常量与变量变量变量用户自己定义的用户自己定义的可以不断更新数值可以不断更新数值定义:定义:数据类型数据类型 变量变量1,1,变量变量2 2,变量,变量33;例:int a=2,b,c=4;float data=3.67;char ch=A;int x=1,
5、y=1,z=1;a=45;c=90;第8页/共52页2.3 2.3 数据类型数据类型C C数数据据类类型型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型void字符类型字符类型char枚举类型枚举类型enum整整 型型实型实型单精度型单精度型float双精度型双精度型double数组数组结构体结构体struct共用体共用体union短整型短整型short长整型长整型long整型整型int第9页/共52页2.3.1 2.3.1 整型数据整型数据整型常量整型常量十进制数:由十进制数:由0-90-9,正负号组成,非,正负号组成,非0 0开头开头八进制数:以八进制数:以0 0开头,后边跟
6、开头,后边跟0-7,0-7,如如067067十六进制数:以十六进制数:以0 x0 x或或0X0X开始,后面跟开始,后面跟0-90-9,A-FA-F,如,如0 x12A0 x12A第10页/共52页2.3.1 2.3.1 整型数据整型数据整型变量整型变量基本整型:基本整型:intint短整型:短整型:short intshort int长整型:长整型:long int long int 无符号型:无符号型:unsigned intunsigned int,unsigned longunsigned longUnsigned intUnsigned int表示无符号基本型表示无符号基本型Unsig
7、ned long Unsigned long 表示无符号长整型表示无符号长整型第11页/共52页2.3.1 2.3.1 整型数据整型数据整型变量整型变量类型说明符类型说明符数的范围数的范围字节字节数数占内存位占内存位数数signed int-3276832767216unsigned int065535216signed short int-3276832767216Unsigned short int065535216signed long int-21474836482147483647432Unsigned long int04294967295432第12页/共52页2.3.1 2.3
8、.1 整型数据整型数据整型变量定义整型变量定义类型说明符类型说明符 变量变量1,1,变量变量2 2,变量,变量33;注意事项:注意事项:在一个类型说明符后,说明多个变量,这些变量为同一种类型,各个变量间用逗号隔开。在一个类型说明符后,说明多个变量,这些变量为同一种类型,各个变量间用逗号隔开。变量先声明后使用。变量先声明后使用。可以在定义变量时对变量初始化。可以在定义变量时对变量初始化。第13页/共52页2.3.1 2.3.1 整型数据整型数据int a,b,c=4;/*a,b,c为整型变量,为整型变量,c初值为初值为4*/long x=90,y=100;/*x,y为长整型变量,初值分别为为长整
9、型变量,初值分别为90,100*/unsinged short us1,us2;/*us1,us2为无符号短整型变量,初值为为无符号短整型变量,初值为0*/第14页/共52页2.3.2 2.3.2 实型数据实型数据p实型常量(实数或浮点数)o表示形式:n十进制数形式:(必须有小数点)如0.123,.123,0.123,.123,123.0,0.0,123.123.0,0.0,123.n指数形式:(e e或E E之前必须有数字;指数必须为整数)如12.312.3e3,123E2,1.23e4,e3,123E2,1.23e4,e-5e-5 ,1.2E-3.51.2E-3.5 o实型常量的类型n默认
10、doubledouble型第15页/共52页2.3.2 2.3.2 实型数据实型数据实型变量实型变量包括单精度包括单精度floatfloat、双精度、双精度doubledouble和长双精度和长双精度long doublelong double。注意实型数据的有效位数注意实型数据的有效位数 float a=124747.12345;Printf(“%f”,a);Printf(“%f”,a);输出结果为:输出结果为:124747.12500Float fx,fy;/*定义两个单精度变量fx,fy*/Double dbnum1,dbsum=0;/*定义两个双精度变量dbnum1,dbsum*/第1
11、6页/共52页2.3.3 2.3.3 字符型数据字符型数据p字符型常量p定义:用单引号括起来的单个普通字符或转义字符p字符常量的值:该字符的ASCIIASCII码值如如 a A?n 101如如 a+10107第17页/共52页2.3.3 2.3.3 字符型数据字符型数据p字符常量p转义字符:nn tt dddddd bb rr等p举例说明:例2.32.3第18页/共52页2.3.3 2.3.3 字符型数据字符型数据p字符常量和字符串常量p注意事项:p常量只能用单引号括起来,不能使用其他符号p只能是单个字符,不能使字符串如如 a A?n 101如如 “a”“ABC”“4565”“good”第19
12、页/共52页2.3.3 2.3.3 字符型数据字符型数据注意事项ddd,其中ddd是1-3位八进制数xhh,其中hh是1-2位十六进制数以下写法是错误的:1234,89,x789,xffd第20页/共52页2.3.3 2.3.3 字符型数据字符型数据p字符常量和字符串常量p注意事项:p常量只能用单引号括起来,不能使用其他符号p只能是单个字符,不能使字符串p字符串常量:每个字符串尾自动加一个 00 作为字符串结束标志h e l l o 0例例 字符串字符串“hellohello”在内存中在内存中例例 空串空串 “”0a a 0例例 a“a”第21页/共52页2.3.3 2.3.3 字符型数据字符
13、型数据p字符型变量pcharchar 变量表第22页/共52页2.3.3 2.3.3 字符型数据字符型数据p字符型变量p字符可以和数字进行运算第23页/共52页2.4 2.4 运算符和表达式运算符和表达式p单目运算符p双目运算符p三目运算符p区分依据:根据运算符连接的运算对象个数例:例:a+b A-b-3第24页/共52页2.4.1 2.4.1 简单赋值运算符及其表达式简单赋值运算符及其表达式p=p变量=表达式A=4;B=90.7;X=78+9;X=a*b+5;A=b=c=6;例例:a=b=c=5:a=b=c=5 a=(b=5)a=(b=5)a=5+(c=6)a=5+(c=6)a=(b=4)+
14、(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)a=(b=10)/(c=2)/表达式值为表达式值为5 5,a,b,ca,b,c值为值为5 5/b=5;a=5/b=5;a=5/表达式值表达式值1111,c=6,a=11c=6,a=11/表达式值表达式值1010,a=10,b=4,c=6a=10,b=4,c=6/表达式值表达式值5 5,a=5,b=10,c=2a=5,b=10,c=2第25页/共52页2.4.1 2.4.1 简单赋值运算符及其表达式简单赋值运算符及其表达式p=p变量类型 变量=表达式p不能在声明变量时,对变量进行连续赋值int a=b=c=3;int a=4;flo
15、at b=2.58;char c1=101;int a;a=4;float b;b=2.58声明变量的同时给变量赋值声明变量的同时给变量赋值先声明,后赋值先声明,后赋值第26页/共52页2.4.2 2.4.2 算术运算符及其表达式算术运算符及其表达式p基本算术运算符优先级优先级运算符运算符操作操作2 2+-+-自增自增1 1自减自减1 1取正取正取负取负单目单目3 3*/%乘法乘法除法除法取模取模双目双目4 4+-加法加法减法减法双目双目第27页/共52页2.4.2 2.4.2 算术运算符及其表达式算术运算符及其表达式p+-/*+-/*取正+取负-p参与运算的数据可以为整型、实型p若全部操作数
16、为整型,结果为整型p若其中一个操作数为实型,结果为双精度doubledouble型例:例:8/3结果为结果为2,8/3.0结果为结果为2.6667p%模除(取余)p参与运算的数据必须为整型,否则报错p结果为两个整数相除后的余数,是一个整型数据。例:例:8%3=2 10%4=2 48%6=0 1%10=1错误:错误:8.23%4第28页/共52页2.4.2 2.4.2 算术运算符及其表达式算术运算符及其表达式p+-+-增量运算符v单目运算符:只有一个操作数v+i,i+:i=i+1+i,i+:i=i+1vi-,-i:i=i-1i-,-i:i=i-1(i+)*4+(-j)/5第29页/共52页2.4
17、.2 2.4.2 算术运算符及其表达式算术运算符及其表达式p+-+-增量运算符v单目运算符:只有一个操作数v有以下形式:n+i:+i:变量i i自增1 1后再参与其他运算n-i-i:变量i i自减1 1后再参与其他运算ni+i+:变量i i先参与其他运算再自增1 1ni-i-:变量i i先参与其他运算再自减1 1例:例:int i=3,a;a=(i+)*5例:例:int i=3,a;a=(+i)*5a=15,i=4a=20,i=4(i+)*4+(-j)/5第30页/共52页2.4.2 2.4.2 算术运算符及其表达式算术运算符及其表达式p+-+-增量运算符例例 j=3;k=+j;j=3;k=+
18、j;j=3;k=j+;j=3;k=j+;j=3;printf(j=3;printf(“%d%d”,+j);,+j);j=3;printf(j=3;printf(“%d%d”,j+);,j+);a=3;b=5;c=(+a)*b;a=3;b=5;c=(+a)*b;a=3;b=5;c=(a+)*b;a=3;b=5;c=(a+)*b;p+-+-不能用于常量和表达式(a+b)+4+(y+4)+/K=4;/K=3;/4;/3;/c=20/c=15i+=4第31页/共52页2.4.2 2.4.2 算术运算符及其表达式算术运算符及其表达式p+-+-增量运算符第32页/共52页2.4.3 2.4.3 复合赋值运
19、算符及其表达式复合赋值运算符及其表达式优先级优先级运算符运算符操作操作1414+=+=-=-=*=*=/=/=%=%=&=&=|=|=加赋值加赋值减赋值减赋值乘赋值乘赋值除赋值除赋值模除赋值模除赋值位左移赋值位左移赋值位右移赋值位右移赋值位与赋值位与赋值位异或赋值位异或赋值位或赋值位或赋值双目双目第33页/共52页2.4.3 2.4.3 复合赋值运算符及其表达式复合赋值运算符及其表达式p复合赋值表达式形式:p变量 复合赋值运算符 表达式p等效于:变量=变量 双目运算符 表达式p例:va+=4 a+=4 等效于 a=a+4a=a+4va-=5;a-=5;等效于 a=a-5a=a-5va*=i+2
20、 a*=i+2 等效于 a=a*(i+2)a=a*(i+2)va%=4 a%=4 等效于 a=a%4a=a%4第34页/共52页2.4.4 2.4.4 长度测试运算符长度测试运算符p用于数据类型:sizeofsizeof(类型名)psizeof(float),sizeof(int)sizeof(float),sizeof(int)p用于变量:sizeofsizeof(变量名)pint a,b;int a,b;pb=sizeof(a);b=sizeof(a);或 b=sizeof a;b=sizeof a;psizeof(int)sizeof(int)结果根据编译器决定,VCVC为4 4第35页
21、/共52页2.4.4 2.4.4 长度测试运算符长度测试运算符注意:注意:psizeof操作符不能用于函数类型,不完全类型或位字段。操作符不能用于函数类型,不完全类型或位字段。p不完全类型指具有未知存储大小的数据类型,如未知存储大小的数不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、未知内容的结构或联合类型、组类型、未知内容的结构或联合类型、void类型等。类型等。p如如sizeof(max)若此时变量若此时变量max定义为定义为pint max(),psizeof(char_v)p若此时若此时char_v定义为定义为pchar char_vn且且n未知,未知,psizeof
22、(void)都不是正确形式。都不是正确形式。第36页/共52页2.4.5 2.4.5 逗号运算符及其表达式逗号运算符及其表达式o用途:n分隔符:o定义多个变量:int a,b,c;o函数参数间隔:printf(“%d,%d,%d”,a,b,c);n表达式:o一般形式:表达式1,表达式2,表达式3表达式n o逗号表达式的求解过程是:n先求解表达式1,再求解表达式2,然后依次求解。整个逗号表达式的值是表达式n的值。第37页/共52页2.4.5 2.4.5 逗号运算符及其表达式逗号运算符及其表达式o例:b=(a=3*5,a*4)第一步:求解第一个表达式第一步:求解第一个表达式3*5a=15第二步:求
23、解第二个表达式第二步:求解第二个表达式a*415*4=60最后得到结果:最后得到结果:a=15,b=60第38页/共52页2.4.5 2.4.5 逗号运算符及其表达式逗号运算符及其表达式例例:/*ch2_6.c*/#include main()int x,y=7;float z=4;x=(y=y+6,y/z);printf(x=%dn,x);运行结果:运行结果:x=3第一步:y=y+6第二步:y/zy=1313/4.0=3.2x=(y=13,y/z)第39页/共52页2.5 2.5 数据类型转换数据类型转换隐式转换v什么情况下发生运算转换-不同类型数据混合运算时赋值转换-把一个值赋给与其类型不
24、同的变量时输出转换-输出时转换成指定的输出格式函数调用转换-实参与形参类型不一致时转换v运算转换规则:不同类型数据运算时先自动转换成同一类型第40页/共52页运算转换运算转换45+2.3-a+(60/6)%3+5*2第41页/共52页doublefloatlongunsignedintchar,short低低高高说明说明:必定的转换必定的转换运算对象类型不同时转换运算对象类型不同时转换例例 char ch;int i;float f;double d;ch/i +f*d -(f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledo
25、ubledoubledoubledoubledouble10+a +i*f -d/l例例 int i;float f;double d;long l;第42页/共52页2.5 2.5 数据类型转换数据类型转换赋值转换1:赋值运算中,将赋值运算符右侧的数据自动转换成左侧的类型具体转换:实型赋予整型,舍去小数部分int i,j;i=3.8999;j=5.321;结果:结果:i=3,j=5第43页/共52页2.5 2.5 数据类型转换数据类型转换赋值转换2整型赋予实型,数值不变,以浮点数存放,增加小数部分(0)Double d=8;显示结果d=8.000000第44页/共52页2.5 2.5 数据类
26、型转换数据类型转换赋值转换3字符型赋予整型:转换为整型。字符:1字节,整型:4字节。例:例:int i;i=a;00065第45页/共52页标准字符标准字符ASCIIASCII码范围码范围0000000001111111转换成十进制:0127o第七位为1的ASCII码为无效字符第46页/共52页2.5 2.5 数据类型转换数据类型转换赋值转换4:整型赋予字符型:整型的低8位赋予字符变量。转换方法:把十进制数转换为二进制,取低八位若第七位上值为1,这个二进制数转换为十进制数的值超过127,显示的字符为无效字符。15141312111098765432100 0 0 1 1 1 1 0 1 1 0
27、 1 1 0 0 0int i=7896char c=i;0 0 0 1 1 0 1 1 0 1 0 1 1 0 0 0int j=7000;char c=j;运行结果:运行结果:?,Xchar c1=7896,c2=7000;Printf(“%c,%cn”,c1,c2)第47页/共52页2.5 2.5 数据类型转换数据类型转换输出转换:整型数据以字符格式输出整型数据以字符格式输出字符型数据以整型数据输出字符型数据以整型数据输出运行结果:运行结果:+,65第48页/共52页显式转换(强制转换)一般形式:(类型名)(表达式)例 (int)(x+y)(int)(x+y)(int)x+y (int)
28、x+y (double)(3/2)(double)(3/2)(int)3.6 (int)3.6 说明:强制转换不会改变原变量类型,只把转换的类型赋给结果变量 例例 main()float x;int i;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);结果:结果:x=3.600000,i=3第49页/共52页小结小结必须转换:float doublefloat doublecharchar,short intshort int精度转换:精度低的数据类型 精度高的数据类型类型转换优先级:Double long unsigned intDouble long unsigned int赋值号右边的数据类型转换为左边的类型第50页/共52页实验1题目P12第二题编写程序,求下面表达式的值(a,b为整型,,x,y为浮点数据)(a+b)/2+(int)x%(int)y将下面3个程序代码录入VC,保存到D:班级姓名,运行并查看结果。P29阅读程序题1,23.第51页/共52页感谢您的欣赏!第52页/共52页