C语言基础知识基础总结(共21页)_第1页
C语言基础知识基础总结(共21页)_第2页
C语言基础知识基础总结(共21页)_第3页
C语言基础知识基础总结(共21页)_第4页
C语言基础知识基础总结(共21页)_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章 C语言概述考点一 C语言概述C语言是一种结构紧凑、使用方便、程序执行效率高的编程语言,它有9种控制语句、32个关键字和34种运算符。C语言的数据结构也非常丰富,它的多种数据类型可以实现如链表、树、栈等复杂的运算,并且用结构化控制句来实现函数的模块化。C语言的语法不太严格,程序的设计自由度大,它可以直接访问物理地址,还可以直接对硬件操作。C语言也是一种移植性比较好的语言。考点二 C语言程序的构成(1) C语言的源程序是由函数构成的,每一个函数完成相对独立的功能,其中至少包括一个主函数。(2) C程序总是从main()函数开始执行(3) C语言规定每个语句以分号结束,分号是语句组成不可缺少

2、的部分,它在每条语句的最后出现。(4) 程序的注释部分应括在 /* 和 */ 之间不能有空格,注释部分允许出现在程序的任何位置。考点三 C程序的生成过程C程序是先由源文件经编译生成目标文件,然后经过连接生成可执行文件,源程序的扩展名为.c,目标文件的扩展名为.obj,可执行程序的扩展名为.exe考点四 标识符在编写程序时,必须为函数、变量等命名,这个名字称为标识符。标识符可以是一个或多个字符,标识符的第一个字符必须是字母或下划线,随后的字符只能是字母、数字或下划线。要区分字母的大小写。标识符不能与程序中具有特殊意义的关键字相同,不能与用户编制的函数名、C语言库函数相同,在程序中各种标识符尽量不

3、要重复,以便区分。选择变量名和其他标识符时,应注意做到“见名知义”。考点五 常量在程序运行中,其值不能被改变的量称为常量。常量有5种类型:整型常量、实型常量、字符型常量、字符串常量和符号常量。(1) 整型常量整型常量有3种:十进制整型常量、八进制整型常量和十六进制整型常量。(2) 实型常量实型常量有两种型式:小数形式和指数形式。(3) 字符常量一个字符常量代表ASCII码字符集里的一个字符,在程序中用单撇号括起来,以便区分。除了形式上的字符常量外,C语言还有特殊的字符常量转义字符常量(4) 字符串常量字符串常量是用双撇号括起来的一个或一串字符。(5) 符号常量符号常量由宏定义“#define”

4、定义的常量,在C程序中可用标识符代表一个常量。考点六 变量变量就是其值可以改变的量。变量要有变量名,在内存中占据一定的存储单元,存储单元里存放的是该变量的值。不同类型的变量其存储单元的大小不同,变量在使用前必须定义。(1) 整型变量整型变量分为4种:基本型、短整型、长整型和无符号型。(2) 实型变量实型变量分为单精度类型和双精度类型。在一般的系统中,float型数据在内存中占4个字节,double型数据占8个字节。单精度实数提供7位有效数字,双精度实数提供15-16位有效数字。实型常量不分float开和double型,一个实型常量可以赋给一个float型或double型变量,但变量根据其类型截

5、取实型常量中相应的有效数字。(3) 字符变量字符变量用来存放字符常量,字符变量用关键字char说明,每个字符变量中只能存放一个字符。将一个字符赋给一个变量时,并不是将该字符本身存储到内存中,而是将该字符对应的ASCII码存储到内存单元中。由于在内存中字符以ASCII 码存放,它的存储形式和整数的存储形式类似,所以C语言中字符型数据与整型数据之间可以通用,一个字符能用字符的形式输出,马能用整数的形式输出,字符数据也能进行算术运算,此时相当于对它们的ASCII码进行运算。考点七 类型的自动转换和强制转换当同一表达式中各数据的类型不同时,编译程序会自动把它们转变成同一类型后再进行计算。转换优先级为:

