C语言期末复习概要.ppt

上传人:豆**** 文档编号:34296588 上传时间:2022-08-15 格式:PPT 页数:97 大小:754KB
返回 下载 相关 举报
C语言期末复习概要.ppt_第1页
第1页 / 共97页
C语言期末复习概要.ppt_第2页
第2页 / 共97页
点击查看更多>>
资源描述

《C语言期末复习概要.ppt》由会员分享,可在线阅读,更多相关《C语言期末复习概要.ppt(97页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、一、C程序的组成与实现C程序与源文件o 一个C程序由一个或多个源文件组成。o 一个源文件可以供多个C程序使用。o 源文件是一个程序的基本编译单位。o 一个源文件中包括:n 预处理指令n 全局声明n 函数定义C程序与函数o 一个源文件主要由一个或多个函数组成。o 一个函数可以供多个源文件使用。o 一个C程序只能有一个主函数。o 函数是一个C程序的基本组成单位。o 一个函数包括:n 函数首部n 函数体函数的结构o 类型标识符 函数名(形式参数表列)声明部分语句部分函数首部o 类型标识符函数的类型,也是函数返回值的类型。o 函数名函数的标示符,也是函数的入口地址。o (形式参数表列)此处为形式参数,

2、接收实际参数的单向、值传递。参数可以没有,但无论有无参数,括号均不能省略。函数体o 函数体由花括号限定。里面可以包括声明部分和语句部分,也可以什么都没有,但花括号不能省,即空函数。o 声明部分定义新变量或声明已有变量和函数。语句部分执行操作,共9类语句。o 声明部分和语句部分可以没有,但如果有,一定要声明在前,语句在后,即变量和函数必须:先声明,再使用。声明部分o 声明包括定义,但并非所有的声明都是定义。o 需要建立存储空间的。“定义性声明” ,为叙述方便,简称“定义”。2. 不需要建立存储空间的。“引用性声明” ,为叙述方便,简称“声明”。语句部分1. 表达式语句2. 函数调用语句3. 控制

3、语句4. 复合语句5. 空语句6. return语句7. break语句8. continue语句9. goto语句C程序的实现二、操作数、运算符和表达式常量o 在程序运行过程中,其值不能被改变的量称为常量。o 从字面形式即可判别的常量称为字面常量。如:56、12.3、a、“hello world!”。o 用一个标识符代表一个常量,称为符号常量。如:#define PI 3.1416。 变量o 变量代表内存中具有特定属性的一个存储单元,它用来存放数据,也就是变量的值,在程序运行期间,这些值是可以改变的。o 变量名是映射一个特定存储地址的标示符。o 变量类型决定存储单元大小与数据存储形式。o 针

4、对变量的操作是通过变量名找到对应地址,按变量类型在相应长度内按指定形式写入或读取的数据。标识符o 用来对变量、符号常量、函数、数组、类型等命名的有效字符序列统称为标识符。o 标识符只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线。o 标识符不能是关键字(附录C)。o 标识符区分大小写,习惯上变量名使用小写字母,符号常量名使用大写字母。o 标识符的命名应尽量做到见名知意。整型数据o int 4字节。o 不带小数点的数值是整型数据。o 十进制:123、-31o 八进制:0123、-037o 十六进制:0 x12、-0 x1f字符型数据o char 1字节。o 字符数据是用单撇号括起来的

5、一个字符。如a、8、? 都是字符常量。o 除以上形式的字符数据外,还有一种特殊形式的字符数据,就是以转义字符“”开始的字符序列。如“n”。o 字符型变量在内存中以ASCII码形式存储,与整数的存储形式类似。两种数据可以通用。浮点型数据o float 4字节。o 浮点型数据用来表示有小数点的实数。o 十进制小数形式。它由数字和小数点组成。如0.123、123.、123.0、0.0 、.5。o 指数形式。如1.2e3、12E-4字母e或E之前必须有数字,且e后面的指数必须为整数。运算符o(), ( ,从左至右)o!,-,+,-,*,& (一元,从右至左)o*,/,% (二元,从左至右)o+,- (

6、二元,从左至右)o,= (二元,从左至右) o=,!= (二元,从左至右)o& (二元,从左至右)o| (二元,从左至右)o? : (三元,从右至坐)o=,+=,-=,*=,/=,%= (二元,从右至左)o , ( ,从左至右)三、选择结构单分支o if(表达式) 语句1双分支o if(表达式) 语句1 else 语句2多分支o if(表达式1) 语句1else if(表达式2) 语句2 else if(表达式3) 语句3 else if(表达式n-1) 语句n-1else 语句n分支的嵌套o if()if() 语句1else 语句2elseif() 语句3else 语句4if语句的表达式o

7、if语句须对“表达式”求解,根据结果的真假选择相应的语句执行。o 表达式通常为逻辑表达式或关系表达式,也可以是其他表达式、常量或变量。o 表达式结果为0,则条件为假;表达式结果非0,则条件为真。if语句的内嵌语句o ifelse是一个完整的语句,else是if语句的一部分,但else前后的内嵌语句都要加分号。o在if和else后面有且只有一条内嵌语句,如要包含多条语句,需用花括号将几条语句括起来成为一个复合语句。else与if的配对o else不能单独使用,并且总是与o 上面的o 最近的o 未配对的o if进行配对。1. 如果if与else的数目不一样,可用花括号来确定配对关系。四、循环结构四

8、个要素o “起点”:循环控制变量在进入循环体前必须先赋初值。o “终点”:表达式可以是任意类型。结果只有0(假)和非0(真)两种情况。o “步长”:循环体中应有使循环趋于结束的语句。o “循环”:如果包含一个以上的语句,应该用花括号限定,以复合语句形式出现。while语句o “先判断,再执行”o 一般形式为: while(表达式) 语句1dowhile语句o “先执行,再判断”o 一般形式为: do 语句1 while(表达式); for语句o一般形式为:for(表达式1;表达式2;表达式3) 语句1o相当于:for(初始条件;!终止条件;步长变化) 循环语句三种循环的比较o 使用while和

9、do-while循环,循环变量的初始化应在进入while和do-while语句之前完成;在for循环中可由表达式1实现。o 使用while和do-while循环,循环体内应包含使循环趋于结束的语句;在for循环中可由表达式3实现。o 使用while和do-while循环,while后面的括号内应说明循环结束的条件;在for循环中可由表达式2说明。三种循环的特点o 一般情况下,3种循环可以互相代替。o while语句更适合处理“当”型循环。o do-while语句更适合处理“直到”型循环。o for语句书写灵活,功能最强,适合处理各种循环问题。只要遵循for语句的求值顺序,参数和语句可任意省略或

10、写入无关的内容,循环功能的实现不受影响。循环的嵌套o 一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环。o 3种循环(while循环、dowhile循环和for循环)可以相互嵌套。break语句o 使用break语句可以使流程跳出switch结构,继续执行switch语句下面的一个语句。o 使用break语句可以跳出所在的循环体,即提前结束循环,接着执行循环体下面的语句。continue语句o 使用continue语句可以结束所在循环体的本次循环,即跳过循环体中下面尚未执行的语句,直接执行下一次循环的条件判断。continue、break和go

11、to的比较o continue语句只结束本次循环;o break语句则结束整个循环。o goto语句从深度循环的嵌套中一次跳出多层循环。五、输入与输出C语言的输入与输出o 输入输出是以计算机为主体而言的。o 从计算机向输出设备输出数据称为输出。o 从输入设备向计算机输入数据称为输入。o C语言本身不提供输入输出语句。输入和输出操作是由C函数库中的函数来实现的。o 使用“标准输入输出函数”的源程序文件在引用这些函数前必须:#include 。printf()o 输出若干个任意类型的数据。o 函数形式:printf(格式控制, 输出表列)o 格式控制是用双撇号限定的字符串,包括:n 格式说明。由“

12、%”和格式字符组成。n 普通字符。普通字符即需要原样输出的字符。o 输出表列是需要按指定格式输出的若干数据。可以是变量,也可以是表达式。由逗号隔开。scanf()o 输入若干个任意类型的数据。o 函数形式:scanf(格式控制, 地址表列)o “地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。putchar()o 输出一个字符。o 函数形式:putchar(c)o 参数c可以是常量也可以是变量;可以是字符型数据也可以是整型数据。getchar()o 输入一个字符。o 函数形式:getchar()o 参数是从输入设备得到的字符。puts()o 以第一个0做结束标志,将一个

13、字符串输出到终端,并将0转换成n输出。o 函数形式:puts (字符数组名)gets()o 以enter 作为结束标志,输入一个字符串到字符数组。o 函数形式:gets(字符数组名)strlen函数o 检测字符串的长度。o 函数形式:strlen (字符数组名)o 函数值返回值为被测字符串的实际长度(不包括0在内)。格式符o %d:十进制整数。o %f:十进制实数。 o %c:单个字符。o %s:一个字符串。修饰符o -: 输出的数字或字符在域内向左靠拢。o m:数据最小宽度o n: 输出的小数位数;六、数组数组的概念o 数组是具有同一类型的有序数据的集合。o C语言规定只能逐个引用数组元素而

14、不能一次引用整个数组。o 必须先定义数组,然后引用数组元素。o 数组中各元素类型相同,与数组类型一致。o 每个元素由统一的数组名和惟一的下标确定。o 下标从0开始,必须为整型常量或表达式。数组的本质o 数组中的所有元素在内存中都是连续字节存放的,即保存在一块连续的内存区中。o 数组中各元素所占内存的大小为该元素所属基本类型的大小。o 数组所占内存的大小为一个元素所占内存的大小乘以元素个数。数组的定义o 定义一维数组的一般格式为: 类型说明符 数组名常量表达式;o 例如: int a10;数组的初始化o 定义时给所有元素赋值(1):int a3=1,2,3;o 定义时给所有元素赋值(2):int

15、 a=1,2,3;o 定义时给部分元素赋值:int a3=1,2;字符数组的定义o 用来存放字符型数据的数组是字符数组。字符数组中每个元素存放一个字符。o 定义字符数组的一般格式为:char 数组名常量表达式o 例如:char c10;(数组长度10字节)使用字符对数组初始化o 对字符数组初始化时可将逐个字符赋给数组中各元素。o 例如:char c5=H,e,l,l,o;o 字符数组长度与初值个数相同时,可省略数组长度。o 如果初值个数小于数组长度,其余的元素自动赋为空字符(即0)。o 字符数组长度小于初值个数时,系统报错。使用字符串对数组初始化o char c =“I am happy”;花

16、括号可省。o 省略数组长度,系统自动添加0作结束符。o 数组长度大于字符串常量的字符数个数时,多出的元素自动赋为空字符(即0)。o 数组长度小于字符串常量的字符数个数时,多出的字符不被存储。o 组长度等于字符串常量的字符个数时,本应自动添加的“0”将不被存储。字符数组与字符串o 字符数组是元素为字符变量的数组。o 字符串则是以0为结束字符的字符数组。o 字符数组是定长的,由下标控制访问。o 字符串是可变长的,因此必须用0来标记字符串的结束。%c 与 %so 用%c输入输出逐个字符。o 用%s输入输出整个字符串。o 用%c输出字符,长度由循环控制变量决定。o 用%s输出字符串,到(不包括)0 结

17、束。o 用%c输入字符,输入项是元素的地址。o 用%s输入字符串,输入项是数组名。o 用%c输出字符,输出项是元素。o 用%s输出字符串,输出项是数组名。指针相关概念o 地址是指内存中每个字节的具体编号。o 变量的地址是指特定存储单元的首字节编号。o 变量名是表示特定变量地址的识标符。o 指针就是地址。o 变量的指针即是变量的地址。o 指针变量则是专门用来存放地址的变量。指针变量的定义o 定义指针变量的一般形式为:基类型 * 指针变量名;o 使用指针变量存放内存中任意一个地址是没有意义且危险的。o 通常指针变量用来存放特定的某一变量的地址,使指针变量指向该特定变量。指针变量与变量o 若:int

18、 a=1;p=&a;(设a的地址为2000)o *p 表示a,1。o &*p 表示p、&a,2000。o *&a 表示a、*p,1。o +a 表示2。(仅是a自增)o +P 表示2004。o *p+ 表示先得到a,再使p更新为2004。o (*p)+ 表示a+(先用a,再a自增),2。指针变量与数组op=a=&a0; o*p=a0op+i=a+i=&aio*(p+i)=*(a+i)=ai指针变量与数组元素o *(a+i)或*(p+i)o 若指针p指向a数组的第i个元素,则:*(p+)=ai+ ; *(p-)=ai- *(+p)=a+i ; *(-p)=a-i 指针变量与字符串o C语言将字符串

19、常量按字符数组存放在内存中,该数组没有名字,不能用数组名引用,只能通过指针变量引用 。o 例如:char *string=“happy!”;(初始化)o 指针变量string存放的是字符串首字节地址,而不是整个字符串。指针变量与字符数组o 定义:char a=“hello”;char *p=“hello”;char a;a=“hello”;char *p;p=“hello”;o 输入:scanf(“%s”,a);scanf(“%s”,*p);scanf(“%s”,&a0); scanf(“%s”,p);o 输出:printf(“%s”,a); printf(“%s”,*p);printf(“%

20、s”,&a0); printf(“%s”,p);指针变量与字符数组名o 字符指针是变量,字符数组名是常量。char a=“hello”;char *p=“hello”;a=a+i;p=p+i;*a+;*p+;*(a+i);*(p+i);函数函数的执行o 程序执行从主函数开始,在主函数中结束的。o 主函数只能被系统调用,主函数执行完后,流程返回操作系统。o 主函数可以调用其他函数,其他函数可以相互调用。被调函数执行完后,流程返回主调函数的调用结束处。函数的调用o 函数语句print_start();被调函数只完成一定的操作,无返回值。o 函数表达式 c=max(a,b);被调函数的返回值参加表达

21、式的运算。o 函数参数c=max(max(a,b),c);被调函数的返回值作为另一被调函数的其中一个实参。函数的返回值o return语句将被调函数的返回值返回到主调函数的调用处。o 一个函数可以包含多条return语句。但一条return语句只能返回一个值。o 返回值类型应与函数类型一致。如不一致,返回值自动进行类型转换。o 函数定义为void(空类型),被调用时不返回任何值,函数体内不得出现return语句。函数的定义与声明o 函数的定义对函数功能的确立,包括指定函数名,函数值类型、形参及其类型、函数体等,它是一个完整的、独立的函数单位。o 函数的声明把函数的名字、函数类型以及形参的类型、

22、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照检查。对被调函数的声明o 被调用的函数必须是已经存在的函数。o 如调用库函数,应用#include命令将所需头文件“包含”到本文件中去。o 如调用自定义函数,如被调函数的定义在主调函数之后,应该在主调函数中对被调用的函数作声明。o 对函数的定义出现在主调函数之前,则调用前可以不必加以声明。函数的参数o 在定义函数时函数名后括号中的参数为“形式参数”(简称“形参”)。o 在主调函数中调用一个函数,该函数名后括号中的参数为“实际参数”(简称“实参”)。o 实参向形参的数据传递是“单向的”、“值传递”。o 形参与实参的类型必须相同。o 实参必

23、须是确定的值,形参必须是变量。函数参数的传递o 实参(数值)常量、基本类型变量、数组元素o 形参(数值)基本类型变量o 实参(地址)变量地址、数组名、指针变量o 形参(地址)数组(数组名实际为指针变量)、指针变量八、变量的作用域和生存期作用域 作用域作用域局部变量局部变量全局变量全局变量自动变量自动变量静态局部变量静态局部变量寄存器变量寄存器变量静态外部变量静态外部变量外部变量外部变量生存期生存期生存期动态存储动态存储静态静态存储存储自动变量自动变量寄存器变量寄存器变量静态局部变量静态局部变量外部变量外部变量形式参数形式参数静态外部变量静态外部变量存放位置存放位置存放位置静态存储区静态存储区动

24、态存储区动态存储区静态局部变量静态局部变量静态外部变量静态外部变量自动变量和形式参数自动变量和形式参数寄存器变量寄存器变量外部变量外部变量CPU寄存器寄存器总结变量存储类别函数内函数外作用域存在性作用域存在性自动变量和寄存器变量静态局部变量静态外部变量(本文件内)外部变量指针相关概念o 地址是指内存中每个字节的具体编号。o 变量的地址是指特定存储单元的首字节编号。o 变量名是表示特定变量地址的识标符。o 指针就是地址。o 变量的指针即是变量的地址。o 指针变量则是专门用来存放地址的变量。指针变量的定义o 定义指针变量的一般形式为:基类型 * 指针变量名;o 使用指针变量存放内存中任意一个地址是

25、没有意义且危险的。o 通常指针变量用来存放特定的某一变量的地址,使指针变量指向该特定变量。指针变量与变量o 若:int a=1;p=&a;(设a的地址为2000)o *p 表示a,1。o &*p 表示p、&a,2000。o *&a 表示a、*p,1。o +a 表示2。o +P 表示2004。o *p+ 表示先得到a,再使p更新为2004。o (*p)+ 表示a+,2。指针变量与数组op=a=&a0; o*p=a0op+i=a+i=&aio*(p+i)=*(a+i)=ai指针变量与数组元素o *(a+i)或*(p+i)o 若指针p指向a数组的第i个元素,则:*(p+)=ai+ ; *(p-)=a

26、i- *(+p)=a+i ; *(-p)=a-i 指针变量与字符串o C语言将字符串常量按字符数组存放在内存中,该数组没有名字,不能用数组名引用,只能通过指针变量引用 。o 例如:char *string=“happy!”;o 指针变量string存放的是字符串首字节地址,而不是整个字符串。指针变量与字符数组o 定义:char a=“hello”;char *p=“hello”;char a;a=“hello”;char *p;p=“hello”;o 输入:scanf(“%s”,a);scanf(“%s”,*p);scanf(“%s”,&a0); scanf(“%s”,p);o 输出:prin

27、tf(“%s”,a); printf(“%s”,*p);printf(“%s”,&a0); printf(“%s”,p);指针变量与字符数组名o 字符指针是变量,字符数组名是常量。char a=“hello”;char *p=“hello”;a=a+i;p=p+i;*a+;*p+;*(a+i);*(p+i);结构体、共用体与枚举类型结构体(struct)o 结构体用来表示多个变量的集合,这些变量可能为不同的类型,为了处理的方便而将这些变量组织在一个名字之下。o 结构体变量的成员可能属于不同的数据类型。o 结构体变量的大小应为各成员所属类型应占内存单元大小的总和。共用体(union)o 共用体将

28、几个不同类型的变量存放到同一段内存单元中。这些变量在内存中占的字节数不同,但都从同一地址开始。即共用体变量的地址和它的各成员的地址都是同一地址。o 共用体变量的大小等于最长的成员的大小。o 虽然各成员使用同一内存单元,但每一瞬时只能存放一个,而不是同时存放。即每一瞬时只有最新(最后)的成员存在和起作用。枚举类型(enum)o 枚举是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。o 默认情况下,第一个枚举元素的值为0,之后的依次加1。o 枚举元素按符号常量处理,故称枚举常量。它们不是变量,不能在定义外对它们赋值。o 枚举变量令人见名知意,且取值限制在规定范围内。文件文件的分类o 在程序设计中,主要用到两种文件:1.程序文件文件的内容是程序代码。源程序文件(.c)、可执行文件(.exe)等。2.数据文件文件的内容是供程序运行时读写的数据。数据文件(.dat)、文本文件(.txt)等。数据文件的分类o 数据在内存中都是以二进制形式存储的。o 根据数据在文件中的组织形式不同,数据文件可分为:o 二进制文件1. ASCII文件结束结束

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