第1章 C语言程序设计概述 1
1.1 C语言的发展及特点 1
1.1.1 C语言的发展 1
1.1.2 C语言的特点 2
1.2 C语言程序的基本结构 2
1.3 C语言字符集、标识符与关键字 4
1.3.1 C语言字符集 4
1.3.2 C语言标识符与关键字 4
1.4 C语言程序的开发环境 5
1.4.1 C语言开发过程 5
1.4.2 Microsoft Visual C++ 6.0集成开发环境 6
本章小结 9
习题 9
第2章 数据类型、运算符与表达式 10
2.1 C语言的数据类型 10
2.1.1 数据类型概述 10
2.1.2 整数类型 11
2.1.3 实数类型 11
2.1.4 字符类型 12
2.2 常量与变量 12
2.2.1 常量 12
2.2.2 变量 14
2.3 运算符和表达式 16
2.3.1 算术运算符和算术表达式 16
2.3.2 赋值运算符和赋值表达式 17
2.3.3 关系运算符和关系表达式 19
2.3.4 逻辑运算符与逻辑表达式 21
2.3.5 条件运算符、逗号运算符和求字节运算符 24
2.4 运算符的优先级 26
2.5 数据类型转换 26
2.5.1 自动类型转换 27
2.5.2 强制类型转换 27
本章小结 28
习题 28
第3章 顺序结构 30
3.1 算法 30
3.1.1 算法的概念 30
3.1.2 算法的组成要素 31
3.1.3 算法的描述 32
3.2 C语言基本语句 33
3.3 数据的输入/输出 35
3.3.1 字符数据的输入/输出 35
3.3.2 格式化输出函数printf 37
3.3.3 格式化输入函数scanf 42
3.4 精彩案例 45
3.4.1 温度转换 46
3.4.2 进制转换 46
3.4.3 大小写字符转换 47
3.4.4 计算圆的周长和面积 47
本章小结 48
习题 48
第4章 选择结构 50
4.1 if语句 50
4.1.1 单分支if语句 50
4.1.2 双分支if语句 52
4.1.3 多分支if语句 53
4.1.4 if语句的嵌套 55
4.2 条件运算符 56
4.3 switch语句 58
4.4 精彩案例 61
4.4.1 计算个人所得税 61
4.4.2 体质指数(BMI)计算 63
4.4.3 判断闰年 64
4.4.4 模拟计算器 64
本章小结 65
习题 65
第5章 循环结构 68
5.1 循环结构算法 68
5.2 while语句 70
5.3 do-while语句 71
5.4 for语句 73
5.5 break语句和continue语句 76
5.5.1 break语句 76
5.5.2 continue语句 77
5.6 循环结构的嵌套 78
5.7 精彩案例 79
5.7.1 猴子吃桃 79
5.7.2 整数质因子分解 80
5.7.3 电文加密 81
5.7.4 打印菱形 82
本章小结 83
习题 84
第6章 函数与宏替换 86
6.1 模块化设计 86
6.2 函数的定义与调用 87
6.2.1 函数的定义 87
6.2.2 函数的调用 89
6.2.3 参数的传递 92
6.3 函数的递归调用 94
6.4 变量的作用域和存储类型 98
6.4.1 变量的作用域 98
6.4.2 变量的存储类型 101
6.5 宏替换和文件包含 105
6.5.1 宏替换 105
6.5.2 文件包含 109
6.6 精彩案例 110
6.6.1 判断回文数 110
6.6.2 判断完数 111
6.6.3 斐波那契数列 112
本章小结 113
习题 113
第7章 数组 116
7.1 概述 116
7.2 一维数组 117
7.2.1 一维数组的定义 117
7.2.2 一维数组的初始化 118
7.2.3 一维数组的引用 119
7.2.4 一维数组应用 120
7.3 二维数组 126
7.3.1 二维数组的定义 126
7.3.2 二维数组的初始化 126
7.3.3 二维数组的引用 128
7.3.4 二维数组应用 130
7.4 字符数组与字符串 132
7.4.1 字符数组的定义与初始化 132
7.4.2 字符串的概念及存储 133
7.4.3 字符数组的输入/输出 134
7.4.4 字符串处理函数 136
7.4.5 字符数组应用 140
7.5 数组作为函数参数 142
7.6 精彩案例 145
7.6.1 身份证号的奥秘 145
7.6.2 字符串连接 147
7.6.3 删除字符 148
7.6.4 统计单词个数 149
本章小结 150
习题 151
第8章 指针 153
8.1 指针与指针变量 153
8.1.1 指针的概念 153
8.1.2 指针变量的定义与初始化 154
8.1.3 指针运算 156
8.2 指针与数组 159
8.2.1 一维数组的指针表示法 160
8.2.2 二维数组的指针表示法 163
8.3 指针与字符串 168
8.3.1 字符串的指针表示方法 168
8.3.2 字符串数组与指针数组 171
8.4 指针与函数 174
8.4.1 指针作为函数的形参 174
8.4.2 指针型函数 180
8.5 指向指针的指针变量 181
8.6 精彩案例 182
8.6.1 数字查找 182
8.6.2 字符串截取 184
8.6.3 字符串查找 186
本章小结 188
习题 188
第9章 结构体与共用体 190
9.1 结构体类型的定义 190
9.2 结构体变量 191
9.2.1 结构体变量的定义 191
9.2.2 结构体变量的使用 193
9.2.3 结构体变量的初始化 195
9.3 结构体数组 197
9.3.1 结构体数组的定义 197
9.3.2 结构体数组的初始化 197
9.3.3 结构体数组的使用 198
9.4 结构体类型指针 200
9.4.1 指向结构体变量的指针 200
9.4.2 指向结构体数组的指针 202
9.5 结构体与函数 204
9.5.1 结构体变量作为函数参数 204
9.5.2 结构体指针变量作为函数参数 205
9.5.3 函数的返回值为结构体类型 207
9.6 链表 207
9.6.1 链表概述 208
9.6.2 内存动态管理函数 209
9.6.3 链表的基本操作 211
9.7 共用体类型 218
9.7.1 共用体类型与共用体变量 218
9.7.2 共用体变量的使用 219
9.8 精彩案例 222
9.8.1 链表存储职工信息 222
9.8.2 链表翻转 224
本章小结 227
习题 227
第10章 文件 229
10.1 文件概述 229
10.2 文件的打开与关闭 231
10.2.1 文件指针 231
10.2.2 文件的打开 232
10.2.3 文件的关闭 233
10.3 文件读写函数 234
10.3.1 读写文件字符函数 234
10.3.2 读写文件字符串函数 236
10.3.3 格式化读写 239
10.3.4 块读写 240
10.4 文件定位与随机读写 242
10.5 文件检测函数 246
10.6 精彩案例 246
10.6.1 文件加密 247
10.6.2 成绩信息管理 248
本章小结 251
习题 251
附录 253
附录A ASCⅡ码表 253
附录B C语言运算符优先级和结合方向 255
附录C C语言常见的出错信息 256
附录D C语言常用算法 260
附录E C语言常用库函数 275