如果表达式a+的值非零,则表达式b+不再执行。 【知识点3】f语句 可以单独出现,也可以与else匹配出现。f语句可以嵌套,这时ese总是与离它最近的 匹配的f匹配: 个表达式值为表达式2的值 ,格式为:表达式 达式收为非0时,整 值为表 口诀:真前假后 【知识点5】 n句 后小货采材生表长反有堂 e后有没有break语句的区别.还要注意switch 口决:switch表不为实,case表不为变。 第四章循环结构 【知识点1】三种循环结构 三种循环结构分别为:while,do-while,for,三种结构的格式及执行顺序详见教材。注 意f循环中的小括号中必须是两个分号:循环一定要有结束条件,否则成了死循环: do-while()循环最后的while(:后一定要有分号。 【知识点2】break与continue 结物心k是所在轻环只出现在精环结构中。不北,可可出现在精环 就是循环里面还有循环,计算要一层一层分析。 一般只考查两层嵌套,循环嵌套通常是 处理二维数组】 【知识点4】循环结构的复习 循环结构是重点,笔试所占分值一般在13分左右,在上机考试中也是必考点,应用性 很强。要求学员重点理解并多加练习,领会掌握。 第五章字符型数据与位运算 【知识点1】字符常量 个字符常量用一对单引号括起来,字符常量只能包括一个字符,’b'是非法的。空 格常用'口'来表示。字符常量可用对应的ASCI码表示,需记住:’0'的ASC码为48, 的ASC为65 a’的ASC1码为97。 【知识点2】转义字符 以,个反斜线后跟一个特定字符或八进制、 型数据可以 和整型数据相互转 为6的的字制题来成转文字行。 char a=65 printf“%d%c”a,a,结果为65A 【知识点4】位运算符 C语言提供6种位运算符:按位求反,按位左移<,按位右移>,按位与&,按位异 或,按位或^。一般情况下需要先转化进制。异或运算的规则:0异或1得到1,0异或0得 到0,1异或1得到0。可记为“相同为0,不同为1”。 【知识点s】putchar与getchar函数 可用于输出或输入单个字符,这两个函数是stdio.h文件中的库函数,它们是printf与 scanf函数的简化
8 如果表达式 a++的值非零,则表达式 b++不再执行。 【知识点 3】if 语句 可以单独出现,也可以与 else 匹配出现。if 语句可以嵌套,这时 else 总是与离它最近的 且没有与 else 匹配的 if 匹配。 【知识点 4】条件运算 是唯一的三目运算符,格式为:表达式 1?表达式 2:表达式 3。表达式 1 值为非 0 时,整 个表达式值为表达式 2 的值,表达式 1 值为 0 时,整个表达式值为表达式 3 的值。 口诀:真前假后 【知识点 5】switch 语句 格式及执行过程详见教材,要注意每条 case 后有没有 break 语句的区别。还要注意 switch 后小括号里面的表达式不能为实型,case 后表达式不能有变量。 口诀:switch 表不为实,case 表不为变。 第四章 循环结构 【知识点 1】三种循环结构 三种循环结构分别为:while,do-while,for,三种结构的格式及执行顺序详见教材。注 意 for 循环中的小括号中必须是两个分号;循环一定要有结束条件,否则成了死循环; do-while()循环最后的 while();后一定要有分号。 【知识点 2】break 与 continue break 是终止所在整个循环,而 continue 是ᨀ前结束本轮循环。break 语句可出现在循环 结构与 switch 语句中,continue 只出现在循环结构中。 【知识点 3】循环的嵌套 就是循环里面还有循环,计算要一层一层分析,一般只考查两层嵌套,循环嵌套通常是 处理二维数组。 【知识点 4】循环结构的复习 循环结构是重点,笔试所占分值一般在 13 分左右,在上机考试中也是必考点,应用性 很强。要求学员重点理解并多加练习,领会掌握。 第五章 字符型数据与位运算 【知识点 1】字符常量 一个字符常量用一对单引号括起来,字符常量只能包括一个字符,’ab’是非法的。空 格常用’□’来表示。字符常量可用对应的 ASCII 码表示,需记住:’0’的 ASCII 码为 48,’ A’的 ASCII 码为 65,’a’的 ASCII 码为 97。 【知识点 2】转义字符 一对单引号中以一个反斜线后跟一个特定字符或八进制、十六进制数来构成转义字符。 比如’\n’表示换行,’\101’或’\x41’表示 ASCII 码为 65 的字符’A’。 【知识点 3】字符型数据可以和整型数据相互转换 如:’0’-0=48 ‘A’+32=’a’ char a=65;printf(“%d%c”,a,a);结果为 65A 【知识点 4】位运算符 C 语言ᨀ供 6 种位运算符:按位求反~,按位左移<<,按位右移>>,按位与&,按位异 或|,按位或^。一般情况下需要先转化进制。异或运算的规则:0 异或 1 得到 1,0 异或 0 得 到 0,1 异或 1 得到 0。可记为“相同为 0,不同为 1”。 【知识点 5】putchar 与 getchar 函数 可用于输出或输入单个字符,这两个函数是 stdio.h 文件中的库函数,它们是 printf 与 scanf 函数的简化
第六章函数 【知议点1】函数的定义 函数是具有一定功能的一个程序块。函数的首部为:函数类型函数名(类型1形参1, 类型2形参2,.)。在函数定义中不可以再定义函数,即不能嵌套定义函数。函数类型 默认为int型。 【知识点2】库函数 为 知识点】函的返回 、五句 回一个值,返回的值类型与函数类型一样。return语句只执行 次,执行完或函数体结束后退出函数。 【知识点4】函数的声明 函数要“先定义后调用”,或“先声明再调用后定义”。函数的声明一定要有函数名、函 数返回值类型、函数参数类型,但不一定要有形参的名称。 【知识点5】函数的调用 程序从上往下执行,当碰到函数名后,把值传给调用函数,当程序得到了返回值或调用 节宋,子下执 【知识点6】函数 的参数及值传 时函数名后面括号中的 实在参数简 “传值”与“传址”的区别:传数值的话,形参的变化不会改变实参的变化。传地址的 话,形参的变化就有可能改变实参所对应的量。 【知识点7】函数的递归调用 函数直接或间接地调用自己称为函数的递归调用。递归调用必须有一个明确的结束递归 的条件。在做递归题时可把递归的步爆一步步写下来,不要弄颠倒了。 【知识点8】要求掌握的岸函数 sqrt(算术平方根函数,fabs()绝对值函数,pow0幂函数,sin0正弦函数 第七章指针 【知识点1】指针变 变童 存储地址的 般变量是存储数值的。指针变量可指向任意一种数据 用多少字节 个指针变量占用四个字节。 型名指 ,二维指针int*p,可以理解为基类型为(nt*)类型 【知识点3】指针变量的初始化 指针变量在使用前必须要初始化,把一个具体的地址赋给它,否则引用时会有副作用, 如果不指向任何数据就赋“空值”NUL. 【知识点4】指针变量的引用 &是取地址符,·是间接访问运算符,它们是互逆的两个运算符。在指针变量名前加间 接访问运算符就等价它所指向的量。 【知识点5】指针的运算 间的 变量所指的数据变化 是间 9
9 第六章 函数 【知识点 1】函数的定义 函数是具有一定功能的一个程序块。函数的首部为:函数类型 函数名(类型 1 形参 1, 类型 2 形参 2,.)。在函数定义中不可以再定义函数,即不能嵌套定义函数。函数类型 默认为 int 型。 【知识点 2】库函数 调用 C 语言标准库函数时要包含 include 命令,include 命令行以#开头,后面是”或<> 括起来的后缀为”.h”的头文件。以#开头的一行称为编译预处理命令行,编译预处理不是 C 语言语句,不加分号,不占运行时间。 【知识点 3】函数的返回值 函数通过 return 语句返回一个值,返回的值类型与函数类型一样。return 语句只执行一 次,执行完或函数体结束后退出函数。 【知识点 4】函数的声明 函数要“先定义后调用”,或“先声明再调用后定义”。函数的声明一定要有函数名、函 数返回值类型、函数参数类型,但不一定要有形参的名称。 【知识点 5】函数的调用 程序从上往下执行,当碰到函数名后,把值传给调用函数,当程序得到了返回值或调用 函数结束,再顺序往下执行。 【知识点 6】函数的参数及值传递 形式参数简称形参,是定义函数时函数名后面括号中的参数。实在参数简称实参,是调 用函数时函数名后面括号中的参数。实参和形参分别占据不同的存储单元。实参向形参单向 传递数值。 “传值”与“传址”的区别:传数值的话,形参的变化不会改变实参的变化。传地址的 话,形参的变化就有可能改变实参所对应的量。 【知识点 7】函数的递归调用 函数直接或间接地调用自己称为函数的递归调用。递归调用必须有一个明确的结束递归 的条件。在做递归题时可把递归的步骤一步步写下来,不要弄颠倒了。 【知识点 8】要求掌握的库函数 sqrt()算术平方根函数,fabs()绝对值函数,pow()幂函数,sin()正弦函数 第七章 指针 【知识点 1】指针变量 指针变量是用来存储地址的,而一般变量是存储数值的。指针变量可指向任意一种数据 类型,但不管它指向的数据占用多少字节,一个指针变量占用四个字节。 【知识点 2】指针变量的定义 格式为:类型名 *指针变量名。二维指针 int **p;可以理解为基类型为(int *)类型。 【知识点 3】指针变量的初始化 指针变量在使用前必须要初始化,把一个具体的地址赋给它,否则引用时会有副作用, 如果不指向任何数据就赋“空值”NULL。 【知识点 4】指针变量的引用 &是取地址符,*是间接访问运算符,它们是互逆的两个运算符。在指针变量名前加间 接访问运算符就等价它所指向的量。 【知识点 5】指针的运算 *p++和(*p)++之间的差别:*p++是地址变化,(*p)++是指针变量所指的数据变化。一个 指针变量加一个整数不是简单的数学相加,而是连续移动若干地址。当两个指针指向同一数 组时,它们可以比较大小进行减法运算
指针概念知识点补充 ●变量的地址就是变量的指针。变量的值和变量的地址是不同的概念,变量的值是该 变量在内存单元中的数据。用来存放指针(地址)的变量就称为指针变量。 ●若把某变量的地址赋值给指针变量p,则称指针变量p指向该变量。 ●定义指针变量的一般形式为:类型名*指针变量名:,其中“*”为说明符,而不是 运算符。 ●通常指针变量可以通过以下几种方法获得地址:通过地址运算“&”威值,指针变 量的初始化,通过其他指针变量赋值,用NULL给指针变量赋空值,以及通过调用标准函 数赋值。 ●“*”称为指针运算符(单目运算符),也称取内容运算符。当指针变量p指向一个 变量x时,可以用*p的形式存取该变量的值。此时,p与变量x相互等价 ●取地址运算符“&”与指针运算符“◆”作用在一起时,有相互“抵消”的作用。对 于变量x,*&x与x相互等价。 ●若定义了一维数组a和指针变量p,且pa,则以下四种表示相互等价:a、p小 (a+i、*(p+i)。 未对指针变量p赋值即p没有指向时,而就对*赋值,该值就代替了内存中某单元 的内容,有可能出现不可意料的错误。 一个数组的元素在内存中是连续存放的,数组第一个元素的地址称数组的首地址, 在C语言中,数组名是该数组的首地址,因此,数组名是指针常量。 ●当指针变量D指向数组元素时,D加上一个正整数,则当前指向为相对D向前移动 n个元素的位置:p减去一个正整数n,则当前指向为相对p向后移动n个元素的位置。 ●假设指针变量p、q指向同一数组,若p指向地址较大元素,q指向地址较小的元素, 则p>g的值为1(真),且pq的值为0(假)。 ●假设指针变量P、q指向同一数组,p-q的值等于p所指对象与q所指对象之间的元 素个数,若p>g则取正值,p<g取负值。 ●把字符串常量赋值给字符指针变量,相当于把该字符串常量的首地址赋值给字符指 针变量。 ●C语言的二维数组由若干个一维数组构成。若有定义语句:int a[M][N,ij, 则以下元素的七种表示相互等价:al、*(a+i、*(a+i+j)、(*(a+il、 *(&a0I0+N*ij、*(a0+N*itj小*(*a+N*itj)- ●若有语句:int a[M][N].i,.j(piN,则指针变量pi指向“包含N个整型元素的 维数组”。当pi=a,时,pi+1将跳过N个元素指向下一行,故称pi为行指针,也称pi是(指 向一维)数组(的)指针。若p-a,则以下五种元素的表示相互等价:a、pi (pi+j、*(*(pi+i+j、((pi+il. ●除了由二维字符数组可以构成字符串数组外,还可以定义一个指针数组,并在定义 时用字符串赋初值的方法,构成一个字符串数组。 ●指向指针的指针变量,经过二次间接存取后才能存取到变量的值。 ●通常用指针数组的每个元素p指向二维数组a的每行第0列元素的首地址,然后 用指向指针的指针变量pp指向指针数组,此时,pp+1指向数组指针p阳的下一个元素,也 0
10 指针概念知识点补充 ● 变量的地址就是变量的指针。变量的值和变量的地址是不同的概念,变量的值是该 变量在内存单元中的数据。用来存放指针(地址)的变量就称为指针变量。 ● 若把某变量的地址赋值给指针变量 p,则称指针变量 p 指向该变量。 ● 定义指针变量的一般形式为:类型名 *指针变量名;,其中“*”为说明符,而不是 运算符。 ● 通常指针变量可以通过以下几种方法获得地址:通过地址运算“&”赋值,指针变 量的初始化,通过其他指针变量赋值,用 NULL 给指针变量赋空值,以及通过调用标准函 数赋值。 ● “*”称为指针运算符(单目运算符),也称取内容运算符。当指针变量 p 指向一个 变量 x 时,可以用*p 的形式存取该变量的值。此时,*p 与变量 x 相互等价。 ● 取地址运算符“&”与指针运算符“*”作用在一起时,有相互“抵消”的作用。对 于变量 x,*&x 与 x 相互等价。 ● 若定义了一维数组 a 和指针变量 p,且 p=a;,则以下四种表示相互等价:a[i]、p[i]、 *(a+i)、*(p+i)。 ● 未对指针变量 p 赋值即 p 没有指向时,而就对*p 赋值,该值就代替了内存中某单元 的内容,有可能出现不可意料的错误。 ● 一个数组的元素在内存中是连续存放的,数组第一个元素的地址称数组的首地址。 在 C 语言中,数组名是该数组的首地址,因此,数组名是指针常量。 ● 当指针变量 p 指向数组元素时,p 加上一个正整数 n,则当前指向为相对 p 向前移动 n 个元素的位置;p 减去一个正整数 n,则当前指向为相对 p 向后移动 n 个元素的位置。 ● 假设指针变量 p、q 指向同一数组,若 p 指向地址较大元素,q 指向地址较小的元素, 则 p>q 的值为 1(真),且 p<q 的值为 0(假)。 ● 假设指针变量 p、q 指向同一数组,p-q 的值等于 p 所指对象与 q 所指对象之间的元 素个数,若 p>q 则取正值,p<q 取负值。 ● 把字符串常量赋值给字符指针变量,相当于把该字符串常量的首地址赋值给字符指 针变量。 ● C 语言的二维数组由若干个一维数组构成。若有定义语句:int a[M][N], i, j;, 则以下元素的七种表示相互等价: a[i][j] 、 *(a[i]+j) 、 *(*(a+i)+j) 、 (*(a+i))[j] 、 *(&a[0][0]+N*i+j)、* (a[0]+N*i+j)、* (*a+N*i+j)。 ● 若有语句:int a[M][N], i, j, (*pi)[N];,则指针变量 pi 指向“包含 N 个整型元素的一 维数组”。当 pi=a;时,pi+1 将跳过 N 个元素指向下一行,故称 pi 为行指针,也称 pi 是(指 向一维)数组(的)指针。若 pi=a;,则以下五种元素的表示相互等价:a[i][j]、pi[i][j]、 *(pi[i]+j)、*(*(pi+i)+j)、(*(pi+i))[j]。 ● 除了由二维字符数组可以构成字符串数组外,还可以定义一个指针数组,并在定义 时用字符串赋初值的方法,构成一个字符串数组。 ● 指向指针的指针变量,经过二次间接存取后才能存取到变量的值。 ● 通常用指针数组的每个元素 pa[i]指向二维数组 a 的每行第 0 列元素的首地址,然后 用指向指针的指针变量 pp 指向指针数组,此时,pp+1 指向数组指针 pa 的下一个元素,也
就是pp+l指向二维数组a的下一行。如果a是二维字符数组,则pp+1指向下一个字符串。 ·当指针变量指向某一结构体变量时,可用下述三种方式之 一存取结构体成员(三种 方式是等价的):结构体变量名成员名、指针变量名>成员名、(*指针变量名)成员名。 ●若p指向数组a,则:()p+(或p叶=),使p指向下一元素。 (2)*n++空价(n++ 作用是先得到D指向的变量的值(即* 一p。3)p-+)与*+p)不同。前者为 a0,后者为a。(p+表示p指向的元素值加1,即(a0 +(⑤)如果p当前指向 数组中第i个元素,则:*p-)相当于-,先对P进行*运算,再使p自减: *(++D)相当 于a+,先使p自加,再作*运算。*(-p)相当于a-,先使p自减,再作*运算。 第八音数组 【知识点1】数组的定义 数组是一组具有相同类型的数据的集合,这些数据称为数组元素。格式为:类型名数 组名[常量表达 T知识点】数组的初始化广吉字节数为元素个数与基美至所古字节数的来积·一 元为随:合品 值为0:而在中,元素值为 确定自 随机数 【知识点3】元素的引用 数组元素的下标从0开始,到数组长度减1结束。所以ita5:中数组最后一个元素是 4。要把数组元素看作一个整体,可以把a4当作一个整型变量, 【知识点4】二维数组 数组a2[3=(1,2,3,4,5.,6:中含6个元素,有2行3列。第一行为a0行,第2行为a1 行,a0小、a1]叫行首地址,是地址常量。*(a0叶1)是第一行第一个元素往后跳一列,即元素 a01)值为2,*(a0+3)是第一行第一个元素往后跳三个,即元素a1]0]值为4。 【知识点5】行指针 能存放金 占四个字节 的首址注意p两边的小不 行指针指向一行连续数据 形式 有两 个整型元 干指针元素的集 【知识点6】数组 组名是地址常量, 数相加得到一个新地址。 【知识点7】元素形式的转换 助记:“脱衣服法则”a2变成*(a+2),a23]变成*(a+23]再可变成*(*(a+2+3)。 第九章字符串 【知识点1】字符审常量及表示 字符串常量是由双引号括起来的一串字符,如”ABC”。在存储字符串时,系统会自动 在其尾部加上一个空值'0',空值也要占用一个字节,也就是字符串”ABC”需要占四个 【知识点2】字符数 际存放的最长之 变量,只能采用字符数组来存储字符串。数组的大小应该比它将要实 多一个元素, 从而存放 0 【知识点3】半符串赋值 可以用下面的形式进行赋值:char str”Hello!”或char*p,p=”Hello!”;,但不能用 下面的形式:char str[0:str=”Hello”:因为str是一个地址常量,不能进行赋值操作。 【知识点4】字符串的输入与输出 2
11 就是 pp+1 指向二维数组 a 的下一行。如果 a 是二维字符数组,则 pp+1 指向下一个字符串。 ● 当指针变量指向某一结构体变量时,可用下述三种方式之一存取结构体成员(三种 方式是等价的):结构体变量名.成员名、指针变量名->成员名、(*指针变量名).成员名。 ●若 p 指向数组 a,则:⑴ p++ (或 p+=1),使 p 指向下一元素。 ⑵ *p++ 等价 *(p++)。 作用是先得到 p 指向的变量的值(即*p),然后再使 p+1→p。⑶ *(p++)与*(++p)不同。前者为 a[0],后者为 a[1]。⑷ (*p)++表示 p 指向的元素值加 1,即(a[0])++ ⑸ 如果 p 当前指向 a 数组中第 i 个元素,则: *(p-)相当于 a[i-],先对 p 进行*运算,再使 p 自减; *(++p)相当 于 a[++i],先使 p 自加,再作*运算。 *(- p)相当于 a[-i],先使 p 自减,再作*运算。 第八章 数组 【知识点 1】数组的定义 数组是一组具有相同类型的数据的集合,这些数据称为数组元素。格式为:类型名 数 组名[常量表达式]。数组的所占字节数为元素个数与基类型所占字节数的乘积。 【知识点 2】数组的初始化 第一维长度可以不写,其它维必须写。int a[]={1,2};合法,int a[][3]={2,3,4};合法,int a[2][]={2,3,4};非法。数组初始化元素值默认为 0,没有初始化元素值为随机。如在 int a[5]={0,1,2};中,元素 a[4]值为 0;而在 int a[5];中,元素 a[4]值为一个不确定的随机数。 【知识点 3】元素的引用 数组元素的下标从 0 开始,到数组长度减 1 结束。所以 int a[5];中数组最后一个元素是 a[4]。要把数组元素看作一个整体,可以把 a[4]当作一个整型变量。 【知识点 4】二维数组 数组 a[2][3]={1,2,3,4,5,6};中含 6 个元素,有 2 行 3 列。第一行为 a[0]行,第 2 行为 a[1] 行,a[0]、a[1]叫行首地址,是地址常量。*(a[0]+1)是第一行第一个元素往后跳一列,即元素 a[0][1]值为 2,*(a[0]+3)是第一行第一个元素往后跳三个,即元素 a[1][0]值为 4。 【知识点 5】行指针 是一个指针变量,占四个字节,行指针指向一行连续数据,形式为:int (*p)[2];,p 只 能存放含有两个整型元素的一维数组的首地址。注意(*p)两边的小括号不能省略,否则就成 了指针数组,是若干指针元素的集合。 【知识点 6】数组名 数组名是数组的首地址。数组名不能单独引用,不能通过一个数组名代表全部元素。数 组名是地址常量,不能对数组名赋值,所以 a++是错误的。但数组名可以作为地址与一个整 数相加得到一个新地址。 【知识点 7】元素形式的转换 助记:“脱衣服法则”a[2]变成*(a+2),a[2][3]变成*(a+2)[3]再可变成*(*(a+2)+3)。 第九章 字符串 【知识点 1】字符串常量及表示 字符串常量是由双引号括起来的一串字符,如”ABC”。在存储字符串时,系统会自动 在其尾部加上一个空值’\0’,空值也要占用一个字节,也就是字符串”ABC”需要占四个 字节。 【知识点 2】字符数组 C 语言没有字符串变量,只能采用字符数组来存储字符串。数组的大小应该比它将要实 际存放的最长字符串多一个元素,从而存放’\0’。 【知识点 3】字符串赋值 可以用下面的形式进行赋值:char str[]=”Hello!”;或 char *p;p=”Hello!”;,但不能用 下面的形式:char str[10];str=”Hello”;因为 str 是一个地址常量,不能进行赋值操作。 【知识点 4】字符串的输入与输出
可以用scanf和printf函数,如scanf(”%s”,sr,也可用专门处理字符串的两个函数 gets和pus函数,还可以对字符数组逐个元素进行赋值,但一定要在最后赋一个’0'。使 gs函数可以接收空格,使用puts函数在最后输出一个换行。 【知识点5】字 符串西数 符串拷贝函数strepy() 长度 部分包 头 件” 字符串长度要小于字符数组的长度,例:char str1O=”Hello”sizeofstr)的值为10(数 组长度),srsr的值为5(字符串长度)。这些函数是考试常用到的函数,大家一定要熟 练应用这几个函数。 第十章结构体与共用体 【知识点1】结构体类型的说明 结构体是若干个类型数据的集合,结构体类型说明格式如下:suct类型名(类型1成 员名1,类型2成员名2, :,以上整个部分是 个数据类型,与整型的t是同样地位, 可用typedef把结构体类型替换成一个只有几个字母的简短标识符。 【知识点2】结构体变量的定义 个变量,与结构体类型不是一回事。一个 【知识点3】结构体成员的引用 式:(1)结构体变量名.成员名:(2)指针变量名->成员名:(3) (*指针变量名)成员名。点()称为成员运算符,箭头(>)称为结构指向运算符。 【知识点4】链表 链表是由一个个结点构成的,一个结点就是一个结构体变量。每个结点可以分为数据域 与指针域两个部分,数据域用来存放要存储的数据,指针域用来指向下一个结点。链表是考 试中的难点,在C语言和公共基础部分都会考到,要领悟掌握。 【知识点5】共用体 结构体相似,共用体定义的关键字为union,共用体所占字节数是 所有成员 大的那个 第十一章文件 点文件类型指 【知识 构体类型的指针,定义格式为:FLE*指针变量名。在使用文件 都需要先定义文件指针 时,知要先安文件与三进制文件 文本形式存放的是字符的ASC码 二进制形式存放的是数据的二进制。例如“100” 如果是文本形式就是存储’1'、 ”0'、,0·三个字符的ASCT1码(0011000100110000 00110000),如果是二进制形式就把100转化成二进制(01100100). 【知识点3】打开文件 文件的打开形式如下:FILE *fp,p=ope(“clab.c ,”b”方。fopen函数的前面 部分为文件名,后面一部分为文件的使用方式。打开方式详见教材,其中r代表读,w代表 b 1 二进制位的 位置移到 移动文件指针位置fseek函 数 获得文件位置ftell函数 文件 数和
12 可以用 scanf 和 printf 函数,如 scanf(”%s”,str);,也可用专门处理字符串的两个函数 gets 和 puts 函数,还可以对字符数组逐个元素进行赋值,但一定要在最后赋一个’\0’。使 用 gets 函数可以接收空格,使用 puts 函数在最后输出一个换行。 【知识点 5】字符串函数 要掌握的四个字符串函数:字符串拷贝函数 strcpy(),求字符串长度函数 strlen(), 字符串链接函数 strcat(),字符串比较函数 strcmp()。使用这些函数需在预处理部分包含 头文件”string.h”。 字符串长度要小于字符数组的长度,例:char str[10]=”Hello”;sizeof(str)的值为 10(数 组长度),strlen(str)的值为 5(字符串长度)。这些函数是考试常用到的函数,大家一定要熟 练应用这几个函数。 第十章 结构体与共用体 【知识点 1】结构体类型的说明 结构体是若干个类型数据的集合,结构体类型说明格式如下:struct 类型名 {类型 1 成 员名 1;类型 2 成员名 2;.};,以上整个部分是一个数据类型,与整型的 int 是同样地位。 可用 typedef 把结构体类型替换成一个只有几个字母的简短标识符。 【知识点 2】结构体变量的定义 结构体变量是用说明的结构体类型所定义的一个变量,与结构体类型不是一回事。一个 结构体变量所占字节数为其所有成员所占字节数之和。如 struct stu{char name[10];int age;} a,b;则表明定义了两个结构体变量 a,b,每个变量占 14 个字节。a,b 与 int i,j;中的变量 i,j 是同样 地位。 【知识点 3】结构体成员的引用 引用成员可用以下 3 种方式:(1)结构体变量名.成员名;(2)指针变量名->成员名:(3) (*指针变量名).成员名。点(.)称为成员运算符,箭头(->)称为结构指向运算符。 【知识点 4】链表 链表是由一个个结点构成的,一个结点就是一个结构体变量。每个结点可以分为数据域 与指针域两个部分,数据域用来存放要存储的数据,指针域用来指向下一个结点。链表是考 试中的难点,在 C 语言和公共基础部分都会考到,要领悟掌握。 【知识点 5】共用体 共用体的使用格式与结构体相似,共用体定义的关键字为 union,共用体所占字节数是 所有成员中字节数最大的那个。 第十一章 文件 【知识点 1】文件类型指针 文件指针是一个指向结构体类型的指针,定义格式为:FILE *指针变量名。在使用文件 时,都需要先定义文件指针。 【知识点 2】文本文件与二进制文件 文本形式存放的是字符的 ASCII 码,二进制形式存放的是数据的二进制。例如“100” 如果是文本形式就是存储’1’、 ’0’、 ’0’三个字符的 ASCII 码(00110001 00110000 00110000),如果是二进制形式就把 100 转化成二进制(01100100)。 【知识点 3】打开文件 文件的打开形式如下:FILE *fp; fp=fopen(“c:\\lab.c”,”rb”);。fopen 函数的前面一 部分为文件名,后面一部分为文件的使用方式。打开方式详见教材,其中 r 代表读,w 代表 写,a 代表添加,b 代表二进制位的。 【知识点 4】文件函数 判断文件结束 feof 函数,移动文件指针位置 fseek 函数,获得文件位置 ftell 函数,文件 位置移到开头 rewind 函数,文件字符输入输出 fgetc 函数和 fputc 函数,文件输入输出 fscanf 函数和 fprintf 函数,文件字符串输入输出 fgets 函数和 fputs 函数,读写二进制文件 fread 函