第1章 C语言概述 1
1.1 C语言的开发环境 2
1.1.1 Visual C++ 6.0的安装 2
1.1.2 进入Visual C++开发环境 6
1.1.3 Visual C++ 6.0重要菜单命令介绍 8
1.2 初识C语言 9
1.2.1 C语言程序举例 9
1.2.2 C语言程序说明 12
上机实训 14
小结 14
习题 14
第2章 数据描述与基本操作 15
2.1 数据类型 16
2.1.1 常量与变量 16
2.1.2 整型数据 19
2.1.3 实型数据 20
2.1.4 字符型数据 22
2.2 运算符与表达式 23
2.2.1 算术运算符与算术表达式 24
2.2.2 赋值运算符与赋值表达式 26
2.2.3 逗号运算符与逗号表达式 28
2.3 不同类型数据间的混合运算 28
2.3.1 隐式类型转换 28
2.3.2 强制类型转换 29
上机实训 29
小结 30
习题 30
第3章 顺序结构程序设计 35
3.1 C语句 36
3.1.1 表达式语句 36
3.1.2 函数调用语句 36
3.1.3 控制语句 36
3.1.4 空语句 37
3.1.5 复合语句 37
3.2 数据的输入与输出 37
3.2.1 格式输出函数——printf函数 38
3.2.2 格式输入函数——scanf函数 40
3.2.3 字符输出函数——putchar函数 42
3.2.4 字符输入函数——getchar函数 43
3.3 顺序结构程序设计 44
上机实训 46
小结 46
习题 47
第4章 选择结构程序设计 51
4.1 关系运算符和关系表达式 52
4.1.1 关系运算符 52
4.1.2 关系表达式 52
4.2 逻辑运算符与逻辑表达式 53
4.2.1 逻辑运算符 53
4.2.2 逻辑表达式 54
4.3 选择结构语句 55
4.3.1 if语句 55
4.3.2 条件运算符 62
4.3.3 switch语句 63
4.4 选择结构程序设计举例 66
上机实训 68
小结 68
习题 68
第5章 循环结构程序设计 71
5.1 while型循环 72
5.1.1 while结构的形式 72
5.1.2 while循环的语义 72
5.2 do-while型循环 74
5.2.1 结构形式 74
5.2.2 do-while循环的含义 74
5.3 for型循环 75
5.3.1 for循环表现形式 75
5.3.2 for语句的变型 76
5.4 其他控制语句 76
5.4.1 break语句 76
5.4.2 continue语句 77
5.5 循环结构综合实例 78
上机实训 80
小结 80
习题 81
第6章 数组 83
6.1 一维数组 84
6.1.1 一维数组的定义与引用 84
6.1.2 一维数组的初始化 85
6.1.3 一维数组应用举例 86
6.2 二维数组与多维数组 86
6.2.1 二维数组的定义与引用 86
6.2.2 二维数组初始化 87
6.2.3 二维数组应用举例 87
6.2.4 多维数组 88
6.3 字符数组与字符串 88
6.3.1 字符数组的定义 88
6.3.2 字符数组初始化 89
6.3.3 字符串 89
6.3.4 字符串的输入与输出 90
6.3.5 字符串处理函数 91
6.4 数组综合实例 93
上机实训 95
小结 95
习题 96
第7章 函数 99
7.1 函数定义 100
7.2 函数的参数和返回值 101
7.2.1 形式参数和实际参数 101
7.2.2 函数的返回值 102
7.3 函数调用 104
7.3.1 调用的一般形式 104
7.3.2 函数调用方式 104
7.3.3 函数的嵌套调用 104
7.3.4 函数的递归调用 106
7.4 函数的参数传递方式 108
7.4.1 普通变量作为函数参数 108
7.4.2 数组作为函数参数 109
7.5 变量的作用域 109
7.5.1 局部变量 110
7.5.2 全局变量 110
7.6 变量的存储类型 111
7.6.1 动态变量 111
7.6.2 静态变量 112
7.6.3 全局变量的存储类型 113
7.7 函数的作用域 114
7.7.1 内部函数 115
7.7.2 外部函数 115
上机实训 116
小结 117
习题 117
第8章 指针 123
8.1 指针与地址 124
8.2 指针变量 125
8.2.1 指针变量的定义 125
8.2.2 指针变量赋值与初始化 125
8.2.3 指针变量的引用 126
8.2.4 指针的算术运算 128
8.3 指针与数组 129
8.3.1 一维数组的指针 129
8.3.2 二维数组的指针 133
8.4 指针与函数 138
8.4.1 指针作为函数参数 138
8.4.2 指针型函数 142
8.4.3 一维数组的指针作为函数参数 148
8.4.4 二维数组的指针作为函数参数 150
8.5 指针与字符串 155
8.5.1 单字符串 155
8.5.2 多字符串 157
8.5.3 字符串指针作函数参数 159
8.6 字符数组与字符指针的区别 160
8.7 指向指针的指针 160
8.7.1 定义形式 160
8.7.2 传给main函数的参数 163
8.7.3 void指针类型 164
8.8 综合实例 165
上机实训 167
小结 167
习题 168
第9章 编译预处理 173
9.1 文件包含 174
9.2 宏定义 176
9.2.1 无参数宏定义 176
9.2.2 有参数的宏定义 179
9.2.3 宏替换与函数调用的区别 182
9.3 条件编译 182
上机实训 185
小结 185
习题 186
第10章 复杂数据类型 189
10.1 结构体 190
10.1.1 结构体类型的声明 190
10.1.2 结构体变量 191
10.1.3 结构体变量的引用与初始化 193
10.1.4 结构体数组 195
10.1.5 结构体指针 199
10.1.6 结构体与函数 202
10.1.7 结构体嵌套 204
10.2 用指针操作链表 206
10.2.1 链表概述 206
10.2.2 动态内存管理函数 207
10.2.3 链表的基本操作 208
10.2.4 结点的插入与删除 212
10.3 共用体 215
10.3.1 共用体类型定义 215
10.3.2 共用体变量的引用 217
10.4 枚举类型 219
10.5 类型定义typedef 222
上机实训 223
小结 223
习题 224
第11章 文件 229
11.1 文件的打开与关闭 230
11.1.1 文件的打开 230
11.1.2 文件的关闭 232
11.2 文件的读写 233
11.2.1 单个字符的读写操作 233
11.2.2 字符串的读写操作 234
11.2.3 数据块的读写操作 236
11.2.4 格式化读写函数 239
11.3 文件的定位与出错检测 240
11.3.1 文件的定位 241
11.3.2 文件操作的出错检测 242
11.4 文件综合实例 243
上机实训 246
小结 246
习题 247
第12章 位运算 251
12.1 二进制位运算概述 252
12.2 位运算符 252
上机实训 257
小结 257
习题 258
附录A 运算符的优先级及其结合性 261
附录B 常用ASCII码对照表 263
附录C 各章习题参考答案 264
附录D 各章上机实训参考答案 279