- 第一章 C语言概述
1.1 重点内容提要
1.1.1 C程序的组成
1.C程序组成
C程序是由函数构成的,一个C源程序至少有一个函数,即main函数,也可以由一个main函数和若干个其他函数构成。
2.C程序中函数之间的关系
构成C程序的函数有两大类:一类是主函数,另一类是子函数。在主函数和子函数之间,主函数可以调用子函数,而子函数不能调用主函数;在子函数之间可以彼此调用,没有层次之分。
1.1.2 函数的组成
1. 函数的首部
函数首部包括函数名、函数类型、函数属性、函数参数(形参)名、参数类型。
2.函数体
函数体,即函数首部下面的大括号{……}内的部分。它由两部分组成:
(1)声明部分:在声明部分中定义函数所用到的变量,以及对该函数所需要调用的函数进行声明。
(2)执行部分:执行部分由若干语句组成。C程序允许无执行部分,即是一个空函数,表明它什么也不做。
1.1.3 几点说明
(1)一个C程序,无论main函数在程序中的什么位置,程序的执行都将从main函数开始,在main函数中结束。
(2)程序书写格式自由,一行内可写几个语句,一条语句也可以分写在多行上。
(3)每个语句和数据定义的最后必须有一个分号。分号是C语言的必要组成部分。
(4)C语言本身没有输入输出语句,输入输出操作是由库函数scanf和printf等来完成的。
(5)可以用/*……*/对C程序中的任何部分进行注释,在执行程序时,系统不会执行注释部分。
1.2 考点
(1)C程序组成
(2)正确识别C语言的标识符。
- 第二章 程序的灵魂—算法
2.1 重点内容提要
2.1.1.算法的概念
1.算法
算法即是一套操作方案,是为解决一个问题而采取的方法和步骤。
2.算法分类
算法可分为数值运算算法和非数值运算算法两大类。
数值运算算法:目的是求数值解。
非数值运算算法:包括面十分广泛,主要用于事物管理领域。
2.1.2 算法的特性
1.有穷性
有穷性是指一个算法应包含有限的操作步骤,而不能是无限的。
2.确定性
确定性是指算法中的每一个步骤都应当是确定的。
3.有零个或多个输入
一个算法可以没有输入,也可以有多个输入,所谓输入是从外界取得必要的信息。
4.有一个或多个输出
输出即一个算法所得的结果。
5.有效性
有效性是指算法中的每一个步骤都应当有效地执行,并得到确定的结果。
2.1.3. 算法的表示方法
1.自然语言表示算法用语言表示各种操作。
2.用流程图表示算法
用流程图表示算法:用一些图框表示各种操作。这种方法直观形象,易于理解。
3.三种基本结构
(1)顺序结构;(2)选择结构;(3)循环结构:a)当型循环结构;b)直到性循环结构。
4.用N—S流程图表示算法
5.用伪代码表示算法
2.1.4 结构化程序设计方法
1.自顶向下、逐步细化的方法
2.模块化程序设计方法
3.结构化编码
2.2 考点
(1)了解结构化程序的三种基本结构,并在程序设计过程中正确应用三种基本结构。
(2)了解算法的表示方法。
3.1 重点内容提要
第三章 数据类型. 运算符和表达式
3.1.1 C的数据类型
数据类型分为基本类型,构造类型,指针类型,空类型。
基本类型 有: 字符型,整型,实型,枚举类型。
构造类型有:数组类型, 结构体类型,共同体类型
指针类型
空类型
3.1.2 常量与变量
1.常量
常量:在程序运行过程中其值不变的量。
- 整型常量——三种表示形式:a)十进制整数,例:12;b)八进制整数,例:012;c)十六进制整数,例:0x12。
- 字符型常量——包括两类:a)用单引号括起来的单个字符,例: ‘a’ , ‘2’;b)转义字符常量,例; ‘\n’ m’\r’ ,’\376’。
- 实型常量——两种表示形式:a)十进制小数形式,例:123.456;b)指数形式,例:1e3,2.3e-3。
- 字符串常量——用一对双引号括起来的字符序列。例: “abc”,“123”,“A” 。
- 符号常量——用一个标识符代表一个常量。其定义格式为:
#define 标识符 字符串
例: #define PI 3.1415926
2. 变量
- 整型变量——分类: 有符号基本类型(int、内存中占2个字节)
无符号基本类型(unsigned int、内存中占2个字节)
有符号短整型(short int、内存中占2个字节)
无符号短整型(unsigned short、内存中占2个字节)
有符号长整型(long int、内存中占4个字节)
无符号长整型(unsigned long、内存中占4个字节)
- 实型变量——分类:单精度实型(float、内存中占4个字节)
双精度实型(double、内存中占8个字节)
长双精度实型(long double、内存中占10个字节)
- 字符变量——char
3.1.3 变量赋初值
变量赋初值即在定义变量的同时对变量预先设置初值,即变量的初始化。
例: int a=3,b=3;
char c=’a’;
3.1.4 各类数值数据间的混合运算
整型、实型和字符型数据间可以进行混合运算,在运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换规则按下图所示箭头方向进行。
高 double ← float
↑
long
↑
unsigned
↑
底 int ← char, short
3.1.5 算术运算符和算术表达式
1. C语言运算符
- 算术运算符:+、-、*、/、%
- 关系运算符:>、<、==、>=、<=、!=
- 逻辑运算符:!、&&、||
- 位运算符:>>、<<、~、|、^、&
- 赋值运算符:=及其扩展赋值运算符
- 条件运算符:?:
- 逗号运算符: ,
- 指针运算符:*、&
- 求字节数运算符:sizeof
- 强制类型转换运算符:(类型)
- 分量运算符: . 、->
- 下标运算符: [ ]
- 其他: 如函数调用运算符( )
2.算术运算符和算术表达式
- 基本算术运算符:+、-、*、/、%
- 算术运算符的优先级为先乘除后加减。
- 算术运算符的结合方向:自左向右。
- 利用强制类型转换运算符可以将一个表达式转换成所需的类型,通常是从精度高的类型向精度低的类型转换,其优先级高于算术运算符。
一般格式: (类型名) 表达式
- 自增、自减运算符:++ (自增)、-- (自减)
- 一般格式:
++i, --i (在使用i之前先使i的值加(减)1)
i++,i-- (在使用i之后使i的值加(减)1)
-
- 自增、自减运算符的优先级高于算术运算符,与强制类型转换运算符同级。
- 自增、自减运算符的结合方向为自右向左。
- 自增、自减运算符只能用于变量,而不能用于常量或表达式。
- 算术运算符:用算术运算符和括号将运算对象连接起来的、符合C语法规则的式子。
3.1.6 赋值运算符和赋值表达式
1. 赋值运算符:=
- 优先级:低于算术运算符
- 结合方向:自右向左。
2.复合的赋值运算符:+=、-=、*=、/=、%=等
- 优先级:与赋值运算符“=”同级。
- 结合方向:自右向左。
3.赋值表达式
一般格式:<变量><赋值运算符><表达式>
4.赋值运算时的类型转换
如果赋值运算符两侧的类型不一致,在赋值时要进行类型转换,其规则如下:
左 | 右 | 转换说明 |
float | int | 将整型数据转换成实型数据后再赋值 |
int | float | 将实型数据的小数部分截去后再赋值 |
ling int | int,short int | 值不变 |
int,short | long int | 右侧的值不能超过左侧数据值的范围,否则将导致意外的结果 |
unsigned | signed | 按原样赋值,但如果数据范围超过相应的整型范围,将导致意外的结果 |
signed | unsigned |
3.1.7 逗号运算符和逗号表达式
1.逗号运算符: ,
- 优先级:是C语言运算符中优先级最低的运算符。
- 结合方向:自左向右。
2.逗号表达式:用逗号运算符将两个表达式连接起来的式子。
一般格式: 表达式1,表达式2,…,表达式n
运算结果:是整个逗号表达式最右边的表达式“表达式n”的值。
3.2 考点
- C语言中各种类型数据所占内存空间的规定。
- C语言中有关整型常量表示方法的规则。
- C语言中,逻辑“真”与逻辑“假”的表示方法。
- 字符常量可作为整型常量来处理。
- 自增、自减运算符的结合方向及其使用。
- 逗号运算符及逗号表达式的求值顺序和结果。
- 混合类型表达式的计算。
- 第四章 最简单的C程序设计——顺序程序设计
4.1 重点内容提要
4.1.1 C语言的语句
1. 控制语句:完成一定控制功能。
- if( ) ~ else ~ 条件语句
- for( ) ~ 循环语句
- while( ) ~ 循环语句
- do ~ while( ) 循环语句
- continue 结束本次循环语句
- break 终止执行switch或循环语句
- switch 多分支选择语句
- goto 转向语句
- return 从函数返回语句
2.函数调用语句:由一次函数调用加一个分号构成的一条语句。
3.表达式语句:由一个表达式构成的语句。例:a=3
4.空语句:只有一个分号的语句,表示什么都不做。
5.复合语句:用一对花括号“{}”把一些语句括起来所构成的语句。
4.1.2 赋值语句:由赋值表达式加上一个分号构成。
一般格式: 变量=表达式
4.1.3 数据的输入输出
1.字符输出函数putchar
一般格式: putchar(c),其中:c可以是字符变量,也可以是整型变量。
功能:向终端输出一个字符。
2.字符输入函数getchar
一般格式:getchar( )
功能:从终端(或系统隐含指定的输入设备)输入一个字符。
3.格式输出函数printf
一般格式:printf(格式控制,输出表列)
1.格式说明:由%和格式字符组成。其作用是将输出的数据转换为指定格式输出
格式控制 分为:
2.普通字符:原样输出的字符
输出表列:需要输出的一些数据。
功能:将输出表列中的参数按给定的格式输出。
常用的格式字符有:
(1)d格式符。用来输出十进制整数。
1)%d 按整型数据的实际长度输出。
2)%md m为指定输出字段的宽度。M为正整数,左补空格。
3)%ld 输出长整型数据。
(2)o格式符。以八进制整数形式输出数据。
(3)x格式符。以十六进制整数形式输出数据。
(4)u格式符。以十进制整数形式输出无符号数据。
(5)c格式符。用以输出一个字符。
(6)s格式符。用以输出一个字符串。
1)%s 输出一个字符串。
2)%ms 输出字符串占m列,左补空格。
3)%-ms 输出字符串占m列,右补空格。
4)%m.ns将字符串左端n个字符以占m列输出,左补空格
5)%-m.ns将字符串左端n个字符以占m列输出,右补空格
(7)f格式符。用来输出实数。
1)%f 按系统默认格式输出,整数部分全部输出,小数保留6位。
2)%m.nf 指定输出的数据共占m列,小数占n列,左补空格
3)%-m.nf 指定输出的数据共占m列,小数占n列,右补空格
4.格式输入函数scanf
一般格式:scanf(格式控制, 地址表列)
1. 格式说明:由%和格式字符组成。
格式控制 分为:
2. 普通字符:原样输出的字符
地址表列:由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。
功能:按指定格式形式输入数据。
第5章 逻辑运算和判断选取控制
5.1 重点内容提要
5.1.1 关系运算符和关系表达式
1.C语言提供的关系运算符
(1)关系运算符
1) < (小于)
2) <= (小于等于) 优先级相同(高)
3) > (大于)
4) >= (大于等于)
5) == (等于) 优先级相同(低)
6) != (不等于)
(2)关系运算符的优先级
算术运算符 (高)
关系运算符
赋值运算符 (低)
(3)关系运算符的结合方向:自左向右。
2.关系表达式
(1)关系表达式:用关系运算符将两个表达式连接起来的式子。
(2)关系表达式的运算结果是一个逻辑值,即“真”(1)或“假”(0)。
5.1.2 逻辑运算符和逻辑表达式
1.C语言提供的逻辑运算符
(1)逻辑运算符:
1)!(逻辑非)
2)&&(逻辑与)
3)||(逻辑或)
(2)逻辑运算符的优先级:
!
算术运算符 (高)
关系运算符
&&、||
赋值运算符 (低)
(3)逻辑运算符的结合方向:自左向右。
2.逻辑表达式
(1)逻辑表达式:用逻辑运算符将两个表达式连接起来的式子。
(2)逻辑表达式的运算结果是一个逻辑值,即“真”(1)或“假”(0)。
5.1.3 if语句
1.If语句的三种形式
(1)单分支:
.一般格式: if(表达式) 语句
.功能:先计算表达式的值,若值为非0,执行内嵌语句,若值为0,则执行if语句下面的第一条语句。
(2)双分支:
.一般格式: if(表达式) 语句1
else 语句2
.功能:先计算表达式的值,若值为非0,执行内嵌语句1,若值为0,则执行内嵌语句2。
(3)多分支:
.一般格式: if(表达式1) 语句1
else if (表达式2) 语句2
else if (表达式3) 语句3
┇
else if (表达式m) 语句m
else 语句n
2.if语句的嵌套
if(表达式1)
if (表达式2) 语句1
else 语句2
else
if (表达式3) 语句3
else 语句4
5.1.4 条件运算符
1.条件运算符
(1)条件运算符: ? :
(2)条件运算符的优先级:仅优于赋值运算符。
(3)条件运算符的结合方式:自右向左。
2.条件表达式
.一般格式: 表达式1?表达式2:表达式3
.执行顺序:先求解表达式1,若值为非0,求解表达式2,并将该值作为表达式的值;若值为0,则计算表达式3的值,并将该值作为表达式的值。
5.1.5 switch语句
.一般格式: switch (表达式)
{
case 常量表达式1:语句1
case常量表达式2: 语句2
case常量表达式n: 语句n
default: 语句n+1
}
.执行顺序:先求解表达式,当表达式的值与某个case后面的常量表达式的值相等时,就执行此case后面的语句,之后,流程控制转移到下一个case继续执行;若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句。