C语言程序设计案例教程

2012年清华大学出版社出版的图书
《C语言程序设计案例教程》是2012年清华大学出版社出版的图书，作者是高国红、付俊辉、曲培新。
内容简介
程序设计的基本思想、方法和解决实际问题的技巧。在体系结构安排上，尽可能将概念、知识点与案例相结合，进行案例教学，并且每一章都精心设计了习题，突出实用性、操作性。全书共分9章，内容包括C语言基础和顺序结构设计、分支结构程序设计、循环结构程序设计、函数、数组、结构体与共用体、指针、编译预处理及位运算、文件。书中所有实例均在Visual C++6.0编译环境下调试通过。本书可作为高等学校各专业C语言程序设计课程的教材，也可以作为等级考试的辅导教材，以及计算机爱好者自学用书和各类工程技术人员的参考书。本书配有电子教案，以方便读者自学。
图书目录
第1章C语言基础和顺序结构程序设计1
1.1程序设计和程序设计语言1
1.1.1程序设计1
1.1.2程序设计语言及发展1
1.1.3C程序的运行过程2
1.2一个简单C程序4
1.2.1程序解析4
1.2.2C语言程序的组成5
1.3求圆的周长6
1.3.1程序解析6
1.3.2关键字和标识符7
1.3.3基本数据类型7
1.3.4常量和变量8
1.4求三位数的各位值11
1.4.1程序解析11
1.4.2算术运算符11
1.4.3算术运算符的优先级和算术表达式13
1.5求表达式的值14
1.5.1程序解析14
1.5.2赋值运算符与赋值表达式14
1.5.3逗号运算符与表达式15
1.6实数的四舍五入求值16
1.6.1程序解析16
1.6.2算术运算中的类型转换16
1.6.3赋值运算中的类型转换17
1.7字母大小写转换18
1.7.1程序解析18
1.7.2顺序结构程序设计19
1.7.3数据的输入与输出20
本章小结28
习题129
第2章分支结构程序设计32
2.1求分段函数32
2.1.1程序解析32
2.1.2关系运算及其表达式33
2.1.3逻辑运算及其表达式34
2.2求两数中的最大值36
2.2.1程序解析36
2.2.2if语句实现分支37
2.3求付费金额38
2.3.1程序解析38
2.3.2二分支结构if…else语句39
2.3.3if…else语句的嵌套40
2.4输出成绩等级46
2.4.1程序解析46
2.4.2用switch语句实现多分支的程序结构47
2.4.3switch语句的执行逻辑与break语句的作用49
2.5输出最大值51
2.5.1程序解析51
2.5.2条件表达式及其分支结构52
2.6分支结构程序设计实例53
本章小结58
习题258第3章循环结构程序设计61
3.1求1~100的累加和61
3.1.1程序解析61
3.1.2while循环语句的机制和要素62
3.1.3while循环流程图64
3.1.4循环条件和循环体的设计64
3.2求Fibonacci数列65
3.2.1程序解析65
3.2.2do…while循环67
3.2.3do…while循环和while循环的比较68
3.3求数列和70
3.3.1程序解析70
3.3.2for语句循环70
3.3.3语句标号及goto语句74
3.3.4三种循环的比较75
3.4求数列s=1+2+…+i直到s大于500075
3.4.1程序解析75
3.4.2break语句76
3.4.3continue语句77
3.5输出n×n个字符''79
3.5.1程序解析79
3.5.2二重及多重循环80
3.6循环结构程序设计实例85
本章小结91
习题391第4章函数92
4.1实现打印功能的函数94
4.1.1程序解析94
4.1.2函数的定义94
4.1.3函数的调用97
4.1.4函数的返回值与函数类型98
4.1.5函数的参数与函数的值100
4.1.6被调用函数声明104
4.2用数组求课程平均成绩104
4.2.1程序解析104
4.2.2数组作为函数参数105
4.3内部函数和外部函数108
4.3.1内部函数108
4.3.2外部函数108
4.4计算s=22!+32!实现嵌套调用109
4.4.1程序解析109
4.4.2函数的嵌套调用110
4.5Hanoi塔问题110
4.5.1程序解析110
4.5.2函数的递归调用112
4.6求立方体的体积113
4.6.1程序解析113
4.6.2变量的作用域114
4.6.3变量的存储方式117
本章小结122
习题4123第5章数组124
5.1求最大值124
5.1.1程序解析124
5.1.2一维数组的定义、元素引用与初值125
5.1.3一维数组的输入与输出127
5.1.4一维数组的常用算法128
5.2将5个字符串从大到小排序131
5.2.1程序解析131
5.2.2字符数组132
5.2.3字符串135
5.2.4字符串操作的库函数和常用算法137
5.3求平均成绩145
5.3.1程序解析145
5.3.2二维数组的定义、元素引用与初值146
5.3.3二维数组的输入与输出149
5.3.4二维数组的应用150
5.4数组程序设计实例152
本章小结159
习题5159
第6章结构体与共用体162
6.1结构体类型定义162
6.1.1认识结构体162
6.1.2结构体类型的定义163
6.2输入并显示学生信息164
6.2.1程序解析164
6.2.2结构体变量的定义与初始化165
6.2.3结构体变量的引用168
6.3对所有客户信息排序168
6.3.1程序解析168
6.3.2结构体数组的定义与初始化170
6.3.3结构体数组元素的引用170
6.4输入并显示学生成绩171
6.4.1程序解析171
6.4.2结构体作为函数参数173
6.4.3返回值为结构体类型的函数174
6.5学校人员的管理174
6.5.1程序解析174
6.5.2共用体类型的定义176
6.5.3共用体变量定义和引用176
6.6枚举类型177
6.7typedef语句179
本章小结181
习题6181第7章指针183
7.1地址和指针的概念183
7.1.1变量的地址183
7.1.2直接访问和间接访问183
7.1.3指针的概念184
7.2交换两个整数184
7.2.1程序解析184
7.2.2指针变量的定义184
7.2.3指针变量的引用186
7.2.4实现引用传递186
7.3数组的输入输出190
7.3.1程序解析190
7.3.2指向数组元素的指针190
7.3.3字符串指针192
7.3.4指针数组193
7.3.5指向数组的指针195
7.4求最大值197
7.4.1程序解析197
7.4.2返回值为指针类型的函数198
7.4.3指向函数的指针和函数参数199
7.4.4数组名作函数参数201
7.5学生成绩统计202
7.5.1程序解析202
7.5.2指向结构体的指针变量203
7.5.3用指向结构体变量的指针做函数参数204
7.6学生信息处理205
7.6.1程序解析205
7.6.2存储空间的分配和释放206
7.6.3链表207
7.7指针程序设计实例213
本章小结214
习题7215第8章编译预处理及位运算218
8.1文件包含处理218
8.2宏定义220
8.2.1不带参数的宏定义（简单替换）221
8.2.2带参数的宏定义224
8.3条件编译227
8.4位运算符和位运算229
8.5位运算应用实例230
本章小结232
习题8232第9章文件235
9.1文件概述235
9.1.1文件的概念235
9.1.2文本文件和二进制文件235
9.1.3缓冲文件系统236
9.1.4文件类型指针236
9.2打印九九乘法表237
9.2.1程序解析237
9.2.2打开文件239
9.2.3关闭文件240
9.3磁盘数据复制241
9.3.1程序解析241
9.3.2字符方式文件读写函数242
9.3.3字符串方式文件读写函数245
9.3.4格式化文件读写函数246
9.3.5数据块读写函数248
9.3.6其他相关函数250
9.4修改学生信息252
9.4.1程序解析252
9.4.2顺序读写和随机读写253
9.5文件应用程序设计实例255
本章小结263
习题9263