第1章C语言概述 1
1.1计算机程序设计语言的发展 1
1.2 C语言的发展及特点 2
1.2.1 C语言的发展 2
1.2.2 C语言的特点 3
1.3简单的C语言程序 3
1.4 C语言程序的开发步骤及调试方法 9
1.4.1 C语言程序的开发步骤 9
1.4.2 C语言程序的上机过程 10
1.4.3 C语言程序的调试方法 14
1.5算法及其描述 16
1.5.1算法的概念 16
1.5.2算法的描述 17
1.6格式化输入/输出函数 19
1.6.1格式化输入函数 19
1.6.2格式化输出函数 20
1.7学生信息管理系统案例简介 22
本章小结 23
习题 23
第2章 数据类型 27
2.1案例中的数据类型与数据类型的分类 27
2.1.1案例中的数据类型 27
2.1.2数据类型的分类 28
2.2整型数据 29
2.2.1整型变量 29
2.2.2整型常量 30
2.3实型数据 30
2.3.1实型变量 30
2.3.2实型常量 31
2.4字符型数据 31
2.4.1字符型变量 31
2.4.2字符型常量 33
2.4.3字符串常量 34
2.5一维数组的基本概念 34
2.6结构体类型 36
2.6.1结构体类型的定义 37
2.6.2结构体变量的定义和引用 37
2.7数据类型转换 40
本章小结 41
习题 42
第3章 分支结构程序设计 45
3.1案例中的分支结构程序设计 45
3.2关系运算符及其表达式 46
3.3逻辑运算符及其表达式 49
3.4 if语句 51
3.4.1单分支条件语句 51
3.4.2双分支条件语句 52
3.4.3多分支条件语句 54
3.4.4 if语句的嵌套 57
3.5 switch语句 60
3.6运算符及其表达式 64
3.6.1算术运算符及其表达式 65
3.6.2赋值运算符及其表达式 66
3.6.3条件运算符及其表达式 67
3.6.4逗号运算符及其表达式 67
3.6.5长度运算符 68
本章小结 68
习题 69
第4章 循环结构程序设计 72
4.1循环结构的引入 72
4.2 while语句 73
4.3 do-while语句 77
4.4 for语句 78
4.5 break语句和continue语句 82
4.5.1 break语句 82
4.5.2 continue语句 84
4.6循环语句的嵌套 84
4.7案例分析与实现 87
4.7.1学生结构体数组的定义和引用 87
4.7.2案例分析与实现 89
本章小结 94
习题 95
第5章 数组 100
5.1一维数组 100
5.1.1一维数组的定义 101
5.1.2一维数组的引用 101
5.1.3一维数组的初始化 102
5.1.4一维数组的应用举例 102
5.2二维数组 104
5.2.1二维数组的定义 104
5.2.2二维数组的引用 104
5.2.3二维数组的初始化 105
5.2.4二维数组的应用举例 106
5.3字符数组 108
5.3.1字符数组的定义 108
5.3.2字符数组的引用 108
5.3.3字符数组的初始化 109
5.3.4字符串输入/输出函数 110
5.3.5字符串处理函数 113
5.4案例分析与实现 114
本章小结 120
习题 120
第6章 函数 125
6.1案例中的自定义函数 125
6.1.1案例中的自定义函数简介 125
6.1.2函数调用过程 127
6.1.3案例中函数之间的调用关系 128
6.2函数的分类、定义与声明 129
6.2.1函数的分类 129
6.2.2函数的定义 129
6.2.3函数的声明 130
6.3函数的调用 131
6.3.1函数调用的一般格式 131
6.3.2参数传递 131
6.3.3函数结果的返回 133
6.4函数的应用举例 134
6.5函数的嵌套调用与递归调用 137
6.5.1函数的嵌套调用 137
6.5.2函数的递归调用 138
6.6数组作为函数参数 143
6.6.1数组元素作为函数实参 143
6.6.2数组名作为函数实参 144
6.7变量的作用域和存储属性 146
6.7.1变量的作用域 146
6.7.2变量的存储属性 150
6.8外部函数与内部函数 154
6.9多文件的编译与连接 155
本章小结 158
习题 159
第7章 指针 164
7.1指针概述 164
7.1.1指针的概念 164
7.1.2指针变量的定义和引用 166
7.1.3指针变量作为函数参数 168
7.2指向一维数组的指针 170
7.2.1指向一维数组的指针变量的定义 170
7.2.2指针变量的算术运算 171
7.2.3指针变量的应用举例 172
7.2.4指向字符串的指针变量 174
7.3指向结构体的指针 177
7.3.1指向结构体变量的指针 177
7.3.2指向结构体数组的指针 179
7.4返回指针的函数 180
7.5动态内存分配 182
7.6指针数组 186
7.7指向二维数组的指针 188
7.7.1二维数组的地址 188
7.7.2指向二维数组的指针 189
7.8指向函数的指针 191
7.9指向指针的指针 193
7.10链表与案例实现 194
7.10.1链表简介 194
7.10.2学生信息链表中结点的定义 195
7.10.3学生信息链表的操作 195
本章小结 203
习题 204
第8章 文件 210
8.1案例中的文件操作 210
8.2文件的基本知识 211
8.2.1文件的概念 211
8.2.2文件的分类 212
8.2.3缓冲文件系统 212
8.3文件的打开与关闭 213
8.3.1文件的打开 213
8.3.2文件的关闭 215
8.4文件的读写操作 215
8.4.1字符读写函数 216
8.4.2字符串读写函数 218
8.4.3格式化文件读写函数 220
8.4.4数据块读写函数 221
8.5文件的随机读写 224
本章小结 228
习题 229
第9章 编译预处理 232
9.1宏定义 232
9.1.1无参数的宏定义 232
9.1.2有参数的宏定义 233
9.2文件包含 236
9.3条件编译 237
本章小结 239
习题 240
第10章 用户定制数据类型 243
10.1共用体类型 243
10.1.1共用体类型的定义 243
10.1.2共用体变量的定义和引用 244
10.2枚举类型 247
10.2.1枚举类型的定义 247
10.2.2枚举变量的定义和引用 248
10.3自定义类型名 249
10.4位段与位运算 252
10.4.1位段 252
10.4.2位运算 255
本章小结 258
习题 258
附录 260
附录A ASCII码表 260
附录B C运算符的优先级与结合性 261
附录C C语言常用库函数 263
附录D学生信息管理系统源代码 267
参考文献 277