第1章C语言概述1
1.1计算机与程序、程序设计语言1
1.2C语言出现的历史背景2
1.3C 语言的特点3
1.4简单的C语言程序4
1.5运行C程序的步骤与方法8
1.5.1运行C程序的步骤8
1.5.2上机运行C程序的方法8
本章小结15
习题16
第2章数据类型、运算符与表达式17
2.1C语言的数据类型17
2.2常量与变量17
2.2.1常量18
2.2.2变量19
2.3整型数据20
2.3.1整型常量的表示形式20
2.3.2整型变量21
2.3.3整型数据在内存中的存放形式22
2.3.4整型数据的溢出23
2.3.5整型常量的类型24
2.4浮点型数据24
2.4.1浮点型常量的表示形式24
2.4.2浮点型变量25
2.4.3浮点型常量的类型26
2.5字符型数据27
2.5.1字符常量27
2.5.2字符变量28
2.5.3字符数据在内存中的存储形式及其使用方法28
2.5.4字符串常量31
2.6各类数值型数据间的混合运算32
2.7算术运算符和算术表达式33
2.7.1C语言运算符和C算术表达式简介33
2.7.2主要的算术运算符和算术表达式34
2.8逗号运算符和逗号表达式36
本章小结38
习题38
第3章最简单的C程序设计——顺序程序设计40
3.1程序的三种基本结构40
3.2C语句概述41
3.3赋值表达式和赋值语句43
3.3.1赋值表达式43
3.3.2赋值过程中的类型转换46
3.3.3赋值语句48
3.3.4变量赋初值48
3.4数据输入输出的概念及在C语言中的实现49
3.5字符数据的输入输出50
3.5.1用putchar函数输出一个字符50
3.5.2用getchar函数输入一个字符51
3.6简单的格式输入与输出52
3.6.1用简单的printf函数输出数据52
3.6.2用简单的scanf函数输入数据55
3.7较复杂的输入输出格式控制58
3.7.1输出数据格式控制58
3.7.2输入数据格式控制63
3.8顺序结构程序设计举例64
本章小结66
习题67
第4章选择结构程序设计69
4.1关于算法69
4.1.1算法的概念69
4.1.2怎样表示算法71
4.2条件判断73
4.2.1关系运算和关系表达式73
4.2.2逻辑运算符和逻辑表达式75
4.3用if语句实现选择结构78
4.3.1if语句的3种形式78
4.3.2if语句的嵌套81
4.3.3条件运算符和条件表达式84
4.4利用switch语句实现多分支选择结构87
4.5程序举例89
本章小结94
习题94
第5章循环结构程序设计96
5.1循环的概念96
5.2用while语句和do…while语句实现循环96
5.2.1用while语句实现循环96
5.2.2用do…while语句实现循环98
5.2.3while和do…while循环的比较99
5.2.4while循环程序举例100
5.3用for 语句实现循环101
5.3.1for语句的一般形式和执行过程101
5.3.2for语句的各种形式102
5.3.3for循环程序举例105
5.4循环的嵌套106
5.5用break语句和continue语句改变循环状态107
5.5.1用break语句提前退出循环107
5.5.2用continue语句提前结束本次循环108
5.6几种循环的比较109
5.7程序举例109
本章小结112
习题113
第6章数组115
6.1数组的概念115
6.2一维数组的定义和引用115
6.2.1定义一维数组115
6.2.2引用一维数组元素116
6.2.3一维数组的初始化117
6.2.4一维数组程序举例117
6.3二维数组的定义和引用120
6.3.1定义二维数组120
6.3.2引用二维数组的元素120
6.3.3二维数组的初始化121
6.3.4二维数组程序举例122
6.4字符数组124
6.4.1定义字符数组124
6.4.2字符数组的初始化125
6.4.3引用字符数组的元素125
6.4.4字符串和字符串结束标志126
6.4.5字符数组的输入输出128
6.4.6字符串处理函数130
6.4.7字符数组应用举例134
本章小结137
习题138
第7章函数调用140
7.1函数概述140
7.2函数定义的一般形式142
7.2.1为什么要定义函数142
7.2.2怎样定义无参函数142
7.2.3怎样定义有参函数143
7.2.4定义空函数143
7.3函数参数和函数的值144
7.3.1形式参数和实际参数144
7.3.2函数的返回值145
7.4函数的调用147
7.4.1函数调用的一般形式147
7.4.2函数调用的方式148
7.4.3对被调用函数的声明和函数原型148
7.5函数的嵌套调用152
7.6函数的递归调用153
7.7数组作为函数参数160
7.7.1数组元素作函数实参160
7.7.2数组名作函数参数161
7.7.3用多维数组名作函数参数165
7.8变量的作用域——局部变量和全局变量166
7.8.1局部变量166
7.8.2全局变量167
7.9变量的存储方式和生存期170
7.9.1局部变量的存储类别171
7.9.2全局变量的存储类别174
7.9.3存储类别小结177
7.10关于变量的声明和定义179
7.11内部函数和外部函数180
7.11.1内部函数180
7.11.2外部函数181
本章小结183
习题184
第8章指针186
8.1地址和指针的概念186
8.2变量的指针和指向变量的指针变量188
8.2.1怎样定义指针变量188
8.2.2怎样引用指针变量190
8.2.3指针变量作为函数参数192
8.3通过指针引用数组197
8.3.1数组元素的指针197
8.3.2指针的运算197
8.3.3通过指针引用数组元素199
8.3.4用数组名作函数参数203
8.3.5通过指针引用多维数组210
8.4通过指针引用字符串218
8.4.1字符串的表示形式218
8.4.2字符指针作函数参数221
8.4.3对使用字符指针变量和字符数组的讨论224
8.5指向函数的指针226
8.5.1什么是函数指针226
8.5.2用函数指针变量调用函数227
8.5.3用指向函数的指针作函数参数230
8.6返回指针值的函数233
8.7指针数组和多重指针235
8.7.1指针数组的概念235
8.7.2指向指针数据的指针238
8.8动态内存分配与指向它的指针变量241
8.8.1什么是内存的动态分配241
8.8.2怎样建立内存的动态分配241
8.8.3void指针类型242
本章小结244
习题246
第9章用户建立的数据类型248
9.1结构体类型和结构体变量248
9.1.1结构体类型248
9.1.2定义结构体类型变量250
9.1.3引用结构体变量251
9.1.4结构体变量的初始化252
9.2结构体数组253
9.2.1定义结构体数组253
9.2.2结构体数组的初始化254
9.2.3结构体数组应用举例255
9.3结构体指针256
9.3.1指向结构体变量的指针变量257
9.3.2指向结构体数组的指针258
9.3.3结构体变量和指向结构体的指针作函数参数260
9.4用指针处理链表262
9.4.1链表概述262
9.4.2建立简单的静态链表263
9.4.3建立动态链表264
9.4.4输出链表267
9.5共用体类型269
9.5.1什么是共用体类型269
9.5.2共用体变量的引用方式270
9.5.3共用体类型数据的特点271
9.6枚举类型274
9.7用typedef命名类型278
本章小结280
习题281
第10章文件操作283
10.1C文件的有关概念283
10.1.1什么是文件283
10.1.2文件名284
10.1.3文件的分类284
10.1.4文件缓冲区285
10.1.5文件指针285
10.1.6文件的位置指针286
10.2文件的打开与关闭287
10.2.1文件的打开287
10.2.2文件的关闭288
10.3文件的顺序读写289
10.3.1向文件读写一个字符289
10.3.2向文件读写一个字符串292
10.3.3向文件进行格式化读写295
10.3.4向文件读写一组数据296
10.4文件的随机读写300
10.4.1文件位置指针的定位300
10.4.2随机读写302
10.5文件读写的出错检测303
本章小结303
习题305
附录A常用字符与ASCII代码对照表306
附录BC语言中的关键字307
附录C运算符和结合性308
附录DC语言常用语法提要311
附录EC库函数316
参考文献323