第一章 概述 1
1.1 C语言概述 1
1.1.1 C语言的发展历史 1
1.1.2 C语言的特点 1
1.2 程序设计语言 2
1.2.1 程序设计语言的发展 2
1.2.2 C语言程序设计的步骤 3
1.3 C语言程序设计初步 4
习题 7
1.4 学习C语言的建议 7
第二章 数据类型、运算符及表达式 8
2.1 常量和变量 8
2.1.1 常量 8
2.1.2 变量 11
2.2 数据类型 14
2.2.1 整型 14
2.2.2 字符型 15
2.2.3 浮点型(实型) 15
2.3.2 算术运算符 16
2.3.1 表达式 16
2.3 运算符与表达式 16
2.3.3 赋值运算符 19
2.3.4 关系运算符 20
2.3.5 逻辑运算符 20
2.3.6 位运算符 22
2.3.7 递增/递减运算符 24
2.3.8 其他运算符 25
2.3.9 运算符的优先等级与结合性 26
2.4.1 自动类型转换 28
2.4 数据类型转换 28
2.4.2 强制类型转换 30
习题 30
第三章 数据的输入与输出 34
3.1 格式输出函数printf() 34
3.1.1 格式参数说明 35
3.1.2 例子 35
3.2 格式输入函数scanf() 36
3.2.1 格式参数说明 37
3.2.2 深入学习与应用举例 37
3.3.1 字符输入函数getchar() 39
3.3 字符输入输出函数 39
3.3.2 字符输出函数putchar() 40
习题 41
第四章 C语言的控制结构 43
4.1 C语言的结构 43
4.2 顺序结构 43
4.2.1 表达式语句 44
4.2.2 复合语句 44
4.2.3 顺序结构程序举例 44
4.3.1 if-else语句 46
4.3 选择结构 46
4.3.2 switch-case语句 50
4.4 循环结构 53
4.4.1 while语句 53
4.4.2 do-while语句 55
4.4.3 for语句 56
4.4.4 break语句与continue语句 57
4.4.5 循环的嵌套 59
4.4.6 goto语句 60
4.4.7 循环结构程序举例 61
习题 63
第五章 数组 66
5.1 数组概述 66
5.1.1 数组的概念 66
5.1.2 数组的定义方法 66
5.1.3 数组元素的引用 67
5.2 数组元素在内存中的存储方法 68
5.3 数组的初始化方法 68
5.3.1 一维数组的初始化 68
5.3.2 二维数组的初始化 69
5.3.3 字符数组的初始化 70
5.4 数组应用举例 71
5.5 字符串的处理 74
5.5.1 字符串的输入 74
5.5.2 字符串的输出 76
习题 79
第六章 指针 81
6.1 指针概述 81
6.1.1 指针的概念 81
6.1.2 指针的定义和引用 81
6.1.3 指针的运算 83
6.2.1 指针与一维数组元素 84
6.2 指向数组和字符串的指针 84
6.2.2 指针与二维数组元素 85
6.2.3 指针与字符串 87
6.3 指针数组和二级指针 88
6.3.1 指针数组 88
6.3.2 二级指针(指向指针的指针) 89
6.4 指针应用举例 91
习题 93
7.1 函数与结构化程序设计 96
第七章 函数 96
7.2 函数的定义 97
7.3 函数的声明及调用 98
7.4 函数的返回 100
7.5 变量的存储类型与作用域 101
7.5.1 动态变量 102
7.5.2 寄存器变量 103
7.5.3 外部变量 104
7.5.4 静态变量 105
7.6.1 传值调用 106
7.6 函数间的参数传递 106
7.6.2 传址调用 107
7.7 函数的递归调用 111
7.8 返回指针值的函数 115
7.9 函数指针 116
7.10 命令行参数 120
习题 121
8.1 宏定义 124
8.1.1 常量的宏定义和宏替换 124
第八章 编译预处理 124
8.1.2 带有参数的宏定义和宏替换 125
8.2 文件包含 127
8.3 条件编译 127
习题 130
第九章 结构、联合及枚举 131
9.1 结构类型的定义 131
9.2 结构变量的定义和引用 132
9.2.1 结构变量的定义方法 132
9.2.2 结构变量的初始化 133
9.2.3 成员运算符与结构变量的引用 134
9.3 结构数组 135
9.3.1 结构数组的定义及初始化 135
9.3.2 引用结构数组 136
9.4 指向结构变量或结构数组元素的指针 137
9.4.1 指向结构变量的指针 137
9.4.2 指向结构数组元素的指针 139
9.5 结构、指针及链表 140
9.5.1 指向结构自身的指针和单向链表 140
9.5.2 动态存储分配函数 141
9.5.3 单向链表的建立和使用 142
9.6 联合类型 149
9.6.1 联合的定义 149
9.6.2 联合类型变量的定义及使用 150
9.7 枚举类型 152
9.7.1 枚举类型的定义 153
9.7.2 枚举类型变量的定义及其引用 153
9.8 使用typedef定义类型 154
习题 155
10.2 文件类型指针 157
10.1 文件的基本概念 157
第十章 文件 157
10.3 文件的打开与关闭 158
10.3.1 文件的打开 158
10.3.2 文件的关闭 160
10.4 常用的文件读写函数 161
10.4.1 字符的读写函数 161
10.4.2 字符串的读写函数 162
10.4.3 格式化读写函数 164
10.4.4 数据块读写函数 166
10.5.1 文件的定位 167
10.5 文件的定位及出错检测 167
10.5.2 文件操作期间的错误检测 170
习题 171
附录 172
附录A C语言上机指导 172
附录B ASCII字符编码表 179
附录C 关键字及其用途一览表 180
附录D 运算符的优先级和结合方向 181
附录E C常用库函数 182
主要参考文献 187