第1篇 前置知识 2
第1章 C语言初步认识 2
1.1了解程序及其设计 2
1.1.1程序是什么 2
1.1.2程序设计与程序设计语言 3
1.2结构化程序设计 3
1.3 C语言的初步知识 4
1.3.1 C语言的历史 4
1.3.2 C语言程序的特点 5
1.3.3 C语言程序的构成 6
1.3.4 C语言程序的开发过程 7
1.4程序生成的工具 7
1.4.1编译器的概念 8
1.4.2连接器的概念 8
1.5一个简单的C语言程序 8
1.5.1学习写第一个C语言程序 9
1.5.2分析C语言程序的组成部分 9
1.5.3运行这个程序 10
1.5.4牛刀小试 10
1.6本章小结 11
第2篇 基础知识 14
第2章 C语言基础 14
2.1了解电脑内存的运行方式 14
2.2认识和使用标识符 15
2.2.1标识符的命名规则 15
2.2.2标识符的分类 16
2.3什么是变量 17
2.3.1了解变量 17
2.3.2声明变量 17
2.3.3初始化变量 18
2.4什么是常量 19
2.4.1认识常量 19
2.4.2整型常量 19
2.4.3浮点型常量 20
2.4.4字符常量 21
2.4.5字符串常量 21
2.4.6符号常量 22
2.5数据存储的基本类型 23
2.5.1存储整型数据 23
2.5.2存储实型数据 26
2.5.3存储字符型数据 27
2.6运算符和表达式 30
2.6.1在C语句中使用算术运算符 30
2.6.2赋值运算符 32
2.6.3自增、自减运算符 34
2.6.4逗号运算符 35
2.6.5 sizeof运算符 36
2.6.6关系运算符 37
2.6.7运算符的优先级和括号 39
2.7数据类型的转换 41
2.7.1隐式自动转换 41
2.7.2显式强制转换 45
2.8本章小结 45
2.9本章习题 46
第3章 使用顺序结构设计C语言程序 47
3.1语句与表达式 47
3.1.1表达式语句与空语句 47
3.1.2复合语句 48
3.2控制屏幕打印 48
3.2.1 putchar()函数 48
3.2.2 printf()函数 49
3.2.3标准错误流 51
3.3读取键盘输入 51
3.3.1 getchar()函数 51
3.3.2 getch()函数和getche()函数 52
3.3.3 scanf()函数 53
3.4综合示例 56
3.5本章小结 57
3.6本章习题 57
第4章 使用选择结构设计C语言程序 59
4.1用逻辑运算符实现选择结构 59
4.1.1逻辑运算符的使用 59
4.1.2逻辑运算符的优先级与结合性 60
4.1.3使用逻辑运算符的程序示例 61
4.2用if语句实现选择结构 62
4.2.1 if语句的使用方法 62
4.2.2使用if语句的程序示例 63
4.2.3使用if…else结构实现多项选择 63
4.2.4使用if…else结构的程序示例 64
4.2.5 if语句的嵌套使用 66
4.2.6使用if语句嵌套的程序示例 69
4.3用条件运算符实现简单的选择结构 72
4.4用多分支条件选择语句switch实现选择结构 73
4.4.1 switch语句的结构 74
4.4.2 break语句在switch语句中的使用 74
4.4.3多个执行结果共用一个条件 77
4.4.4使用switch语句的程序示例 78
4.5本章小结 79
4.6本章习题 79
第5章 使用循环结构设计C语言程序 81
5.1 while循环语句 81
5.1.1 while循环语句的结构和功能 81
5.1.2 while循环语句的程序示例 82
5.2 do-while循环语句 84
5.2.1比较do-while循环语句与while循环语句的差异 84
5.2.2 do-while循环语句的程序示例 85
5.3 for循环语句 86
5.3.1 for循环语句的结构和功能 86
5.3.2 for循环语句的程序示例 87
5.3.3 for循环语句的几种不同格式 88
5.3.4在for循环语句中添加逗号运算符 90
5.4高级流程控制语句 91
5.4.1用goto语句在程序中任意跳转 92
5.4.2用break语句中断循环 93
5.4.3用continue语句跳出当前循环 94
5.5各种循环语句的嵌套使用 96
5.6本章小结 99
5.7本章习题 99
第3篇 能力提高篇 102
第6章 用函数把程序分块 102
6.1函数的概念 102
6.1.1什么是函数 102
6.1.2函数的优点 102
6.1.3 main函数的概念及用途 103
6.2函数的定义 103
6.2.1定义一个无参函数 103
6.2.2定义一个有参函数 1
6.2.3函数的参数 106
6.2.4函数的返回值 107
6.2.5空函数 109
6.3函数的调用原理和声明 109
6.3.1函数的声明 109
6.3.2函数调用表达式 111
6.3.3函数调用的方式 111
6.3.4嵌套调用 112
6.4递归函数 113
6.5变量的作用域和存储类别 117
6.5.1什么是变量的作用域 117
6.5.2块结构 117
6.5.3局部变量和局部变量的作用域 118
6.5.4全局变量和全局变量的作用域 118
6.5.5变量的存储类别 119
6.5.6静态型变量存储 120
6.5.7自动型变量存储 122
6.6内部函数与外部函数 123
6.6.1内部函数 124
6.6.2外部函数 125
6.7本章小结 127
6.8本章习题 127
第7章 数组 129
7.1数组的概念及内存占用 129
7.1.1数组的概念 129
7.1.2数组在内存中的存储 129
7.2一维数组 130
7.2.1一维数组的定义 131
7.2.2一维数组的初始化 131
7.2.3一维数组元素的引用 132
7.2.4一维数组的应用 133
7.3二维数组 134
7.3.1二维数组的定义 134
7.3.2二维数组的初始化 136
7.3.3二维数组元素的引用 137
7.3.4二维数组的应用 137
7.4字符数组 139
7.4.1字符数组的定义 139
7.4.2字符串与字符数组 139
7.4.3字符数组的初始化 139
7.4.4字符数组的输入和输出 140
7.4.5使用scanf()函数接收字符串 141
7.4.6字符数组的应用 142
7.5字符数组元素作为函数参数 143
7.6综合示例 144
7.7本章小结 147
7.8本章习题 147
第8章 字符串 149
8.1字符串的长度 149
8.2字符串拷贝函数 150
8.2.1 strcpy()函数 150
8.2.2 strncpy()函数 151
8.3字符串连接函数 152
8.3.1 strcat()函数 152
8.3.2 strncat()函数 152
8.4字符串比较函数 153
8.4.1 Strcmp()函数两个完整的字符串之间的比较 153
8.4.2 Strncmp()函数 154
8.4.3 Strcmpi()函数 155
8.5字符串查找函数 157
8.5.1 strchr()函数 157
8.5.2 strrchr()函数 158
8.5.3 strcspn()函数 158
8.5.4 strspn()函数 158
8.5.5 strpbrk()函数 159
8.5.6 strstr()函数 160
8.6其他的字符串处理函数 161
8.6.1 strrev()函数 162
8.6.2 strset()函数和stmset()函数 162
8.7字符检查函数 163
8.7.1 isdigit()函数 163
8.7.2 isalpha()函数 164
8.7.3检查函数的使用 164
8.8将字符串转换成数字 165
8.9本章小结 166
8.10本章习题 166
第9章 指针 167
9.1指针与地址 167
9.1.1变量的地址 167
9.1.2指针概述 168
9.2存放地址的指针变量 168
9.2.1定义指针变量 169
9.2.2用变量的地址初始化指针 170
9.2.3置“空”指针变量 171
9.2.4指针变量的引用 171
9.3指针变量进行算数运算 172
9.3.1指针变量的加减运算 172
9.3.2指针变量的关系运算 175
9.4指针与函数 175
9.4.1指针作为参数 175
9.4.2指针作为返回值 178
9.4.3函数指针 179
9.5数组与指针 181
9.5.1指针数组的定义和引用 181
9.5.2一维数组中元素的指针表示法 182
9.5.3二维数组中元素的指针表示法 183
9.5.4指针与字符串结合使用 184
9.5.5命令行参数 186
9.6指向指针的指针变量 188
9.7本章小结 189
9.8本章习题 189
第10章 结构体、共同体与枚举型 191
10.1结构体的定义与引用 191
10.1.1结构体类型的定义 191
10.1.2结构体类型变量的定义 193
10.1.3结构体类型变量的初始化 195
10.1.4结构体类型变量的引用 196
10.1.5结构体类型的指针 197
10.1.6结构体数组 199
10.1.7在结构体中包含其他结构 202
10.1.8结构体与函数的关系 205
10.2共用体的定义与引用 207
10.2.1共用体类型的定义 207
10.2.2共用体类型变量的定义 208
10.2.3共用体类型变量的引用 209
10.2.4共用体类型数据的特点 211
10.3用typedef定义一个引用变量 211
10.4枚举型数据类型 212
10.4.1枚举型的定义 212
10.4.2枚举变量的定义与赋值 213
10.5综合示例 215
10.6本章小结 217
10.7本章习题 217
第11章 预处理命令 219
11.1认识预处理命令 219
11.2包含其他文件的命令 219
11.3宏定义 222
11.3.1不带参数的宏 222
11.3.2带参数的宏 223
11.3.3宏的取消 225
11.3.4使用宏定义的优缺点 226
11.4条件编译 228
11.5头文件的编写 230
11.6本章小结 231
11.7本章习题 232
第12章 C语言的编程规范 233
12.1命名规范 233
12.2格式规范 235
12.3函数规范 236
12.4其他规范 238
第13章 使用代码管理计算机内存 239
13.1分配内存的存储空间 239
13.1.1 malloc()函数 239
13.1.2 calloc()函数 241
13.1.3 realloc()函数 243
13.1.4 malloc()函数和calloc()函数的区别 244
13.1.5 free()函数 245
13.2将数据按位运算 246
13.2.1位运算符 246
13.2.2将数据进行移位运算 247
13.2.3将数据进行按位逻辑运算 249
13.3本章小结 256
13.4本章习题 256
第14章 文件操作 258
14.1打开、关闭和检测文件 258
14.1.1打开文件 258
14.1.2文件检查函数 262
14.1.3读写文件数据 262
14.1.4关闭文件 274
14.2文件定位函数 274
14.2.1 fseek()函数 274
14.2.2 ftell()函数 277
14.2.3 rewind()函数 278
14.3文件管理函数的应用 280
14.3.1删除文件 280
14.3.2重命名文件 281
14.4使用临时文件 282
14.5非缓冲文件系统 284
14.5.1 open()函数 284
14.5.2 close()函数 284
14.5.3 create()函数 284
14.5.4 read()函数 285
14.5.5 write()函数 285
14.5.6 lseek()函数 285
14.6本章小结 286
14.7本章习题 287
第15章 C语言中的库函数 288
15.1处理数学问题的函数 288
15.1.1三角函数 288
15.1.2指数函数和对数函数 291
15.1.3双曲线函数 292
15.1.4其他数学函数 293
15.2处理时间的函数 295
15.2.1 C语言程序中时间的表示 295
15.2.2使用时间函数 295
15.3查找和排序函数 304
15.3.1 bsearch()函数 304
15.3.2 qsort()函数 305
15.3.3程序示例 305
15.4随机数生成函数 309
15.4.1随机数产生的过程 309
15.4.2随机数相关的函数 309
15.5本章小结 312
15.6本章习题 313
第4篇 高级实战篇 316
第16章 简单的数据结构介绍 316
16.1单链表 316
16.1.1单链表的概念 316
16.1.2单链表的创建 317
16.1.3单链表的使用 320
16.2栈 326
16.2.1栈的概念 326
16.2.2栈的基本运算 326
16.2.3链栈 327
16.3队列 329
16.3.1队列的概念 329
16.3.2队列的基本运算 330
16.3.3链队列 330
16.4快速排序函数 333
16.5本章小结 335
16.6本章习题 335
第17章 学生管理系统的开发 336
17.1学生管理系统需求分析 336
17.2学生管理系统界面设计 337
17.3学生管理系统功能设计 338
17.3.1学生管理系统概要设计 339
17.3.2用户登录管理模块的设计 341
17.3.3文件读写模块的设计 342
17.3.4学生信息显示模块的设计 345
17.3.5学生人员增加模块的设计 345
17.3.6学生人员删除模块的设计 346
17.3.7学生信息修改模块的设计 348
17.3.8学生信息查询模块的设计 350
17.3.9主菜单模块的设计 350
17.3.10主函数及错误处理模块的设计 352
17.3.11结构体及宏定义 354
17.4学生管理系统测试用例编写 355
17.5学生管理系统整合测试 360
17.5.1主菜单和界面显示功能测试的演示 360
17.5.2用户登录功能测试的演示 361
17.5.3用户修改密码功能测试的演示 361
17.5.4学生人员增加功能测试的演示 362
17.5.5学生人员删除功能测试的演示 362
17.5.6学生信息查询功能测试的演示 363
17.5.7学生信息修改功能测试的演示 363
17.5.8文件读写功能测试的演示 363
17.6本章小结 364