完整版《C程序设计》复习资料知识点总结C语言Word文档格式.docx
- 文档编号:17051519
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:18
- 大小:34.03KB
完整版《C程序设计》复习资料知识点总结C语言Word文档格式.docx
《完整版《C程序设计》复习资料知识点总结C语言Word文档格式.docx》由会员分享,可在线阅读,更多相关《完整版《C程序设计》复习资料知识点总结C语言Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
图2.2顺序结构图2.3选择结构图2.4当循环图2.5直到循环
循环体
Y
N
图2.6顺序结构图2.7选择结构图2.8当循环图2.9直到循环
2.7.由三种基本结构组成的程序称作结构化程序,结构化程序中的每个模块只有一个入口和一个出口。
结构化程序设计通常采用“自顶向下、逐步细化”的设计方法。
第3章数据类型、运算符与表达式
3.1.C的数据类型如下所示:
表3.1C语言的数据类型
数据类型
字节数
数值范围
基本类型
整型
无符号短整型(unsignedshortint)
4
0~216-1
有符号短整型(signedshortint)
2
-215~215-1
无符号长整型(unsignedlongint)
0~232-1
有符号长整型(signedlongint)
-231~231-1
实型
单精度实型(float)
长37位,6位有效
双精度实型(double)
8
长307位,15位有效
长双精度实型(longdouble)
10
长4931位,18位有效
字符型(char)
1
0~28-1
空类型(void)
构造类型
枚举类型
指针类型
数组类型
结构体类型
共用体类型
3.2.C符号常量名、变量名、函数名等统称标识符,标识符的命名规则为:
以字母或下划线开头,由字母、数字、下划线组成,超出32个字符部分被忽略(最好不超过8个字符)。
3.3.以0开头的整数为八进制整数,以0X或0x开头的整数为十六进制无符号整数。
3.4.-32768~32767为int型,0U~65535U为unsigned型,65536U~4294967295U和0UL~4294967295UL为unsignedlong型,-2147483648~-32769、32768~2147483647和-2147483648L~2147483647L为long型。
后缀U和L不区分大小写和次序。
3.5.数据的存储字节数可用运算符sizeof()查询,括号内可是数据、表达式或类型名。
3.6.有符号整数(int和long)按补码存储,因此,-65535U~-1U与1U~65535U依次相等,-4294967295UL~-1UL与1UL~4294967295UL依次相等。
3.7.定点数(含小数点数)和浮点数统称C实型常量,浮点数的一般形式为:
尾数e除码或尾数E除码
其含义为:
尾数×
10除码
其中,尾数为定点数或整数,除码为整数。
标准浮点数的小数点在第1位非0数字之后。
后缀L或l的实型常量为长双精度,无后缀实型常量为双精度。
3.8.用一对单引号括起来的单个字符称作C字符常量,其值为该字符的ASCII码(1字节无符号整数)。
3.9.转义字符'
\n'
、'
\t'
\\'
\'
'
\"
分别表示回车符、制表符、反斜杠、单引号、双引号。
3.10.转义字符'
\整数'
\x整数'
(或'
\X整数'
)中的整数分别为八进制、十六进制,表示以此整数为ASCII码的字符。
3.11.用双引号括起来的一串字符称作C字符串型常量,串中字符数称作串长,可以为0。
字符串的存储形式为:
依次存储字符串中字符的ASCII码,并追加一个空字符'
\0'
(1字节无符号整数0)。
3.12.字符型、整型、实型数据统称数值型数据,不同类型的数值型数据可以混合运算,低精度数据被自动强制转换为高精度数据后方参与运算。
另外,字符常量为有符号短整数,两个字符型数据间的运算按有符号短整数处理。
3.13.如果将数值型数据赋给不同类型的数值型变量,则数值型数据将被自动强制转换为变量的数据类型。
3.14.C允许定义变量的同时赋初值。
3.15.C运算符及其优先级、结合性如附录C(教材第365页)所示。
3.16.强制数据类型转换的一般形式为:
(类型名)数据
3.17.自增++、自减--运算只能作用于变量,作用于右侧时,返回变量自增、自减前的值。
3.18.赋值表达式的格式为:
变量=表达式或变量op=表达式
其中,op为运算符+、-、*、/、%、>
>
、<
<
、&
、^、|中某一个。
前者将右边表达式的值赋给左边的变量,后者将左边变量的当前值与右边表达式的值作相应运算后仍赋给左边的变量。
整个赋值表达式取左边变量所赋的新值。
3.19.用逗号分隔的一组表达式称作逗号表达式,其一般形式为:
表达式,表达式,…,表达式
其功能为:
从左至右依次计算各表达式的值,并以最后一个表达式的值为整个逗号表达式的值。
3.20.将数学式改为C表达式时应注意:
(1)乘号*不可省略;
(2)正确改写脚码、运算符、括号等;
(3)正确书写函数名;
(4)把握好运算优先级,分数线改为/时,分子、分母相应加括号;
(5)正确拆分不等式组;
(6)区分整数除法和实数除法。
第4章顺序结构程序设计
4.1.表达式后缀分号称作表达式语句,即,
表达式;
4.2.putchar、getchar、printf、scanf等输入输出函数的原型在头文件stdio.h中。
4.3.函数putchar和getchar的格式和功能如下:
(1)putchar
格式:
putchar(表达式)
功能:
向标准输出设备输出以指定表达式的值为ASCII码的字符,并以该值为函数值(自动强制转换为int型)。
(2)getchar
getchar()
从标准输入设备输入一个字符,并以该字符为函数值。
注意:
getchar可提取空格及回车、Tab等部分控制字符,而且只提取输入中相应位置上的一个字符,因此,输入字符间无须分隔,否则也被视为输入字符。
4.4.printf函数的格式和功能如下:
printf(格式控制串,输出表列)
(1)从右至左依次计算输出表列中各表达式的值;
(2)从左至右依次输出格式控制串中的字符,其中,%引导的格式控制符由输出表列中相应表达式的值所取代。
输出表列是一组用逗号分隔的表达式(又称输出项,可以为0项)。
格式控制串为字符串型数据(可以是表达式)。
其中,格式符用于控制输出表列中相应表达式的输出格式。
格式符及其功能如下表所示:
表4.1printf格式字符
格式符
说明
d或i
有符号十进制短整数(不输出正号)
u
无符号十进制短整数
o
无符号八进制短整数(无前缀0)
x或X
无符号十六进制短整数(无前缀0x,数字的大小写与x相同)
c
字符
s
字符串
f
定点数(默认6位小数)。
e或E
浮点数(浮点数中e的大小写与格式符e的大小写相同)
g或G
%f和%e中输出宽度较短者(e与g的大小写相同)
附加格式符
l
插在%和d、i、u、o、x、X之间,表示输出相应长整数。
整数
插在%和其它格式符之间,前一个整数的绝对值为输出数据的宽度,后一个整数控制实际输出位数:
①输出整数时,指定输出位数,不足左补0,超出保留;
②输出实数时,指定输出小数位数,不足右补0,超出四舍五入;
③输出字符串时,指定输出字符数。
另外,第一个整数为负时,输出数据左对齐,否则右对齐。
.整数
整数.整数
4.5.scanf函数的格式和功能如下:
scanf(格式控制串,地址表列)
其中,格式控制串为字符串型数据(可以是表达式),地址表列是一组用逗号分隔的地址。
(1)右至左依次计算地址表列中各表达式的值;
(2)从标准输入设备提取数据,并从左至右依次存储到所指定的存储单元。
(3)地址表列中的地址可用表达式表示,通常形式为:
&
变量
其中&
是地址运算符,它表示取其后变量的存储(起始)地址。
说明:
(1)scanf函数格式符与printf函数的格式符的功能相似。
scanf的合法格式符不区分大小写、实型格式符均等效,另外,
表4.2scanf的附加格式符说明
正整数
指定输入数据的最大宽度(插在%与其它格式符之间)
*
跳过当前一个数据(插在%与其它格式符之间)
*正整数
跳过当前指定个字符(插在%与其它格式符之间)
(2)如果格式控制串中有非格式符,则输入数据中对应位置上必须是该字符,且被跳过,这为指定数据间分隔符提供了方便。
(3)printf和scanf格式控制串中的每对%%(从左至右结合)按一个普通字符%对待。
第5章选择结构程序设计
5.1.C逻辑值为短整数(int),真、假分别为1、0。
另外,字符、数、指针作为逻辑量时,非0、非空为真(即1),0、空为假(即0)。
逻辑运算如下表所示:
表5.1逻辑运算真值表
左元
右元
!
左元&
左元||右元
假(0)
真
(1)
真(非0)
5.2.对于形如
□||□||…
的逻辑式,从左至右计算□的逻辑值,遇到真则提前终止。
5.3.对于形如
□&
…
的逻辑式,从左至右计算□的逻辑值,遇到假则提前终止。
5.4.算术、关系、逻辑运算的优先级参见附录C(教材第365页)。
5.5.if语句的格式和功能如下:
(1)格式一:
if(条件)语句
如果条件成立,方执行语句。
(2)格式二:
if(条件)语句1else语句2
功能如果条件成立,执行语句1,否则执行语句2。
else不可独立使用,它与其前最近一个尚未配对的if配对,为避免歧义,通常只在else中嵌套if语句。
5.6.条件表达式的格式和功能如下:
条件?
表达式1:
表达式2
如果条件成立,取表达式1的值,否则取表达式2的值。
条件表达式可以嵌套,与其前最近一个尚未配对的if配对。
5.7.switch语句的格式和功能如下:
switch(表达式)
{
…
case常量i:
语句组i
default:
语句组n+1
}
如果表达式的值等于常量i,则从语句组i开始执行,否则执行语句组n+1。
(1)“表达式”的值和“常量”为整型(包括字符型)。
(2)switch中的每个语句组称作一个分支,为使各分支独立,通常以break、return、exit等语句结尾。
另外,“default:
语句组n+1”可以缺省。
5.8.break语句的格式和功能如下:
break;
结束本层switch语句或本层循环语句。
break语句只能用于switch语句和循环。
第6章循环结构程序设计
6.1.while语句的格式和功能如下:
while(表达式)循环体
当表达式的值为真时,重复执行其后循环体。
循环体是循环语句的内嵌语句,可以是空或复合语句(下同)。
6.2.do-while语句的格式和功能如下:
do循环体while(表达式)
重复执行循环体,直到表达式的值为假。
do-while循环至少执行一次循环体。
6.3.for语句的格式和功能如下:
for(表达式1;
表达式2;
表达式3)循环体
(1)计算表达式1;
(2)当表达式2的值为真时,重复执行循环体和计算表达式3。
表达式1、表达式2、表达式3均可缺省,但保留分号。
6.4.continue语句的格式和功能如下:
continue;
跳过循环体中其后程序段(结束本次循环)。
continue语句只能用于循环。
6.5.掌握以下算法:
累加、阶乘、判断素数、分解整数数字、递推数列、打印字符图形。
第7章数组
7.1.同一类型数据的序列称作数组,数组中数据用相应下标变量访问,因此,数组亦可视为由下标变量组成的序列。
7.2.定义数组语句的一般格式和功能为:
数据类型名数组名[第1维长度]…[第n维长度]
为数组分配连续内存单元,用于存储数组中的下标变量(低维优先),并将起始地址(又称基址)赋给数组名。
数组长度只能为整型常量或整型常量表达式。
7.3.数组的要素有:
数据类型、数组名、维数及各维的长度。
各维的长度必须是常量,可用常量表达式表示,其值的整数位有效——截断取整。
7.4.下标变量的格式为:
数组名[第1维下标]…[第n维下标]
7.5.下标从0开始,可用表达式表示,其值的整数位有效。
下标最大值比长度小1。
7.6.下标变量的使用与普通变量相同。
7.7.定义数组的同时可对数组中的下标变量赋初值。
数据类型名数组名[第1维长度]…[第n维长度]={数据表}
定义数组的同时将数据表中数据依次赋给数组中下标变量,未赋值下标变量的初值为相应数据类型的0。
数据表中的数据必须是常量,可用表达式表示。
第1维长度可省略,如果省略,其长度由数据表和其它维长度确定——存储所需的最小长度。
7.8.以字符为数据元素的数组称作字符数组,它由一组字符型下标变量组成。
除赋值外,字符数组名的使用与字符串变量相似。
字符数组也可用字符串初始化。
7.9.标准函数库提供许多用于处理字符串的函数。
表7.1常用字符串处理函数
格式
功能
头文件
puts(串)
依次输出串中字符,遇到'
终止,然后换行。
stdio.h
gets(串)
读入一行字符,依次存入所分配的内存空间,并追加'
。
strcat(串1,串2)
将串2复制、连接到串1的第一个'
处。
string.h
strcpy(串1,串2)
将串2复制到串1。
strcmp(串1,串2)
比较串1和串2的大小。
strlen(串)
求字符串的长度。
strlwr(串)
将串中大写字母均转换为相应小写字母。
strupr(串)
将串中小写字母均转换为相应大写字母。
输出字符串及处理字符串的函数,均忽略字符串中第一个'
及其后的字符。
7.10.掌握冒泡排序。
第8章函数
8.1.自定义函数的格式为:
函数值类型函数名(带类型声明的形参表列){函数体}
8.2.函数值的默认数据类型为int。
8.3.如果函数有返回值,则用return语句返回,其格式为:
return表达式;
或return(表达式);
8.4.如果函数无返回值,即函数值类型为void,亦可用格式:
return;
结束本函数并返回调用者。
8.5.函数一般调用格式为:
函数名(实参表列)
其中,实参表列为一组逗号分隔的表达式。
实参按从右至左的次序计算并传递给相应形参。
8.6.如果函数调用在其定义之前,调用前应作相应声明,声明格式为:
函数值类型名函数名(形参及其类型声明表列);
其中,形参可省略。
8.7.函数不可嵌套定义,但允许嵌套调用,亦可直接或间接调用自身(称作递归函数)。
8.8.递归函数的函数体的一般格式为:
(B班同学不作要求)
if(递归条件)语句1/*递归时,如何递归*/
else语句2/*非递归时,如何处理*/
或
if(!
递归条件)语句1/*非递归时,如何处理*/
else语句2/*递归时,如何递归*/
8.9.形参及函数内定义的变量称作局部变量,它从定义处生效,且只在该函数内有效。
因此,不同函数中的局部变量可以同名,但同名不同义。
8.10.在所有函数之外定义的变量称作全局变量,它从定义处生效。
8.11.如果局部变量与全局变量同名,则同名全局变量被屏蔽。
8.12.局部变量的存储方式分为:
自动(auto,默认)、静态(static)、寄存器(register)。
8.13.存储方式和数据类型是变量的两个重要属性,必须在定义变量时一并声明,关键字的排列顺序没有限制。
变量的默认数据类型为int,默认存储方式为auto,但关键字auto和int不可同时缺省。
8.14.auto型局部变量占用动态数据区,当函数调用结束时释放所占内存。
register占用CPU中的寄存器,但寄存器不够用时,占用动态数据区。
8.15.全局变量和static型局部变量占用静态数据区,默认初值为相应数据类型的0。
8.16.static型局部变量的声明和初始化只执行一次。
8.17.如果全局变量被声明为static型,则其它程序文件不能使用该全局变量。
否则,其它程序文件也可使用该全局变量,但使用前应作extern声明。
8.18.被声明为static型的函数,只在本程序文件中有效,不能被其它程序文件调用。
否则,其它程序文件也可调用此函数,但调用前应作extern声明。
8.19.常用数学函数在头文件math.h中。
掌握基本初等函数。
第9章预处理命令
9.1.预处理命令在程序编译前执行,其主要功能是“文本置换”。
9.2.不带参数宏定义的格式和功能如下:
#define宏名文本
在预处理时,将程序中宏名用相应的文本置换。
9.3.带参数宏定义的格式和功能如下:
#define宏名(形参表列)文本
在预处理时,将程序中带参数的宏用相应的文本置换,且文本中的形参被相应的实参所置换。
形参无须且做类型声明。
9.4.终止宏定义的格式如下:
格式#undef宏名
9.5.宏定义可以引用已有的宏,亦可重新定义所代表的文本。
9.6.预处理命令无须以分号结尾,否则分号也参与置换。
9.7.#include命令的格式和功能如下:
格式一:
#include"
文件名"
格式二:
#include<
文件名>
在预处理时,用指定文件置换本命令——加载文件。
置换后,被包含文件成为本文件的一部分,其函数、全局变量等均可在本文件中直接使用,无须作extern声明。
前一种格式先在当前目录中找指定文件,如果未找到,方到存放C头文件的目录中查找。
后一种格式直接到存放C头文件的目录中查找指定文件。
9.8.条件编译命令的格式和功能如下:
#ifdef宏名程序段1#else程序段2#endif
在预处理时,如果指定的宏名已定义,则用程序段1置换本命令,否则用程序段2置换本命令。
当程序段2为空时,#else可省略(下同)。
#ifndef宏名程序段1#else程序段2#endif
在预处理时,如果指定的宏名未定义,则用程序段1置换本命令,否则用程序段2置换本命令。
格式三:
#if常量表达式程序段1#else程序段2#endif
在预处理时,如果指定常量表达式的值为真(非0),则用程序段1置换本命令,否则用程序段2置换本命令。
9.9.注释命令在预处理时被删除,不影响源程序和目标程序。
注释命令的格式如下:
/*注释内容*/
第10章指针
10.1.内存的基本单位是字节,每个字节都有相应的编号,称作地址或指针。
借助于指针,C语言可以直接访问内存,从而对硬件进行操作。
10.2.变量所占用内存的大小由其数据类型决定,变量所占用内存的第1个字节的地址称作该变量的地址或指针,表为:
变量名
10.3.指针所指向数据的类型称作该指针的基类型,它所指向数据用
*指针
访问,可作为普通变量使用。
10.4.指针本身也是一种数据类型,占用2字节内存,可作为无符号整数输出和参与关系运算、逻辑运算,但指针的其它运算不同于整数运算。
10.5.指针运算可简单地分为以下五类:
(1)单目运算有六个:
、*、++、--、sizeof。
(2)双目运算有四种:
-、关系运算、逻辑运算、赋值运算。
(3)指针与整数间的运算有三个:
+、-、[]。
(4)强制类型转换运算:
()。
(5)结构体成员运算:
->
其中,+、-、++、--、+=、-=均以基类型数据为基本单位。
10.6.一维数组的数组名可作为指针调用,它指向数组中的第一个元素,以数组中元素的类型为基类型。
数组名的值不可修改,且sizeof(数组名)的值为整个数组所占内存的字节数。
10.7.对于一维数组来说,
基址+i和&
基址[i]
均指向数组中的第i+1个元素(i>
=0);
*(基址+i)和基址[i]
均表示数组中的第i+1个元素(i>
=0)。
10.8.n维数组可看作是以n-1维数组为元素的一维数组,数组名可看作是指向数组中的第一个n-1维数组的指针。
10.9.下标变量可作为实参,但不可作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C程序设计 完整版 程序设计 复习资料 知识点 总结 语言
![提示](https://static.bdocx.com/images/bang_tan.gif)