6、char int float 单目运算符算术运算符关系运算符逻辑运算符条件运算符赋值运算符逗号运算符说明:以上优先级别由左到右递减,初等运算符优先级最高,逗号运算符优先级最低。考点三 强制类型转换运算符可以利用强制类型转换符将一个表达式转换成所需类型,其一般形式为:考点四 逗号运算符和逗号表达式用逗号运算符将几个表达式连接起来称为逗号表达式。逗号表达式的求解过程是:先求解表达式1,然后依次求解表达式2,直到表达式n的值。整个逗号表达式的值就是表达式n的值。需要注意的是,逗号运算符是所有运算符中级别最低的。考点五 基本的算术运算符需要说明的是:两个整数相除的结果为整型,如果两个数中有一个数为实数

7、,则结果为double型。考点六 算术表达式和运算符的优先级与结合性算术表达式是用算术运算符和括号将运算量连执着起来的,符合C语言语法规则的表达式。运算对象包括函数、常量和变量等。在计算机语言中,算术表达式的求值规律与数学中的四则运算的规律类似,其运算规则和要求如下:(1) 在算术表达式中,可使用多层圆括号,但括号必须配对。运算时从内层圆括号开始,由内向外依次计算各表达式的值。(2) 在算术表达式中,对于不同优先级的运算符,可按运算符的优先级由高到低进行运算,若表达式中运算符的优先级相同,则按运算符的结合方向进行运算。(3) 如果一个运算符两侧的操作数类型不同,则先利用自动转换或强制类型转换,

8、使两者具有相同类型,然后进行运算。考点七 自增自减运算符作用:使变量的值增1或减1。考点八 赋值运算符和赋值表达式赋值符号“=”就是赋值运算符,作用是将一个数据赋给一个变量或将一个变量的值赋给另一个变量,由赋值运算符组成的表达式称为赋值表达式。在程序中可以多次给一个变量赋值,每赋一次值,与它相应的存储单元中的数据就被更新一次,内存中当前的数据就是最后一次所赋值的那个数据。考点九 复合的赋值运算符在赋值运算符之前加上其他运算符就可以构成复合赋值运算符。考点十 赋值运算中的类型转换如果赋值运算符两侧的数据类型不一致,在赋值前系统将自动先把右侧表达式求得的数值按赋值号左边变量的类型进行转换,但这种转

9、换仅限于某些数据之间,通常称为“赋值兼容”。常用的转换规则:(1)当实型数据赋值给整型变量时,将实型数据的小数部分截断。(2)当整型数据赋给实型变量时,数值不变,但以浮点数形式存储到实型变量中(3)当double尖型数据赋值给float型变量时,取其前面7位的有效数字,存放到float型变量的存储单元中,这时数值可能溢出。(4)当字符型数据赋值给整型变量时,由于整型变量占两个字节,则字符只占一个字节,只需将字符数据放到整型变量低8位中,对该整型变量最高位进行符号扩展,其他位补零。(5)当整型、短整型、长整型数据赋值给一个char类型变量时,将低8位原封不动地送到char类型变量中。考点十一 位

10、运算符和位运算在计算机中,数据都是以二进制数形式存放的,位运算就是指对存储单元中二进制位的运算。C语言提供了6种位运算符说明:(1)位运算中除“-”以外,均为双目运算符,要求两侧各有一个运算量(2)运算量只能是整型或字符型数据,不能为实型数据第3章 基本语句考点一 C语句分类C语言的语句用来向计算机系统发出指令,一个实际的源程序通常包含若干语句,这些语句用来完成一定的操作任务。C程序中的语句,按照它们在程序中出现的顺序依次执行,由这样的语句构成的程序结构称为顺序结构。C语句的分类:(1) 控制语句(2) 其他类型语句(3) 空语句(4) 复合语句赋值语句:此外理解=和= =输入输出概念及其实现

