第1篇 C语言编程基础 2
第1章 走进C语言 2
1.1计算机程序设计语言 2
1.1.1计算机程序设计语言的发展 2
1.1.2 C语言的由来 3
1.1.3 C语言的优势 3
1.2计算机程序设计 4
1.2.1什么是计算机程序设计 5
1.2.2计算机程序设计中的算法 5
1.2.3常见程序设计的3种基本结构 9
1.2.4什么是结构化程序设计方法 11
1.3 C语言程序设计的特点 13
1.3.1 C语言程序设计的第一个实例 13
1.3.2 C语言程序设计的结构特点 14
1.3.3 C语言的标识符及关键字 15
1.4编译、连接C语言程序 17
1.5如何编译、运行C语言程序 19
1.5.1使用Visual C++++ 2010开发C语言程序 19
1.5.2使用Visual C++++ 2010编译C语言程序 22
1.6小结 24
1.7习题 25
第2章 C语言数据及数据运算 26
2.1 C语言中的常量 26
2.1.1定义C语言常量 26
2.1.2什么是符号常量 27
2.2 C语言中的变量 27
2.2.1 C语言变量的定义 27
2.2.2 C语言变量的命名 28
2.2.3 C语言变量赋值 28
2.2.4 C语言变量的作用域 29
2.2.5 C语言变量的extern声明方式 30
2.3 C语言的数据类型 31
2.3.1整型数据 31
2.3.2实型数据 33
2.3.3字符型数据 35
2.4 C语言的运算符及表达式 37
2.4.1什么是运算符和表达式 37
2.4.2赋值相关的运算符及表达式 38
2.4.3算术运算相关的运算符及表达式 39
2.4.4关系运算相关的运算符及表达式 40
2.4.5逻辑运算相关的运算符及表达式 41
2.4.6条件运算相关的运算符及表达式 43
2.4.7逗号运算符及逗号表达式 43
2.4.8 C语言的运算符优先级 44
2.5数据类型转换 44
2.5.1不同数据类型间的隐式转换 45
2.5.2不同数据类型间的显式转换 45
2.6如何输入数据 47
2.6.1一般数据的格式化输入 47
2.6.2字符数据输入 49
2.7如何输出数据 51
2.7.1一般数据的格式化输出 51
2.7.2字符数据的输出 54
2.8数据运算及数据输入、输出程序实例 54
2.9小结 55
2.10本章习题 56
第3章 C语言的变量 57
3.1变量的生存期和作用域 57
3.1.1变量的生存期 57
3.1.2变量的作用域 59
3.2局部变量与全局变量 60
3.2.1局部变量 60
3.2.2全局变量 62
3.2.3变量的屏蔽效果 64
3.3变量的存储与变量的作用域 65
3.3.1变量的存储 65
3.3.2自动型变量 66
3.3.3静态变量 67
3.3.4外部变量 70
3.3.5寄存器变量 71
3.3.6变量存储类型 72
3.4变量使用实例 73
3.5小结 74
3.6本章习题 74
第4章 C语言程序设计的选择结构 76
4.1什么是选择结构 76
4.2 if实现的选择结构 76
4.2.1 if是什么 77
4.2.2 if结构的使用实例 78
4.3 if-else实现的选择结构 79
4.3.1 if-else是什么 79
4.3.2 if-else结构的使用实例 80
4.4多重if实现的选择结构 81
4.4.1什么是多重if 81
4.4.2多重if结构的使用实例 82
4.5 if嵌套实现的选择结构 83
4.5.1什么是if嵌套结构 83
4.5.2 else该和哪个if匹配 84
4.5.3 if嵌套结构的使用实例 84
4.6 switch实现的选择结构设计 85
4.6.1什么是switch 85
4.6.2使用switch应注意什么 87
4.6.3 switch是如何执行的 87
4.6.4 switch结构的使用实例 87
4.7 switch与多重if的异同 90
4.8选择结构程序设计实例 92
4.9小结 95
4.10本章习题 95
第5章 C语言程序设计的循环结构 97
5.1什么是循环结构 97
5.2如何使用while循环 98
5.2.1 while循环的基本语法 98
5.2.2 while循环的使用实例 99
5.3如何使用do-while循环 101
5.3.1 do-while循环的基本语法 101
5.3.2 do-while循环的使用实例 102
5.4如何使用for循环 104
5.4.1 for循环的基本语法 104
5.4.2使用for循环时应该注意什么 105
5.4.3 for循环使用实例 106
5.5实现多重循环的嵌套 108
5.5.1如何实现循环嵌套 108
5.5.2循环嵌套使用实例 109
5.6如何选择循环结构 110
5.7打破循环的跳转语句 112
5.7.1 break跳转语句 112
5.7.2 continue跳转语句 113
5.7.3 goto跳转语句 114
5.8循环结构程序设计实例 115
5.9小结 117
5.10本章习题 118
第6章 简单数据结构——数组 119
6.1什么是数组 119
6.2一维数组及其使用方法 120
6.2.1如何定义一维数组 120
6.2.2如何存储一维数组 120
6.2.3如何初始化一维数组 121
6.2.4如何引用一维数组的元素 121
6.2.5一维数组使用实例 122
6.3二维数组及其使用方法 123
6.3.1如何定义二维数组 123
6.3.2如何存储二维数组 124
6.3.3如何初始化二维数组 124
6.3.4如何引用二维数组的元素 125
6.3.5二维数组使用实例 126
6.4多维数组及其使用方法 127
6.4.1如何定义多维数组 127
6.4.2如何存储多维数组 127
6.4.3如何初始化多维数组 128
6.4.4如何引用多维数组的元素 128
6.5字符数组与字符串 129
6.5.1如何定义字符数组 129
6.5.2如何初始化字符数组 129
6.5.3如何引用字符数组 130
6.5.4如何输入字符串 131
6.5.5如何输出字符串 133
6.5.6字符串处理的库函数 134
6.5.7字符串使用实例 142
6.6数组应用实例 143
6.7小结 146
6.8本章习题 147
第7章 初识C语言函数 148
7.1什么是函数 148
7.2如何定义函数 149
7.2.1无参函数的定义形式 149
7.2.2有参函数的定义形式 150
7.2.3空函数 151
7.3函数的交互接口 151
7.3.1函数的数据出入口——形参和实参 151
7.3.2函数参数使用时应注意什么 152
7.3.3函数的数据出口——返回值 153
7.4调用——访问函数的方法 155
7.4.1如何调用函数 155
7.4.2何时、何处会调用函数 156
7.4.3调用函数时应注意些什么 158
7.4.4函数的声明 158
7.5如何在函数之间传递参数 159
7.5.1用传值方式进行参数传递 160
7.5.2用传地址方式进行参数传递 161
7.6小结 162
7.7本章习题 162
第8章 深入学习C语言函数 164
8.1 C语言的入口函数main() 164
8.1.1如何定义main()函数 164
8.1.2不同返回类型的main()函数 165
8.1.3 main()函数的参数 166
8.2函数的数组类型参数 167
8.2.1数组元素作为函数实参 167
8.2.2数组名作为函数参数 168
8.2.3多维数组作为函数参数 170
8.3函数的嵌套调用 172
8.3.1什么是函数的嵌套调用 172
8.3.2函数嵌套调用实例 172
8.4函数的递归调用 173
8.4.1什么是函数的递归调用 173
8.4.2函数递归调用实例 175
8.5外部函数与内部函数 177
8.5.1什么是外部函数 177
8.5.2什么是内部函数 178
8.6函数调用应用实例 179
8.7小结 182
8.8本章习题 183
第9章 指针 184
9.1为何引入指针 184
9.1.1以直接方式访问内存 184
9.1.2以间接方式访问内存 185
9.2如何定义及引用指针 186
9.2.1什么是指针 186
9.2.2如何定义指针变量 186
9.2.3指针相关的运算符 187
9.2.4指针的引用 187
9.3指针相关的运算 190
9.3.1指针相关的赋值运算 191
9.3.2指针相关的算术运算 192
9.3.3指针相关的关系运算 193
9.4数组与指针 194
9.4.1数组元素的指针 195
9.4.2以指针方式引用数组元素 195
9.4.3数组指针作为函数参数 199
9.4.4指向多维数组的指针变量 202
9.5指针类型数组 205
9.5.1什么是指针数组 205
9.5.2指针数组使用实例 206
9.6指针与字符串 207
9.6.1指向字符的指针 207
9.6.2字符指针使用实例 209
9.6.3函数的字符串指针类型参数 210
9.6.4字符串指针和字符数组的异同 214
9.7函数与指针 216
9.7.1函数指针 216
9.7.2函数指针作为函数的参数 218
9.8指针的指针 219
9.8.1如何定义指针的指针 219
9.8.2如何使用指针的指针 220
9.9指针应用实例 222
9.10小结 224
9.11本章习题 225
第2篇C语言编程进阶 228
第10章 构造数据类型及其应用 228
10.1结构体数据类型 228
10.1.1什么是结构体 228
10.1.2如何定义结构体 229
10.2结构体类型变量 230
10.2.1如何定义结构体变量 230
10.2.2如何引用结构体变量 232
10.2.3如何初始化结构体变量 234
10.3结构体数组 236
10.3.1如何定义结构体数组 236
10.3.2如何初始化结构体数组 238
10.3.3如何引用结构体数组 239
10.4结构体指针 242
10.4.1结构体类型变量的指针 242
10.4.2结构体类型数组指针 243
10.5结构体变量与函数 245
10.5.1结构体变量作为函数参数 245
10.5.2结构体变量作函数的返回值 247
10.6内存的动态存储分配技术 249
10.6.1内存的动态存储分配 249
10.6.2链表 249
10.6.3动态存储分配函数 251
10.6.4创建链表 254
10.6.5查询链表 256
10.6.6链表结点的插入 257
10.6.7链表结点的删除 258
10.7结构体应用实例 260
10.8共用体 264
10.8.1什么是共用体 264
10.8.2如何声明共用体 264
10.8.3如何引用共用体变量成员 266
10.8.4共用体的使用注意事项 268
10.9枚举 269
10.9.1如何定义枚举类型 270
10.9.2如何声明枚举类型变量 270
10.9.3如何引用枚举类型变量 271
10.9.4枚举类型的实用注意事项 272
10.10自定义类型 274
10.11小结 275
10.12本章习题 276
第11章 C语言的最小数据单位——位 278
11.1位运算基础 278
11.1.1位与字节 278
11.1.2原码 279
11.1.3反码 279
11.1.4补码 280
11.2位运算 281
11.2.1按位与运算 281
11.2.2按位或运算 282
11.2.3按位异或运算 283
11.2.4按位取反运算 284
11.2.5左移运算 285
11.2.6右移运算 285
11.3位运算实例 286
11.3.1取一个二进制整数最右端第m位开始的n位 286
11.3.2输出正整数的二进制形式 287
11.4位段 288
11.4.1位段基础知识 288
11.4.2位段的引用 290
11.5小结 291
11.6本章习题 292
第12章 预处理 294
12.1文件包含 294
12.1.1文件包含宏基础 294
12.1.2如何实用文件包含宏 295
12.1.3文件包含宏的使用注意事项 296
12.2宏定义 296
12.2.1定义符号常量 297
12.2.2定义不带参数 297
12.2.3定义带参数的宏 299
12.2.4带参数的宏注意事项 300
12.2.5带参数的宏与函数的区别 301
12.2.6宏定义的使用注意事项 301
12.3条件编译 302
12.3.1 #ifdef形式的条件编译 303
12.3.2 #ifndef形式的条件编译 303
12.3.3 #if形式的条件编译 303
12.4小结 304
12.5本章习题 304
第13章 文件操作 306
13.1文件操作基础 306
13.1.1文件基础知识 306
13.1.2文件指针 308
13.1.3文件处理步骤 309
13.2文件的打开和关闭 309
13.2.1文件的打开 310
13.2.2文件的关闭 311
13.3文件的读写 312
13.3.1字符的输入、输出 312
13.3.2字符串的输入、输出 315
13.3.3格式化数据的输入、输出文件 318
13.3.4数据块的输入、输出文件 320
13.3.5文件状态检查 322
13.4文件定位 324
13.4.1移动位置指针到文件头 324
13.4.2随机移动文件位置指针 325
13.5小结 327
13.6本章习题 327
第3篇 实例篇 330
第14章 教务管理系统 330
14.1教务管理系统主要数据结构设计 330
14.1.1分析数据库中的表 330
14.1.2数据库功能模块划分 331
14.1.3需要的内存文件与头文件 332
14.2程序界面设计 334
14.3各个模块的实现 337
14.3.1学生记录文件建立 337
14.3.2学生成绩记录的录入 339
14.3.3计算本学期课程平均成绩 341
14.3.4成绩排序 342
14.3.5分类统计成绩分布情况 343
14.3.6成绩的输出 346
14.3.7学生记录的保存 347
14.3.8学生的查找操作 348
14.3.9学生记录的追加 350
14.3.10删除数据库中指定的学生记录 352
14.3.11学生数据的修改 354
14.3.12课程信息表的建立 355
14.3.13安排课程的授课顺序 357
14.3.14安排教学计划 359
14.3.15 教务管理系统实现 360
14.4小结 364