




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言重要知识点复习资料、C语言基础(-)c语言特点(1)语言简洁、紧凑、使用方便、灵活。(2 )运算符及数据结构丰富(3 )具有结构化的控制语句,程序设计自由度大,代码质量高(4)(5)(-)具有位处理和地址操作能力 用C语言写的程序可移植性好单精度型整舉intfloat实型(浮点型)彳枚举型en um字双精度型符型char Idoubler基本类数据类型$构造类型指针类型数组类型结构体型共用体型structunion空类型(无值类型)void(三)结构 C程序是由函数构成的,至少要有 main ()函数 函数由函数的首部和函数体组成 函数首部由函数名、类型、属性、参数名、参数类型组成 函数
2、体由声明部分和执行部分组成 C程序总是从main函数开始运行 每个语句和数据声明的最后必须有一个分号(四)常量1整型常量:(1)十进制整数八进制整数(以0开头)十六进制整数(以Ox开头)(4)长整型常数(在数字后加字符L或I )2. 实型常量(1)十进制数(小数形式)(2)指数形式(e前e后必有数,e后必为整数)字符串常量:用“”的字符序列eg :“ A”为两个字符,即“ A”和“0 ”(4)字符常量:用“的字符序列(5)符号常量:不是常量的数据类型# define符号常量常量 (符号常量通常用大写字母)(五)变量标识符:字母,数字和下划线三种字符组成,且第一个字符必须是字母或者下划线。1 整
3、型变量:或 short或(1 )基本 f( 2 )短整 V3 )长整intshort intlong short(4)无符号型:存储单元中全部二进制用做存放数本身,不包括符号位(5)C语言提供四个标识符long、short、unsigned、signed来表示基本类型。 Signed int有符号基本整型(可简写为int) Un sig ned int无符号基本整型 Sig ned short int有符号短整型 Un sig ned short int无符号短整型 Sig ned long int 有符号长整型 Un sig ned long int 无符号长整型2. 实型变量(1)单精度(
4、float型):占4个字节(32位),只提供7位有效数字(2)双精度(double型):占8个字节,只提供1516位有效数字3. 字符变量:用来存放字符常量char c1,c2; c1 =Q;c2=b注意:%沬示将输出字符%d表示将输出十进制数.注解:a,的ASCII码为97, * A啲ASCII码为654. 变量初始化:变量名二表达式(六)运算符和表达式1. 运算符类型算术运算符+- */% (求余数)比较运算符v =(等于)= | a &赋值运算符二条件运算符?:逗号运算符,指针运算符少&求字节数运算符sizeof注意:参加+* /运算两个数中有一个数为实数或双精度数,则结果是double
5、型(双精度)P365运算符优先级来执行2. 自增、自减运算符:(1)只用于变量 (+5) X(2)+i ,i :在使用i之前,先使i的值加或减1(3)I+, i :在使用i之后,再使i的值加或减1注意:+相当于4+ )3. 尖系运算符(比较运算符)(大于)V(小于)一(等于)=(夬科%=(小于等于)!=(不等于)4.逻辑运算符a|b运算符作用使用方式!a&a、b都为真,贝U a&b为真,否则为假。a、b都为假,则a|b为假,否则为真。a为真,贝,a为假;a为假时,! a为真。5. 赋值运算符二(1)表达式v=e的作用是求出表达式e的值,并把结果复制给ve可以是常量、变量、或表达 式。(2) 如
6、果v和e的类型不同,赋值运算执行时会把e的值转化为v的类型。(3 )如果等于号两侧的类型不一致,但都是数值型或是字符型时,在赋值时要进行类型转换。见书P60-61规则1 8(4) 左值v必须是变量或是其他能够存储数据的对象。矢系: 俳) 算术运算符 矢系运算符& 和 | 赋值运算符6逗号运算符和逗号表达式注意:任何运算符优于逗号运算符(double)a(int)(x+y)(float)(5%3)将a转换成double类型将x+y的值转换成整型将5%3的值转换成float型将X转换成整数类型后再与 y相加:表达式3(七) 不同类型数据间的转换与运算强制类型转换运算符:(1)(2)(3) (4)
7、(int)x+y7条件运算符:表达式1?表达式2功能:判断表达式1的值,如果成立就执行表达2,否则就执行表达式3。式(2)条件运算符是C语言中唯一的三目运算符二、程序控制结构1 字符数据的输入输出(1) putchar函数:字符输出函数 功能是在显示器上输出单个字符。 一般形式为:putchar( c ) C可以是字符变量或整型变量(2) getchar 函数 功能是从键盘上输入一个字符。 形式为:getchar()整型变量或作为表达式中的一部分。 只能接收一个字符。得到的字符可以赋给字符变量、(3) printf函数:printf(格式控制,输出表列) 格式字符P76-81 printf(a
8、=%d,b=%d,a,b) 输出 a=.b=.(4) scant函数:scanf(格式控制,地址表列) &a中的是“地址运算符”,&a是指变量a在內存中的地址。 scanf(%d;&a,)注意:用“ d%9格式输入数据时,不能用逗号作两个数据间的分隔符 f,%d,%c:表示要输入一个实数整数字符,注意输入的数据中间必须用逗号格开。2. C语言的选择语句(1) if语句 格式1 if (表达式)语句 格式2 if (表达式)语句1 else语句2 格式3 :级联式if语句If (表达式1)else if( else if(表达式2 )表达式3)语句2语句3语法格式:for (表达式1 ;判断表达
9、式2;表达式3)循环体语句else if( 表达式m) else语句n If语句的嵌套If ()if() elseelseif() else(2)switch语句switch。case常里表达式1case常里表达式0语句3语句4:语句1:语句2case常里表达式n :语句nDefault :语句 n+1(3)Break 语句 执行break语句会导致程序跳出switch结构,并执行之后的程序代码. 在switch结构中,如果没有break语句,程序控制将会从一种情况继续到下一种情况3. 循环语句(1) while 语句 格式:while (控制表达式)循环体语句当表达式为非0值时,执行whil
10、e语句中的内嵌语句(2) do while 语句 格式:do循环体语句while (控制表达式) 特点:先执行循环体,然后计算控制表达式的值。表达式的值为真,则再次执行执行循环体,再计算 表达式的值。当控制表达式的值为假时,结束循环。(3)for语句注意:表达式1只执行1次 for (循环变量赋初值;循环条件;循环变量增值)注意:for语句中的表达式1可以省略,其后的分号不能省(4)结束循环的控制语句 break语句可以用来从循环体内跳出循环体,即提前结束循环。 con ti nue语句作用是结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行 循环的判定. continue
11、语句只结束本次循环,而不是终止整个循环的执行。break语句则是结束整个循环过程,不再 判断执行循环的条件是否成立。三、构造型数据(1) 一维数组: 定义:类型说明符 数组名常量表达式; 常量表达式中可以包括常量和符号常量,但不能包含变量。 引用:数组名下标只能引用单个数组 一维数组的初始化A. 只给一部分元素赋值,其余元素为0B. 对数组不赋初值,系统会对所有数组元素自动赋以0值C. 对全部数组赋初值是,可以不指定数组长度 冒泡排序法选择排序法(2 )二维数组 定义:类型说明符数组名常量表达式常量表达式; 引用:数组名下标下标 在使用数组元素时,应该注意下标值应在已定义的数组大小的范围内。(
12、3 )字符数组:用来存放字符 数据的数组 定义:chare i;字符数组中一个元素存放一个字符。 字符数组的初始化A. 初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符(0 )。eg : char c 2 = a1 则 c 0 =a c 1 =0B.如果提供的初值个数与预定的数组长度相冋,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。eg :char c = or,;等价于 char c2=, k;C.字符数组可以用字符串文本初始化。char c= helloc0c1c2c3c4fc0c1c2c3c4heII0heIII0D.字符数组的输出a
13、.逐个字符输出,使用格式符“%c” printf(u,ci);b.将整个字符串输入。输出时用“%s” charC= “1amai 1 Tprintf(“ %s ,c);E.字符数组的输入a.用scant函数输入一个字符串。char c20;scanf(” ,C);注意:scanf函数中的输入项c是已疋义的字符数组名,数组名刖面不要加&(4 )字符串处理函数 puts函数:作用是将一个字符串输出到屏幕。puts (字符数组名) gets函数:作用是从终端输入一字符串到字符数组,并得到一个函数值.gets (字符数组名) strcat函数:把字符串2接到字符串1后。并将结果保存在字符数组1。str
14、cat (字符数组1,字符数组2) strcpy函数:字符串复制函数。是将字符串2复制到字符数组1中去。A. strcpy (字符数组1,字符串2)B. 字符数组1必须定义得足够大。C. 字符数组1必须写成数组名形式,字符串2可以是字符数组名,也可以是一个字符串常量。eg : strcpy (str1 , ” China”);D. 复制时连同字符串后面的0,一起复制到字符数组1E. 不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。如:str仁China ”;不合法str仁str2;不合法 strcmp函数:strcmp (字符串1,字符串2 )A. 作用是比较字符串1和字符串2 o
15、比较的结果由函数值带回B. 如果字符串仁字符串2,函数值为0C. 如果字符串1 字符串2,函数值为一正整数D. 如果字符串1 字符串2,函数值为一负整数注意:对两个字符串比较,不能用str1 str2 strlen函数:测试字符串长度的函数。函数的值为字符串中的实际长度(不包括0 T。strlen (字符数组) strlwr函数和strupr函数A. strlwr函数的作用是将字符串中大写字母换成小写字母。一般形式为:strlwr (字符串)B. strupr函数的作用是将字符串中小写字母换成大写字母。一般形式为:strupr (字符串)提示:ANSIC标准要求在使用字符串函数时要包含头文件”
16、strin g.h ”常用字符串函数可以参考P373(5)typedef 的用途(识记)P315-318四、函数(一)函数类型1 无返回值函数:标识没有返回值的这类函数,需要在函数定义的开头标识void2. 无形式参数函数:类型标识符 函数名()声明部分语句3. 空函数:类型标识符 函数名() 有参函数:类型标识符 函数名(形式参数列表)声明部分语句说明: 如果没有指明返回类型,系统默认为int 形式参数需要声明数据类型,形式参数之间用逗号分隔。 函数体包括声明部分。声明部分定义的变量属于函数专有,其他函数不能进行赋值和修改。 S函数定义是独立的。所以不能在一个函数的函数体内定义另外一个函数。
17、 函数之间可以相互调用,只有 main函数不能被调用,因为 main函数是程序运行入口点, 即程序都从它开始运行。(-)函数调用1形式:函数名(实际参数表列)实际参数可以是常量、变量或表达式实际参数之间用逗号分隔。2. 调用前声明语句形式:返回类型函数名(形式参数);3. 函数的嵌套调用:在调用一个函数的过程中,又调用另一个函数。4. 函数的递归调用:在调用一个函数的过程中又出现调用该函数本身例女D:printf( this is a message )例如:y=2*sin(x)+3*cos(y);例如:y=sin(tan(x)5. 三种函数调用方式: 函数语句:把函数调用作为单独一个语句。
18、函数表达式:函数出现在一个表达式中 函数参数:函数调用作为一个函数的实参6. 数组作为函数参数:数组名可以作实参和形参,此时传递的是整个数组。当形式参数是维数组时,可以不说明数组的长度。eg: int sum_array(i nt a,i nt n)实际参数把数组名传递给函数的时候,不要在数组名后放括号eg:total=sum_array( a,6);7. 多维数组作函数参数:多维数组名也可以作为实参和形参。在被调用函数中对形参数组定义时可以指 定每一维的大小,也可以省略第一维的大小说明。max_value(int array44) 等价于 max_value(int array4)(三)局部
19、变量和全局变量1. 局部变量(静态)的存储方式: static 声明:static int a register 变量 auto变量注意:若函数内的局部变量与全局变量同名。则外部变量会自动屏蔽。局部变量具有优先权。(四)变量的存储类别1 动态存储类2. 静态存储类(五)内部函数和外部函数1 内部函数:static类型标识符函数名(形参名)static int fun(a, b)2. 外部函数:extern int fun(int a int b )五、指针1. 指针变量的本质是用来放地址,而一般的变量是放数值的。2.int *p 中*p和P的差别巾可以当做变量来用;水的作用是取后面地址P里面的
20、数值P是当作地址来使用。3. S+是 地址会变化。(9)+是数值会要变化。4. 三名主义:数组名:表示第一个元素的地址。数组名不可以自加,他是地址常量名。函数名:表示该函数的入口 地址。字符串常量名:表示第一个字符的地址。六、结构体和共用体1. 结构体(1) 一般定义:struct结构体名成员列表(2) 定义结构体: struct结构体类型名数据类型成员名1;数据类型成员名2;数据类型成员名n;结构体变量名表 直接定义结构体类struct数据类型成员名1;数据类型成员名2;数据类型成员名心结构体变量名表2. 共用体(1)引用:不是 pringfd“,a)而是 pringfcT,a.i)六、概念
21、1. 程序结构是三种:顺序结构,循环结构(三个循环结构),选择结构(if和switch)2. 读程序都要从mainOA口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。3. 计算机的数据在电脑中保存是以二进制的形式数据存放的位置就是他的地址.4. bit是位是指为0或者1byte是指字节,一个字节二八个位.5. 编译预处理不是C语言的一部分,不再运行时间。C语言编译的程序称为源程序, 它以ASCII 数值存放在文本文件中。6. 每个C语言程序中main函数是有且只有一个。7. 在函数中不可以再定义函数。8. 算法的是一定要有输出的,其他可以没有输入。9. break可用于循环结构和
22、switch语句。10. 逗号运算符的级别最低。11 字符数据的合法形式:T是字符占一个字节,“1“是字符串占两个字节(含有一个结束符号)。O的ASCII数值表示为48, 3的ASCII数值是97, A的ASCII数值是65。12. 强制类型转换:一定是fint ) a不是int(a),注意类型上一定有括号的。注意(int) (a+b)和(int) a+b的区别。前是把a+b转型,后是把a转型再加b。13. 取整丢小数的情况:int14. print函数的格式考查:0对应整型;。对应字符;f对应单精度;%ld对应long int:%If对应 double o15. char a = getch
23、ar()是没有参数的,从键盘得到你输入的一个字符给变量a。putchar( y J把字符y输出到屏幕中。16. 两值互换:t=x ; x=y; y=t。17. 要用(0x)&(xy);x=y;Tf(xy) x=y;这样相当于满足条件执行空语句。下面的x=y语句将被无条件执行。一般情况下if()条件后不需要加分号。eg : for(i=1 ;i10;i+); *宀 for(i=1 ;iv10;i+) ”、*上述for语句相当于满足条件执行空语句,真正的循环语句则没有被执行。一般情况下for ()循环条件后不需要加分号。6. 循环语句中改变了循环变量的值eg:求水仙花数main ()int i,a
24、,b,c;for(i=100;i1000;i+) a=i%10;i=i/10 ;b=i%10; i=i/10 ;c=i%10;/*i 的值被改变 */if(a*a*a+b*b*b+c*c*c=i)printf( “ %d ,i);在循环语句里,循环变量i每次进入循环后都被改变了,导致了 i永远都满足循环条件,所以就死循环了。为了避免此类错误,在编程时应尽量避免在循环语句中改变循环变量。7作为输出结果的变量没有赋初值eg :求数组中的最大值能最大值的下标main ()int a10=8,2,3,4,5,6,3,7,max=a10, mi;for (i=0; imax)max=ai; m=i;pr
25、intf( “ %d%d ,max,m);原因就在丄标变量m没有赋初值,系统随机赋了初值8. 初值赋了,但是赋的位置不对eg :求100以内的完数s=0;for(i=1 ;i=100;i+)for(j=1 ;jv=i/2;j+) if(i%j=O) s+=j;if(s=i) printf(“ %d ,i);s=0语句放错了位置,应该放在外层循环里面,也就是每判断一个数都应该从0开始累加oeg :求 1!+2!+ +100!main ()int i,j,s=0,t=1 ;for(i=1 ;iv=100;i+)for(j=1 ;j=i;j+) t=t*j;s+=t;printf( 44 %d ,s);t=1应该放在第三行,t=1这个赋值语句,它的位置应该在外层循环的里面,而不是在外面。9. 数组和整型或者实型变量不能重名eg : main() in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国际教育交流项目2025年学生跨文化适应能力培养中的跨文化心理辅导研究报告
- 2025年智能建筑系统集成关键技术与节能降耗效果实证研究报告
- 全球石油市场供需格局演变与2025年价格趋势研究报告
- 房屋修复工程施工方案
- 检验方法验证表
- 2025-2030中国阿加曲班行业供需态势及投资前景展望报告
- 2025-2030中国铜铝复合排行业产销规模与投资效益预测报告
- 2025-2030中国车用乙烯基薄膜行业销售状况与供需前景预测报告
- 2025-2030中国苹果酸氯波必利行业发展现状与盈利前景预测报告
- 2025-2030中国聚对苯二甲酸丙二醇酯(PTT)聚酯切片行业运行态势及应用前景预测报告
- 医疗废物处置项目可行性研究报告(范文)
- 常见慢性病的健康管理试题及答案
- 高中英语单词资料-英译汉
- 七大浪费培训
- 针灸养生推拿培训课件
- 高速公路光伏护坡施工方案
- 南岸区小升初试题及答案
- 监护人安全培训试卷(答案)
- 小学综合实践活动与劳动教育有效整合的策略研究
- 《中国慢性阻塞性肺疾病基层诊疗与管理指南(2024年)》解读课件
- 环保设备行业市场分析与销售技巧课件
评论
0/150
提交评论