第1章 C语言概述 1
1.1 程序设计及算法 1
1.1.1 程序及程序设计 1
1.1.2 算法 3
1.2 程序设计语言 6
1.2.1 程序设计语言的发展历程 6
1.2.2 C语言的发展历程 8
1.2.3 C语言的特点 9
1.3 C语言的程序结构 9
1.3.1 C语言程序的基本词汇符号 9
1.3.2 C语言程序的结构 10
1.3.3 简单C程序举例 12
1.4 C语言程序的开发环境 13
1.4.1 C语言程序的开发过程 13
1.4.2 Visual C++集成开发环境介绍 15
1.4.3 运行Visual C++程序的步骤与方法 16
本章小结 20
习题1 20
第2章 C语言程序设计基础 23
2.1 数据的表现形式 23
2.1.1 数据的表现形式概述 23
2.1.2 常量 24
2.1.3 变量 27
2.2 C语言的数据类型 29
2.2.1 数据类型概述 29
2.2.2 整型数据 29
2.2.3 实型数据 32
2.2.4 字符型数据 35
2.3 C语言运算符与表达式 37
2.3.1 运算符与表达式概述 37
2.3.2 算术运算符及表达式 38
2.3.3 自增自减运算符及表达式 40
2.3.4 赋值运算符及表达式 41
2.4 数据类型转换 42
2.4.1 自动转换 42
2.4.2 强制转换 43
2.5 位运算 43
2.5.1 位运算概述 43
2.5.2 按位取反 44
2.5.3 按位与、或和异或 45
2.5.4 按位左移和右移 46
2.5.5 位运算的混合运算 48
本章小结 49
习题2 49
第3章 顺序结构程序设计 55
3.1 C语言的基本语句 55
3.2 字符数据的输入输出 57
3.2.1 字符输出函数putchar() 57
3.2.2 字符输入函数getchar() 58
3.3 格式输入输出 59
3.3.1 格式输出函数printf() 60
3.3.2 printf()函数的应用 62
3.3.3 格式输入函数scanf() 66
3.4 顺序结构程序举例 68
本章小结 72
习题3 73
第4章 选择结构程序设计 77
4.1 关系运算符与关系表达式 77
4.1.1 关系运算符及其优先级 77
4.1.2 关系表达式 78
4.2 逻辑运算符与逻辑表达式 79
4.2.1 逻辑运算符及其优先级 79
4.2.2 逻辑表达式 80
4.3 条件运算符与条件表达式 81
4.4 if语句 82
4.4.1 if语句的三种形式 82
4.4.2 if语句的嵌套 86
4.5 switch语句 88
4.6 程序举例 91
本章小结 94
习题4 94
第5章 循环结构程序设计 101
5.1 while循环 101
5.2 do…while循环 105
5.3 for循环 106
5.4 break语句和continue语句 109
5.4.1 break语句 109
5.4.2 continue语句 111
5.5 循环的嵌套 111
5.5.1 循环嵌套的定义 111
5.5.2 循环嵌套的应用 112
5.6 循环程序举例 115
本章小结 119
习题5 119
第6章 数组 127
6.1 一维数组 127
6.1.1 一维数组的定义 128
6.1.2 一维数组的引用 129
6.1.3 一维数组的初始化 130
6.1.4 一维数组程序举例 130
6.2 二维数组 135
6.2.1 二维数组的定义 136
6.2.2 二维数组的引用 137
6.2.3 二维数组的初始化 138
6.2.4 二维数组程序举例 139
6.3 字符数组与字符串 142
6.3.1 字符数组的定义与初始化 142
6.3.2 字符数组的引用 142
6.3.3 字符串和字符串结束标志 143
6.3.4 字符数组的输入输出 144
6.3.5 字符串处理函数 145
6.3.6 字符数组应用举例 150
本章小结 152
习题6 153
第7章 函数 159
7.1 函数概述 159
7.1.1 模块化程序设计 159
7.1.2 函数的概念 160
7.1.3 函数的分类 162
7.2 函数定义 164
7.3 函数调用 167
7.3.1 函数调用概述 167
7.3.2 函数的声明 168
7.3.3 函数调用的形式 169
7.3.4 函数调用时的数据传递 171
7.3.5 函数参数传递的方式 173
7.4 数组作为函数的参数 174
7.5 函数的嵌套调用 178
7.6 函数的递归调用 181
7.6.1 递归及递归调用 181
7.6.2 递归问题的分类及解决方法 183
7.7 变量的作用域与存储方式 188
7.7.1 变量的作用域 188
7.7.2 变量的存储方式 190
本章小结 192
习题7 192
第8章 指针 197
8.1 指针的概念 197
8.2 指针变量 199
8.2.1 指针变量的定义 199
8.2.2 指针变量的赋值 199
8.2.3 指针的运算 200
8.2.4 多级指针 202
8.3 指针与数组 203
8.3.1 指针与一维数组 203
8.3.2 用数组名作为函数参数 206
8.3.3 指针与二维数组 209
8.4 指针与字符串 212
8.4.1 字符串的表示形式 212
8.4.2 字符指针作为函数参数 215
8.5 指向函数的指针 216
8.5.1 指向函数的指针变量 216
8.5.2 指向函数的指针变量作为函数参数 217
8.6 返回指针的函数 218
8.6.1 返回指针型函数的定义形式 219
8.6.2 返回指针的函数的应用 219
8.7 指针数组 220
8.7.1 指针数组的概念 220
8.7.2 指针数组作为main函数的参数 221
本章小结 222
习题8 224
第9章 结构体、共用体与自定义类型 229
9.1 结构体的概念 229
9.1.1 结构体类型的定义 230
9.1.2 结构体类型变量的定义及初始化 231
9.1.3 结构体类型变量成员的引用 232
9.2 结构体数组 235
9.2.1 结构体数组的定义 235
9.2.2 结构体数组的初始化 236
9.2.3 结构体数组应用举例 237
9.3 指向结构体类型数据的指针 240
9.3.1 指向结构体变量的指针 240
9.3.2 指向结构体数组的指针 242
9.4 共用体 245
9.4.1 共用体类型的定义 245
9.4.2 共用体变量的定义 246
9.4.3 共用体变量的引用 247
9.5 用typedef定义类型 249
9.6 程序设计举例 251
本章小结 256
习题9 256
第10章 编译预处理 261
10.1 宏定义 261
10.1.1 不带参数的宏定义 261
10.1.2 带参数的宏定义 264
10.2 文件包含 266
10.3 条件编译 269
本章小结 271
习题10 272
第11章 文件 277
11.1 文件的概述 277
11.1.1 文件的分类 277
11.1.2 文件的缓冲区 279
11.1.3 文件类型的指针 279
11.2 文件的常用操作 280
11.2.1 文件的打开与关闭 280
11.2.2 文件的读写 283
11.2.3 文件的定位 288
11.2.4 文件的其他操作 290
本章小结 290
习题11 291
附录一 常用字符与ASCII代码对照表 295
附录二C语言中的关键字及含义 297
附录三C语言运算符的优先级和结合性 299
附录四C语言常用的库函数 301
参考文献 309