11、:(1) 数据从计算机内部向外部输出设备输送的操作称为“输出”,数据从计算机外部向输入设备送入的操作称为“输入”。(2) C语言本身不提供输入输出语句,可以通过函数来实现输入和输出的操作。(3) 在使用C语言库函数时,首先要用预编译命令“#include”将有关的“头文件”包含到用户源文件中。这里需要用到编译预处理命令。考点二 字符输出函数 putchar( )putchar( )函数的作用是向终端输出一个字符。它输出字符变量a的值,a也可以是字符型变量。若a是整型变量,则输出的是ASCII码值为该变量值的那个字符。考点三 字符输入函数 getchar( )getchar( )函数的作用是从终

12、端输入一个字符,getchar( )函数没有参数,函数值是从输入设备得到的字符。考点四 printf( ) 函数该函数是C语言提供的标准输出函数,它的作用是向终端按指定格式输出若干个数据。该函数的一般形式是(1)“格式控制”:用双引号括起来的字符串,它包括两种信息a.格式转换说明:b.需要原样输出的字符(2)“输出表列”是需要输出的一些数据,可以是常量变量或表达式识记格式字符:doxucsfeg使用该函数时的注意事项(1) 在格式控制字符串中,格式说明与输出项从左到右在类型上必须一一对应匹配。(2) 在格式控制串中,格式说明与输出项的个数也要相等。(3) 在格式控制串中,除了合法的格式说明外,

13、可以包含任意的合法字符这些字符在输出时将被“原样输出”。(4) 如果要输出“%”,则应该在格式控制串中用两个连续的百分号“%”来表示考点五 scanf( ) 函数该函数的一般形式是 格式说明:该函数中的格式说明也是以%开始,以及个格式字符结束,中间可以加入附加的字符。说明:(1) 对unsigned型变量的数据,可以用%d、%o、%x格式输入(2) 在该函数中格式字符前可以用一个整数指定输入数据所占宽度,但对于实型数则不能指定其小数位的宽度。(3) 在格式控制串中格式说明的个数应该与输入项的个数相等,且要类型匹配。使用该函数要注意的问题(1) 该函数中的输入项只能是地址表达式,而不能是变量名或

14、其他内容,也就是说输入项必须是某个存储单元的地址。(2) 如果在“格式控制”字串中除了格式说明以外还有其他字符,则在输入数据时应输入与这些字符相同的字符。(3) 在用“%c”格式输入字符时,空格字符和转义字符都作为有效字符输入。(4) 在输入数据时,若实际输入的数据少于输入项个数,该函数会等待输入,直到满足条件或遇到到非法字符才结束,若实际输入数据多于输入项个数,多答卷的数据将留在缓冲区备用,作为下一次输入操作的数据。第4章 选择结构考点一 关系运算符及其优先级C语言中的关系运算符有:所谓“关系运算”其实就是“比较运算”,对两个值进行比较,判断其比较后的结果是否符合指定条件,从而执行不同的程序

15、段。识记:结合性:自左向右优先次序:考点二 关系表达式由关系运算符连接而成的表达式(可以是算术表达式或其他表达式)称为关系表达式。当关系运算符两边的值的类型不一致时,若一边是整型,一边是实型,系统将自动把整型数转化为实型数,然后再进行比较。考点三 逻辑运算符及其优先级C语言中的逻辑运算符有:“&”和“|”是双目运算符,要求要有两个操作数,而“!”是单目运算符,只要求有一个操作数即可。以上逻辑运算符的优先级是:“!”级别最高,其次是“&”,“|”级别最低,逻辑运算符中的“&”和“|”低于关系运算符,“!”高于算术运算符。!算术运算符关系运算符“&”“|”赋值运算符。考点四 逻辑表达式逻辑表达式由

