第1章 C语言程序设计基础 1
1.1程序设计及程序设计语言 1
1.1.1程序设计语言的发展 1
1.1.2 C语言的发展过程 2
1.2 C语言的特点 3
1.3 C程序结构 4
1.3.1简单的C程序介绍 4
1.3.2 C程序结构 6
1.4源程序的编辑、编译、连接与运行 7
习题 8
第2章 C语言的数据类型与基本操作 10
2.1常量与变量 10
2.1.1常量 10
2.1.2变量 13
2.2标识符和关键字 15
2.3整型数在计算机中的存储方式 16
2.4有符号的数据类型和无符号的数据类型 18
2.5运算符和表达式 19
2.5.1赋值运算符和赋值表达式 21
2.5.2算术运算符和算术表达式 22
2.5.3长度测试运算符sizeof 23
2.5.4关系运算符和关系表达式 24
2.5.5逻辑运算符与逻辑表达式 25
2.5.6条件运算符与条件运算表达式 27
2.5.7逗号运算符与逗号表达式 29
2.5.8位运算 29
2.6不同类型数据间的转换 32
习题 34
第3章 顺序结构程序设计 40
3.1算法 40
3.1.1算法的组成要素 40
3.1.2算法的表示方法 41
3.1.3自顶向下、逐步细化的设计过程 44
3.2 C语句概述 46
3.2.1控制语句 46
3.2.2表达式语句 46
3.2.3复合语句 47
3.3数据的输入和输出 48
3.3.1数据的输出函数 48
3.3.2 scanf函数 53
3.4 getchar函数与putchar函数 57
3.4.1字符输出函数putcharo 57
3.4.2字符输入函数getcharo 57
习题 58
第4章 选择结构程序设计 63
4.1 if语句 63
4.1.1 if语句的形式 63
4.1.2 if语句的嵌套 67
4.2 switch语句 69
4.3程序举例 71
习题 75
第5章 循环结构程序设计 79
5.1 while语句 79
5.2 do-while语句 84
5.3 for语句 86
5.4三种循环语句的比较 90
5.5循环的嵌套 90
5.6 break语句和continue语句 95
5.6.1 break语句 95
5.6.2 continue语句 32
5.7综合实例 32
5.7.1列举算法 32
5.7.2试探算法 98
5.7.3密码问题 99
习题 100
第6章 函数 106
6.1函数概述 106
6.1.1模块化程序设计方法 106
6.1.2函数的概念 106
6.2函数的定义与声明 108
6.2.1函数定义 109
6.2.2函数的参数和返回值 110
6.2.3函数的声明 110
6.3函数的调用 111
6.3.1调用函数的一般形式 111
6.3.2调用函数时数据的传递 111
6.3.3函数的嵌套调用 113
6.3.4函数的递归调用 114
6.4局部变量和全局变量 117
6.4.1局部变量 117
6.4.2全局变量 118
6.5变量的存储属性 121
6.5.1自动变量(auto) 122
6.5.2寄存器变量(register) 124
6.5.3静态变量(static) 124
6.5.4外部变量 125
6.6编译预处理 126
6.6.1宏定义 127
6.6.2文件包含 132
6.6.3条件编译 133
6.7应用举例 135
习题 142
第7章 数组 150
7.1一维数组 150
7.1.1一维数组的定义 150
7.1.2一维数组的初始化 151
7.1.3一维数组元素的引用 151
7.1.4一维数组的使用 151
7.2二维数组和多维数组 156
7.2.1二维数组和多维数组的概念及其定义 156
7.2.2二维数组的初始化 158
7.2.3二维数组和多维数组的引用 159
7.2.4二维数组的经典实例 160
7.3字符数组 163
7.3.1字符数组的定义 163
7.3.2字符数组的输入输出 164
7.3.3常用字符串函数 165
7.3.4字符数组的使用 167
7.4数组应用实例 168
7.4.1排序 168
7.4.2二分查找 172
习题 173
第8章 指针 178
8.1地址和指针的概念 178
8.2指向变量的指针变量 179
8.2.1指向变量的指针变量的定义 179
8.2.2指针运算符 179
8.2.3指针变量的初始化 181
8.2.4指针变量的运算 181
8.2.5指针变量作为函数参数 183
8.2.6程序实例 184
8.3指针与数组 186
8.3.1一维数组和指针 186
8.3.2二维数组和指针 190
8.3.3程序实例 192
8.4字符串的指针和指向字符串的指针变量 193
8.4.1字符串的指针 193
8.4.2字符串作为函数参数 195
8.5指针数组 196
8.6指向指针的指针 197
8.6.1指向指针的指针的概念 197
8.6.2指向指针的指针的应用 198
8.7函数的指针 200
8.7.1函数的指针和指向函数的指针变量 200
8.7.2函数的指针作为函数参数 202
8.7.3函数指针的应用 202
8.8返回指针的函数 204
8.9 main()函数的返回值和参数 206
8.9.1 main()函数的返回值 206
8.9.2 mainO函数的参数 206
习题 207
第9章 结构体和共用体 211
9.1概述 211
9.2结构体与结构体类型变量 211
9.2.1结构体类型的定义 211
9.2.2结构体类型变量的定义 212
9.2.3结构体变量的引用 214
9.2.4结构体变量的初始化 215
9.3结构体数组 216
9.4指向结构体类型数据的指针 219
9.4.1指向结构体变量的指针 219
9.4.2指向结构体数组的指针 220
9.4.3结构体指针变量作为函数的参数 221
9.4.4结构体与函数的类型 223
9.5动态存储分配与链表 225
9.5.1链表的概念 225
9.5.2动态存储分配 226
9.5.3建立和输出链表 227
9.5.4链表的基本操作 228
9.6共用体 235
9.6.1共用体的概念和定义 235
9.6.2共用体变量的引用 237
9.7枚举类型 239
9.7.1枚举的定义与说明 239
9.7.2枚举类型变量的赋值与引用 240
9.8用Typedef定义类型 241
9.9应用实例——学生成绩管理系统 242
习题 252
第10章 文件 256
10.1文件的概念 256
10.1.1文件的类型 256
10.1.2 C语言对文件的处理方法 257
10.1.3文件的访问方式 257
10.2格式化数据文件操作 258
10.2.1打开文件函数fopenO 258
10.2.2关闭文件函数fcloseO 260
10.2.3从文件中格式化输入数据fscanfO 260
10.2.4向文件中格式化输出函数fprintfO 260
10.2.5文件建立 261
10.2.6文件访问 262
10.2.7文件修改 262
10.3字符数据文件操作 264
10.3.1从指定文件中读取一个字符 264
10.3.2 putcO函数——指向文件输出一个字符 265
10.3.3 fgetsO函数——从文件中读一个字符串 265
10.3.4 fputsO函数——向指定文件输出一个字符串 265
10.3.5 feofO函数——文件操作是否到文件尾的检测函数 66
10.4 freadO与fwriteO函数 267
10.5文件位置定位与错误处理函数 268
10.5.1 rewindO函数——将文件读写指针定位于文件头 268
10.5.2 fseekO函数——重新定位文件位置指针 269
10.5.3 frtellO函数——测试当前读写指针位置 269
10.5.4 ferror0函数——检测文件流操作中的错误 269
10.5.5 clearerrO函数——清除出错标志 269
10.6应用实例——大奖赛评分系统 269
习题 274
附录A ASCII字符编码一览表 278
附录B C语言库函数 279
参考文献 285