第1章 C语言概述 1
1.1 C语言出现的历史背景 1
1.2 C语言的特点 2
1.3 C程序结构 2
1.3.1 简单的C程序介绍 2
1.3.2 C程序结构 4
1.4 C语言基本语法成分 5
1.5 C语言程序的编辑、编译、运行(C程序的上机步骤) 6
习题1 7
第2章 算法 8
2.1 算法的概念 8
2.2 简单算法举例 8
2.3 算法的特性 11
2.4 用N-S图表示算法 12
习题2 14
第3章 基本数据类型 16
3.1 C的数据类型 16
3.2 常量与变量 17
3.2.1 常量 17
3.2.2 变量 17
3.3 整型数据 18
3.3.1 整型常数的表示方法 18
3.3.2 整型变量 18
3.4 实型数据 20
3.4.1 实型常量的表示方法 20
3.4.2 实型变量 21
3.4.3 实型常量的类型 22
3.5 字符型数据 22
3.5.1 字符常量 22
3.5.2 字符变量 23
3.5.3 字符数据在内存中的存储形式及其使用 23
3.5.4 字符串常量 24
3.6 变量赋初值 25
3.7 各类数值型数据(整型、实型、字符型)的混合运算 25
习题3 27
第4章 运算符与表达式 28
4.1 C运算符简介 28
4.2 算术运算符和算术表达式 28
4.3 赋值运算符和赋值表达式 30
4.4 自增、自减运算符 32
4.5 逗号运算符和逗号表达式 33
习题4 33
第5章 顺序程序设计 35
5.1 C语句概述 35
5.2 输入/输出及其C语言的实现 37
5.3 格式输入/输出 37
5.3.1 printf函数(格式输出函数) 37
5.3.2 scanf函数(格式输入函数) 42
5.4 其他输入/输出函数 44
5.4.1 putchar函数(字符输出函数) 44
5.4.2 getchar函数(字符输入函数) 45
5.5 顺序结构程序设计举例 45
习题5 47
第6章 选择(分支)结构程序设计 49
6.1 关系运算符和关系表达式 49
6.1.1 关系运算符及其优先次序 49
6.1.2 关系表达式 50
6.2 逻辑运算符和逻辑表达式 50
6.2.1 逻辑运算符及其优先顺序 50
6.2.2 逻辑表达式 51
6.3 if语句 52
6.3.1 if语句三种形式 52
6.3.2 if语句的嵌套 54
6.3.3 条件运算符(?:) 57
6.4 switch语句 58
6.5 程序举例 60
习题6 62
第7章 循环结构程序设计 64
7.1 while语句 64
7.2 do-while语句 66
7.3 for语句 67
7.4 语句标号和goto语句 71
7.4.1 语句标号 71
7.4.2 goto语句(无条件转移语句) 71
7.5 循环的嵌套 72
7.6 几种循环的比较 73
7.6.1 循环结构的基本组成部分 73
7.6.2 几种循环的比较 73
7.7 break和continue语句 75
7.7.1 break语句 75
7.7.2 continue语句 76
7.8 应用举例 77
习题7 79
第8章 数组 81
8.1 一维数组 81
8.1.1 一维数组的定义 81
8.1.2 一维数组的初始化 82
8.1.3 数组元素的引用 82
8.1.4 一维数组的应用 83
8.2 二维数组 86
8.2.1 二维数组的定义 86
8.2.2 二维数组的初始化 87
8.2.3 二维数组元素的引用 87
8.2.4 二维数组应用举例 87
8.2.5 多维数组 89
8.3 字符数组 89
8.3.1 字符数组的定义、初始化及引用 89
8.3.2 字符串与字符数组 90
8.3.3 字符串(字符数组)处理函数 92
8.3.4 字符数组应用举例 94
习题8 96
第9章 函数 98
9.1 函数概述 98
9.2 函数定义的一般形式 99
9.3 函数的参数和返回值 101
9.3.1 形式参数与实际参数 101
9.3.2 函数的返回值 102
9.4 函数的调用 102
9.4.1 函数调用的一般方法 102
9.4.2 函数的声明 103
9.5 函数的嵌套调用和递归调用 104
9.5.1 函数的嵌套调用 104
9.5.2 函数的递归调用 106
9.6 数组作为函数参数 107
9.6.1 数组元素作为函数参数 107
9.6.2 数组名作为函数的形参和实参 108
9.7 变量的作用域 110
9.7.1 局部变量 110
9.7.2 全局变量 111
9.8 变量的存储类别(生存期) 113
9.8.1 动态存储方式 113
9.8.2 静态存储方式 114
9.9 内部函数和外部函数 116
9.9.1 内部函数 116
9.9.2 外部函数 116
9.10 多个源程序文件的编译和连接 117
习题9 118
第10章 编译预处理 119
10.1 宏定义 119
10.1.1 不带参数宏定义(简单替换) 119
10.1.2 带参数宏定义 120
10.2 文件包含 122
10.3 条件编译 123
10.3.1 #ifdef~#endif和#ifndef~#endif命令 123
10.3.2 #if~#endif 123
习题10 124
第11章 指针 126
1.1 变量的地址和指针变量 126
11.1.1 指针、指针变量概念及变量的存取方式 126
11.1.2 指针变量的定义 128
11.1.3 指针变量的赋值 128
11.1.4 指针变量的引用 128
11.1.5 指针变量作为函数的参数 130
11.2 数组的指针和指向数组的指针变量 132
11.2.1 指向数组的指针变量(指向数组元素的指针变量) 132
11.2.2 数组名作为函数参数 134
11.2.3 指向多维数组的指针和指针变量 136
11.3 字符串的指针和指向字符串的指针变量 140
11.3.1 字符串的表示形式 140
11.3.2 字符串指针作为函数参数 141
11.3.3 字符数组和字符指针的区别 142
11.4 指向函数的指针变量 143
11.4.1 函数的指针 使用函数指针调用函数 143
11.4.2 用指向函数的指针作为函数的参数 145
11.5 返回指针值的函数 146
11.6 指针数组与指向指针的指针 148
11.6.1 指针数组 148
11.6.2 指针的指针 149
11.6.3 指针数组作为main函数的参数 150
11.7 指针运算举例 151
习题11 154
第12章 结构体、联合体、枚举、位运算 155
12.1 结构体类型 155
12.1.1 结构体类型和结构体变量 155
12.1.2 结构体变量的引用 157
12.1.3 结构体变量的初始化 158
12.2 结构体数组 159
12.2.1 结构体数组的定义 159
12.2.2 结构体数组的初始化 159
12.3 结构体指针变量 160
12.3.1 结构体指针变量 160
12.3.2 结构体变量、结构体指针变量作函数参数 161
12.4 联合体(共同体) 163
12.4.1 联合体类型、联合体类型变量的定义 163
12.4.2 联合体变量的引用 163
12.5 枚举类型 166
12.6 用typedef定义类型 167
12.7 位运算 168
习题12 170
第13章 文件 172
13.1 文件概述 172
13.2 文件类型指针 173
13.3 文件的打开与关闭 173
13.3.1 文件的打开(fopen函数) 173
13.3.2 文件的关闭(fclose函数) 175
13.4 文件的读写 175
13.4.1 字符读写函数 175
13.4.2 字符串读写函数 178
13.4.3 格式化读写函数 179
13.4.4 数据块读写函数(一般用于二进制文件读写) 179
13.5 文件的定位 180
13.5.1 rewind(重返文件头函数) 181
13.5.2 fseek(位置指针移动函数) 181
13.5.3 ftell(获取当前位置指针函数) 182
13.6 出错的检测 182
习题13 183
实验部分 184
实验1 Turbo C集成开发环境和C程序实现 184
实验2 基本数据类型的使用 187
实验3 运算符与表达式 190
实验4 顺序结构程序设计 193
实验5 选择结构程序设计 195
实验6 循环结构程序设计 198
实验7 多重循环结构程序设计 201
实验8 一维数组与二维数组 203
实验9 字符数组与字符串 206
实验10 函数的定义、声明和调用 209
实验11 多文件程序的实现 213
实验12 编译预处理 216
实验13 指针 218
实验14 结构体、位运算 220
实验15 文本文件操作 223
实验16 二进制文件操作 226
附录一 ASCII码表 230
附录二 C运算符的优先次序 231
附录三 程序常见错误分析 232