目 录
第1章基础知识1
1.1为什么要学习程序设计1
1.2C语言简介5
1.3相关的软件知识9
1.3.1二进制9
1.3.2源程序到可执行程序11
1.3.3预处理命令11
1.3.4输入输出12
1.4相关的硬件知识14
1.4.1计算机的硬件体系结构14
1.4.2内存的结构原理15
1.5小结17
1.6补充阅读材料17
1.6.1带参数的宏17
1.6.2主函数的参数18
习题119
第2章数据类型20
2.1数据类型的概念20
2.2常量与变量21
2.2.1常量22
2.2.2变量23
2.2.3标识符的命名规则24
2.2.4标识符命名的建议规范24
2.3整型数据24
2.3.1无符号整型数据25
2.3.2有符号整型数据25
2.4实型数据27
2.4.1实型常量27
2.4.2实型变量27
2.5字符型数据28
2.6字符串常量29
2.7小结29
2.8补充阅读材料29
2.8.1实型数据的存储格式29
2.8.2不同类型数据的混合运算30
习题233
第3章运算符及表达式35
3.1基本概念35
3.1.1运算符分类36
3.1.2运算符与数据类型36
3.1.3运算符的优先级与结合性37
3.2算术运算符37
3.3赋值运算符38
3.4关系运算符40
3.5逻辑运算符41
3.6位运算符42
3.6.1位逻辑运算符42
3.6.2移位运算符43
3.6.3位运算的应用43
3.7运算符的优先级44
3.8小结45
3.9补充阅读材料45
3.9.1表达式结果的数据类型45
3.9.2前置++和后置++的优先级46
习题347
第4章程序的选择结构49
4.1双分支选择结构50
4.2单分支选择结构54
4.3选择结构语句的嵌套56
4.4多分支选择结构58
4.4.1级联式else if语句58
4.4.2switch语句60
4.5小结64
习题465
第5章程序的循环结构66
5.1程序的循环控制66
5.2while循环语句69
5.3dowhile语句73
5.4for语句75
5.5循环结构的嵌套(多重循环)80
5.6特殊的流程控制语句83
5.6.1break语句84
5.6.2continue语句84
5.6.3goto语句86
5.6.4exit()函数87
5.7小结87
5.8补充阅读材料87
5.8.1穷举算法88
5.8.2迭代算法89
习题591
第6章函数94
6.1函数的主要格式95
6.1.1函数的定义96
6.1.2函数的声明98
6.1.3函数的调用99
6.2如何建立函数101
6.2.1建立函数的基本方法101
6.2.2函数封装与程序的鲁棒性103
6.3递归函数110
6.4变量的作用域与存储类型116
6.4.1局部变量与全局变量116
6.4.2变量的存储类型118
6.5模块化程序设计120
6.6小结122
6.7补充阅读材料123
6.7.1模块间数据传递的数据类型123
6.7.2调用函数的执行过程124
习题6125
第7章数组130
7.1数组的定义与初始化131
7.1.1数组的定义131
7.1.2数组的初始化132
7.2数组的引用133
7.3数组作函数参数136
7.4排序问题141
7.4.1交换排序法141
7.4.2选择排序法142
7.4.3冒泡排序法143
7.5查找问题147
7.5.1顺序查找147
7.5.2折半查找148
7.6字符数组151
7.7小结154
7.8补充阅读材料155
7.8.1C99版本起对可变长度数组的支持155
7.8.2可变长度数组的优缺点155
习题7156
第8章指针160
8.1指针概述161
8.1.1指针与地址161
8.1.2指针变量的定义与指针运算符162
8.1.3指针作函数参数165
8.2指针与一维数组168
8.2.1指向一维数组元素的指针168
8.2.2数组名和指针作函数参数170
8.3指针与字符串172
8.4小结173
8.5补充阅读材料174
8.5.1复杂数据类型的指针174
8.5.2指针数组181
8.5.3函数的返回值为指针182
8.5.4动态内存管理184
习题8186
第9章字符串191
9.1字符串常量191
9.2字符串处理函数192
9.3字符串与字符数组196
9.4与字符处理相关的其他库函数196
9.5小结197
习题9198
第10章构造数据类型199
10.1结构体类型199
10.1.1结构体类型的声明199
10.1.2结构体变量的定义200
10.1.3结构体变量成员的引用201
10.2共用体类型203
10.3枚举类型204
10.4小结207
10.5补充阅读材料208
10.5.1创建链表208
10.5.2链表的基本操作209
习题10212
第11章文件的操作213
11.1文件类型及打开方式213
11.2读文件214
11.3写文件215
11.4小结221
习题11221
第12章综合应用222
12.1典型程序示例222
12.2程序设计实例233
12.3单片机程序实例238
12.4小结240
习题12240
附录AASCII码表241
附录BC语言的关键字244附录CC语言运算符的优先级和结合性245附录DC语言的常用库函数247附录EC语言语法概要252第1章C语言和结构化程序设计1
1.1C语言的产生过程及特点1
1.1.1C语言的产生过程1
1.1.2C语言的特点2
1.2C语言程序的结构、书写格式和简单的C语言程序3
1.2.1C语言程序的结构3
1.2.2C语言程序的书写格式4
1.2.3简单的C语言程序4
1.3C语言程序的开发过程及开发环境6
1.3.1C语言程序的开发过程6
1.3.2Turbo C集成开发环境及其使用7
1.3.3Dev C++集成开发环境及其使用10
1.3.4Visual C++开发环境及其使用13
1.4算法和结构化程序设计18
1.4.1算法18
1.4.2结构化程序设计21
1.4.3简单程序的设计21
习题123
第2章数据类型、运算符与表达式24
2.1C语言的数据类型25
2.2常量、变量27
2.2.1常量27
2.2.2变量30
2.2.3变量赋初值31
2.3C语言的运算符和表达式31
2.3.1算术运算符和算术表达式32
2.3.2赋值运算符和赋值表达式34
2.3.3复合的赋值表达式35
2.3.4逗号运算符和逗号表达式35
2.4不同类型数据之间的转换36
2.4.1自动类型转换36
2.4.2强制类型转换38
习题239
第3章顺序结构程序设计41
3.1顺序结构的程序特点42
3.2赋值语句42
3.3数据输入输出43
3.3.1格式输出函数——printf函数43
3.3.2格式输入函数——scanf函数48
3.3.3字符输出函数——putchar函数52
3.3.4字符输入函数——getchar函数53
3.4C语句概述54
3.4.1复合语句54
3.4.2空语句54
3.4.3表达式语句55
3.4.4控制语句55
3.4.5函数调用语句55
3.5应用举例56
习题358
第4章选择结构程序设计60
4.1关系运算符和关系表达式60
4.1.1关系运算符及其优先顺序60
4.1.2关系表达式61
4.2逻辑运算符和逻辑表达式62
4.2.1逻辑运算符及其优先顺序62
4.2.2逻辑表达式63
4.3if语句63
4.3.1if语句与单分支结构63
4.3.2if…else语句与双分支结构64
4.3.3else…if语句与多分支结构65
4.3.4if…else语句的嵌套与分支的嵌套结构67
4.4条件表达式构成的选择结构69
4.4.1条件运算符69
4.4.2条件表达式与双分支结构69
4.5switch语句70
4.5.1break语句70
4.5.2switch语句与多分支结构71
4.6goto语句和标号74
4.7应用举例75
习题479
第5章循环结构程序设计82
5.1while语句与用while语句构成的循环结构83
5.1.1while语句83
5.1.2while构成的循环结构83
5.2do…while语句与用do…while语句构成的循环结构85
5.2.1do…while语句85
5.2.2do…while构成的循环结构85
5.3for语句与用for语句构成的循环结构87
5.3.1for语句87
5.3.2for语句构成的循环结构87
5.4三种循环的比较和嵌套90
5.4.1三种循环的比较90
5.4.2三种循环的嵌套90
5.5循环结构中的break语句和continue语句92
5.5.1循环结构中的break语句92
5.5.2continue语句94
5.6应用举例95
习题5101
第6章数组与字符串105
6.1一维数组105
6.1.1一维数组的定义105
6.1.2一维数组的初始化106
6.1.3一维数组的引用107
6.1.4一维数组应用举例107
6.2二维数组113
6.2.1二维数组的定义113
6.2.2二维数组的初始化114
6.2.3二维数组的引用114
6.2.4二维数组应用举例115
6.3多维数组117
6.4字符数组和字符串119
6.4.1字符数组的定义119
6.4.2字符数组的赋值——字符串的存储方法120
6.4.3字符串的输入121
6.4.4字符串的输出122
6.4.5字符串运算函数123
6.4.6二维字符数组125
6.4.7字符数组和字符串应用举例126
习题6128
第7章函数131
7.1概述131
7.2函数的定义132
7.2.1有参函数定义的一般格式132
7.2.2无参函数定义的一般格式133
7.2.3空函数133
7.3函数的返回值133
7.3.1return语句133
7.3.2函数的返回值134
7.4函数的调用136
7.4.1函数的调用格式136
7.4.2函数调用时的语法要求137
7.4.3调用函数和被调函数之间的数据传递137
7.5函数的声明138
7.6函数的嵌套调用140
7.7函数的递归调用140
7.8库函数的调用142
7.9数组作函数参数147
7.9.1数组元素作函数实参147
7.9.2数组名作函数参数148
7.10应用举例149
习题7151
第8章对函数的进一步讨论154
8.1局部变量和全局变量154
8.1.1局部变量154
8.1.2全局变量155
8.2变量的存储属性156
8.2.1变量的存储类型156
8.2.2局部变量使用的存储类型157
8.2.3全局变量使用的存储类型160
8.3函数的存储属性164
8.3.1内部函数164
8.3.2外部函数165
8.4编译预处理165
8.4.1宏定义165
8.4.2文件包含168
8.4.3条件编译170
习题8172
第9章指针174
9.1地址、指针的概念和指针变量174
9.1.1地址与指针174
9.1.2指针运算符&和175
9.1.3指针变量的定义175
9.1.4指针变量的赋值176
9.1.5指针变量的使用176
9.1.6指针运算178
9.2指针与函数179
9.2.1指针作函数参数179
9.2.2指向函数的指针180
9.2.3返回指针的函数(函数的返回值是指针)182
9.3指针与数组184
9.3.1指针与一维数组184
9.3.2指针与二维数组190
9.3.3指针数组193
9.4指针与字符串195
9.5指向指针的指针196
9.6main函数的参数197
9.7指针与内存的动态存储分配198
9.7.1内存动态存储分配函数198
9.7.2内存动态存储分配函数的应用200
习题9201
第10章用户自己定义的数据类型205
10.1结构体和结构体变量205
10.1.1结构体类型的定义205
10.1.2结构体变量的定义206
10.1.3结构体变量的初始化208
10.1.4结构体变量的引用208
10.1.5结构体变量应用举例209
10.2结构体数组210
10.2.1结构体数组的定义210
10.2.2结构体数组的初始化211
10.2.3结构体数组的引用212
10.2.4结构体数组应用举例212
10.3结构体指针213
10.3.1指向一个结构体变量的指针213
10.3.2指向一个结构体数组的指针215
10.4结构体与函数216
10.4.1结构体的成员作函数参数216
10.4.2结构体变量作函数参数217
10.4.3指向结构体的指针作函数参数218
10.4.4结构体数组作函数参数219
10.4.5函数的返回值是结构体类型222
10.4.6函数的返回值是指向结构体变量或结构体数组元素的指针226
10.5链表228
10.5.1用指针和结构体构成链表229
10.5.2链表的基本操作230
10.6共用体233
10.6.1共用体类型的定义233
10.6.2共用体变量的定义233
10.6.3共用体变量的引用234
10.6.4共用体应用举例235
10.7枚举237
10.7.1枚举类型的定义237
10.7.2枚举变量的定义238
10.7.3枚举变量的引用238
10.7.4枚举应用举例239
10.8用typedef定义新类型名240
习题10241
第11章位运算243
11.1位运算简介243
11.1.1位逻辑运算符243
11.1.2移位运算符245
11.2位赋值运算符246
11.3位段247
11.4应用举例249
习题11251
第12章文件的读写操作253
12.1C文件的概念253
12.2文件的打开和关闭254
12.2.1文件类型指针254
12.2.2fopen函数255
12.2.3fclose函数256
12.3文件的读/写256
12.3.1fgetc和fputc(putc和getc)函数256
12.3.2fread函数和fwrite函数258
12.3.3fscanf函数和fprintf函数261
12.3.4fgets函数和fputs函数262
12.4文件的定位及出错检测264
12.4.1顺序存取和随机存取264
12.4.2rewind函数264
12.4.3fseek函数264
12.4.4ftell函数265
12.4.5出错检测函数265
习题12267
第13章上机实验与指导269
上机实验1C程序的运行环境和运行C程序的方法269
上机实验2数据类型、运算符与表达式270
上机实验3顺序结构程序设计271
上机实验4顺序结构程序设计(续)273
上机实验5选择结构程序设计274
上机实验6选择结构程序设计(续)276
上机实验7循环结构程序设计277
上机实验8循环结构程序设计(续)278
上机实验9选择、循环结构程序设计278
上机实验10一维数组280
上机实验11二维数组280
上机实验12字符数组和字符串282
上机实验13函数(一)283
上机实验14函数(二)284
上机实验15函数(三)285
上机实验16指针(一)286
上机实验17指针(二)287
上机实验18指针(三)288
上机实验19结构体与链表289
上机实验20共用体与枚举289
上机实验21位操作290
上机实验22文件290
第14章总结292
14.1数据的类型及表示形式292
14.1.1数据的类型292
14.1.2数据的表示形式292
14.2运算符与表达式293
14.3算法294
14.4三种基本结构294
14.5用函数实现模块化程序设计294
14.6用文件实现数据的输入输出295
附录AASCII字符编码一览表296
附录BC语言的关键字及其用途297
附录CC语言运算符的优先级别和结合方向299
附录DC语言库函数301
参考文献307