16、逻辑运算符和运算对象组成,其中,参与逻辑运算的对象可以是一个具体的值,还可以是C语言中任意合法的表达式,逻辑表达式的运算结果为1或0。识记逻辑运算表考点五 if的几种形式if语句的作用:if语句的几种形式:第一种形式:第二种形式:第三种形式:考点六 if语句的嵌套在if语句中又包含一个或多个if语句结构,称为if语句的嵌套,一般形式如下:if( )if( ) 语句1;else( ) 语句2;elseif( ) 语句1;else( ) 语句2;注意:else总是与它上面的最近的没有与else配对的if配对。考点七 条件运算符构成的选择结构有如下语句:if(xelse min=y;可以用min=(

17、x该表达式的执行过程是:优先级:条件运算符高于赋值运算符,但低于逻辑运算符、关系运算符和算术运算符考点八 switch语句switch语句是C语言提供的多分支选择语句,用来实现多分支选择结构。语法结构:注意:(1)switch是关键字,其后用花括号括起来的部分是switch语句体。(2)switch后面括号内的“表达式”,可以是C语言中任意合法、表达式,但表达式两侧的括 号不能省略。(3) case也是关键字,与其后面的常量表达式合称case语句标号,常量表达式的类型必须与switch后面的表达式的类型相匹配,且各case语句标号的值各不相同,不能重复。(4) default也是关键字,起标号

18、的作用,代表除了以上所有case标号之外的那标些号,default标号可以出现在语句体的任何标号位置上,当然,也可以没有。(5) case语句标号后的语句1、语句2等,可以是一条语句,也可以是若干条,在必要时,case语句标号后的语句可以省略不写。考点九 语句标号语句标号用标识符表示,它的命名规则与变量名相同,即由、组成,在标识符后加一个冒号,就成了一个语句标号。在C语言中可以在任何语句前加上语句标号。考点十 goto语句goto语句为无条件转向语句,goto语句的一般形式如下:goto 语句标号;goto语句的作用:第5章 循环结构考点一 while语句在许多问题中,需要做某些重复执行的操作

19、,这时就会用到循环结构。在程序设计中也一样,例如,对1100之间的自然数进行求和计算,计算某班级所有同学的成绩总分,还有很多,几乎所有的程序都会包含循环控制结构。循环的定义:_它与顺序结构和选择结构共同作为各种复杂程序的基本构造单元。while语句的一般形式:_说明:while是C语言的关键字。紧跟其后的表达式可以是C语言中任意合法的表达式,该表达式是循环条件,由它来控制循环体是否执行。循环体可以是一条可执行语句,当多项操作需要多次重复做时,可以使用复合语句。执行过程:(1)_(2)_(3)_特点:先对表达式进行条件判断,然后执行语句考点二 dowhile一般形式:说明:do是C语言关键字,必

20、须和while联合使用,不能独立出现。dowhile循环由do开始,用while结束。while后面的括号中的表达式,可以是C语言中任意合法的表达式,由它控制循环是否执行,且括号不可丢。执行过程: _考点三 for语句一般形式:_说明:for是C语言的关键字,其后的括号中通常有3个表达式,这3个表达式可以是C语言中任意合法表达式,它们通常用于for循环的控制。各个表达式之间用“;”隔开,且括号不可省略。按照语法规则,循环体只能是一条语句,如需要完成多项操作,可通用大括号括起来构成复合语句。执行过程:_考点四 循环的嵌套在某一个循环体内部又包含了另一个完整的循环结构,称为循环的嵌套。一般形式:w

21、hile _for _do_考点五 循环的比较前面讲的几种循环都可以用来处理同一个问题,一般情况下它们可以互相代替。不过最好根据每种循环的不同特点选择最适合的。while和dowhile循环,只在while后面指定循环条件,循环体内应包含使循环趋于结束的语句。for中使循环趋于结束的操作可以包含在“表达式3”中。由while完成的循环,用for都能完成。在for语句“表达式1”中可以实现循环变量的初始化,而while和dowhile的循环变量初始化应在while和dowhile语句之前完成。考点六 break语句break语句只能出现在循环体内及switch语句内,不能用于其它语句中。当bre

22、ak出现在循环体中的switch语句体内时,其作用是:_当break出现在循环体只是 并不在switch语句体内时,则在执行break后,跳出本层循环,当然也不再去进行条件判断。考点七 continue语句作用: _continue和break语句的区别是:_第6章 数组考点一 数组数组是由属于同一个数据类型的有序数据集构成。数组中的每一个数据称为“元素”。可以用一个统一的数组名和下标来唯一地标识数组中的元素。考点二 一维数组的定义一般形式:_考点三 一维数组元素的引用一般形式:_说明:引用数组元素时,数组的下标可以是整型常量,也可以是整型表达式。和变量一样,数组必须先定义后使用。数组元素只能

23、逐个引用而不能把数组当做一个整体一次引用。考点四 一维数组的初始化当数组定义后,系统会为该数组在内存中开辟一串连续的存储单元,但这些存储单元中并没有确定的值。可以在定义数组时为所含的数组元素赋初值。在指定初值时,第一个初值必定赋给下标为0的元素。也就是说数组元素的下标是从0开始的。同时,不可能跳过前面的元素给后面的元素赋初值,但是允许为前面元素赋值为0。当所赋初值个数少于所定义数组的元素个数时,将自动给后面的其他元毒害补以初值0;当所赋初值个数多于所定义数组的元素个数时,也就是说超出了数组已经定义的范围,在编译时系统将给出出错信息。考点五 二维数组的定义在C语言中,二维数组中元素排列的顺序是:

24、按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元。因此,二维数组元素的存储与一维数组元素存储相类似,总是占用一块连续的内存单元。二维数据定义的一般形式:_考点六 二维数组的引用二维数组的表示形式为:_数组的下标可以是整型表达式。例如:_数组元素可以出现在表达式中,也可以被赋值。考点七 二维数组的初始化可以在定义二维数组的同时给二维数组的各元素赋初值。全部初值放在一对花括号中,每一行的初值又分别括在一对花括号中,之间用逗号隔开。当某行一对花括号内的初值个数少于该行中的元素的个数时,系统将自动地给后面的元素补初值0。同样不能跳过每个前面的元素而给后面的元素赋初值。考点八 通过赋初值定义

25、二维数组的大小对于一维数组,可以在数组定义语句中省略方括号中的数量表达式,通过所赋初值的个数来确定数组的大小;对于二维数组,只可以省略每一个方括号中的常量表达式,而不能省略第二个方括号中的常量表达式。第一维的大小按以下规则决定:(1)当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小。(2)当初值的个数不能被第二维的常量表达式的值除尽时则: 第一维的大小=所得商数+1;考点九 字符数组 字符数组就是数组中的每个元素都是字符,定义方法同普通数组的定义相同,即逐个对数组元素赋值。考点十 字符数组的初始化及引用对字符数组初始化,可逐个元素地赋值,即把字符逐个赋给数组元素。如果花括

26、号中提供的初值个数大于数组长度,则_ 。如果初值个数小于数组长度,则_ 。其余元素则:_ 。考点十一 字符串和字符串结束标志C语言中,将字符作为字符数组来处理。为了测定字符吕的实际长度,C语言规定了一个字符串结束标志,以字符“ ”代表。也就是说在遇到这个字符的时候表示字符串结束,由它前面的字符组成字符串。考点十二 字符数组的输入输出字符数组的输入与输出有两种方法:(1)_ (2)_第7章 函数考点一 库函数C语言提供了丰富的库函数,这些函数包括了常用的数学函数,如求平方根的sqrt()函数,对字符和字符串进行处理的函数,进行输入输出处理的各函数等。调用C语言标准库函数时要求使用include命

27、令对每一类库函数进行文件包含,即在主调函数中需要调用库函数时,应在主调函数的声明部分用_命令把该库函数的头文件名包含进来。在C语言中,库函数的调用可以以两种形式出现(1)_ (2)_考点二 函数的定义一般形式:_说明:函数名和各个形式参数都是由用户命名的合法标识符,与普通变量名的定义规则相同。在同一程序中,函数名必须唯一,不能出现重名的情况。形式参数名只要在同一函数中唯一即可,由于形参作用域不相同,因此形式参数名可以与其他函数中的变量名同名。C语言规定,不能在一个函数内部再定义函数,也就是说函数不能嵌套定义。(1) 若在函数的首部省略了函数返回值的类型名,可以把函数首部写成:_(2)紧跟在函数

28、名之后的圆括号中的内容是形式参数和类型说明表,在每个形参之前都要有类型名,以标识形式参数的类型。各形参的定义之间用逗号分隔若所定义的函数没有形参,函数名后的一对圆括号依然不能省略。在某些情况下,函数体可以是空的。(3)在函数体中,除形参外,用到的其他变量必须在说明部分进行定义,这些变量只在函数被调用时才被临时分配内存单元,当退出函数时,这些临时开辟的存储单元全部被释放掉,即在该函数体内部定义的变量都将不存在。因此,这些变量只在函数体内部起作用,与其他函数体内的变量并不相关。考点三 形式参数和实际参数在程序中调用函数时,绝大多数情况下,主调函数和被调函数之间会发生数据传递关系,这就要用到有参函数

29、。在定义函数时,函数名后面括号中的变量称为“ _”;在主调函数中,函数名后面括号中的参数称为“_ ”。说明(1)实参可以是常量、变量或表达式(2) 在被定义的函数中必须指定形参类型(3) 实参与形参的类型应相同或赋值相兼容(4) C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递。只能由实参传给形参,而不能由形参返回来给实参。内存中,实参单元与形参单元是不同的单元(5) 在调用函数时,给形参分配配存储单元,并将实参对应的值传递给形参。调用结束后,形参单元被释放,实参单元仍保留并维持原值。考点四 函数的返回值函数的返回值就是通过函数调用使主调函数参得到一个确定的值。函数的值通过re

30、turn语句返回,return语句的一般形式是return语句中的表达式的值就是所求的函数值。此表达式值的类型必须与函数首部所说明的类型一致。若类型不一致,则以函数值的类型为准,由系统自动进行转换。考点五 函数调用的一般形式一般形式:_函数的调用可以分为调用无参函数和调用有参函数两种,如果说是调用无参函数,则不用“实参表列”,但括号不能省略。在调用函数时,若实参列表中有多个实参,各参数间用逗号隔开。实参与形参要求类型一致。考点六 函数的调用方式(1)_ (2)_ (3) _C语言中,调用函数和被调用函数之间的数据可通过3种方式进行传递:(1) _(2) _(3)_考点七 函数的说明C语言中,除

31、了主函数外,对于用户定义的函数要遵循先定义后使用的规则。把函数的定义放在调用之后,应该在调用之前对函数进行说明。函数说明的一般形式:此处的参数名完全是虚设的,它们可以是任意的用户标识符,既不必与函数首部中的形参名一致,又可与程序中的任意用户标识符同名,实际上参数名常常省略。函数说明了语句中的类型名必须与函数返回值的类型一致。函数说明可以是一条独立的语句,对函数进行说明,能使C语言的编译程序在编译时进行有效的类型检查。当调用函数时,若实参的类型与形参的类型不能赋值兼容而进行非法转换,C编译程序将会发现错误并报错;当实参的个数与形参的个数不同时,编译程序也将报错。考点八 函数说明的位置一个函数在所有函数的外部,如在被用之前说明,则在说明后的所有位置上都可以对该函数进行调用。说明与定义是两个不同的概念。考点九 函数的嵌套调用看书考点十 函数的递归调用看书考点十一 数组元素作为函数实参数组元素可以作为函数的实参,与用变量作为实参一样,按照单向值传递的方式进行传递,可参照以后的例题讲解。考点十二 数组名可能作为函数参数可以用数组名作为函数参数,此时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论