C语言学习、复习资料1第一章基础一、函数是c语言的基本单位,一个程序有一个或多个函数组成,且必须包含main函数(有且只有一个)二、程序总是从main函数开始执行三、c语言的3种基本结构是顺序结构、选择结构、循环结构四、//表示单行注释五、/**/表示块注释第二章常量定义:其值不能被改变的量叫常量一、整形常量例如:100,十进制数100-16,十进制数-1607,八进制数7-036,八进制数-36,等价于十进制数-300x19,十六进制数19,等价于十进制数25-0x2f,十六进制数-2f,等价于十进制数-47二、实型常量例如:3.5,double型常量2e3,double型常量-2e-1,double型常量6.double型常量,等于6.0.3double型常量,等于0.62.5ffloat型常量C语言学习、复习资料2三、字符常量1、普通字符:用‘’单撇号括起来的一个字符,如‘a’,‘9’2、转义字符:以\开头的字符,如\n,换行\t,tab键\\,单斜杠\\61,61是八进制数,等于十进制数49,即字符‘1’\x62,62是十六进制数,等于十进制98,既字符‘b’四、字符串常量用“”双撇号括起来的若干字符例如:“abc”,“”,“a”五、符号常量用#define指令指定的常量例如:#definePI3.1415827第三章变量一、必须先定义(声明),后使用二、必须是一个合法的标识符三、一个合法的标识符必须满足以下3个条件1、只由字母、数字、_(下划线)三种字符组成2、首字符不能是数字3、不能与c语言的保留字冲突,如void,int等都是保留字四、数据类型1、字符型:char如‘a’,‘\101’,‘\x41’,‘\n’2、整型:short(短整型)如:2,3,-5C语言学习、复习资料3int(整型)如:3,89,-7long(长整型)如3l,0L前面可以加修饰符signed(有符号的)或unsigned(五符号的)例如:signedint,有符号整形unsignedint,无符号整形3、实型:float:如3.4fdouble:如4.2,1e2五、不同类型间数据的混合运算1、+,-,*,\运算中,只要有一个为float或double,结果为double型2、int与float或double运算,int、float都转换为double3、char与int运算,char转换为int4、char与float或double运算,char转换为double六、常用ASCII码‘0’=30H=48,1到9依次+1类推‘a’=61H=97,b到z依次+1类推‘A’=41H=65,B到Z依次+1类推第四章运算符一、常用运算符1、算术:+,-,*,/,%2、关系:,,=,=,==,!=3、逻辑:!,&&,||4、赋值:=,+=,-=,*=,/=,%=5、逗号运算符:,说明:1、关系和逻辑运算的结果只有两个,要么为真,要么为假2、C语言中0表示假,非0表示真3、c语言中将真赋值给其他变量时,其值为1C语言学习、复习资料4二、优先级1、算术关系逻辑赋值逗号2、!(非)优先于算术3、*,\,%优先于+,-4、,,=,=,优先于==,!=5、&&优先于||6、同级别运算符一般都是自左向右结合例如:a*b/c*e,等价于((a*b)/c)*e7、赋值运算符是自右向左结合例如:a=b=c=1,等价于a=(b=(c=1))三、自增(++),自减(--)1、i++,++i独立使用时没有区别,都等价于i=i+12、i--,--i独立使用时没有区别,都等价于i=i-13、i++,++i在其他语句中使用时是有区别的,i++,先使用i,再i=i+1例如:y=x++;等价于y=x;x=x+1;++i,先i=i+1,再使用i例如:y=++x;等价于x=x+1;y=x;4、i--,--i的区别等同i++,++i5、特殊情况1:0&&i++语句中,i++永运不执行6、特殊情况2:0&&++i语句中,++i运不执行7、特殊情况3:1||i++语句中,i++永运不执行8、特殊情况4:1||++i句中,++i运不执行9、特殊情况5:a++,b++,a+b语句中,先执行a=a+1,再执行b=b+1,最后a+bC语言学习、复习资料5四、赋值1、+=,-=,*=,/=等复合赋值语句的优先级等同于=2、a+=3+4等价于a+=(3+4)3、a=b=c=4;等价于c=4;b=c;a=b;五,逗号运算符1、运算方向是自左向右例如:a++,b++,a+b等价于a++;b++;a+b;2、逗号表达式的结果为最后一个表达式的值例如:执行x=(3,4,5,6);后x=6第五章语句一、表达式:通过各种运算符将常量或变量连起来的式子就是表达式二、表达式后加;分号,构成语句三、空语句,只有一个;分号的语句四、复合语句,{。。。},放在一对{}大括号中的若干条语句当作一条语句使用,就是复合语句例如:while(i=100){s=s+i;i=i+1;}C语言学习、复习资料6第六章输入输出语句一、printf格式:printf(参数1【,参数2,参数3,。。。参数n】);说明:1、参数1必须有2、参数1的数据类型为字符串型,即用一对“”双引号括起来的字符串3、字符串中字符有三种普通字符:原样输出转义字符:可用于输出功能字符占位符:用于显示参数2到参数n的值例题:1、printf(“Helloworld”);2、printf(“Helloworld\n”);3、printf(“a=%d\n”,a);占位符:%d:以十进制显示整形数据%o:以八进制显示整形数据%x,%X:以十六进制显示整形数据,x表示abcdef用小写显示,X表示abcded大写显示%u:以十进制显示无符号整形数据%c:显示一个字符%s:显示字符串%f:以小数形式显示浮点数,可以float类型,也可以是double类型%e,%E:以科学计数法形式显示浮点数,e表示科学计数法中e小写显示,E表示科学计数法中的e用大写显示%g,%G:选择%f或%e中较短的一种形式显示,当选择%e方式时,g和G的区别同e和E的区别设置宽度:m.n例如:1、%10.2f:以小数的形式显示一个浮点数,显示总宽度为10(包括整数部分,小数点,小数部分),其中小数位数为22、%5d:显示一个整形数据,总宽度为五位,不足5位时,右对齐,超过5位时全部显示对齐设置:-表示显示数据左对齐例如:%-10.2f,以小数形式显示一个浮点数,位数不足10位时,左对齐C语言学习、复习资料7二、scanf格式:scanf(参数1,参数2【参数3,参数4,。。。。。。参数n】)说明:1、参数1必须有,类型为字符串2、字符串中的字符有两种普通字符:需要原样输入占位符:用于输入参数2大参数n的值3、参数2到参数n必须的变量的地址例题:1、scanf(“%d”,&a)2、scanf(“a=%d”,&a)输入时,先输入a=,再输入数字3、scanf(“%2d%2d%2d”,&a,&b,&c)占位符:%d:输入十进制整数%o:输入八进制整数%x,%X:输入十六进制整数,x表示abcded用小写,X表示abcdef用大写%u:输入无符号十进制整数%c:输入一个字符%s:输入字符串%f:输入float类型的浮点数,例如scanf(“%f”,&f);(f为float类型)%lf:输入double类型的浮点数,例如scanf(“%lf”,&d);(d为double类型)宽度设置:m例如:1、scanf(“%2d”,&a),输入123456,则a=12预读取:*例如:1、scanf(“%2d%*2d%2d”,&a,&b),输入123456,则a=12,b=56三、putchar(输出一个字符)格式:putchar(参数)说明:1、参数为字符型数据C语言学习、复习资料82、有且只有一个参数3、参数可以是字符变量或字符常量(字符常量分为普通字符和转义字符)4、函数执行一次只能输出一个字符例题:1、putchar(‘a’);2、putchar('\101');3、putchar(‘\x41’);4、putchar(‘\n’);5、charc=‘a’;putchar(c);6、putchar(0101);7、putchar(10);8、putchar(0x30);四、getchar(输入一个字符)格式:chargetchar()说明:1、无参数2、返回值为字符型3、可以输入普通字符,也可以输入控制字符(例如回车、退格、tab等)4、函数执行一次只能输入一个字符例题:1、charc=getchar();如果输入a,则c=‘a’如果输入回车,则c=‘\n’第七章选择结构一、if语句1、格式1:if(条件)语句2、格式2:C语言学习、复习资料9if(条件)语句1else语句23、格式3:if(条件1)语句1elseif(条件2)语句2elseif(条件3)语句3。。。elseif(条件n)语句n4、格式4:if(条件1)语句1elseif(条件2)语句2elseif(条件3)语句3。。。elseif(条件n)语句nelse语句m备注:1、条件可以是关系表达式,逻辑表达式,甚至是数值表达式2、语句可以是一个简单的语句,也可以是一个复合的语句,还可以是另一个if语句(即if语句的嵌套)3·、整个if语句可以写在多行上,也可以写在一行上,一般为了可读性,提倡写成锯齿形式4、语句1,语句n是if的内嵌语句,是if语句的组成部分,且每个语句的后面都有分号5、语句1,语句n可以是一条独立语句,也可以是一条用花括号括起来的复合语句6、else不能单独使用,必须配合if,而if可以没有else7、当if语句嵌套使用时,要注意if与else的配对关系:else总是与它前面最近的未配对的if配对。举例:1、if(x0)y=1;C语言学习、复习资料102、if(x=60){y=1;}else{y=0;}3、if(x0)y=1;elseif(x=0)y=0;elsey=-1;4、if(x79)y=优;elseif(x69)y=良;elseif(x59)y=中;elseif(x=0)y=差;二、条件表达式格式:条件?表达式1:表达式2备注:1、当条件成立时,返回表达式1,否则返回表达式22、执行顺序是,先判断条件,条件为真,则返回表达式1的值,否则返回表达式2的值3、条件运算符优先于赋值运算符,但比逻辑运算符低举例1、max=a||b?a:b;等价于max=(a||b)?a:b;而不是max=a||(b?a:b;)2、C语言学习、复习资料11if(ab)max=a;elsemax=b;等价于max=ab?a:b;三、switch语句格式:switch(表达式){case常量1:语句1;break;case常量2:语句2;break;。。。case常量n:语句n;break;default:语句n+1;break;//可以没有}备注:1、当表达式的值等于常量n时,执行语句n,当所有常量都不等于表达式时,执行default后的语句,如果没有default语句,则不执行。2、表达式的类型为整型(包括字符型)3、switch下面的{}花括号是一个复合语句。4、case后面跟一个常量(或常量表达式),起标号的作用,用来标志一个位置,default也是起标号的作用5、各个case标号出现的次序不影响执行的结果6、各个case常量必须互不相同7、case标号只起标号的作用,并不在此进行条件检查,因此各个case后都有break,否则将从该case开始,一直执行下去8、当case后的子句多于一条时,可以用花括号括起来,也可以不用,但其中有声明语句时,必须用花括号括起来9、有些情况下,可以让多个case标号共用一组执行语句。例如case1:case2:C语言学习、复习资料12case3:printf(“123\n“);break;10、case后必须是常量,如果case跟变量是错误的举例1、已知学生100分制成