目录 1
1.1 程序与程序语言 1
1.1.1 程序与程序语言 1
第1章 程序设计基础知识 1
1.1.2 程序设计 2
1.2 算法和算法的表示 4
1.2.1 算法的概念 4
1.2.2 算法的基本特征 6
1.2.3 算法的表示 7
1.2.4 几种常用算法介绍 10
1.3 结构化程序设计方法 14
1.3.1 程序的三种基本结构 15
1.3.2 N-S流程图 17
1.3.3 结构化程序设计方法 19
小结 22
习题 22
第2章 C语言概述 25
2.1 C语言概况 25
2.1.1 C语言的发展 25
2.1.2 C语言的特点 26
2.2 C程序的基本结构 27
2.3 C语言的基本组成 30
2.3.1 基本字符集 30
2.3.2 标识符 30
2.3.3 关键字 31
2.3.4 语句 31
2.4 C程序的上机执行过程 32
2.3.5 标准库函数 32
小结 34
习题 34
第3章 数据类型与运算规则 37
3.1 数据与数据类型 37
3.1.1 什么是数据和数据类型 37
3.1.2 C语言中的数据类型 37
3.2.1 常量与变量 38
3.2 C语言的基本数据类型及其表示 38
3.2.2 整型数据及其表示 41
3.2.3 实型数据及其表示 46
3.2.4 字符型数据及其表示 48
3.2.5 指针型数据及其表示 51
3.2.6 变量的初始化 53
3.3 算术运算与赋值运算 53
3.3.1 C语言中的运算规则 53
3.3.2 算术运算符与算术表达式 55
3.3.3 自增、自减运算 57
3.3.4 赋值运算符和赋值表达式 58
3.3.5 组合赋值运算符和组合赋值表达式 60
3.4.1 关系运算符与关系表达式 61
3.4 关系运算与逻辑运算 61
3.4.2 逻辑运算符与逻辑表达式 63
3.4.3 条件运算符与条件表达式 64
3.5 位运算 65
3.5.1 位运算符 65
3.5.2 按位逻辑运算 66
3.5.3 移位运算 68
3.6.2 “.”和“->”运算符 69
3.5.4 位运算赋值运算符 69
3.6 其他运算 69
3.6.1 逗号运算符 69
3.6.5 (type)运算符 70
3.6.3 “()”和“[]”运算符 70
3.6.4 “*”和“&”运算符 70
3.7 混合运算及数据类型转换 71
3.6.6 sizeof运算符 71
3.7.1 混合运算 71
3.7.2 数据类型转换 71
3.8 应用实例 72
小结 74
习题 75
第4章 顺序结构的程序设计 79
4.1 C语句概述 79
4.1.1 流程控制语句 80
4.1.2 表达式语句 81
4.1.3 复合语句 81
4.1.4 空语句 81
4.2 赋值语句 81
4.3 数据输出 82
4.3.2 格式化输出函数printf 83
4.3.1 输出一个字符的函数putchar 83
4.4 数据输入 86
4.4.1 输入一个字符的函数getchar 86
4.4.2 格式化输入函数scanf 86
4.4.3 关于输入方法 87
4.5 应用实例 87
小结 89
习题 90
第5章 选择结构的程序设计 94
5.1 用if语句设计选择结构程序 94
5.1.1 简单if语句 94
5.1.2 控制条件的表示 96
5.1.3 if_else语句 97
5.1.4 嵌套的if语句 98
5.2 用switch语句设计多分支结构程序 102
5.2.1 switch语句 102
5.2.2 嵌套switch语句 105
5.3 goto语句 106
5.4 应用实例 108
小结 112
习题 113
第6章 循环结构的程序设计 118
6.1 循环的基本概念 118
6.2 用while语句设计循环结构程序 119
6.3 用do_while语句设计循环结构程序 121
6.4 用for语句设计循环结构程序 123
6.5 break语句与continue语句 125
6.5.1 break语句 125
6.5.2 continue语句 126
6.6 几种循环语句的比较 128
6.7 循环的嵌套 131
6.8 应用实例 133
小结 141
习题 142
第7章 数组 147
7.1 数组的基本概念 147
7.2.1 一维数组的定义 148
7.2 一维数组 148
7.2.2 一维数组的引用 149
7.2.3 一维数组的初始化 150
7.2.4 一维数组的应用 151
7.3 一维字符数组 161
7.3.1 一维字符数组的定义 161
7.3.2 一维字符数组的初始化 162
7.3.3 一维字符数组的引用 162
7.3.4 字符串的输入输出 163
7.4 字符串处理函数 166
7.4.1 字符串复制 166
7.4.2 求字符串的长度 167
7.4.3 字符串连接 168
7.4.4 字符串比较 170
7.4.5 大小写字母的转换 172
7.5 二维数组 172
7.5.1 二维数组的定义 172
7.5.2 二维数组的引用 173
7.5.3 二维数组的初始化 174
7.5.4 二维数组的应用 175
7.6 二维字符数组 178
7.6.1 二维字符数组的定义 178
7.6.2 二维字符数组的初始化 179
7.6.3 二维字符数组的引用 179
7.7 应用实例 181
小结 191
习题 192
8.1.1 概述 198
8.1 C程序结构 198
第8章 函数 198
8.1.2 函数的分类 199
8.2 函数定义 200
8.2.1 函数定义的一般形式 200
8.2.2 无参函数的定义 201
8.2.3 有参函数的定义 202
8.3 函数的调用与返回 203
8.3.1 函数的调用方式 203
8.3.2 对被调函数的声明和函数原型 204
8.3.3 函数的返回 206
8.3.4 函数调用的执行过程 209
8.3.5 函数的嵌套调用 211
8.4 在函数之间传递数据 212
8.4.1 函数参数的传递规则 212
8.4.2 数组作为函数的参数 216
8.5.1 变量的生存期和作用域 219
8.5 变量的存储属性 219
8.5.2 自动变量 221
8.5.3 外部变量 222
8.5.4 静态变量 226
8.5.5 寄存器变量 228
8.5.6 变量存储类型的总结 229
8.6 函数的递归调用 230
8.6.1 递归的基本概念 230
8.6.2 递归程序的执行过程 230
8.6.3 数值型递归问题的求解方法 233
8.6.4 非数值型递归问题的求解方法 234
8.7 库函数简介 239
小结 241
习题 241
9.1.1 指针的基本概念 246
9.1 指针及其引用 246
第9章 指针 246
9.1.2 指针变量的说明 247
9.1.3 指针的引用和运算 247
9.1.4 为指针变量赋初值 249
9.1.5 引用指针变量 249
9.2 指针与函数 250
9.2.1 指针作函数的参数 250
9.2.2 函数返回指针 252
9.2.3 指向函数的指针 253
9.3 数组与指针 255
9.3.1 通过指针引用一维数组中的元素 255
9.3.2 指针基本运算 257
9.3.3 通过指针引用二维数组中的元素 259
9.4 指针与字符串 261
9.4.1 字符数组与字符指针 261
9.4.2 常见的字符串操作 262
9.5.1 指针数组与数组指针 265
9.5 指针数组 265
9.5.2 main函数的参数 268
9.6 多级指针 269
9.7 应用实例 272
小结 275
习题 276
第10章 结构、联合与枚举类型 281
10.1 结构类型 281
10.1.1 结构类型的概念与定义 281
10.1.2 结构变量的说明 282
10.1.3 引用结构中的成员 284
10.1.4 结构的初始化 286
10.2 结构数组 287
10.3 结构指针 293
10.4.1 向函数传递结构的成员 298
10.4 在函数之间传递结构 298
10.4.2 在函数之间传递整个结构 299
10.4.3 向函数传递结构的地址 302
10.5 联合类型 307
10.6 枚举类型 309
10.6.1 枚举的概念 309
10.6.2 枚举运算 310
10.7 用typedef定义类型 311
10.8 链表基础 312
10.8.1 链表的基本概念 313
10.8.2 链表的基本操作 314
10.8.3 链表的常见形式 321
10.8.4 链表简单应用 322
小结 326
习题 327
11.1.2 C文件的分类 333
11.1.1 什么是文件 333
第11章 文件 333
11.1 文件概述 333
11.2 文件的处理 335
11.2.1 文件类型指针 336
11.2.2 文件的一般操作过程 337
11.2.3 打开文件函数fopen 337
11.2.4 关闭文件函数fclose 339
11.3 文件的顺序读写操作 339
11.3.1 文件的字符输入/输出函数 339
11.3.2 文件的字符串输入/输出函数 342
11.3.3 文件的格式化输入/输出函数 346
11.3.4 文件的数据块输入/输出函数 347
11.4 文件的随机读写操作 349
11.4.1 改变文件位置指针函数fseek 349
11.4.2 位置指针重返文件头函数rewind 350
11.5 文件操作的状态和出错检测 351
11.4.3 位置指针当前值函数ftell 351
11.5.1 文件状态检测函数feof 352
11.5.2 报告文件操作错误状态函数ferror 352
11.5.3 清除错误标志函数clearer 352
11.6 应用实例 353
小结 358
习题 359
附录A 编译预处理 362
附录B C语言运算符的优先级与结合性 366
附录C C语言中的关键字 367
附录D Turbo C 2.0简介 367
附录E Turbo C 2.0常用库函数 373
附录F 常用字符与ASCII代码对照表 384
参考文献 385