目    录

第一篇  程序设计基础篇

第1章  程序设计与C语言	3
1.1  程序设计及算法	4
1.1.1  程序及程序设计	4
1.1.2  算法	5
1.2  程序设计语言	9
1.2.1  程序设计语言的发展历程	9
1.2.2  C语言的发展历程	10
1.2.3  C语言的特点	11
1.3  C语言的程序结构	12
1.3.1  C语言程序的基本词汇符号	12
1.3.2  C语言程序的基本结构与
框架	12
1.3.3  简单C程序示例	14
1.4  C语言程序的开发环境	16
1.4.1  C语言程序的开发过程	16
1.4.2  Visual C++集成开发环境
介绍	17
1.4.3  运行Visual C++程序的
步骤与方法	18
1.4.4  Dev-C++集成开发环境介绍	21
1.4.5  运行Dev-C++程序的步骤与
方法	22
1.4.6  有关开发环境的问题	27
本章小结	28
习题1	28
第2章  C语言程序设计基础	31
2.1  数据的表现形式	32
2.1.1  数据的表现形式概述	32
2.1.2  常量	32
2.1.3  变量	35
2.2  C语言的数据类型	37
2.2.1  数据类型概述	37
2.2.2  整型数据	38
2.2.3  实型数据	41
2.2.4  字符型数据	43
2.3  C语言运算符与表达式	45
2.3.1  运算符与表达式概述	45
2.3.2  算术运算符及表达式	46
2.3.3  自增自减运算符及表达式	47
2.3.4  赋值运算符及表达式	49
2.4  数据类型转换	50
2.4.1  自动转换	50
2.4.2  强制转换	50
本章小结	51
习题2	52
第3章  顺序结构程序设计	57
3.1  C语言的基本语句	58
3.2  字符数据的输入输出	59
3.2.1  字符输入函数getchar()	59
3.2.2  字符输出函数putchar()	61
3.3  格式输入输出	62
3.3.1  格式输入函数scanf()	62
3.3.2  格式输出函数printf()	64
3.3.3  格式输入输出函数的应用	67
3.4  顺序结构程序示例	71
本章小结	75
习题3	76
第4章  选择结构程序设计	81
4.1  关系运算符与关系表达式	82
4.1.1  关系运算符	82
4.1.2  判等运算符	82
4.1.3  关系表达式	83
4.2  逻辑运算符与逻辑表达式	83
4.2.1  逻辑运算符	83
4.2.2  逻辑表达式	85
4.3  条件运算符与条件表达式	85
4.4  if语句	86
4.4.1  if语句的三种形式	87
4.4.2  if语句的嵌套	90
4.4.3  “else悬空”问题	92
4.5  switch语句	92
4.6  选择结构程序示例	95
本章小结	99
习题4	100
第5章  循环结构程序设计	105
5.1  为什么需要循环结构	106
5.2  while语句	107
5.2.1  while语句的形式	107
5.2.2  while语句的执行过程	107
5.2.3  while语句的应用	108
5.3  do…while语句	112
  
5.3.1  do…while语句的形式	112
5.3.2  do…while语句的执行过程	112
5.3.3  while和do…while循环的
比较	112
5.3.4  do…while语句的应用	114
5.4  for语句	115
5.4.1  for语句的形式	115
5.4.2  for语句的执行过程	115
5.4.3  for语句的应用	116
5.4.4  for语句的变形	118
5.5  嵌套循环	120
5.6  循环控制和流程的控制转移	123
5.6.1  循环控制	123
5.6.2  流程的控制转移	125
5.7  循环结构程序示例	127
本章小结	130
习题5	131

第二篇  程序设计进阶篇

