第一章 C语言概述 1
1.1 C语言的出现及特点 1
1.1.1 计算机语言介绍 1
1.1.2 C语言的特点 2
1.2 简单C语言程序示例 2
1.3 C语言程序的编译和运行 5
1.3.1 C语言程序运行步骤 5
1.3.2 Turbo C的上机过程 5
1.4 算法 7
1.4.1 算法的概念 7
1.4.2 流程图及N-S流程图 9
习题一 9
第二章 数据类型、运算符和表达式 11
2.1 概述 11
2.2 常量、变量和标识符 12
2.2.1 标识符 12
2.2.2 常量 13
2.2.3 变量 13
2.3 整型数据 14
2.3.1 整型常量 14
2.3.2 整型变量 15
2.3.3 整型数据的分类 15
2.3.4 整数在内存中的存储形式 16
2.4 实型数据 17
2.4.1 实型常量 17
2.4.2 实型变量 18
2.5 字符型数据 19
2.5.1 字符型常量 19
2.5.2 字符变量 20
2.6 类型转换 21
2.6.1 隐式(自动)类型转换 21
2.6.2 强制类型转换 22
2.7 算术运算符和算术表达式 22
2.7.1 基本的算术运算符 22
2.7.2 运算符的优先级、结合性和算术表达式 23
2.8 赋值运算符和赋值表达式 24
2.8.1 赋值运算符和单纯赋值表达式 24
2.8.2 复合的赋值表达式 25
2.8.3 赋值运算中的类型转换 25
2.9 自加、自减运算符和逗号运算符 26
2.9.1 自加运算符(++)和自减运算符(--) 26
2.9.2 逗号运算符和逗号表达式 27
2.10 关系、逻辑运算符及关系和逻辑表达式 28
2.10.1 C语言中的逻辑值 28
2.10.2 关系运算符和关系表达式 28
2.10.3 逻辑运算符和逻辑表达式 29
2.11 位运算 30
2.11.1 位运算符 30
2.11.2 位运算符的运算功能 31
2.12 应用举例 33
习题二 35
第三章 语句和程序控制 39
3.1 程序的三种基本结构及流程图表示 39
3.2 C语言语句 41
3.3 数据的输入和输出 42
3.3.1 putchar函数 42
3.3.2 getchar函数 43
3.3.3 printf函数 43
3.3.4 scanf函数 46
3.4 if语句 48
3.4.1 if语句的两种基本形式 48
3.4.2 if语句的嵌套 52
3.4.3 条件运算符与条件表达式 55
3.5 switch语句 56
3.6 for语句 58
3.7 while语句 64
3.8 do-while语句 66
3.9 break语句与continue语句 68
3.9.1 break语句 68
3.9.2 continue语句 70
3.10 goto语句 72
3.11 程序举例 73
习题三 85
第四章 函数与程序结构 90
4.1 函数及其定义 91
4.1.1 无参函数的定义 91
4.1.2 有参函数的定义 91
4.1.3 空函数 92
4.2 函数的参数及函数的值 92
4.2.1 函数的参数 92
4.2.2 函数的值 94
4.3 函数的调用 94
4.3.1 函数调用的一般格式 94
4.3.2 函数调用的方式 94
4.3.3 被调用函数的说明 95
4.3.4 函数的嵌套调用 96
4.4 递归 97
4.5 C语言程序的一般结构 97
4.6 变量的作用域与存储类型 98
4.6.1 变量的作用域 98
4.6.2 变量的存储类型 99
4.7 C语言预处理程序 102
4.7.1 宏定义 102
4.7.2 文件包含 104
4.7.3 条件编译 105
习题四 107
第五章 数组 111
5.1 数组的概念 111
5.2 一维数组 112
5.2.1 一维数组的定义 112
5.2.2 一维数组元素的引用 113
5.2.3 一维数组的初始化 114
5.2.4 一维数组的程序应用举例 115
5.3 二维数组 117
5.3.1 二维数组的定义 117
5.3.2 二维数组元素的引用 118
5.3.3 二维数组的初始化 118
5.3.4 程序举例 120
5.4 数组在函数调用中的应用 121
5.4.1 数组元素作为函数实参 122
5.4.2 一维数组名作为函数参数 122
5.4.3 用二维数组名作函数参数 125
习题五 126
第六章 指针 132
6.1 指针与地址 132
6.1.1 计算机内存的基本组织 132
6.1.2 内存中的数据存储单元和地址 133
6.1.3 变量地址与指针 134
6.2 指针变量的定义 135
6.3 指针变量的使用 137
6.3.1 指针变量的引用 137
6.3.2 指针变量的运算 139
6.3.3 指针变量作为函数参数 145
6.4 数组与指针 148
6.4.1 用指针访问一维数组元素 148
6.4.2 一维数组名与指针 149
6.4.3 多维数组和指针 152
6.4.4 指向数组的指针变量 158
6.4.5 用指向数组的指针作函数参数 161
6.4.6 指针数组 168
6.4.7 main函数的命令行参数 172
6.5 指向函数的指针 174
6.5.1 用指向函数的指针变量调用函数 175
6.5.2 用指向函数的指针变量作为函数的参数 177
6.6 返回指针值的函数 178
6.7 指向指针的指针 180
6.8 复杂数据说明 184
6.9 程序举例 189
习题六 194
第七章 字符串 200
7.1 字符、字符数组和字符串 200
7.2 字符串的输入与输出 201
7.2.1 字符串标准输入输出函数 201
7.2.2 gets函数 202
7.2.3 puts函数 203
7.3 字符串与指针 204
7.4 字符串处理 206
习题七 208
第八章 结构体、联合体和枚举类型 210
8.1 概述 210
8.2 用typedef说明一种新类型名 211
8.3 结构体类型 212
8.3.1 结构体类型的说明 212
8.3.2 结构体变量的定义 213
8.3.3 结构体变量的初始化 214
8.3.4 引用结构体变量中的数据 215
8.3.5 函数调用时结构体变量的数据传递 217
8.3.6 利用结构体变量构成链表 220
8.4 共用体 225
8.4.1 公用体类型的说明和变量定义 226
8.4.2 共用体变量的引用 226
8.5 枚举型 228
8.6 应用举例 229
习题八 234
第九章 文件 240
9.1 文件的概念 240
9.2 文件指针 241
9.3 文件的打开和关闭 242
9.4 文件的读写 243
9.4.1 文件的字符输入和输出 243
9.4.2 文件的字符串输入和输出 246
9.4.3 文件的格式化输入和输出 248
9.4.4 文件的块输入和输出 250
9.5 文件的定位 252
9.5.1 rewind()函数 252
9.5.2 fseek()函数和随机读写 253
9.6 返回文件位置指针值 254
9.7 文件的出错处理 254
习题九 255
附录 256
附录1 C语言的常见关键字 256
附录2 常用字符与ASCII代码对照表 256
附录3 运算符的优先级和结合性 257
附录4 库函数 258
参考文献 262