ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:27.42KB ,
资源ID:3938253      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3938253.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言复习提纲.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言复习提纲.docx

1、C语言复习提纲C程序设计复习提纲C语言概述、算法1.程序设计语言:机器语言、汇编语言、高级语言。2.高级语言翻译成机器语言的两种方式:编译方式、解释方式。3.算法+数据结构=程序4.结构化程序设计的三种基本结构:顺序结构、分支(选择)结构、循环结构5.算法的表示方法:自然语言、传统的程序流程图、N-S流程图。6.算法的特性:有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性。7.C语言的特点。8.运行C程序的步骤。9.C语言由函数组成,有且仅有一个main函数。10.函数:说明部分、函数体。11.一条复杂语句分行书写,用反斜杠()续行。12.注释用/*/ 13.每个语句由分号(;)结束

2、。数据类型、运算符和表达式1.常量: 整型常量:235、0235、-0x235(前可加负号),长整型:-12l、-065l、0x55l等。 实型常量:小数形式、指数形式。 字符常量:用单引号,如c。 转义字符:表3-3。 字符串常量:用双引号,如“hglhg”、“a”,内存占用为实际长度加1(结束标志0)。 符号常量:无参宏(#define)。2.变量: 标识符命名规则:。 各种类型变量的长度:整型2个字节(VC6.0中4个字节)、浮点型4个字节、字符型1个字节。 整型变量的分类:int、short int、long int,注意其取值范围,定义的时候可根据实际情况选择数据类型。 浮点型变量的

3、分类:float、double、long double,注意其取值范围,定义的时候可根据实际情况选择数据类型。 不同数据类型数据之间的混合运算。不同数据类型之间的运算必须先转换成相同数据类型才能运算。 数据类型转换:自动、强制。 注:强制类型转换只得到所需类型的结果值,原变量或表达式的类型仍为原类型。如(float)(x+y)3.各种运算符运算规则及其优先级。4.自加、自减运算(P57页):i+,+i,i-,-i。(不清楚可以在系统中运算查看结果)。5.其它运算符:符合运算符、条件运算、逗号运算、长度运算符(形式:sizeof 表达式 或sizeof (数据类型))顺序结构(输入输出)1.单字

4、符输入/出: putchar(字符变量)、getchar()。注意getchar()没有参数。2.字符串:gets(字符数组名)、puts(数组名)。3.格式化输入: scanf(“格式控制符”,地址列表);格式控制符:%c、 %d 、 %o 、 %x、 %s、 %f 若输入long型、double型应加l,如%ld、 %lo、 %lf 格式%s输入字符串不包含空格,且对应地址表列是字符数组名。 默认分隔符:空格、回车、Tab键(也可按域宽截取) 格式控制符间不宜加其它字符,如加入其它字符,输入时应原样输入,否则数据接收错误。如:scanf(“%d, %d”,&a,&b); 输入数据时两数据间

5、要有逗号;scanf(“%d %d”,&a,&b); %d间有两个空格,则输入数据时至少有两个空格。 输入函数中%f格式不能带小数,如:scanf(“%7.2f”,&a)是错误的。 %c格式输入单字符,空格字符和转义字符都作为有效字符接收。 %*d表示跳过它对应的输入数据。4.格式化输出:printf(“格式控制符”,输出列表); 格式控制符部分可加入其它字符,原样输出。如:提示语或使输出结果清楚显示 输出列表:可以是变量、常量、表达式、函数调用等。 转义字符:以斜杠()开始,作为一个字符,如求字符串长度:“jkgkbl0knlj”,长度为7。 注意:输出 long 、double型数据,用%

6、ld、%lf 可设定输出宽度,m和n,如:%5d、%6.2f、%.2f 负号表示域内向左对齐,如:%-12d选择结构1. if语句的三种形式: If(表达式) 语句; If(表达式) 语句1;Else 语句2; If(表达式1)语句1;Else if(表达式2)语句2;Else if(表达式3)语句3;Else if(表达式n)语句n;Else 语句n+1;2.if语句的嵌套。3.switch语句结构Switch(表达式)Case 常量表达式1:语句1;break;Case 常量表达式2:语句2;break;Case 常量表达式n:语句n;break;default:语句n+1;4.if中的表

7、达式,一般是逻辑或关系表达式,也可以是任意类型表达式。5.逻辑表达式的优化运算: &运算:只要算出第一个表达式为0,第二个表达式不再运算。 |运算:只要算出第一个表达式为1,第二个表达式不再运算。如:int i=0,j=0,a=6; if (+i0)|(+j0) a+; printf(%d%d%d”,i,j,a);结果i为1,j为0,a为7。6.如果有多条语句,必须用大括号括起,构成复合语句。7.switch语句中case后面只能是常量值;若执行完某case后的语句没遇到break,则继续执行下一个case 语句。8.本章主要是算法构思。(先考虑好需要那些变量,即数据结构,再考虑怎样求解问题)

8、循环结构1.主要的循环结构 while(表达式)语句; do循环语句序列;While(表达式); for(循环变量初值表达式1;循环结束条件表达式2;循环变量增值表达式3)循环语句;while、for中的表达式,一般是逻辑或关系表达式,也可以是任意类型表达式。注意for循环表达式里几种形式(P118120页)2.如果有多条语句,必须用大括号括起,构成复合语句。 *3.循环程序:注意循环变量的初值、循环条件、修正值等,以及循环中用到的某些变量赋初值,如求累加和变量。4.一般是先判断条件,再执行循环体;但dowhile语句是先执行一遍循环体,再判断条件。5.注意循环嵌套。一般是两个或以上的for循

9、环,典型例子如输出一个如右图的菱形图案。6.break语句跳出整个循环体,不在执行循环、continue语句结束本次循环,可继续执行下一次循环判断。7.本章主要是算法构思。(先考虑好需要那些变量,即数据结构,再考虑怎样求解问题)数组1.数组定义:int a10;或int aN(N需要事先定义为符号常量:#define N 10 ); 数组长度必须是常量值,不能是变量,可以是在程序开始前定义的符号常量,进行长度定义。2.下标引用:0N-1,切记不能引用到N。(int a5; a5=10;这种引用是错误的)3.数组初始化时可省略长度定义。4.数组不能整体赋值。数组中各元素值的输入/出,应使用循环程

10、序逐个输入/出;字符数组例外(gets、puts)。6.数组中的排序方法:冒泡法:外循环为i=0;in-1;内循环为j=0;jn-1-i;循环中比较aj和aj+1两个元素,并互换。7.二维数组:按行存放;赋初值的4种情况P137138页。8.字符数组:通常定义较长长度,如:char s50; 通常用于存放字符串,结束标志为0。可用字符串常量为其初始化,如:char s=“sdkhg”; 也可由键盘输入,如gets(s);输出用puts(s);注意:char s5=a,d,f,g,w;此种形式不是字符串,无字符串结束标志,仅仅是普通一维字符数组,不能用puts输出,只能用%c格式逐个输出。字符数

11、组的输入/出还有两种形式:%c、%s。9.字符串函数(P146150页):strcpy(s1,s2)、 strcat(s1,s2)、 strcmp(s1,s2)、 strlen(s)、 strupr(s)、 strlwr(s)注意参考教材的例题。函数1.函数定义:int fun(int a,int y);如定义时没指明函数类型,如:fun(int a);默认是int型,返回值不确定。2.声明:函数定义在前,使用在后,可省略函数声明,反之需要在使用前声明。函数声明的几种变通形式。 函数声明后加分号,而函数定义后没有分号。3.函数调用:函数名(实参表); 实参与形参个数、类型、位置一致。 形参与实

12、参占据不同的存储单元;形参只在函数调用时才为其分配存储单元,函数调用结束后释放。 实参与形参之间是传值调用,单向传递关系,形参值改变,不会影响实参值。 补充:函数可嵌套调用,不可嵌套定义。 嵌套调用:一个函数内部又调用另外一个函数。 递归调用:一个函数调用它自身。4.从作用域角度,变量分为:全局变量、局部变量。 局部变量:在函数内部定义,只能在该函数中使用,包括函数的形参和复合语句中定义的变量,main函数中定义的变量也是局部变量,不能被其它函数使用。 不同函数内定义的同名变量,互不影响,因其作用域不同,内存空间独立。 全局变量:在函数外部定义,作用域从定义开始到本文件结束。其间的所有函数都可

13、以使用它,可在各函数间传递值,但容易带来副作用,降低模块独立性。预处理命令1.预处理命令以“#”开头,末尾不加分号。在程序编译之前处理。1. 2.宏替换:将函数中出现宏名的地方用宏体进行替换。 #define SQR(x) x*xmain( ) int a,k=3; a=+SQR(k+1); printf(%dn,a); 替换后的表达是为a=+k+1*k+1结果为9宏体可以是数字、也可以是组成C表达式或语句的其它字符,还可以引用已定义的其它宏名。 宏的作用域:定义宏之后到本源文件结束,可用#undef提前结束。 无参宏(符号常量):#define PI 3.14 注意:函数中双引号内的宏名不替

14、换,如printf(“PI”); 有参宏:#define 宏名(形参表) 宏体 引用:宏名(实参表) 注意有参宏如果宏体和参数没用括号括起,可能有副作用。 分析有参宏的程序时,必须先将宏替换后的表达式写到纸上,再分析结果。 文件包含:#include 搜索系统标准目录#include “文件名” 先搜索当前目录, 找不到再搜索系统标准目录指针1.指针的基本概念:指针地址;2.指针常量:某已知变量的地址,或数组名等,:int a,b5;此时&a和b就是指针常量(固定值)。3.指针变量:如int a,*p=&a; char s9,*q=s; 赋值:必须赋地址值,如int a,*p; p=&a;如p

15、=2001;是错误的。4.间接访问:*p=5;等同于a=5;5.指针作为函数的参数,传递的是实参变量的地址, 如:void func(int *p) 调用时用某变量的地址常量,或指向该变量的指针作为实参,如主调函数中有定义int a,*q;q=&a;则可用&a或q作为实参进行调用,即func(&a);或func(q); 都是将变量a的地址传递给形参指针p,使指针p指向变量a。函数中使用*p就是对a的间接访问,就可以改变a的值,或者将结果放入a中。但形参变量本身改变,反过来不会影响实参指针值。 6.指针与一维数组:int a10,*p=a;则a代表数组首地址,是指针常量, 元素的表示方法:ai、

16、*(a+i)、 pi、*(p+i) 元素地址:&ai、a+i、 &pi、p+I 区别:a实指针常量,只不能变,而p是指针变量,可进行增减运算;所以常通过p的增减运算来快速访问数组a,如:while(pa+5) scanf(“%d”,p+); 或while(pa+5) (*p)+; printf(“%d,”,*p+); 理解(*p)+、*p+、 *(p+)、p+的含义。 执行p+后指针拨动的单元数(由元素类型决定)结构体和共同体1.结构体:struct ,.定义的几种形式P282284页。成员可以是任意类型。成员引用:结构体变量名成员名 占用内存大小为:各成员占用内存之和。2.共用体:union

17、,定义形式同结构体。成员引用:共用体变量名成员名 占用内存大小为:共用体中较长的成员的长度。 某一时刻只有一个成员起作用,最后一个存放的成员值有效。 结构体类型与共用体类型可互相嵌套使用,即结构体成员的类型也可以是共用体类型,反之亦然。文件1.流式文件:文本文件、二进制文件。 文本文件:若干字符序列,较长,可用type命令或记事本查看。 二进制文件:若干字节序列,短,存取速度快,不能用type或记事本等查看。2.文件操作:读操作、写操作。使用有关文件函数来完成,需包含头文件stdio.h3.操作步骤:定义文件类型指针 FILE *fp; 打开文件 fp=fopen(文件名,打开方式);检测指针

18、 if(fp=NULL)exit(0);读/写 fgetc(fp)、fputc(ch,fp)关闭文件。fclose();4.打开文件时的使用方式看表13-1,P333页。”r”、”w”、”a”。5. fopen()如果不能正确打开文件,则返回值为NULL。fclose()如果正确关闭文件,则返回值为0,否则返回EOF(-1)。fputc(ch,fp)以写的方式打开,如果输出成功,则返回值就是输出的字符;如果输出失败,否则返回EOF(-1)。fgetc(fp)必须以读或读写的方式打开文件,且文件必须存在。该函数返回一个字符值。如果读入的文件遇到结束符,返回EOF(-1)。 7.读入文件控制循环:

19、while(ch=fgetc(fp) !=EOF) 或while(!feof(fp)EOF是在头文件中定义的符号常量,值为-1代表文件结束。C 语言复习重点 大体上必须清楚的:1)程序结构是三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。3)计算机的数据在电脑中保存是以 二进制的形式. 数据存放的位置就是 他的地址.4)bit是位 是指为0 或者1。 byte 是指字节, 一个字节 = 八个位.5)一定要记住 二进制 如何划成 十进制。概念常考到的:、编译预处理不是

20、C语言的一部分,不再运行时间。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。、每个C语言程序中main函数是有且只有一个。、在函数中不可以再定义函数。、算法的是一定要有输出的,他可以没有输入。、break可用于循环结构和switch语句。、逗号运算符的级别最低一、1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。有其它元素就错了。并且第一个必须为字母或则是下划线。第一个为数字就错了。关键字不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。2)

21、实型数据的合法形式:2.333e-1 就是合法的,且数据是2.33310-1。考试口诀:e前e后必有数,e后必为整数。.3)字符数据的合法形式::1 是字符占一个字节,1是字符串占两个字节(含有一个结束符号)。 0 的ASCII数值表示为48,a 的ASCII数值是97,A的ASCII数值是65。4) 整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。碰到这种情况,不要去管,一样做题。掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。5)转义字符的考查:在程序中 int a = 0x6d,是把一个十六进制

22、的数给变量a 注意这里的0x必须存在。在程序中 int a = 06d, 是一个八进制的形式。在转义字符中,x6d 才是合法的,0不能写,并且x是小写。141 是合法的, 0是不能写的。108是非法的,因为不可以出现8。6)算术运算符号的优先级别:同级别的有的是从左到右,有的是从右到左。7)强制类型转换:一定是 (int)a 不是 int(a),注意类型上一定有括号的。注意(int)(a+b)和(int)a+b 的区别。 前是把a+b转型,后是把a转型再加b。8)表达式的考查:是表达式就一定有数值。赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量不可以赋值。自加、自减表达式

23、:假设a=5,+a(是为6), a+(为5);运行的机理:+a 是先把变量的数值加上1,然后把得到的数值放到变量a中,然后再用这个+a表达式的数值为6,而a+是先用该表达式的数值为5,然后再把a的数值加上1为6,再放到变量a中。 进行了+a和a+后在下面的程序中再用到a的话都是变量a中的6了。考试口诀:+在前先加后用,+在后先用后加。逗号表达式:优先级别最低 ;表达式的数值逗号最右边的那个表达式的数值。(2,3,4)的表达式的数值就是4。9)位运算的考查:会有一到二题考试题目。总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。例1:char a =

24、6, b;b = a2; 这种题目的计算是先要把a的十进制6化成二进制,再做位运算。例2:一定要记住,例3:在没有舍去数据的时候,右移一位表示除以2。10)018的数值是非法的,八进制是没有8的,逢8进1。 11)%符号两边要求是整数。不是整数就错了。12)三种取整丢小数的情况:、int a =1.6;、(int)a;、二、1)printf函数的格式考查:%d对应整型;%c对应字符;%f对应单精度等等。宽度的,左对齐等修饰。%ld对应 long int;%lf 对应double。2)scanf函数的格式考察:注意该函数的第二个部分是&a 这样的地址,不是a; Scanf(“%d%d%*d%d”

25、,&a,&b,&c); 跳过输入的第三个数据。3)putchar ,getchar 函数的考查:char a = getchar() 是没有参数的,从键盘得到你输入的一个字符给变量a。putchar(y)把字符y输出到屏幕中。4)如何实现两个变量x ,y中数值的互换(要求背下来)不可以把 x=y ,y=x; 要用中间变量 t=x;x=y;y=t。5)如何实现保留三位小数,第四位四舍五入的程序,(要求背下来)这个有推广的意义,注意 x = (int)x 这样是把小数部分去掉。三、特别要注意:c语言中是用非0表示逻辑真的,用0表示逻辑假的。1)关系表达式:表达式的数值只能为1(表示为真),或0(表

26、示假)当关系的表达是为真的时候得到1。如 98这个是真的,所以表达式的数值就是1;2)逻辑表达式:只能为1(表示为真),或0(表示假)a) 共有& | ! 三种逻辑运算符号。b) !&| 优先的级别。c) 注意短路现象。考试比较喜欢考到。d) 要表示 x 是比0大,比10小的方法。0x10是不可以的(一定记住)。是先计算0x 得到的结果为1或则0;再用0,或1与10比较得到的总是真(为1)。所以一定要用 (0x)&(x10)表示比0大比10小。3)f 语句else 是与最接近的if且没有else的相组合的。4)条件表达式:表达式1 ?表达式2 :表达式3注意是当非0时候是表达式2的数值,当为0

27、是就是表达式2的数值。考试口诀:真前假后。5)switch语句:a)一定要注意 有break 和没有break的差别,书上(34页)的两个例子,没有break时候,只要有一个case匹配了,剩下的都要执行,有break则是直接跳出了swiche语句。 b)switch只可以和break一起用,不可以和continue用。四、1)三种循环结构:a)for() ; while(); do- while()三种。b)for循环当中必须是两个分号,千万不要忘记。c)写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环。d) do-while()循环的最后一个while();的分号一定不能够丢

28、。(当心上机改错)2) break 和 continue的差别记忆方法:break:是打破的意思,(破了整个循环)所以看见break就退出真个一层循环。continue:是继续的意思,(继续循环运算),但是要结束本次循环,就是循环体内剩下的语句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环。3)嵌套循环就是有循环里面还有循环,这种比较复杂,要一层一层一步一步耐心的计算,一般记住两层是处理二维数组的。4) while(c=getchar())!=n) 和 while(c=getchar() !=n)的差别先看a = 3 != 2 和(a=3)!=2 的区别:(!=号的级别高于=号 所

29、以第一个先计算 3!=2) 第一个a的数值是得到的1;第二个a的数值是3。考试注意点: 括号在这里的重要性。五、函数:是具有一定功能的一个程序块;1) 函数的参数,返回数值(示意图):main()int a = 5,b=6,c;c = add(a,b);printf(“%d”,c);调用函数a,b是实参整个函数得到一个数值就是Add函数的返回数值。int add ( int x, int y)int z;z=x+y;return z;被调用函数x,y是形式参数函数返回数值是整型z就是这个add函数计算后得到的结果,就是函数返回给主程序的返回数值。程序是在从上往下顺序执行,当碰到了函数add后,把a,b的数值穿给调用函数,程序暂时中断等待返回数值。当得到了返回数值后,再顺序的往下执行2)一定要注意参数之间的传递实参和形参之间 传数值,和传地址的差别。(考试的重点)传数值的话,形参的变化不会改变实参的变化。传地址的话,形参的变化就会有可能改变实参的变化。3)函数声明的考查:一定要有:函数名,函数的返回类型,函数的参数类型。不一定要有:形参的名称。六、指针变量的本质是用来放地址,而一般的变量是放数值的。int *

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1