您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 工作计划 > 《C语言总复习》PPT课件
C语言总复习一、C语言的数据表示1.1常量和变量1.2表达式1.3数据类型–简单类型、结构类型、指针类型1.4输入、输出1.1常量和变量1.常量–常量是在程序执行中,值不发生改变的数据。其值预先决定,之后不变。有不同的数据类型。(1)常数例如的:–整数:+5、-3、017(八进制)、0x1f(16进制)–实数(浮点数):3.14、-1.2E-3、1E10–单个字符:‘A’,占一个字节’\\’,转义字符‘\’‘\’非法’\77’(八进制ASCII码63,‘?’),’\78’非法’\x3f’(十六进制ASCII码63,‘?’)‘\x3g’非法–字符串:“A”后面有\0,占两个字节在程序中inta=0x6d,是把一个十六进制的数赋给变量a注意这里的0x必须存在。在程序中inta=06d,是一个八进制的形式。在转义字符中,’\x6d’才是合法的,0不能写,并且x是小写。‘\141’是合法的,0是不能写的。‘\108’是非法的,因为不可以出现8。’\\’,转义字符‘\’‘\’非法\’\”’\77’(八进制ASCII码63,‘?’),’\78’非法’\x3f’(十六进制ASCII码63,‘?’)‘\x3g’非法转义字符占1个字节。(2)符号常量–给常量起标识符名字。•C语言的符号常量(用宏定义):•#definePI3.14159265–好处:提高程序易读性;方便修改常量的值;注意:1.一般用大写字母。2,#defineM3不是C语句,后面没有“;”。3.可以做M+1,不能做M++.(3)地址常量–当数组在定义时,其变量名为其首地址,是地址常量。inta[10];可以做a+1,不能做a++.1.1常量和变量2.变量–用各种操作来改变值数据。–从“名”和“值”两个角度认识变量(1)变量名每个变量,要在使用前定义变量的名字,遵循标识符命名规则。–只能用字母、数字和下划线组成。–不能以数字开头。–不能用保留字(int,main…..)。–关键字不可以作为用户标识符号。maindefinescanfprintf都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。变量定义就是申请数据的存储空间,登记数据的各种存储特性。–例如:intm;2个字节-215~215-1(-32768~32767)–longn;4个字节-231~231-1–charch;1个字节0~255–floatx;4个字节±3.4×(10-38~1038)–doubley;8个字节±1.7×(10-308~10308)可以用sizeof获得字长–sizeof(char)=1–sizeof(int)=2–sizeof(double)=8(2)变量的值变量值就是由变量名所指定空间上的存储数据内容。即变量的当前值。数据内容用语言的操作语句来改变。–赋值语句;键盘输入语句;•charchx;intm;/*变量的定义*/•chx=‘A’;m=12*3;/*赋值语句*/•scanf(“%d”,&m);/*键盘输入语句*/–在程序运行时,将数据存入制定内存空间。②①–变量初始化:定义变量时同时确定变量初值。例如:charchy=‘a’;intweight=2;③1.2C语言的表达式1、算术表达式2、关系表达式3、逻辑表达式4、赋值表达式5、逗号表达式6、条件表达式7、其他表达式C语言的表达式:使用规定的运算符,将常量、变量、函数(调用)连结的一个有意义的式子。1、算术表达式用算术运算符来表示对数据的算术运算求值过程。算术运算符:+-*/%2/3结果是0,2%3结果是2,2.0%3错注意不同类型运算问题:doublelongunsignedintfloatcharshort高低强制类型转换:一定是(int)a不是int(a),注意类型上一定有括号的。注意(int)(a+b)和(int)a+b的区别。前是把a+b转型,后是把a转型再加b。2、关系表达式关系运算符:==(优先级较高)!===(优先级较低)关系表达式的结果:1(真),非0(假)如:x0,sin(x)=0.5,(a+b)==(c*d)–注意语法合理与数学逻辑错误问题:–分析:10=a=15a=910=a=1510=a假00=15真所以要写成10=a&&a=15a==bc等价于a==(bc)3、逻辑表达式用逻辑表达式来表示对数据的逻辑关系判断,运算结果是逻辑值“真”1或者“假”0。C逻辑运算符包括:–!&&||–参加逻辑运算的数据必须是逻辑量,可以是逻辑类型的变量、常量,关系表达式或逻辑表达式。C语言中,没有专门的逻辑量,1是真值,0是假值。也认为非零的值为真值。–如:inta=3,b=4,c=-5;–(1)!((ab)&&!c||1)–(2)if(a)printf(“\nyes”);a,c均按非0(即真)处理逻辑运算规律①在&&(与)表达式中,若&&的左端为假,则不再计算另一端,该表达式值肯定为0(假)。②在||(或)表达式中,若||的左端为真,则不再计算另一端,表达式的值必定为1(真)。inta=5,b=1k=a=3&&b--0k?b?假,后面不算了k=0,b=1判断闰年的条件是:能被4整除但不能被100整除,或能被400整除。(x%4==0&&x%100!=0||x%400==0)•水仙花数是指一个三位正整数,其各位数字的立方和等于该数本身(k*100+m*10+n==k*k*k+m*m*m+n*n*n)•三角形的基本条件((a+b)c)&&((c+b)a)&&((c+a)b))4、赋值表达式=,+=,-=,*=,/=,++(单目),--(单目)级别仅高于逗号表达式,右结合变量=表达式inta=3,c=2,ba=b=c;n*=m+2相当于n=n*(m+2)k=i++;先k=i,再i=i+1k=++i;先i=i+1,再k=ic赋值给b,b=2b赋值给a,a=25、条件表达式e1?e2:e3若e1为真,表达式的值为e2,否则为e3.(--a==b++)?--a:b++5-1==4Ta=4--aa=3表达式的值为3a=5,b=44-1==5Fb=6b++b=7表达式的值为6a=4,b=5条件表达式的值的类型为e2,e3二者中类型较高者。如果y=5;y3?-1.0:2其值为2.06、逗号表达式表达式的值等于最后一个表达式的值,运算等级最低!a=5,b=2,c=3a=7+b+c,a++a=(7+b+c,a++)a=12a=57、强制类型转换表达式(单目)intm;sqrt((float)m);并没有改变m的类型和数值三种取整丢小数的情况:1、inta=1.6;2、(int)a;3、函数返回值位运算总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。例1:chara=6,b;b=a2;这种题目的计算是先要把a的十进制6化成二进制,再做位运算。理解记忆运算符表(高)(低)!++,--,等算术运算符关系运算符逻辑运算符&&||条件运算符赋值运算符逗号运算符右结合单目运算符赋值运算符条件运算符例假设x=10,y=20,计算38+5x+y&&38%5=y的值在容易出错或不确定的地方按照自己的本意给表达式加括号38+5x+y&&38%5=y4330①②表达式的求值过程③30④1⑤⑥运算符的优先级和结合性01.3数据类型数据类型:在高级语言的数据表示机制中,数据类型(datatyPe)是个核心概念。简单类型构造类型指针类型整型实型字符型数组结构体共用体数值型枚举型空类型1.3数据类型(1)整型(输入、输出格式“%d”)类型名字节数数值范围–int2-32768~32767–short2-32768~32767–long4-2147483648~2147483647–还有无符号整型(输入、输出格式“%u”)•Unsigned[int]20~65535•Unsignedshort20~65535•Unsignedlong40~42949672951.简单类型(2)实型(输入、输出格式“%f”)实型(float)数据的值集是实数集的一个有限子集.–-3.4e38,-3.4e-39,3.4E-38,3.4E381.简单类型类型名字节数输入、输出格式有效数字位float4%f7doubule8%lf16longdoubule16%lf19不要以为是长整型E38非法(3)字符型(输入、输出格式“%c”)ASCII码,一个字符占1字节;charca;ca=‘#’;注意转义字符’\’的使用。(4)字符串(输入、输出格式“%s”)–所谓“字符串”是指若干有效字符的序列。C语言字符串可以包括字母、数字、专用字符、转义字符等。字符串常量:使用双引号–ChinaBASICa+b=cLi-Li–39.4%d\n解放军“字符型的一维数组(相当于字符串变量)–charst[8],str[10];–strcpy(st,12345);strcpy(str,st);–不能st=“12345”;str=st;2.结构类型–“结构”一般可以称为数据元素,在不同的结构类型中,数据元素会有特定的名称。–结构类型的数据由更加基本的成分组成。•这些成分称为“数据项”,结构的子成员。1.3数据类型(1)数组A[0]A[1]A[2]A[3]A[4]A[5]A[6]A[7]1020304050607080一个数组(array)是由相同类型的若干数组元素构成的有限序列。C语言的数定义:–intB[8],A[8];–charC[10];2.结构类型例日期类型的定义(2)结构体C语言中实现:structDate{intmonth;/*月*/intday;/*日*/intyear;/*年*/};structDatemyd={12,16,1978};系统分配给它的内存是各成员所需内存量的总和。本例是6.(1)指针:变量名在内存中的存储地址。(2)指针变量–inti=12,*p;–P=&i;–把存放变量i的地址的变量p称作指针变量。–指针变量的存放内容是数据的地址。3.指针类型(3)指针引用变量–指针变量可以指向各种不同的数据类型,因此指针变量也要有不同的指针类型。如:–intm,*p;floatx,*q;inta[],*r–m=12;p=&m;–x=3.14;q=&x;–r=a;注意:是否用&1.4输入、输出输出:printf(“…….”,…….)%d,%6d,%ld%c,%s%f,%10.2f,%lf,%20.8lfn=3;printf(“\n%d,%d,%d”,n,++n,n++);–计算从右到左,输出从左到右。%s是输出以指定首地址到第一个\0或空格之间的字符串。chara[]=“abcdefg”,*p=a;printf(“%s”,*++p);bcd5,5,31.4输入、输出输入:scanf(“…….”,…….)%d,%ld对应intlong%c,%s对应charcharstr[]%f,%lf对应flaotdoubleScanf(“%d%d%*d%d”,&a,&b,&c);跳过输入的第三个数据。常见错误inta,b;chard,e[20];–scanf(%d,%f\n”,&a,&b);–scanf(%d,%f”,a,b);–scanf(%7.2f,&a);–scanf(%s,&e);–scanf(%c,d);格式控制符对输入的要求举例%d输入一个十进制整数inta;scanf(%d,&a);%x输入一个十六进制整数inta;scanf(%x,&a);%o输入一个八进制整数inta;scanf(%o,&a);%u输入一个十进制无符号整数unsignedinta;scanf(%u,&a);%c输入一个字符charch;scanf(%c,&ch);%s输入一个字符串char*str;sca
本文标题:《C语言总复习》PPT课件
链接地址:https://www.777doc.com/doc-1507892 .html