第1章 C语言概述 1
1.1 计算机程序设计语言的发展 1
1.2 C语言的发展及特点 2
1.2.1 C语言的发展 2
1.2.2 C语言的特点 3
1.3 简单的C语言程序 4
1.4 C语言程序的开发步骤及上机过程 10
1.4.1 C语言程序的开发步骤 10
1.4.2 C语言程序的上机过程 11
1.5 算法及其描述 15
1.5.1 算法的概念 15
1.5.2 算法的描述 16
1.6 学生信息管理系统案例简介 18
本章小结 20
习题 20
第2章 数据类型 24
2.1 数据类型的分类 24
2.2 整型数据 25
2.2.1 整型变量 25
2.2.2 整型常量 26
2.3 实型数据 27
2.3.1 实型变量 27
2.3.2 实型常量 27
2.4 字符型数据 28
2.4.1 字符型变量 28
2.4.2 字符型常量 29
2.5 数据类型转换 30
2.6 格式化输入/输出函数 32
2.6.1 格式化输入函数 32
2.6.2 格式化输出函数 33
本章小结 34
习题 34
第3章 分支结构程序设计 37
3.1 关系运算符及其表达式 37
3.2 逻辑运算符及其表达式 38
3.3 if语句 40
3.3.1 单分支条件语句 40
3.3.2 双分支条件语句 43
3.3.3 多分支条件语句 45
3.3.4 if语句的嵌套 48
3.4 switch语句 49
3.5 运算符及其表达式 52
3.5.1 算术运算符及其表达式 53
3.5.2 赋值运算符及其表达式 54
3.5.3 条件运算符及其表达式 55
3.5.4 逗号运算符及其表达式 56
3.5.5 运算符的优先级和结合方向 56
3.6 案例分析与实现 57
本章小结 58
习题 58
第4章 循环结构程序设计 63
4.1 for语句 63
4.2 while语句 68
4.3 do-while语句 71
4.4 break语句和continue语句 73
4.4.1 break语句 73
4.4.2 continue语句 75
4.5 循环语句的嵌套 76
4.6 C语言程序的调试方法 78
4.7 案例分析与实现 81
本章小结 82
习题 82
第5章 数组 88
5.1 一维数组 88
5.1.1 一维数组的定义 88
5.1.2 一维数组的引用 89
5.1.3 一维数组的初始化 89
5.1.4 一维数组的应用举例 90
5.2 二维数组 91
5.2.1 二维数组的定义 91
5.2.2 二维数组的引用 92
5.2.3 二维数组的初始化 92
5.2.4 二维数组的应用举例 93
5.3 字符数组 97
5.3.1 字符数组的定义 97
5.3.2 字符数组的引用 97
5.3.3 字符数组的初始化 97
5.3.4 字符串输入/输出函数 99
5.3.5 字符串处理函数 102
5.4 排序算法 103
5.5 案例分析与实现 108
5.5.1 结构体类型 108
5.5.2 学生结构体数组的定义和引用 112
5.5.3 案例中部分功能模块的实现 114
本章小结 117
习题 117
第6章 函数 121
6.1 函数的定义、调用和声明 121
6.1.1 函数的定义 121
6.1.2 函数的调用 122
6.1.3 函数的声明 123
6.1.4 函数的调用过程 124
6.2 函数的应用举例 125
6.3 函数的递归调用 129
6.4 数组作为函数参数 133
6.4.1 数组元素作为函数实参 133
6.4.2 数组名作为函数实参 134
6.5 变量的作用域 136
6.5.1 局部变量 137
6.5.2 全局变量 138
6.6 变量的生存期 141
6.7 外部函数与内部函数 144
6.8 案例分析与实现 145
6.8.1 案例中的自定义函数简介 145
6.8.2 案例中函数之间的调用关系 145
6.8.3 案例中部分功能模块的实现 146
6.8.4 多文件的编译与连接 149
本章小结 152
习题 153
第7章 指针 159
7.1 指针概述 159
7.1.1 指针的概念 159
7.1.2 指针变量的定义和引用 160
7.1.3 指针变量作为函数参数 163
7.2 指向一维数组的指针 165
7.2.1 指向一维数组的指针变量的定义 166
7.2.2 指针变量的算术运算 167
7.2.3 指针变量的应用举例 168
7.2.4 指向字符串的指针 170
7.3 指向结构体的指针 173
7.3.1 指向结构体变量的指针 173
7.3.2 指向结构体数组的指针 175
7.4 返回指针的函数 176
7.5 动态内存分配 178
7.6 指针数组 181
7.7 指向二维数组的指针 184
7.7.1 二维数组的地址 184
7.7.2 指向二维数组的指针 185
7.8 指向函数的指针 187
7.9 指向指针的指针 190
7.10 案例分析与实现 191
7.10.1 链表简介 191
7.10.2 学生信息链表中结点的定义 192
7.10.3 学生信息链表的操作 192
本章小结 200
习题 200
第8章 文件 206
8.1 文件的基本知识 206
8.1.1 文件的概念 206
8.1.2 文件的分类 206
8.1.3 缓冲文件系统 207
8.2 文件的打开与关闭 208
8.2.1 文件的打开 208
8.2.2 文件的关闭 210
8.3 文件的读写操作 210
8.3.1 字符读写函数 211
8.3.2 字符串读写函数 213
8.3.3 格式化文件读写函数 215
8.3.4 数据块读写函数 216
8.4 文件的随机读写 218
8.5 案例分析与实现 221
本章小结 224
习题 225
第9章 编译预处理 229
9.1 宏定义 229
9.1.1 无参数的宏定义 229
9.1.2 有参数的宏定义 231
9.2 文件包含与案例分析 233
9.2.1 文件包含 233
9.2.2 案例分析 234
9.3 条件编译 235
本章小结 238
习题 238
第10章 用户定制数据类型 242
10.1 共用体类型 242
10.1.1 共用体类型的定义 242
10.1.2 共用体变量的定义和引用 243
10.2 枚举类型 245
10.2.1 枚举类型的定义 245
10.2.2 枚举变量的定义和引用 245
10.3 自定义类型名 247
10.4 位段与位运算 250
10.4.1 位段 250
10.4.2 位运算 252
本章小结 255
习题 256
附录A ASCII码表 258
附录B C运算符的优先级与结合性 260
附录C C语言常用库函数 262
附录D 学生信息管理系统源代码 266
参考文献 276