目录 1
第1章 C语言概述 1
1.1 C语言的发展和特点 1
1.1.1 C语言的发展过程 1
1.1.2 C语言的主要特点 2
1.2 C程序的结构 3
1.3 Turbo C上机步骤 6
1.3.1 Turbo C 2.0文件简介 6
1.3.2 Turbo C启动 6
1.3.3 源程序的输入、编译、连接和运行 7
小结 8
习题 8
第2章 基本数据类型和运算符 9
2.1 关键字、标识符和保留标识符 9
2.2.1 常量和变量的概念 11
2.2 基本数据类型 11
2.2.2 整型常量和实型常量 14
2.2.3 整型变量 15
2.2.4 实型变量 18
2.2.5 字符常量和字符串常量 20
2.2.6 字符变量 23
2.2.7 用char定义小整数 25
2.2.8 符号常量 26
2.3 运算符和表达式 28
2.3.1 表达式的概念 28
2.3.2 算术运算符 30
2.3.3 标准系统库函数调用 31
2.3.4 数据类型的转换 33
2.3.5 赋值运算符 36
2.3.6 增量运算符 39
2.3.7 副作用和顺序点 41
2.3.8 关系运算符 42
2.3.9 逻辑运算符 43
2.3.10 条件运算符 47
2.3.11 逗号运算符和逗号表达式 48
2.3.12 运算符优先级和结合方向 48
小结 49
习题 50
第3章 顺序语句和选择语句 55
3.1 程序设计概述 55
3.2 scanf()函数和字符输入、输出函数调用 57
3.2.1 数据输入的概念 57
3.2.2 scanf()函数的调用 58
3.2.3 字符输入函数 60
3.2.4 字符输出函数 61
3.3 表达式语句 62
3.4 复合语句 62
3.5.1 if结构 63
3.5 if条件语句 63
3.5.2 if-else结构 67
3.5.3 if-else-if结构 69
3.5.4 条件语句的嵌套 73
3.6 switch语句 77
3.7 程序设计举例 81
小结 85
习题 85
第4章 循环语句和转移语句 88
4.1 循环的概念 88
4.2 for循环 89
4.3 while循环 98
4.4 do-while循环 102
4.5 break语句 104
4.6 continue语句 104
4.7 多重循环 106
4.8 goto语句 114
小结 115
习题 115
第5章 数组 119
5.1 一维数组 119
5.1.1 一维数组的定义 119
5.1.2 一维数组元素的引用 120
5.1.3 一维数组元素的初始化 122
5.2 二维数组 124
5.2.1 二维数组的定义 124
5.2.2 二维数组的引用 125
5.2.3 二维数组元素的初始化 126
5.3 字符型数组 129
5.3.1 字符数组的定义 129
5.3.2 字符数组的引用 130
5.3.3 字符数组的初始化 131
5.3.4 字符串及其结束标志 132
5.3.5 字符数组的输入/输出 134
5.3.6 常用的字符串处理函数 136
5.4 使用数组的程序设计方法 140
5.4.1 排序 140
5.4.2 查找 143
小结 149
习题 150
第6章 函数和模块设计 155
6.1 结构化程序设计 155
6.1.1 结构化程序设计的基本概念 156
6.1.2 结构化程序设计的基本特征 156
6.2 函数的定义和调用 157
6.2.1 函数的定义 158
6.2.2 函数的调用 159
6.2.3 函数的返回值 162
6.2.4 函数参数及函数间的数据传递 165
6.3.1 函数的嵌套调用 173
6.3 函数的嵌套调用和递归调用 173
6.3.2 函数的递归调用 176
6.4 作用域和存储类型 178
6.5 内部函数和外部函数 187
6.5.1 内部函数 187
6.5.2 外部函数 188
6.6 模块化程序设计 189
6.6.1 模块化程序设计方法的指导思想 189
6.6.2 模块分解的原则 190
6.7 应用举例 191
小结 197
习题 197
第7章 指针 200
7.1 指针的基本概念 200
7.2 指针变量的定义和初始化 201
7.2.1 指针变量的定义 201
7.3.1 取地址运算符& 202
7.2.2 指针变量的初始化 202
7.3 指针运算符 202
7.3.2 指针运算符* 203
7.4 指针变量的运算 203
7.4.1 赋值运算 203
7.4.2 加减算术运算 205
7.4.3 两指针变量进行关系运算 207
7.4.4 指针变量还可以与0比较 207
7.5 指针变量作为函数参数 210
7.6 指针和数组的关系 213
7.6.1 指向数组的指针变量 213
7.6.2 通过指针引用数组元素 214
7.6.3 通过指针引用数组元素时应注意几个问题 216
7.6.4 数组名作函数参数 217
7.7.1 字符串的表示形式 219
7.7 指向字符串的指针变量 219
7.7.2 使用字符串指针变量与字符数组的区别 220
7.7.3 字符串指针作为函数参数 221
7.8 指向多维数组的指针变量 223
7.8.1 多维数组的地址 223
7.8.2 指向数组的指针变量——数组指针变量 226
7.9 指针数组和多级指针 228
7.9.1 指针数组的概念 228
7.9.2 指针数组的应用 229
7.9.3 多级指针(指向指针的指针) 232
7.10 指向函数的指针 234
7.10.1 函数指针的概念 234
7.10.2 函数指针的应用 236
7.11 指针型函数 240
7.12 命令行参数 242
7.12.1 命令行参数的概念 242
7.12.2 打印命令行参数 243
7.12.3 命令行参数使用形式 244
7.12.4 main()函数的返回 244
7.12.5 从命令行提取文件名 245
小结 247
习题 250
第8章 结构体与联合体 257
8.1 结构体 257
8.1.1 结构的定义和结构变量的引用 257
8.1.2 结构类型变量的说明 258
8.1.3 结构变量成员的引用 260
8.1.4 结构变量的赋值 260
8.1.5 结构变量的初始化 261
8.1.6 结构数组的定义 261
8.1.7 结构指针变量的说明和使用 263
8.1.8 结构数据的动态存储分配 267
8.1.9 链表及其基本操作 268
8.2 联合体 274
8.2.1 联合的定义 275
8.2.2 联合变量的说明 275
8.3 其他自定义数据类型 277
8.3.1 枚举类型 277
8.3.2 类型定义符typedef 281
小结 282
习题 282
第9章 接口和函数库 285
9.1 预处理命令 285
9.1.1 概述 285
9.1.2 宏定义 285
9.1.3 文件包含 292
9.1.4 条件编译 293
9.2.1 格式输出函数(printf)中的格式说明 295
9.2 C的标准库 295
9.2.2 格式输入函数(scanf)中的格式说明 297
9.3 图形库 297
9.3.1 图形模式初始化函数 298
9.3.2 基本图形函数 298
9.4 屏幕控制函数库 303
9.5 自定义接口与接口设计的原则 307
习题 312
小结 312
第10章 文件 313
10.1 文件的概念 313
10.2 文件类型指针 314
10.3 文件的基本操作 315
10.3.1 文件的打开函数fopen 315
10.3.2 文件关闭函数fclose 317
10.3.3 字符读写函数fgetc和fputc 317
10.3.4 字符串读写函数fgets和fputs 319
10.3.5 数据块读写函数fread和fwrite 320
10.3.6 格式化读写函数fscanf和fprintf 322
10.3.7 文件的随机读写 323
10.3.8 文件检测函数 326
10.4 程序设计举例 326
小结 329
习题 329
第11章 数据结构和数据抽象 331
11.1 数据抽象 331
11.1.1 抽象数据类型的基本概念 331
11.1.2 抽象数据类型对程序设计的意义 332
11.1.3 数据结构、数据类型和抽象数据类型 332
11.2 线性表 333
11.2.1 线性表的定义 333
11.2.2 线性表的基本操作 334
11.2.3 线性表的顺序存储 335
11.2.4 顺序表上基本运算的实现 336
11.3 堆栈 339
11.3.1 抽象堆栈的定义及基本操作 340
11.3.2 抽象栈的定义 340
11.3.3 顺序栈的基本运算的实现 340
11.4 队列 342
11.4.1 队列的定义 342
11.4.2 队列的存储结构及其相关算法 343
小结 347
习题 348
第12章 算法和程序抽象 349
12.1 算法的概念 349
12.2 算法的类型与结构 350
12.2.1 数值算法和非数值算法 350
12.2.2 算法的基本结构 350
12.3.2 N-S图 351
12.3.1 流程图 351
12.3 算法的描述方法 351
12.3.3 伪代码 352
12.4 算法设计与分析 353
12.4.1 算法的设计与实现 353
12.4.2 算法分析与算法复杂度 355
12.4.3 常用算法设计与分析 361
12.5 软件设计的基本原则 363
12.5.1 软件评判标准 363
12.5.2 内聚性 364
12.5.3 耦合度 365
12.6 数据封装和信息隐藏 366
12.6.1 数据封装 366
12.6.2 信息隐藏 368
12.7 算法抽象 369
12.7.2 函数指针类型的使用 370
12.7.1 函数指针类型定义 370
12.7.3 算法抽象举例 371
12.8 程序设计方法 374
12.8.1 可行性研究与项目开发计划 374
12.8.2 软件需求分析 375
12.8.3 软件概要设计 376
12.8.4 软件详细设计 377
12.8.6 软件测试 378
12.8.5 程序编码 378
小结 379
习题 379
附录1 常用字符与ASCII代码对照表 381
附录2 C语言常用语法提要 382
附录3 Turbo C的集成开发环境的使用 387
附录4 Turbo C编译错误信息 393
附录5 C库函数 399
参考文献 407