第6章  同一类型多个元素的
集合——数组	139
6.1  一维数组	140
6.1.1  一维数组的定义	140
6.1.2  一维数组的引用	141
6.1.3  一维数组的初始化	142
6.1.4  一维数组程序示例	142
6.2  二维数组	146
6.2.1  二维数组的定义	146
6.2.2  二维数组的引用	147
6.2.3  二维数组的初始化	149
6.2.4  二维数组程序示例	149
6.3  字符数组与字符串	152
6.3.1  字符数组的定义	152
6.3.2  字符数组的初始化	152
6.3.3  字符数组的引用	153
6.3.4  字符串和字符串结束标志	154
6.3.5  字符数组的输入输出	155
6.3.6  字符串处理函数	155
6.3.7  字符数组程序示例	160
本章小结	162
习题6	163
第7章  模块化程序设计——函数	167
7.1  函数概述	168
7.1.1  为什么需要函数	168
7.1.2  模块化程序设计的思想	169
7.1.3  函数的概念	171
7.1.4  函数的分类	172
7.2  函数定义	174
7.2.1  函数定义的结构	174
7.2.2  定义空函数	174
7.2.3  函数定义的形式	175
7.3  函数调用	176
7.3.1  函数调用概述	176
7.3.2  函数的声明	178
7.3.3  函数调用的形式	179
7.3.4  函数调用时的数据传递	180
7.3.5  函数参数传递的方式	183
7.4  数组作为函数的参数	184
7.4.1  数组元素作函数的参数	184
7.4.2  数组名作函数的参数	185
7.4.3  多维数组名作函数的参数	187
7.5  函数的嵌套调用	188
7.6  函数的递归调用	191
7.6.1  递归及递归调用	191
7.6.2  递归问题的分类及解决方法	193
7.7  变量的作用域与存储方式	198
7.7.1  变量的作用域	199
7.7.2  变量的存储方式	201
本章小结	202
习题7	203
第8章  C语言的精华——指针	207
8.1  指针的概念	208
8.2  指针变量	209
8.2.1  指针变量的定义	209
8.2.2  指针变量的赋值	210
8.2.3  指针变量的引用	211
8.3  指针与数组	214
8.3.1  指针与一维数组	214
8.3.2  指向数组的指针作函数
参数	218
8.3.3  指针与二维数组	221
8.4  指针与字符串	225
8.4.1  字符串的表示形式	225
8.4.2  字符指针作函数参数	228
8.5  指向函数的指针	229
8.5.1  指向函数的指针变量	229
8.5.2  指向函数的指针变量作函数
参数	231
8.6  返回指针的函数	232
8.6.1  返回指针型函数的定义
形式	232
8.6.2  返回指针的函数的应用	232
8.7  指针数组	233
8.7.1  指针数组的概念	233
8.7.2  指针数组作main函数的
形参	234
本章小结	235
习题8	236

第三篇  程序设计高级篇

第9章  用户自己建立数据类型	241
9.1  结构体的概念	242
9.1.1  结构体类型的定义	242
9.1.2  结构体类型变量的定义及
初始化	243
9.1.3  结构体类型变量成员的引用	245
9.2  结构体数组	247
9.2.1  结构体数组的定义	248
9.2.2  结构体数组的初始化	248
9.2.3  结构体数组的使用	249
9.3  指向结构体类型数据的指针	251
9.3.1  指向结构体变量的指针	252
9.3.2  指向结构体数组的指针	254
9.4  共用体	255
9.4.1  共用体类型的定义	256
9.4.2  共用体变量的定义	256
9.4.3  共用体变量的引用	257
9.5  用typedef定义数据类型	259
9.6  用户自己建立数据类型的程序设计
示例	261
9.7  链表	265
9.7.1  链表概述	265
9.7.2  内存管理库函数	266
9.7.3  链表的应用	267
本章小结	269
习题9	270
第10章  编译预处理	273
10.1  宏定义	274
10.1.1  不带参数的宏定义	274
10.1.2  带参数的宏定义	275
10.2  文件包含	277
10.3  条件编译	279
本章小结	282
习题10	283
第11章  文件	287
11.1  文件概述	288
11.1.1  为什么需要文件	288
11.1.2  文件的分类	289
11.1.3  缓冲文件系统	290
11.1.4  文件类型的指针	291
11.2  文件的打开与关闭	291
11.2.1  文件的打开	291
11.2.2  文件的关闭	293
11.3  文件的读写	293
11.3.1  字符读写函数:fgetc和
fputc	293
11.3.2  字符串读写函数:fgets和
fputs	295
11.3.3  数据块读写函数:fread和
fwrite	296
11.3.4  格式化读写函数:fscanf和
fprintf	298
11.4  文件的定位	299
11.5  文件检测函数	301
本章小结	302
习题11	302
第12章  位运算	305
12.1  位运算概述	306
12.2  逻辑位运算	307
12.2.1  按位取反运算	307
12.2.2  按位与、或和异或运算	307
12.3  移位运算	308
12.3.1  按位左移运算	308
12.3.2  按位右移运算	309
12.4  位运算的混合运算	310
12.5  位段	311
本章小结	313
习题12	314
附录一  常用字符与ASCII代码
对照表	317
附录二  C语言中的关键字及含义	318
附录三  C语言运算符的优先级和
结合性	319
附录四  C语言常用的库函数	320
参考文献	324