目录
C语言程序设计第1章引言1
1.1C语言的发展1
1.2C语言的特点2
1.3C程序结构2
1.3.1C程序的基本组成2
1.3.2算法5
1.3.3C程序的三种基本结构6
1.4C程序的实现7
1.4.1C程序的开发步骤7
1.4.2C程序的编辑8
1.4.3C程序的调试12
1.4.4C程序的编译、连接及执行14
1.4.5项目的保存和打开16
1.5常见错误分析16
本章小结18
习题19

第2章数据类型及其运算22
2.1标识符和关键字22
2.1.1标识符22
2.1.2关键字23
2.2常量与变量24
2.2.1常量24
2.2.2变量24
2.3数据类型25
2.3.1整型数据26
2.3.2实型数据28
2.3.3字符型数据31
2.4数据类型的转换32
2.4.1隐式类型转换32
2.4.2强制类型转换33
2.5运算符和表达式34
2.5.1算术运算符和算术表达式35
2.5.2赋值运算符和赋值表达式36
2.5.3自增自减运算符37
2.5.4逗号运算符和逗号表达式39
2.6数据的输入和输出40
2.6.1格式输入函数scanf40
2.6.2格式输出函数printf43
2.6.3字符输入函数getchar()45
2.6.4字符输出函数putchar()45
2.7赋值语句和顺序结构程序设计46
2.7.1赋值语句46
2.7.2顺序结构程序设计47
2.8数学函数48
2.9应用举例51
2.10常见错误分析53
本章小结60
习题61
C语言程序设计目录
第3章选择结构及其应用67
3.1关系运算符和关系表达式67
3.1.1关系运算符67
3.1.2关系表达式68
3.1.3优先级和结合性68
3.2逻辑运算符和逻辑表达式69
3.2.1逻辑运算符69
3.2.2逻辑表达式69
3.2.3优先级和结合性70
3.3if语句71
3.3.1if分支71
3.3.2ifelse分支74
3.3.3嵌套的if语句79
3.4switch语句82
3.5条件运算符和条件表达式88
3.6应用举例88
3.7常见错误分析93
本章小结97
习题97

第4章循环结构及其应用103
4.1while循环语句103
4.2dowhile循环语句108
4.3for循环语句112
4.4三种循环语句的比较118
4.5循环嵌套121
4.6break语句和continue语句129
4.6.1break语句129
4.6.2continue语句133
4.7goto语句和标号135
4.8应用举例137
4.9常见错误分析148
本章小结151
习题151

第5章数组160
5.1一维数组160
5.1.1一维数组的定义和引用160
5.1.2一维数组的初始化166
5.1.3一维数组应用举例167
5.2二维数组172
5.2.1二维数组的定义和引用172
5.2.2二维数组的初始化173
5.2.3二维数组应用举例174
5.3字符数组和字符串177
5.3.1字符数组的定义和初始化178
5.3.2字符串179
5.3.3字符数组的输入和输出181
5.3.4字符串处理函数183
5.3.5字符数组应用举例186
5.4常见错误分析189
本章小结193
习题193

第6章函数198
6.1函数概述198
6.1.1函数的概念198
6.1.2库函数200
6.2用户自定义函数201
6.2.1函数定义的格式201
6.2.2形式参数和实际参数202
6.2.3函数的返回值206
6.3函数的调用207
6.3.1函数调用的一般形式208
6.3.2函数的调用方式208
6.3.3函数调用的过程210
6.3.4函数的原型声明211
6.3.5函数的参数传递212
6.4函数的嵌套调用和递归调用214
6.4.1函数的嵌套调用214
6.4.2函数的递归调用215
6.5数组作为函数的参数220
6.5.1一维数组名作为函数的参数220
6.5.2二维数组名作为函数的参数224
6.6局部变量和全局变量228
6.6.1局部变量228
6.6.2全局变量230
6.7变量的存储类别233
6.7.1局部变量的存储类别234
6.7.2全局变量的存储类别237
6.8内部函数和外部函数238
6.8.1内部函数239
6.8.2外部函数239
6.9应用举例239
6.10常见错误分析244
本章小结247
习题248

第7章预处理命令256
7.1宏定义256
7.1.1不带参数的宏定义257
7.1.2带参数的宏定义259
7.1.3撤销宏定义命令261
7.2文件包含命令262
7.3条件编译命令265
7.4常见错误分析268
本章小结270
习题270

第8章指针275
8.1变量的地址和指针276
8.2指针变量的定义277
8.3指针运算278
8.3.1取地址运算符278
8.3.2指针运算符278
8.3.3赋值运算279
8.3.4空指针与void指针281
8.4指针与函数282
8.4.1指针作为函数参数282
8.4.2指针作为函数的返回值288
8.4.3函数指针289
8.5指针与数组293
8.5.1一维数组的指针表示293
8.5.2二维数组的指针表示301
8.5.3指针与字符串310
8.6指针数组和指向指针的指针313
8.6.1指针数组313
8.6.2指向指针的指针316
8.7应用举例318
8.8常见错误分析321
本章小结323
习题324

第9章结构体与共用体332
9.1结构体332
9.1.1结构体类型的定义333
9.1.2结构体变量的定义334
9.1.3用typedef定义数据类型337
9.1.4结构体变量的引用338
9.1.5结构体变量的初始化339
9.2结构体数组340
9.2.1结构体数组的定义341
9.2.2结构体数组的初始化341
9.2.3结构体数组的引用342
9.3结构体指针变量344
9.3.1指向结构体变量的指针344
9.3.2指向结构体数组的指针345
9.3.3结构体变量和结构体指针变量作为函数参数345
9.4链表348
9.4.1链表的类型及定义349
9.4.2处理动态链表的函数351
9.4.3动态链表的基本操作352
9.4.4栈和队列360
9.5共用体361
9.6枚举类型363
9.7应用举例363
9.8常见错误分析371
本章小结374
习题374

第10章文件382
10.1文件概述382
10.2文件类型指针383
10.3文件的打开、读写和关闭384
10.3.1文件的打开函数fopen( )384
10.3.2文件的关闭函数fclose( )386
10.3.3文件的读写386
10.3.4文件读写函数的选择396
10.4文件的定位396
10.5应用举例400
10.6常见错误分析405
本章小结405
习题406

第11章项目实战: 学生成绩管理系统413
11.1系统设计413
11.1.1需求分析413
11.1.2总体设计414
11.1.3数据结构设计415
11.2功能设计415
11.2.1主控模块415
11.2.2显示学生信息模块420
11.2.3输入学生信息模块422
11.2.4删除学生信息模块426
11.2.5查询学生信息模块428
11.2.6修改学生信息模块431
11.2.7插入学生信息模块433
11.2.8统计学生成绩模块436
11.2.9学生成绩排序模块438
11.2.10保存学生信息模块441
11.3本章小结443

附录A常用字符与ASCII代码对照表444

附录B运算符的优先级和结合性表445

附录CC语言的关键字446

附录D常用标准库函数447

参考文献454