第1章 C语言概述 1
1.1 C语言的由来与发展 1
1.1.1 C语言的由来 1
1.1.2 C语言的发展历程 1
1.1.3 C语言的作用与地位 2
1.2 简单的C程序介绍 2
1.2.1 简单C语言程序示例 2
1.2.2 C语言程序的构成 4
1.2.3 C语言的特点 5
1.3 C程序的上机实现 6
1.3.1 实现C语言程序执行的步骤 6
1.3.2 在Microsoft Visual C+++下运行C程序 7
1.3.3 在C-free下运行C程序 10
1.4 本章知识点小结 13
拓展阅读 13
习题 16
第2章 程序设计入门 18
2.1 程序设计概述 18
2.1.1 程序设计步骤 18
2.1.2 程序设计方法 19
2.2 算法 21
2.2.1 计算机算法定义 21
2.2.2 算法的特性 21
2.2.3 算法的表示 21
2.3 程序控制结构示例 26
2.3.1 顺序结构 26
2.3.2 选择结构 27
2.3.3 循环结构 27
2.4 本章知识点小结 29
习题 29
第3章 基本数据类型 30
3.1 基本数据类型 30
3.1.1 整型数据 31
3.1.2 实型数据 32
3.1.3 字符型数据 33
3.2 标识符、常量与变量 33
3.2.1 标识符 33
3.2.2 常量与符号常量 33
3.3.3 变量 36
3.3 本章知识点小结 37
拓展阅读 38
习题 39
第4章 常用函数和表达式 41
4.1 常用函数 41
4.1.1 常用的输出函数 41
4.1.2 常用的输入函数 46
4.1.3 输入/输出函数应用举例 48
4.1.4 其他常用函数 49
4.2 算术表达式 51
4.2.1 算术运算符与算术表达式 51
4.2.2 自增、自减运算 51
4.3 赋值表达式 53
4.3.1 赋值运算符与赋值表达式 53
4.4 关系表达式、逻辑表达式 54
4.4.1 关系运算符与关系表达式 54
4.4.2 逻辑运算符与逻辑表达式 56
4.5 其他表达式 57
4.5.1 条件表达式 57
4.5.2 逗号表达式 58
4.6 多种类型混合运算 58
4.6.1 类型转换 58
4.6.2 运算符优先级和运算符结合方向 59
4.7 本章知识点小结 61
拓展阅读 61
习题 64
第5章 控制结构 66
5.1 C语句概述 66
5.2 顺序结构程序设计 68
5.3 选择结构程序设计 69
5.3.1 if语句 69
5.3.2 switch语句 79
5.4 循环结构程序设计 82
5.4.1 while循环 82
5.4.2 do-while语句 85
5.4.3 for语句 88
5.4.4 几种循环的比较 92
5.4.5 其他控制语句 92
5.4.6 循环的嵌套 95
5.5 典型实例 97
5.6 本章知识点小结 100
拓展阅读 101
习题 106
第6章 数组 109
6.1 一维数组 109
6.1.1 一维数组的定义 109
6.1.2 一维数组的初始化 110
6.1.3 一维数组元素的引用 110
6.1.4 一维数组应用举例 111
6.2 数组典型应用 114
6.2.1 最值算法 114
6.2.2 查找算法 116
6.2.3 排序算法 119
6.2.4 插入算法 122
6.3 二维数组 124
6.3.1 二维数组的定义 124
6.3.2 二维数组的初始化 125
6.3.3 二维数组元素的引用 125
6.3.4 二维数组应用举例 128
6.4 本章知识点小结 131
拓展阅读 132
习题 134
第7章 字符串 136
7.1 字符数组基本概述 136
7.1.1 字符数组的定义 136
7.1.2 字符数组的初始化 137
7.1.3 字符串和字符数组 138
7.2 字符数组的输入/输出 138
7.2.1 逐个字符的输入/输出 138
7.2.2 字符串的输入/输出 139
7.2.3 读取字符串函数gets() 140
7.2.4 输出字符串函数puts() 141
7.3 字符串典型实例 142
7.4 常用字符串函数 143
7.4.1 字符串连接函数strcat() 143
7.4.2 字符串拷贝函数strcpy() 144
7.4.3 字符串比较函数strcmp() 145
7.4.4 求字符串长度函数strlen() 145
7.5 本章知识点小结 148
拓展阅读 148
习题 152
第8章 函数 154
8.1 函数概述 154
8.1.1 C语言程序结构 154
8.1.2 函数分类 155
8.2 函数定义和调用 156
8.2.1 函数定义 156
8.2.2 函数调用 160
8.3 函数的参数传递 166
8.3.1 传数值 166
8.3.2 传地址 169
8.4 函数的嵌套调用和递归函数 171
8.4.1 函数的嵌套调用 171
8.4.2 递归函数 172
8.5 函数应用举例 175
8.6 变量的作用域和存储类型 180
8.6.1 变量的作用域 180
8.6.2 变量的存储类型 181
8.7 本章知识点小结 184
拓展阅读 185
习题 192
第9章 指针 194
9.1 指针的基本概念 194
9.1.1 地址和指针 194
9.1.2 地址和指针示例 195
9.2 指针与变量 197
9.2.1 指针变量的定义和赋值 197
9.2.2 指针变量的使用 199
9.3 指针和数组 202
9.3.1 指向一维数组指针变量 202
9.3.2 数组指针变量的使用 203
9.3.3 指针变量的运算小结 207
9.3.4 指向多维数组指针变量 209
9.3.5 指针数组 213
9.4 指针和字符串 215
9.4.1 指向字符串的指针变量 215
9.4.2 存储字符串的指针数组 218
9.5 指针和函数 219
9.5.1 指向函数的指针变量 219
9.5.2 函数参数为指针类型 222
9.5.3 函数的返回值为指针类型 237
9.6 指针与指针 240
9.6.1 双重指针定义 240
9.6.2 双重指针的使用 241
9.7 指针与内存管理 242
9.7.1 指针与动态内存分配 242
9.7.2 动态存储分配 243
9.8 本章知识点小结 245
拓展阅读 245
习题 247
第10章 结构体和枚举 249
10.1 结构体及结构体变量 249
10.1.1 结构体类型定义 250
10.1.2 结构体变量的定义 250
10.1.3 结构体变量的使用 252
10.1.4 结构体的嵌套 254
10.2 结构体数组 255
10.2.1 结构体数组定义 255
10.2.2 结构体数组初始化 256
10.2.3 结构体数组使用 257
10.3 结构体和指针 258
10.3.1 指向结构体变量的指针 258
10.3.2 指向结构体数组的指针 261
10.4 结构体与函数 263
10.4.1 用结构体变量作函数参数 263
10.4.2 用指向结构体变量的指针作函数参数 265
10.4.3 函数的返回值是结构体类型 266
10.5 枚举 267
10.5.1 枚举类型的定义 268
10.5.2 枚举变量的定义 268
10.5.3 枚举类型变量的赋值和使用 268
10.6 本章知识点小结 270
拓展阅读 271
习题 286
第11章 文件 289
11.1 文件的基本概念 289
11.1.1 文件的分类 289
11.1.2 文件类型和文件指针 290
11.2 文件基本操作过程 291
11.2.1 打开文件 291
11.2.2 关闭文件 292
11.2.3 文件操作过程举例 292
11.3 文件读写操作 293
11.3.1 字符方式文件读写 293
11.3.2 字符串方式文件读写 298
11.3.3 格式化方式文件读写 300
11.3.4 数据块方式文件读写 302
11.4 文件定位及随机读写 303
11.5 本章知识点小结 305
拓展阅读 305
习题 308
第12章 编译预处理和注释 309
12.1 编译预处理基本概念 309
12.2 宏定义 310
12.2.1 不带参数的宏定义 310
12.2.2 带参数的宏定义 312
12.3 文件包含 312
12.4 条件编译 314
12.4.1 根据某个特定的宏是否定义来进行条件编译 314
12.4.2 根据表达式的值来进行条件编译 314
12.4.3 条件编译举例 315
12.5 注释 316
12.6 本章知识点小结 317
拓展阅读 317
习题 320
附录1 字符与ASCII码对照表 322
附录2 C语言中的关键字 323
附录3 运算符的优先级与结合性 324
附录4 常用库函数 325
参考文献 330