C语言 各章重点知识总结
第一章 C语言概述
1C程序的组成和形式的基本特点(P6-7
1C程序是由函数构成的,一个C源程序至少且仅包含一个main函数,也可以包含一个main函数和若干个其他函数。
2)一个函数由两部分组成
1 函数的首部:即函数的第一行,包括函数名、函数类型、函数属性、函数参数名、参数类型
例:int  max  int  x int y
一个函数名后面必须跟一对圆括号,括号内写函数的参数名及其类型。函数可以没有参数,如main()。
2 函数体:即函数首部下面的花括号内的部分。如果一个函数内有多个花括号,则最外层的一对花括号为函数体的范围。函数体一般包括:声明部分、执行部分
2、运行C程序的步骤及每个步骤生成文件的类型及特点(P7
第二章 算法
1、算法的定义
一个程序应包括①数据结构即对数据的描述;②算法也就是操作步骤。
计算机算法可分为两大类:数值运算算法和非数值运算算法。
2、算法的特性(P19
1. 有穷性;
2. 确定性;
3. 有零个或多个输入;
4. 有一个或多个输出;
5. 有效性。
3、描述算法的常用方法(P20-33
1. 自然语言;
2. 用流程图表示算法。
3. N—S
4. 计算机语言
5. 伪代码
4C程序算法的3种基本结构及其共同特点(P24-25
三种基本结构:
1. 顺序结构:最基本;
2. 选择结构:又称选取结构或分支结构;
3. 循环结构:又称重复结构;
1 当(while)型循环;
2 直到(until)型循环。
共同特点:
1. 只有一个入口;
2. 只有一个出口;
3. 结构内的每一部分都有机会被执行到;
4. 结构内不存在“死循环”
5、结构化程序设计的设计原则(P34
1. 自顶向下;
2. 逐步细化;
3. 模块化设计;
4. 结构化编码。
第三章 数据类型、运算符与表达式
1C语言的基本数据类型和构造数据类型(P37
类型
所占字节
int
2
long
4
float
4
double
8
char
1
在程序中对用到所有数据都必须制定其数据类型。数据有常量和变量之分,它们分别属于以上这些类型。
2、字面常量和符号常量(P37-38
在程序运行过程中,其值不能被改变的量称为常量,常量区分为整型常量和实型常量,常量一般从其字面形式即可判别,这种常量称为字面常量或者直接常量。
用一个标识符代表一个常量的符号,称为符号常量,即以标识符形式出现的常量(常量的表
示用大写字母,变量的表示用小写字母),符号常量与变量不同,符号常量的值在其作用域内部能改变,也不能再被赋值,如果再用赋值语句给符号常量赋值是错误的。使用符号常量的好处:1.含义清楚2.在需要改变一个常量时能做到“一改全改”
3、标识符的命名规则(P39-40
C语言规定标识符只能有字母、数字和下划线3中字符组成,且第一个字符必须为字母或下划线,合法的标识符可以作为变量名。编译系统将大写字母和小写字母认为是两个不同的字符。变量名的长度最好不要超过8个字符。在C语言中,要求对所有用到的变量做墙纸定义,也就是“先定义,后使用”,1.凡未被事先定义的,系统不把它认作变量名,这就能保证程序中变量名使用得正确。2.每一个变量被指定为一个确定类型,在编译时就能为其分配响应的存储单元。3.指定每一变量数以一个类型,这就便于在编译时据此检查在程序中要求对该变量进行的运算是否合法。例a%b是“求余”得到a/b的余数
4、整型常量的3种表示方式、整型变量的分类及其定义方式、整型常量的类型(P41-44
整型常量即整常数的3种表示方式:
1. 十进制整数;
2. 八进制整数(以0开头);
3. 十六进制整数(以0x开头)。
2进制
用两个阿拉伯数字:01
8进制
用八个阿拉伯数字:01234567
10进制
用十个阿拉伯数字:09
16进制
0~9然后用A,B,D,E,F表示101112131415
整型变量的分类:整型变量的基本类型符为int,根据数值的范围将变量定义为基本整型int、短整型short int/short、长整型long int/long在实际应用中,变量的值常常是正的,为充分利用变量的值的范围,可以将变量定义为“无符号/unsigned”类型,以指定是“无符号数”,或者为“有符号/signed”。如果前无符号,默认为有符号(signed
归纳起来,可以用一下六种整形变量:
1. 有符号基本整型[signed]int
2. 无符号基本整型unsigned int
3. 有符号短整型[signed]short[int]
4. 无符号短整型unsigned short[int]
5. 有符号长整型[signed]long[int]
6. 无符号长整型unsigned long[int]
整型常量的类型:
1. 一个整数,如果其值在-32768~2147483647范围内,则认为它是int型,它可以赋值给int型和long int型变量
2. 一个整数,如果其值超过了上述范围,而在-2147483648~2147483647范围内,则认为它
是长整型,可以将它复制给一个long int型变量
3. 一个整常量后面加一个字母uU,可以认为是unsigned int型,如123456u
4. 在一个整常量后面加一个字母lL,则认为是long int型常量,如123l123L
5、浮点型常量的2种表示方式、浮点变量的分类及其定义方式、浮点常量的类型(P45-47
浮点型常量的2种表示方法:浮点数就是实数,有两种形式1.十进制小数形式。(由数字和小数点组成,必须有小数点)2.指数形式。如123e3123E3代表123×注意字母e/E之前必须有数字,且e后面的指数必须为整数,一个浮点数可有多种指数表示方法
浮点变量的分类:
1. 单精度(float型):有效数字6~7
2. 双精度(double型):有效数字158~16
3. 长双精度型(long double型):有效数字18~19
浮点变量的定义方式:float xy;类似
浮点常量的类型:如果在数的后面加字母fF(如1.65f),编译系统会把它们按单精度处理。一个浮点型常量可以赋给一个float型、double型或long double型变量,根据变量类型截取实型常量中相应的有效位数字。
      例如:Float a;
            A=111111.111
            由于folat型变量只能接受7位有效数字,因此最后两位小数不起作用。如果a改为double型,则能全部接受上述9位数字,并储存在变量a中。
6、字符常量的2种形式、字符变量、字符串常量(P48-52
字符常量的2种形式:
1. C语言的字符常量是用单撇号括起来的一个字符。如‘a
2. 常用的以“\”开头的特殊字符如下
字符形式
含义
Ascii代码
\n
换行
10
\t
水平指标(跳到下一个tab位置)
9
\b
退格,将当前位置移到前一列
8
\r
回车,将当前位置移到本行开头
13
\f
换页,将当前位置移到夏夜开头
12
\\
代表一个反斜杠字符“\
92
\’
代表一个单引号字符
39
\”
代表一个双引号字符
34
\ddd
13位八进制数所代表的字符
\xhh
12位十六进制数所代表的字符
字符变量:字符变量用来存放字符常量,它只能放一个字符,不能存放字符串
char c1c2c1=a;c2=b’;
一个字符变量在内存中占一个字节。
小写字母的ASCII码比它的大写字母ASCII码大32,小大变为大小
7、变量初始化的时间(P53
函数printf作用C语言允许在定义变量的同时使变量初始化。(int a=3float f=3.56char c=a’)
也可以使被定义的变量的一部分赋初值(int abc=5;)
如果对几个变量赋予同一个初始值,应写成:int a=3,b=3,c=3;不能写成int a=b=c=3;
初始化不是在编译阶段完成的,而是在程序运行时执行本函数时赋初值的,相当于有一个复制语句。(int a=3;)
8、各类型数据间的混合运算(P54
整型、浮点型、字符型数据间可以混合运算
9C语言的运算符及其优先级和结合性(P55
特殊%,模运算符或称求余运算符,%两侧均应为整型数据,且两个整数相除的结果为整数,如5%31,舍去小数部分
算术运算符的结合方向为自左至右或左结合性,并且先乘除后加减
10、强制类型转换(P56
doublea;(int)(x+y);
11、自增、自减运算(P57
i++++i
1. 自增自减运算符只能用于变量,不能用于常量或表达式。例++i-1)为错
2. ++的结合方向是自右至左,例-i++合法,先输出-i再加一,(-i++不合法
例:i=3a=i++;b=i++;c=i++;d=a+b+c;最终输出d=12.
  3. i+++j相当于(i+++j,尽可能多的自左至右
12、赋值运算符、复合赋值运算符、赋值表达式(P59-64
赋值运算符就是“=
1.将浮点型数据(单双精度)赋给整型变量时,舍弃浮点数的小数部分
2.将整型数据赋给单双精度时,数值不变,但以浮点数形式存储到变量中,如将23赋值给float就得到23.00000
3.将一个double型数据赋给float变量时,截取其前面7位有效数字,存放到float变量中。例:float fdouble d=123.456789e100f=d;就出现溢出错误
将一个float型数据赋给double变量时候,数值不变,有效位数扩展到16位,在内存中以8个字节存储
4.字符型数据赋给整型变量
5.intshortlong型数据赋给char变量
例如int i =289char c=a’;c=i
6.将带有逗号的整型数据int赋给long型变量时,啊哟进行符号扩展,将整型数据16位送到long型低16位中,如果int型数为正值,则long型变量的高16位补零;如果int型变量为负值(符号位为1),则long型变量的高16位补1,以保持数值不变,反之如果将一个long型数据赋给一个int型变量,值将ong型数据中低16位原封不动地送到整型变量(截断)
7.unsignedint型数据赋给long int型变量时,不存在符号扩展问题
8.将非unsigned型数据赋给长度相同的unsigned型变量,也是原样赋值
复合赋值运算符:a+=3  等价于a=a+3a+=b+3等价于a+=b+3