《2022年计算机二级C语言考点归纳汇总》由会员分享,可在线阅读,更多相关《2022年计算机二级C语言考点归纳汇总(24页珍藏版)》请在金锄头文库上搜索。
1、第2章C程序设计 的初步知识2.1 程序的构成2.2 C 语言的基 本词法2.3 头文件、数据说明、函数的开始和 结束标志2.4 数据类型第3章顺序结构3.1 表达式语句 、函数调用语 句和空语句3.2 数据的输入 与输出,输入输出函数 的调用3.3 复合语句3.4 goto语句及语句标 号的使用第4章选择结构4.1 用 if语句 实现选择结 构4.2 用ch 语句实 现多分支选 择结构4.3 选择结构的 嵌套第5章循环结构5.1 for循环 结构和循环结构nue 语句 和k 语句5.4 循环的嵌套第6章字符型数据6.1 字符常量6.2 字符变量第7章函数7.1 库函数的正 确调用7.2 函数
2、的定义 方法7.3 函数的类型 和返回值7.4 形式参数与 实际参数,参数值的传递7.5 函数的正确 调用( 嵌套调用,递归调用) 7.6 局部变量和 全局变量7.7 变量的存储 类别、作用域及生存期7.8 内部函数及 外部函数20XX年计 算机二级 C语言考点 归纳汇总章节标题内容第1章程序设计基 本概念1.1 C 语言的特 点1.2 源程序的书 写规则1.3 C 语言的风 格精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 24 页第8章指针8.1 指针与指针 变量的概念 ,指针与地址 运算符8.2 变量、数组、字符串、函数、结构体的
3、指针以及指向 它们的指针变量8.3 用指针做函 数参数8.4 返回指针值 的指针函数8.5 指针数组、指向指针的指针8.6 main函数的命令参 数8.7 动态存储分 配第9章数组9.1 一维数组的 定义、初始化和引用9.2 二维数组的 定义、初始化和引用第10章字符串10.1 字符串与字 符数组10.2 字符串的指 针以及指向 字符串的指 针变量第11章对函数的进 一 步讨论11.1 传给n 函数的参 数11.2 通过实参向 函数传递函 数名或指向 函数的指针 变量11.3 函数的递归 调用第12章C语言中用 户标识符的 作用域和存储类12.1 局部变量和12.2 变量的存储 属性( 自动、
4、静态、寄存器、 外部 ) ,变量的作用 域和生存期全局变量12.3 内部函数和 外部函数第13章编译预处理 和 动态存储 分配13.1 宏定义 ( 不带参数的 宏定义,带参数的宏定义) 1 “文件包含”处理13.3 条件编译第14章结构体、共同体和用 户定义类型14.1 结构体与共 用体类型数 据的定义方 法和引用方 法14.2 用指针和结 构体构成链 表 ,单向链表的建立、输出、删除与插入第15章位运算15.1 位运算的含 义及应用15.2 简单的位运 算第16章文件16.1 文件类型指 针(FILE 类型指针 ) 16.2 文件的打开 与关闭 (fe) 精选学习资料 - - - - - -
5、 - - - 名师归纳总结 - - - - - - -第 2 页,共 24 页第1章 程序设计基 本概念考点 归纳1.1 C 语言的特 点C语言是近 年来非常流 行的语言,很多人宁愿放弃已经熟 悉的其他语 言而改用语言,其原因是语言有优于 其 他语言的 一系列特点 。下面是 C语言的主要特 点:(1) 语言简洁、紧凑,并且使用方便、灵活;(2) 运算符丰富 ;(3) 数据结构丰 富;(4) 具有结构化 的控制语句 ;(5) 语法限制不 太严格,使程序设计比 较自由;(6)C 语言允许 用户直接访 问 物理地址 , 能进行位 (bit)操作,可以直接对 硬件进行操 作。1.2 源程序的书 写 规
6、则C语言的书 写规则。 C语言书写 格式自由,一行内可以写几个语句 ,一个语句也 可以分写在 多行上。 C程序没有 行号,每个语句和数据定义的 最后必须有 一个分号。 C语言中分 号是语句中 不可少的,即使是程序中 的最后一 个语句也应 该包含分号 。C语言中的 注释可以用/* 用 */ 结束,注释可以在任何允许插 入空格符地 方插入。 C语言中注 释不允许嵌套,注释可以用西 文,也可以用中文。1.3 C 语言的风 格由于 C语言 对 语法限制 不太严格, 为了保证程 序的准确性 和可读性, 建议在书写 程序采用阶 梯缩进格式 。 也就是按如 下格式书写 C语言程序 :*; *() *;*;
7、*; *; 概括起来, C语言程序 具有如下的 风 格: 语言程序 的函数具体 模块结构风 格 ,使得程序整 体结构清晰 、层次清楚,为模块化程序设计提供 了强有力的 支持。 语言的源 程序的扩展 名都是 .C。 语言中的 注释格式为 :/* 注释内容 */ / 与* 之间不允许 有空格,注释部分允许出现在程 序中的任何 位 置。 语言中的 所有语句都 必须以分号 “ ;”结束。第2章 C 程序设计 的初步知识 考点归纳2.1 程序的构成尽管 C程序 的 内容千变 万化,但是它们的 构成都是一 致的,一个完整的 C源程序的 格 式可以如 下表示:编译预处理主函数 () 精选学习资料 - - -
8、 - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 24 页函数 () . . . 函数 () 从上面中可 以 看出,一个 C源程 序 实际上就 是若干函数 的集合,这些函数中 有一个是程序的主函数 ,任何 C的源 程序执行时 ,都是从主函 数开始执行 的,其它的函数 最终必将被 这个主函数 所调用。 C语言除了 主函数规定 必须取名ain 外,其它的函数名可以任取 ,但是要符合 C的标识符 取名规则,另外注意不要与保留字 重名,最好也不可与 C语言中 的库函数或其 它一些命 令如编译预 处另命令重 名。各个函数在 程序中所处 的位置并不 是固定的, 但要求一个
9、函数是完整 的、独立的。 不允许出现 在一个函数 内 部又去定 义另一个函 数,或是函数格式 不齐全的 现象。一个完整的一 般意义上 的函数有一 个固定的框 架,编写具体的函数时,只需在这个 框架中填入 相应的内容 即可。框架如下:函数类型函数名 ( 形参 ) 形参说明 内部变量说 明 ;执行语句部 分 ; 2.2 C 语言的基 本词法C语言的基 本词法由三 部分组成:符号集、关键字、保留字。符号集就是 一 门语言中 允许出现的 字符的集合 ,C语言的符 号集就是S 码表中的一些字符,在键盘上不能直接得到 ( 比如说响铃 字符) ,C语言引入 了转义字符 的概念,利用反斜杠 符号后加上字母的一
10、个字符 组合来表示 这些字符,当在源程序 中遇到这类 字符组合时 , 虽然这个字 符组合是一 个字符串的 形式,但 C语言仍 会自动将之 理 解成某一 特定的字符。比如, C语言在处 理这个字符 组合时,会自动理解成回车换行 符号。转义字符经过进一步引 申应用,形成了另外两种形式: 和 x ,这里后的和xnn 分别 代表三位 八进制和两 位十六进制 数( 打头的 x只是标明后面 跟着的是 十六进制数) ,这两种形式 不再局限于 表示不可打 印的字符,它们可以表示 S 码表中的任意字符,只要把所需 表示的字符 的 S I 码转换成 八进制数或 十六进制数 即可。比如说字母 , S 码为65,65
11、的八进 制 和十六进 制分别为1 01和 x 1,所以,字母A可表 示为 101或 x 1 ,对转义字符应认真理解 。标识符就是 用 以标识的 符号。正如现实生 活中给每一 个人都取一 个名字一样 ,C语言中的每 一个对象 ( 如函数、 变量等 ) 都必须取一 个标识符以 和其它对象 区 别开。 在 C语言中 ,这个标识符 是一个字符 串,这个字符串 的 选定有一 定的规则: 必须是以字 母 或下划线 开头的字母与 数字的序 列。 除了这个基 本的规则外 , C语言对标 识符的命名 还有几个限 制需加以注 意:长度最好不 要超过八个 字符。因 C中对标 识符只处理 前8个字符 ,超过 8个长
12、度的部分将 被C自动忽 略掉。 FGH1 和 FH 是同一个标识符;标识符不要与保留字同名,最好也不要 与 C提供的 标准标识符 ,如库函数重 名;应注意 C语言 对大小写 字母是敏感的 ,Abcd和abcd 是两个不同的 标识符。关键字实际 上 就是一些 特殊的标识 符,又称保留字 , 这些保留字 不允许用户 对它重新定义。2.3 头文件、数据说明、函数的开始和结束标志1. 头文件:也称为包含 文件或标题 文件, 一般放在一 个 C语言程 序的开头,用 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 24 页文件名的格式,其中文件名是
13、头文件名 ,一般用 .h 作为扩展 名。2. 数据说明: C语言中的 数据分常量 和变量两种 。3. 常量:有数值常量和符号常量 两种。4. 数值常量:可以分为整型常量、实型常量、浮点型常量和字符常量 。5. 符号常量:用一个标识符代表的一 个常量,又称标识符形式的常量 。6. 变量:其值可以改变的量,变量名习惯上用小写字 母表示。7. 标识符:用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效 字符序列 。8. 标识符的命 名规则: C语言中标 识 符只能由 字母、数字下划线三种字符组 成,且第一个字 符必须为字 母 或下划线 。 C语言是大 小写敏感语 言, 即对大小写 字母
14、认为是 不 同的字符 。C语言中标 识符的长度 随 系统不同 而字,如OC中取前 个字符, 8个字符后 面的字符会自动取消。2.4 数据类型C语言的数 据类型可以 分为三类:基本类型构造类型派生类型整型字符型ar 实型 (浮点型 双精度型空类型i d 结构体r uct 公用 (联合 ) 体n枚举型um 用户定义类 型 (使用关键字ef) 数组类型指针类型1. 整型常量: C语言中的 整型常量有 三种形式:十进制整型常量、八进制整型常量和十六进 制整型常 量。十进制整型 常量可以用 一串连续的 十进制数字 来表示; 八进制整型 常量用数字 0开头 ( 注意:不是字母) ,后面可以跟 一串合法的
15、八进制数字 ;十六进制整 型常量用0x或0X 开头,后面可以跟一串合法的 十六进制数 字。整型常量又 有 短整型 int)、基本整型 (int)、长整型 (long int)和无符号型ged) 之分。2. 整型变量:整型变量也可以分为基 本型、短整型、长整型和无符号型四种 。 分别用int(或t ),long int(或ned long)对它们进行 定义。不同的计算 机 对上述几 种整型数据 所占用的内 存字节数和 数值范围有 不同的规定 ,以IBM-PC微机为 例 ,以上各种数 据 所分配的 存储空间和 数值范围见 下表:类型名所占字节数数值范围int4 2 2 - 1 +210 0 精选学
16、习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 24 页0 int 2 long int nedint ned long 2 3. 实型常量: C语言中的 实型常量有 两种表示形 式:十进制数形 式和指数形 式。在用指数形 式表示实型 数 据时,字母E可以 用小写 e 代替 ,指数部分必 须 是整数 ( 若为正整数 时,可以省略 号 ) 。4. 实型变量: C语言中的 实型变量分 为两种:单精度类型和双精度类 型,分别用保留 关键字oat 和进行定义。在一般系统中,一个at 型数据 在内存中占 4个字节;一个ble 型数 据占8个字 节( 一
17、个e 型数据占 16个字节 ) 。5. 字符常量: C语言的字 符常量代表S 码字符集里的一个字符 ,在程序中要 单引号括起 来。C语言规定 字符常量可 以作为整数 常量来处理 ( 注:这里的整数常量指的是 相应字符的S 代码,因此字符常量可以参与 算 术运算 ) 。在 C语言中 还 有一类特 殊形式的字 符常量,称为转义字符。这类字符常 量是以一个反斜杠开头 的字符序列 ,但它们只代 表某个特定 的 S 码字符,在程序中使用这种常量 时要括在一 对单引号中 。6. 字符变量: C语言中的 字符变量用 关键字ar 来定义 , 每个字符变 量中只能存 放一个字符 。在一般系统 中,一个字符变 量
18、 在计算机 内存中占一 个字节。与字符常量一样,字符变量也 可以出现在 任何允许整 型变量参与 的运算中。7. 字符串常量 :C语言中的 字符串常量 是由一对双 引 号括起来 的字符序列 。注意不要将字符常量和 字符串常量 混淆。 C语言对字 符串常量的 长度不加限 制, C编译程序 总是自动地 在字符串的 结尾加一个 转义字符 0,作为字符串常量的结束 标志。 C语言中没 有专门的字符 串变量,如果要把字符串存放在 变量中,则要用一个字符型数组 来实现。第3章 顺序结构考 点归纳3.1 表达式语句 、 函数调用语 句和空语句1.C 语言的语 句共分五大 类:表达式语句 、控制语句、函数调用语
19、句、空语句和复 合 语句。2. 表达式语句 的一般形式 为表达式;最典型的表 达 式语句是 由一个赋值 表达式加一 个分号构成 的赋值语句 。3. 控制语句是 C语言程序 设计中用来 构成分支结 构 和循环结 构的语句。此类语句有i f语句, for 语句 ,语句, -语句, h 语句等。4. 函数调用语 句的一般形 式为函数名 ( 实参表 ) ;5. 空语句的一 般形式为;这条语句的 含 义是什么 也不做。凡是在 C语句程序中出 现语句的地 方 都可以用 一个分号来代 替一条语 句。6. 复合语句的 一般形式为语句 1;语句 2;复合语句在 功 能上相当 于一条语句 。精选学习资料 - -
20、- - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 24 页3.2 数据的输入 与 输出,输入输出函数的调用1.C 语言本身 没有提供输 入、输出操作语句。C程序的输 入和输出完 全 依靠调用 C语言的标 准输入、输出函数来完成。四个常用的输入、输出函数是:f 函数、 函数、 ar 函数、 ar 函数f 函数是语言提供的 标准输出函 数,它的作用是 在终端设备 ( 或系统隐含 指定的输出 设备) 上按指定格 式 进行输出 。f 函数的一 般调用形式 如下:f ( 格式控制,输出项表) 如果在i ntf函数调用之后 加上;,就构成了输出语句。格式控制参 数 以字符
21、串 的形式描述 ,由两部分组 成:普通字符:将被简单地显示;格式字符:将引起一个输出参数项 的转换和显 示 ,由“ % ”引出并以一个 类型描述 符结束的字 符串,中间可加一些可选的附 加说明项,如下表所示。附加说明项附加说明项说 明- 或+ 用于指定是 否对齐输出 ,具有“ - ”符号表示左对齐,无“ - ”或有“ ”表示右对齐0 用于指定是 否填写 0,有此项表示 空 位用0补 充,无此项表示 以空格补充m.n 用于指定输 出域宽及精 度 ,m是指域宽 ,n 为精度,当指定n 时, 隐含的精度 为6位L 或 h 用于输出长 度修正。其中,l 对于整型 是 指g, 对实型是; h 只用于整
22、型的格式字 符,并修正为hort 型格式字符用 于 指定输出 项的数据类 型及输入格 式,如下表所示。注意:编译程序只是在检查了f 函数中的 格式参数后 ,才能确定有 几 个输出项 ,是什么类型 、以什么格式 输出。在编程序时,应使输出格 式与输出项 对应。格式字符格式字符说 明CcD 输出一个字 符d 或 I 输出带符号 的十进制整 型数OoO 以八进制无 符号形式输 出 整型数 ( 不带前导0 )x 或 X 以十六进制 无符号形式 输出整型数 ( 不带前导0 x 或0X),对于 x,用ef 输出十六 进制数码 ;对于 X,用EF 输出十 六进制数码UuU 按无符号的 八进制形式 输 出整型
23、数FfF 以小数的形 式输出单精 度 或双精度 数,小数位由精 度指定,隐含的精度为 6;如指定精度 为0,则小数部分( 包含小数点 ) 都不输出e 或 E 以指数形式 输出单精度 及双精度数 ,小数位数由 精度指定,隐含的精度为6;如指定精度 为0,则小数部分( 包含小数点 ) 都不输出g 或 G 由系统决定 是采用 %f 不是采用 % e 格式,以便使输出宽度最小SsS 输出字符串 中的字符,直到遇到 0时为止,或输出指定的字符数PpP 输出变量的 内存地址% 打印一个 % 函数是 C语言 提供的标 准输入函数 , 它的作用是 在终端设备 ( 或系统隐含 指定的输入 设备)上输入数据 。S
24、 函数的一般 调用形式是 :精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 24 页( 格式控制,输入项表) 如果在anf 函数 调用之后加 上;,就构成了输入语句。格式控制是 用 双引号括 起来的字符 串,称为格式控 制串。格式控制串 的作用是指 定输入时的 数据转换格 式 ,即格式转换 说 明。格式转换说明是由% 符号开始,其后是格式描述符。输入项表中 的 各输入项 用逗号隔开 ,各输入项只 能是合法的 地址表达式 ,即在变量之 前加一个地 址符号 &。在f 函数中每 个格式说明 都必须用 % 开头,以一个格式字符结束。S 函 数中
25、的格 式控制字符 与t f 函数中 的相似,由格式说明项与输入格 式符组成。格式说明项如 下表所示 。格式说明项格式说明项说 明% 起始符* 赋值抑制符 ,用于按格式 说 明读入数 据,但不送给任 何变量MmM 域宽说明l 或 h 长度修正说 明符中 的格式字 符如下表所 示。格式说明项说 明CcC 输入一个字 符DdD 输入十进制 整型数IiI 输入整型数 ,整数可以是 带前导 0的八进制数,带前导 0x ( 或0X)的十六进制 数OoO 以八进制形 式输入整型 数 ( 可为带前导 0,也可不带前导0) XxX 以十六进制 形式输入整 型 数( 可带前导0 x 或0X,也可不带 ) UuU
26、无符号十进 制整数FfF 以带小数点 形式或指数 形 式输入实 型数EeE 与 f 的作用 相同SsS 输入字符串ar 函数的 作 用是把一 个字符输出 到标准输出 设备( 常指显示器 或打印机 ) 上。一般调用形 式为ar(ch) ;其中 ch 代 表一个字符 变 量或一个 整型变量,ch 也可以 代表一个字 符常量 ( 包括转义字 符常量 ) 。ar 函数的 作 用是标准 输入设备 ( 通常指键盘 ) 上读入一个 字 符。一般调用形 式 为ar() ;ar 函数本 身没有参数 ,其函数值就 是从输入设 备得到的字 符 。3.3 复合语句在 C语言中 ,一对花括号 不仅可以用做函数体的 开头
27、和结尾 标志,也可以用做复合语句的 开头和结尾 标志。复合语句的形式为:语句 1;语句 2;语句 n;精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 24 页3.4 goto语句 及语句标 号的使用goto 语句称为无条 件转向语句 ,一般形式为 如下:goto 语句标号;goto 语句的作用是 把程序执行 转向语句标 号所在的位 置,这个语句标号必须与此 goto语句 同在一个 函数内。语句标号在 C语言中不 必加以定义 ,这一点与变 量的使用方 法不同。标号可以是任意合法的 标识符,当在标识符后面加一个 冒号,该标识符就成了一个语
28、句标号。第4章 选择结构考 点归纳4.1 用 if语句 实现选择结 构1. 在 C语言中 ,if语句有 两 种形式:形式 1: if(表达式 ) 语句形式 2: if(表达式 ) 语句 1 else 语句 2 2.if语句执 行时,首先计算紧跟在 if后面一对圆括 号中的表达 式的值,如果表达式的值为非零真 ,则执行后 的语句,然后去执行i f 语句后 的下一个语 句。如果表达式 的值为零 假 ,直接执行f 语句后的 下一个语句 。3.if语句后 面的表达式 并不限于是 关系表达式 或逻辑表达 式,而可以是任 意表达式。If语句中 可以再嵌套 i f 语句。 C语言规定 ,在嵌套的f 语句中,
29、 else 子 句总是与前 面最近的不 带的 if相结 合 。4.2 用ch 语句实 现多分支选 择结构1 h 语句是用 来处理多分 支选择的一 种语句。它的一般形式如下:h( 表达式 ) case 常量表达式 1:语句 1 case 常量表达式 2:语句 2 :case 常量表达式 n:语句 n l t :语句 n+1 h语句的执 行过程是:首先计算紧 跟ch 后面的 一 对圆括号 中的表达式 的值,当表达式的 值与某一个 case 后面 的常量表 达式的值相 等时,就执行此ase 后面 的语句体并将流程转移 到下一个ase 继续 执行,直至tch 语句 的结束;若所有的ase 中的 常量表
30、达式 的值都没有 与 表达式值 匹配,又存在, 则执行后面的语句 , 直至t ch语句 结束;如果不存在l t ,则跳过i tch 语 句体,什么也不做。4.3 选择结构的 嵌 套if语句和h 语句都可 以嵌套使用 ,特别要注意 ,对于构成嵌 套的 if语句 ,else子句 总是和离 它最近的、不带e 的 if子句相匹配,不能弄混;在一个i tch 语句中的se 后面又 嵌套了一个h 语句,在执行内嵌 的ch 语句后 还要执行一 条k 语句才跳 出外层的语句。第5章 循环结构考 点归纳精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 24
31、 页5.1 for循环 结构1.for循环 语句的一般 表达式是:for( 表达式 1;表达式 2;表达式 3) 语句2.C 语言语法 规定:循环体语句只 能包含一 条语句,若需多条语句 ,应使用复合 语句。和循环结构1 语句用来实 现 当型循环结构,它的一般形式如下:( 表达式 )语句当表达式为 非 0值时执 行e 语句中内 嵌的语句;当表达式的 值 为0时, 直接跳过hile语句 后面的语 句,执行下一条 语句。语句执行的 特 点是:先判断表达式,后执行语句。用 来实现直到型循环结构,它的一般形式为:do 语句( 表达式 );这个语句执 行 时,先执行一次 指定的内嵌 的语句, 然后判别表
32、 达式,当表达式的 值为非0时,返回重新执 行该语句,如此反复,直到表达式的值为等于 0为止,此时循环结束。语 句执行的 特点是:先执行语句, 后判断表达 式。nue 语句 和k 语句1 语句有两个 用 途:在ch 语句中 用来使流程 跳出t ch 结构 ,继续执行语句后面的 语句;用在循环体内,迫使所在循 环立即终止 ,即跳出所在 循环体,继续执行循 环体后面的 第一条语句 。nue 语句 结束本次循 环, 即跳过循环 体中尚未执 行的语句。在e 和语句中, nue 语句 将使控制直 接转向条件 测试部分,从而决定是否继续转向 循环。在for 循环 中, 遇到语句后, 首先计算or 语句表
33、达式3的值 , 然后再执行 条 件测试 ( 表达式 2) ,最后根据测 试结果来决 定 是否继续 转向循 环。5.4 循环的嵌套1. 一个循环体 内又包含另 一个完整的 循环结构, 称为循环的 嵌套。内嵌的循环 中还可以嵌套 循环,这就是多层循环。2. 三种循环 循环、 循环和r 循环 ) 可以互相嵌 套第6章 字符型数据 考点归纳6.1 字符常量有两种形式 : 一是用单引 号括起来的 一个单字符 ,如 , ?, =;二是转义字符,即以开头的字符序列。常用的转义字符见下表 。字符形式功 能n 换行t 横向跳格 (即跳到下一 个输出区 ) v 竖向跳格b 退格r 回车f 走纸换页 反斜杠字符 单
34、引号 ( 撇号 ) 字符 双引号 字符ddd 1 到3位 进制数所代 表的字符,如 123,表示 8进制 数123 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 24 页xhh 1 到2位16进制数所 代表的字符 ,如 x21,表示 16进制数23 在转义字符 赋 给字符变 量时,也需要在其二侧加单引 号,如:char c = ;字符串常量 是 用一对双 引号括起的 字符序列,如 。请区别字符 变 量和字符 串常量。 是字符常量, 是字符串常量。在内存中, 字符常量占 一个字节, 而对字符串 常量,则在字符串 的后面加一 个字符串结
35、束标志,以便系统据 此判断字符 串是否结束 。用 0 即 S I 代码为0的字符,即空字符 作为字符串 结束的标志 。 例如, 内存占两个字节,即: a 0 。6.2 字符变量字符变量用 来 存放一个 字符常量,字符变量用char 来定义。如: char a,b; = 0; = ; % % ;将输出两个 字 符 ok。不能将一个 字 符串常量 赋给一个字 符变量,如: = 0; = ;是错误的。给字符变量 赋 值可以采 用如下三种 方法:(1) 直接赋以字 符常量,如= ;(2) 赋以转义字符,如: =; % ;输出一个字 符 。(3) 赋以一个字 符的 AS I I 代码,如字符 的 S I
36、 代码为 7,则char c=97; % ;将输出一个 字 符 。实际上,字符数据在内存中是以 整数形式 ( 字符 S I I 代码 ) 存放的,例如,字符 的 S I 码为 , 在内存字节 中的存放形 式为:01 10 00 01 在输出时,如果指定输出字符的格 式符% 输出,则输出字符 在输出时先将 S I 码转换为 字符) 。如果指定按 输出整数的 格式% 输出 ( 如 % , c) ,则输出一个 整数97。应记住,字符数据与整型数据二 者间是通用 的 ,可以互相赋 值 和运算,如: = ; char c=97; % -a); 将输出一个 整 数32,因为 的 S I 码为 。第7章 函
37、数考点归 纳7.1 库函数的正 确 调用1.C 语言提供 了丰富的库 函数,包括常用数学函数、对字符和字符串处理函 数、输入输出处 理函数等。在调用库函数时要注意 以下几点:(1) 调用 C语言 标准库函数 时必须在源 程序中用e 命令,de 命令的 格式是: 头文件名de 命令必 须以 #号开头,系统提供的头文件名都 以.h 作为后缀 , 头文件名用 一对精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 24 页双引号 或一对尖括 号括起来。(2) 标准库函数 的调用形式 :函数名 ( 参数表 ) 2. 在 C语言中 库函数的调 用可
38、以以两 种形式出现 :出现在表达 式中;作为独立的 语句完成某 种操作。7.2 函数的定义 方 法1.C 语言函数 的一般形式 为:函数返回值 的 类型名函数名 ( 类型名形参 1,类型名形参 2, 说明部分语句部分 定义的第一 行 是函数的 首部, 中的是函数 体 。2. 在老的 C语 言版本中,函数的首部用以下形式 :函数返回值 的 类型名函数名 ( 形参 1,形参 形参类型说 明 ;新的 S I 标准 C兼容 这种形式 的函数首部 说明。3. 函数名和形 参名是由用 户命名的标 识符。在同一程序 中,函数名必须 唯一。形式参数名只 要在同一 函数中唯一 即可,可以与函数中的变量同 名。4
39、.C 语言规定 不能在一个 函数内部再 定义函数。5. 若在函数的 首部省略了 函数返回值 的类型名,把函数的首部 写成:函数名 ( 类型名形参 1,类型名形参2, 则 C默认函 数 返回值的 类型为t 类型。6. 当没有形参 时,函数名后面的一对圆括 号不能省略 。7.3 函数的类型 和 返回值1. 函数的类型 由函数定义 中的函数返 回值的类型 名确定,函数的类型 可以是任何 简单类型,如整型、字符型、指针型、双精度型等,它指出了函 数返回值的 具体类型。当函数返回的是整型值 时,可以省略函数类型名。当函数只完成特定的操 作而没有或 不需要返回 值时,可用类型名 void( 空类型 ) 。
40、2. 函数返回值 就是urn 语句 中表达式的 值。当程序执行 到r n 语句时 ,程序的流程就 返回到调 用该函数的 地方( 通常称为退 出调用函数 ) ,并带回函数 值。7.4 形式参数与 实 际参数,参数值的传递1. 在函数定义 中,出现的参数 名称为形参 ( 形式参数 ) ,在调用函数 时 ,使用的参数 值 称为实参 ( 实际参数 ) 。2. 调用函数和 被调用函数 之间的参数 值的传递是 按值进行的, 即数据只能 从实参单向传 递给形参 。也就是说,当简单变量作为实参时 ,用户不能在 函 数中改变 对应实参的 值。7.5 函数的正确 调用( 嵌套调用,递归调用) 1. 调用函数时 ,
41、 函数名必须 与被调用的 函数名字完 全一样。实参的个数 与类型和形 参 的个数与 类型一致。2.C 语言规定 :函数必须先 定义,后调用, 也就是被调 用函数必须 在调用之前 加以说明,或被调用函 数整个放在 调用函数之 前。 但对返回值 类型为t 或r 类型的函 数可以放在 调用函数的 后面。3.C 语言中函 数定义都是 互相平行、独立的,C语言不允 许嵌套定义 函数,但允许嵌套 调用函数,也就是说,在调用一个函 数的过程 中,又调用另一 个函数。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 24 页4. 在 C程序中 , 调用
42、一个函 数的过程中 又出现直接 或间接地调 用该函数本 身,称为函数的递 归调用。5. 递归调用函 数是 C语言 的特点之一 ,有时递归调 用会使求解 的问题变得 更简单明了 。7.6 局部变量和 全 局变量1. 局部变量在一函数内 部 所定义的 变量称为局 部变量,局部变量只在本函数范 围内有效。注意:不同函数可 以使用相同 的局部变量 名,它们将代表 不同的对象 , 互不干扰;一个函数的 形参也为局 部变量;在函数内部 ,复合语句也 可定义变量 ,这些变量也 为局部变量 , 只在此复合 语句中有效 。2. 全局变量在 C语言中 , 程序的编译 单位是源程 序文件,一个源程序文件中包含 一个
43、或多个 函数。在函数之外 所定义的变 量称为外部 变量,也称为全局 变量。全局变量可 以 被包含它 的源程序文件 中的其他 函数所共用 ,作用域为从 定义变量的 位置开始到 源程序文件 结束,全局变量可以增加函数 之间数据的 联系。注意: 当在同一个 源程序文件 中,全局变量与 局部变量同 名时,在局部变量 的作用范围内,全局变量不起 作用,局部变量起作用。第8章 指针考点归 纳8.1 指针与指针 变 量的概念 ,指针与地址 运算符1. 在 C语言中 , 指针是指一 个变量的地 址,通过变量的 地址指向的位置找到变量的值,这种指向变量地址可形象地看作 指针。 用来存放指 针的变量称 为指针变量
44、 ,它是一种特 殊的变量,它存放的是地 址值。2. 定义指针变 量的一般形 式为:类型名 * 指针变量1 ,*指针变量 ,;类型名称为基类型它规定了后面的指针变 量中存放的 数据类型, *号表明后面的指针变量1 , 指针变量 等是指针变 量, *号在定义时不 能省略,否则就会变 成一般变量 的定义了。指针变量1,指针变量 等称为指针 变 量名。3. 一个指针变 量只能指向 同一类型的 变量。4. 与指针和指 针变量有关 的两个运算 符:(1)* :指针运算符 ( 或称间接访问运算符) (2)& :取地址运算 符通过 *号可以引用 一个存储单 元,如有如下定 义:int i=123,*p,k;
45、则 p=&I; 或 k=*p; 或 k=*&I; 都将变量中的值赋给 k。*p=10; 或*&i=10; 都能把整数 10赋给变 量 i 。这里,等号左边的表达式 *p 和*&i 都代表变量 i 的存储 单元。8.2 变量、数组、字符串、函数、结构体的指针以及指向 它们的指针 变量1. 变量的指针 和指向变量 的指针变量 。2. 数组的指针 和指向数组 的指针变量 。所谓数组的 指 针是指数 组的起始地 址,数组元素的指针是数组 元素的地址 。C语言规定 数组名代表 数组的首地 址 ,也就是第一个元素的地 址。3. 字符串的指 针和指向字 符串的指针 变量。我们可以通 过 定义说明 一个指针指
46、 向一个字符 串。C语言将字 符串隐含处 理成一维字 符 数组,但数组的每个元素没有 具体的名字 ,这一点精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 24 页跟字 符数组不一 样 。要引用字符 串 中的某个 字符,只能通过指针来引用:* 0 * 1 * 。4. 函数的指针 和指向函数 的指针变量 。指向函数的 指 针变量的 一般形式为:数据类型标 识 符 (* 指针变量名 ) () ;这里的数据类型标识符是指函数返回值的类型 。函数的调用 可 以通过函 数名调用,也可以通过函数指针调 用( 即用指向函 数的指针变 量调用 ) 。指
47、向函数的 指 针变量表 示定义了一 个指向函数 的指针变量 ,它不是固定 指向哪一个 函数,而只是定义 了这样的一 个类型变量 ,它专门用来 存放函数的 入口地址。 在程序中把 哪 一个函数 的地址赋给 它,它就指向哪 一个函数。 在一个程序 中,一个指针变 量可以先后 指向不同的 函数。在给函数指 针 变量赋值 时,只需给出函 数名而不必 给出参数。 因为函数指 针赋的值仅 是函数的入 口地址,而不涉及到实参与形参 的结合问题 。对指向函数 的 指针变量 ,表达式 p+n,p+,p-等都无意义 。5. 结构体的指 针与指向结 构体的指针 变量一个结构体 变 量的指针 就是该变量 所占据的内
48、存段的起始 地址。可以设一个指 针变量,用来指向一 个结构体变 量,此时该指针 变量的值是 结构体变量 的起始地址 。指针变量也 可 以用来指 向结构体数 组中的元素 。8.3 用指针做函 数 参数函数的参数 不 仅可以是 整型、实型、 字符型等数 据,还可以是指 针类型,它的作用是将一个变量 的地址传送 到另一个函 数 中。8.4 返回指针值 的 指针函数一个函数可 以 返回一个 整型值、字符值、实型值等,也可以返回指针型数据,即地址这种 带回指针值 的 函数,一般的定义形式为:类型标识符* 函数名 ( 形参表 ) ;8.5 指针数组、指向指针的指针1. 指针数组指 的是一个数 组,其元素均
49、为 指针类型数 据,也就是说, 指针数组中 的每一个元 素都是指针 变 量。指针数组的定义形式为 :类型标识 * 数组名数组长度说明指针数组可 以 使字符串 处理更加方 便。2. 指向指针的 指针是指指 向指针数据 的指针变量 , 一个指向指 针数据的指 针变量的一 般形式为:类型标识 * *p; 8.6 main函数 的命令参 数指针数组的 一 个重要应 用是作为ain 函数 的形参,一般来说,main 函数后的括号 中 是空的,即没有参数。实际上i n 可以有 参 数,如:main(argc,argv) 其中, argc 和 argv 就是函数的形参 。其他函数形 参的值可以 通 过函数调
50、 用语句的实参 中得到,由于n 函数是由 系统调用的 ,因而n 函数的形 参值不能从 程序中得到 ,但可以在操 作系统状态 下,将实参和命 令一起给出 ,从而使i n 函数的 形 参得到值 。命令行的一 般形式为:命令名参数 1 参数 参数n 命令名和各 参 数之间用 空格分隔开 。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 24 页8.7 动态存储分 配在 C语言中 有 一种称为 “动态存储分 配”的内存空间分配方式:程序在执行 期间需要存储空间时, 通过“申请”分配指定的内存空间;当闲置不用时,可随时将其 释放,由系统另作它
51、用。本节介绍语言中动态 分配系统的 主要函数: c() 、 c() 、free()及l oc() ,使用这些函数 时,必须在程序开头包含文 件i b.h 。1. 主内存分配 函数 c() 函数格式: * ned size); 函数功能:从内存中分配一大小为 size 字 节的块。参数说明: size 为无符号整型 ,用于指定需 要分配的内 存 空间的字 节数。返回值:新分配内存的地址,如无足够的内存可分配 ,则返回LL。说明:当为0时,返回L。2. 主内存分配 函数 c() 函数格式: * ned size); 函数功能:从内存中分配 n个同一 类型数据项 的连续存储 空间,每个数据项的 大小
52、为i ze 字节 。参数说明: n 为无符号 整型,用于指定分配的数据项 的个数ze 为无符 号 整型,用于指定需 要分配的数 据项所占内 存空间的字 节数。返回值:新分配内存的地址,如无足够的内存可分配 ,则返回LL。3. 重新分配内 存空间函数 oc() 函数格式: * * ned size); 函数功能:将k 所指内存 区的大小改 为字节的块。参数说明:为类型的指针 ,指向内存中 某块,size 为无符号整型 ,用于指定需要 分配的内 存空间的字 节数。返回值:新分配内存的地址,如无足够的内存可分配 ,则返回LL。4. 释放内存函 数free() 函数格式: * ) ; 函数功能:将oc
53、() 、c() 及l oc() 函数所分配 的 内存空间 释放为自由 空间。参数说明: 为类型的指针 ,指向要释放 的内存空间 。返回值:无。第9章 数组考点归 纳9.1 一维数组的 定 义、初始化和引用1. 一维数组的 定义方式为 :类型说明符数组名常量表达式(1) 数组名的命 名方法与变 量名相同,遵循标识符命名规则;(2) 数组是用方 括号括起来 的常量表达 式,不能用圆括 号;(3) 常量表达式 表示数组元 素的个数, 即数组的长 度,数组的下标 从0开始, 下标的最大值为:常量表达式-1;(4) 常量表达式 中可以包括 常量和符号 常量,不能包括变量。可以用赋值 语 句或输入 语句使
54、数组 中的元素得 到值,但要占用运 行 时间。可以使数组 在运行之前 初始化,即在编译阶段使之得到 初值。2. 对数组初始 化可以用以 下方法实现 :(1) 在定义数组 时对数组元 素赋以初值 。如:c int a10=0,1,2,3,4,5,6,7,8,9; 经过上面的 定 义和初始 化后, a0=0,a 1=1 9=9。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 24 页(2) 初始化时可 以只对一部 分元素赋初 值。例如:c int a10=0,1,2,3,4; 定义的数组 有 10个元 素,但只对其中 前5个元素 赋了初值
55、,后 5个元素 初值为 0。(3) 如果想使一 个数组的元 素值全部为 0,可以用下面 的方法:c int a10=0,0,0,0,0,0,0,0,0,0; 不能用:c int a10=0*10 ; 如果对atic型数组不赋初 值,系统会对定 义的所有数 组元素自动 赋 以0值。(4) 在对全部数 组元素赋初 值时,可以不指定数组长度。3. 一维数组的 引用方法是 :C语言规定 不能一次引 用整个数组 , 引用时只能 逐个元素引 用, 数组元素的 表 示形式为 :数组名下标下标可以是 整 型常量或 整型表达式 。如:a0=a5+a7-a 2*3 ;9.2 二维数组的 定 义、初始化和引用1.
56、二维数组定 义的一般形 式为类型说明符数组名常量表达式 常量表达式C语言采用 上述定义方 法,我们可以把 二维数组看 做 是一种特 殊的一维数 组:它的元素又是 一维数组 。在 C语言中 ,二维数组中 元素的排列 顺 序是:先按行存放,再按列存放 ,即在内存中 先顺序存放 第一行的元 素 ,再存放第二 行 的元素。2. 二维数组的 初始化:二维数组可以用下面的 方法初始化 :(1) 分行给二维 数组赋初值 。如:c int a3 4= 1,2,3,4, 5,6,7,8, 9,10,11,12 ; 以上赋值把 第 一个花括 号内的数据 赋给第一行 元素,第二个花括号内数据赋 给 第二元素 ,即按
57、行赋值。(2) 可以将所有 的数据写在 一个花括号 内,按数组排列 的顺序对各 元素赋值。(3) 可以对数组 的部分元素 赋初值。如:c int a3 4= 1,5, 9 ; 以上赋值的 结 果是:数组第一列的元素分别 赋 了初值1 ,5,9,其余元素的 值都是 0。(4) 如果对二维 数组的全部 元素都赋初 值,则定义数组 时对第一维 的长度可以 不指定,但第二维的 长度不能省 。3. 二维数组的 引用:二维数组的元素可以表 示 为:数组下标 下标在引用二维 数 组时, 必须是单个 元素,不能是整个 数组名。下标可以是一个表达式 ,但不能是变 量。如果下标是一个表达式 ,注意表达式 的值不能
58、超 出数组定义 的上、下限。第10章 字符串考点 归纳10.1 字符串与字 符数组1. 字符数组的 定义定义方法与 前 面介绍的 类似,只是将数组定义为字符 型即可。例如:char c 10 ;这里定义了 一 个包含1 0个元素的 字符数组。2. 字符数组的 初始化对字符数组 初 始化,可以采用以下方法:(1) 逐个字符赋 给数组中各 元素;精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 16 页,共 24 页(2) 用字符串常 量使字符数 组初始化。3. 字符串在 C语言中 , 字符串是作 为字符数组 来处理的,字符串可以存 放在字符 型一维数组
59、 中,故可以把字 符型一维数 组作为字符 串变量。字符串常量 是 用双引号 括起来的一 串字符。C语言中约 定用 0作为字符串的结束标志 ,它占内存空 间 , 但不计入串 的长度, 0的代码值为0。系统对字符 串 常量也自 动加一个 0作为结束符。例如 共有 10个字符,但在内存中占11个字 节,最后一个字 节存放 0。4. 字符数组的 输入输出(1) 逐个字符输 入和输出在标准输入 输出ntf和canf 中使用 %c格式描述 符;使用char 和ar 函数。例如:for(i=0;i10;i+) sca% & i ); /*或 str i = ar();*/ str i =0;/* 人为加上串
60、结束标志 */ for(i=0;i10;i+) % i );/*或har(stri );*/ (2) 字符串整体 输入输出在标准输入 输出函数和f 中使用 %s格式描述 符;输入形式:char str6; % ;其中 str为字 符数组名,代表着s r 字符数组 的起始地址 ,输入时系统 自 动在每个 字符串后加 入结束符 0。若同时输入多 个字符串 ,则以空格或 回车符分隔 。输入形式: % ;输字符串时 , 遇第一个 0即结束。但可人为控制输出串所 占的域宽如 : % ;/*若字符串中字符多于 个,仍将全部输 出*/ %- ;/*只输出前 个字符,多余的不输出*/ 使用s 和s 函数输入
61、输出一行gets 函数用来从终 端键盘读字 符,直到遇换行 符为止,换行符不属字符串的内 容。调用形式:gets(str); str为字 符数组名或 字符指针,字符串输入后,系统自动将0置于串尾代替换行符。若输入串长超 出数组定 义长度时,系统报错。Puts 函数用来把字 符串的内容 显示在屏幕 上。调用形式:puts(str);str的含 义同上。输出时,遇到第一个0结束并自动换行,字符串中可以含转义字符 。10.2 字符串的指 针以及指向 字符串的指 针 变量1. 用指针方法 实现一个字 符串的存储 和运算如:精选学习资料 - - - - - - - - - 名师归纳总结 - - - -
62、- - -第 17 页,共 24 页 * = ;此处定义了 一 个字符指 针变量rp, 变量中存放 的 是字符串 第一个字符 的地址。C语言对字 符串常量是 按字符数组 处 理的,它实际上在 内存开辟了 一 个字符数 组用来存放字 符串变量 ,并把字符串 首地址赋给 字符指针变 量。在输出时用 % ;通过字符数 组 名或字符 指针变量可 以输出一个 字符串。而对一个数 值型数组, 是不能企图用 数组名输 出它的全部 元素的。2. 字符指针变 量与字符数 组虽然用字符 数 组和字符 指针变量都 能实现字符 串的存储和 运算, 但它们二者 之间是有区别的,不应混为一谈,主要有以下几点:(1) 字符
63、数组由 若干个元素 组成,每个元素中放一个字符 ,而字符指针 变量中存放 的是地址 ( 字符串的首 地址) ,决不是将字符串放到字 符 指针变量 中。(2) 对字符数组 只能对各个 元素赋值,不能用以下办法对字符 数组赋值。Char str14 ; = ! ;而对字符指 针 变量,可以采用下面方法赋值 :char *a; = ! ;但注意赋给 a 的不是字 符,而是字符串 的首地址。(3) 赋初值时,对以下的变量定义和赋 初值: * = ! ;等价于:char *a ; = ! ;而对数组初 始 化时:c char str14= ! ; 不能等价于char str14 ;str = ! ;即数
64、组可以 在 变量定义 时整体赋初 值,但不能在赋值语句中整 体赋值。(4) 在定义一个 数组时,在编译时即已 分配内存 单元,有确定的地址。而定义一个 字符指针变 量时,给指针变量 分配内存单 元,在其中可以 放一个地址 值,就是说,该指针变量可以指向一 个字符型数 据,但如果未对 它 赋予一个 地址值,这时该指针 变量并未具 体指向哪一个字符数据 。(5) 指针变量的 值是可以改 变的。3. 字符串处理 函数C语言中没 有对字符串 进行合并、比较和赋值的运算符,但几乎所有版本的 C语言中都提供 了有关的库 函 数。例如: 1 t 函数:连接两个字符数组中的 字符串y 函数:字符拷贝函数p 函
65、数:字符比较函数n 函数:测试字符串长度的函数r 函数:将字符串中大写字母转 换成小写字 母精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 18 页,共 24 页r 函数:将字符中小写字母转换 成大写字母第 11章 对函数的进 一步讨论考 点归纳11.1 传给n函数的参 数在此之前,我们在编写m ain 函数时,其后一对圆括号是空的 ,没参数。其实,在支持C的环 境中,可以在运行C程序时,通过运行程序的命令 行 ,把参数传送 给 C程序。11.2 通过实参向 函数传递函 数名或指向 函 数的指针 变量1. 指向函数的 指针变量的 定义在 C语言中
66、函 数名代表 该函数的入 口地址,因此可以定义一种指向 函数地址的 指针变量。2. 函数名或指 向函数的指 针变量作为 参考函数名或指 向 函数的指 针变量可以 作为实参传 送给函数。 这时,对应的形参 是类型相同的指针变量 。11.3 函数的递归 调用C语言中的 函数可以递 归调用,即:可以直接或 间接地自己 调用自己。 前者称简单 递归,后者称间接 递归。第12章 C 语言中用 户标识符的 作用域和存 储类考点归 纳12.1 局部变量和 全局变量在函数内部 或 复合语句 内部定义的 变量称为局 部变量。函数的形参 属于局部变 量。在函数外部 定义的变量 称为全局变 量。有时, 局部变量也
67、称为内部变 量,全局变量也 称为外部变量。12.2 变量的存储 属性( 自动、静态、寄存器、外部),变量的作用域和生存期C语言中来 说明变量存 储属性的关 键 字有四个 :auto( 自动 ) 、 c( 静态 ) 、t er( 寄存器 ) 、 x n( 外部 ) 。1. 局部变量的 存储属性局部变量可 以 是自动类 别( 用t er 说明 ) ,也可以是静 态类别 ( 用i c 说明) 。形参只能是自动存储类 别,不允许是类别。当局部变量 未 指明类别 时, 被自动说明 成自动 (auto) 变量。这类局部变 量称为自动 变量。其值存放在 内存的动态 存储区,因此在退出作用域后,变量被自动释放
68、,其值不予保留。当局部变量 说 明成寄存 器t er) 类型时, 与自动 (auto) 变量一样属 于自动类别 ,所不同的是 此时变量的 值保留在PU中的寄 存器中。当变量说明 成i c( 静态 ) 类型时,称这样的变量为静态局 部变量。在程序运行期间,它占据一个 永久的存储 单元,在函数退出后,变量的值仍旧保留。2. 全局变量的 存储属性全局变量都 属 于静态存 储类别,可以用 x tern 和c 对它们进 行说明。当一个文件 中 要引用另 一文件中的 全局变量或 在全局变量 定义前要引 用它时,可用 x ern 说明 。相当于扩大 全局变量的 作用域。用i c( 静态 ) 说明的全局 变量
69、称为静 态 全局变量 ,它仅能由本 文件引用,即使在其文件 中用 x t ern 说明也不能使 用,它相当于限 制了全局变 量作用域的 扩展。12.3 内部函数和 外部函数1. 在 C语言中 ,所有的函数 在 本质上都 是外部函数 。2. 函数定义时 用 x r n 进行说 明称为外部 函数。函数的隐含类别为外部 函数,外部函数可 以被其他文 件 调用。3. 定义函数时 用i c 进行说 明称为静态 函数,也称内部函数。静态函数也是外部函数, 只是它仅局 限 于它所在 的文件,其他文件不能 调用。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 19
70、 页,共 24 页第13章 编译预处理 和动态存储 分配考点归 纳13.1 宏定义 ( 不带参数的 宏定义,带参数的宏定义)1. 编译预处理 就是对 C源程序进行编 译前, 由编译预处理程序对预处理命令行进行处理 的过程。2.C 语言中, 凡是以 开头的行,都称为编译预处理命令行。 C语言中的 编译预处命 令有:。这些预处理 命令组成的 预 处理命令 行必须在一 行的开头以 号开始, 每行的未尾 不得加;号,以区别于语句、定义和说明语句。3. 不带参数的 宏定义:命令的一般形式为:e 标识符字符串定义中的标识符为用户定义的标识符,称为宏名。在预编译时,C预编译程 序将出现的 宏名替换成 字符串
71、的内容,这一过程也称 为宏展开 。4. 带参数的宏 定义:命令的一般形式为e 宏名 ( 形式参数 ) 字符串定义中的字符串应包含括号中所指定的 形 式参数。注意宏名与括号之间不 要加空格,否则就成为不 带参数的 宏定义了。5. 预编译时, 遇到带实参 的宏名, 则按命令行 中指定的字 符串从左到 右进行置换 ,原则是:遇到实参则以 实参代替 ,非形参字符 原样保留,从而成展开后 的内容。13.2 “文件包含”处理1. 文件包含的 一般形式为 : 头文件名de 头文件名一 般 由 C语言 提供,也可以是用户自己编写 的,头文件通常用.h 作为后缀 。2. 当头文件名 用双引号括 起来时,系统首先
72、在 使用此命令 的文件所在 的目录中查 找被包含的 文件,找不到时, 再按系统指 定的标准方 式检索其它 目录;当头文件名 用尖括号括 起 来时,则直接按系统 指定的标 准检索方式 查找被包含 的文件。3. 预编译时,将被包含文件的内容全 部复制到包 含文件中,这就是文件包含处理。13.3 条件编译C语言中的 条件编译命 令可对源程 序 代码的各 部分有选择 地进行编译 。条件编译主 要 有如下 种使用格式 :使用格式1 :标识符程序段 1 #else 程序段 2 使用格式 :f 标识符程序段 1 #else 程序段 2 使用格式 :精选学习资料 - - - - - - - - - 名师归纳总
73、结 - - - - - - -第 20 页,共 24 页#if表达式程序段 1 #else 程序段 2 使用格式1 表示如果已 定义了“标识符”,则编译“程序段 1”, 否则编译“程序段 ”;使用格式 表 示如没有 定义了“标识符”,则编译“程序段1”,否则编译“程序段 ”;使用格式 表示如“表达式”的值为“真”时,则编译“程序段1”,否则编译“程序段 ”。第14章 结构体、共同体和用户定义类型 考点归纳14.1 结构体与共 用体类型数 据的定义方 法 和引用方 法1. 结构体类型 数据的定义 方法:可以采用下面 三种方法 来定义:(1) 先定义结构 体类型再定 义变量名先定义一个 结 构体类
74、型 ,一般形式为 :t结构体名 成员列表 ;(2) 在定义类型 的同时定义 变量:一般形式为:t结构体名 成员列表变量名列表 ;(3) 直接定义结 构类型变量 :一般形式:t 成员列表变量名列表 ;即不出现结 构 体名。2. 结构体类型 变量的引用 :在定义了结 构体变量后 , 可以采用下 列方法引用 结构体类型的变量:结构体变量 名 .成员名这里 是成员 ( 分量 ) 运算符,它在所有的运算符中优 先级最高。3. 共用体类型 变量的定义 形式为:共 用体名成员列表变量列表;4. 共用体变量 的引用:可以用下面的形式引用 共用体变量 :共用体变量 名 .成员名14.2 用指针和结 构体构成链
75、表,单向链表的建立、输出、删除与插入1. 链表是一种 常用的重要 的数据结构 ,它是动态地 进行存储分 配的一种结 构。2. 所谓建立链 表是指从无 到有地建立 起一个链表 ,即一个一个 地输入各结 点数据,并建立起前 后相链的关 系。3. 所谓输出链 表就是将链 表各结点的 数据依次输 出。4. 所谓删除链 表事实上就 是删除链表 中的某个结 点。5. 所谓插入链 表就是在链 表中某个位 置插入一个 或几个结点 。第15章 位运算考点 归纳15.1 位运算的含 义及应用精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 21 页,共 24 页1. 位
76、的概念大多数计算 机 系统的内 存储器是由 众多的存储 单元构成的 。在微机中, 每个存储单 元 是1个字 节, 它由 8位二 进制数构成 , 可以表示 8=256种信 息, 各位的编号 从07, 最左边的位 ( 第7位) 是最高位, 最右边的位 (第0位) 是最低位。 由于二进制 本身的特点 , 各位上的数 字不是 1,就是 0。本章中的位 就 是指上述 提到的二进 制位, 本章中的位 运 算就是指 对这些二进 制的位进行逻辑运算、移位运算等操作。2. 数的编码数在计算机 中 是以二进 制表示的,但是它并不 是简单地以 它本身的数 值的二进制 形式来直接 表示,而要进行一定的编码,以方便计算
77、机进行处理 。常用的编码 有原码、反码、补码三种。3. 真值与原码我们将一个 十 进制数的 二进制表示 称为这个十 进制数的真 值, 它代表了这 个十进制数 本身的数值 。下表列出了 一些数的真 值。真值举例数 二进制表示真值 (16 位) 0 7 0 111 00000 000000000000000000000000000000000000000110000000000001111111111111111111111111111111111 00000 00011111110000111111111111111111111111111用真值表示 的 数只能是 正数,对于负数,要用“一”号标
78、明,例如:-7 的真值为 - 0000000000000111 -的真值为 - 1111111111111111这势必造成 用 计算机表 示数时的不 便,故引入了原码表示法。在原码表示 法 中,最高位代表 符 号位,用“ 1”表示负数,“0”表示正数;余下的数位用来表示真 值的绝对值 。数字零存在 着 两种表示 方法: +0与-0。4. 反码若采用反码 表 示,则对应的原码应按照以 下方法进行 转换:(1) 如果真值为 正,则它的反码与原码相同 ;(2) 如果真值为 负,则反码的符号位为 1,其余各位就 是对原码取 反( 即原码的1 变为0,原码的 0变为1) 。精选学习资料 - - - -
79、- - - - - 名师归纳总结 - - - - - - -第 22 页,共 24 页5. 补码(1) 为什么要引 入补码补码具有许 多 独特的优 点:首先它可以 变减法运算 为加法运算 ,使得计算时 步 骤统一,速度提高; 其次,在这种系统 下的“0”只有惟一的一 种表示方 法, 这就是现代 的计算机系 统中大多采 用补码的原 因。(2) 补码的规定正数的原码 、补码、反码均相同;计算负数的 补码时,先置符号位为1,再对剩余原 码的位数逐 位取反,最后对整个数加1。在微机上以 8位二进制 数为一字节 的存储单元 中采用补码 系统,它可以存放的最小整数为-128 , 最大整数为 +127。 若
80、采用两个 字节来表示 一个整数,则可表示的 最小整数为 -,最大整数为。15.2 简单的位运 算C语言提供 了位(bit)运算的功能 ,这使它像汇 编语言一样 用来编写系 统程序。位运算符共 有六种;位运算符位运算符含义& 位与 位或 位异或 位取反 位右移第16章 文件考点归 纳16.1 文件类型指 针(FILE 类型指针 )C语言中的 文件分缓冲 型文件和非 缓 冲型文件 两种,此处只讨论缓冲型文件 。对于缓冲型文 件,每个被使用 的 文件都在 内存中开辟 一个区,用来存放文 件的有关信 息( 如文件名字 、文件状态及 文件当前位 置等) 。这些信息保 存在有关结 构体类型的 变量中。该结
81、构体类型由系统定 义,取名为 F LE。16.2 文件的打开 与关闭 e)1. 和其他高级 语言一样, C语言对文 件读写之前 应该打开该文件,在使用结束之 后应关闭该文件。2.C 语言中打 开文件用open() 函数, ( ) 函数的调用 方式通常为 :FILE *fp; = ( 文件名,使用文件方式) ;文件的操作 方 式如下所 示:文件操作方 式操作方式属性操作方式的 功 能rrr 只读为输入打开 一个字符文 件精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 23 页,共 24 页精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 24 页,共 24 页