第1章 绪论 1
1.1 程序设计概述 1
1.2 程序设计语言 7
1.3 简单的C语言程序 10
1.4 C语言程序的上机步骤 13
练习1 15
第2章 C基本数据类型 16
2.1 数据在计算机中的表示 16
2.1.1 计算机记数制 16
2.1.2 计算机中数的表示 25
2.2 常量与变量 32
2.3 基本数据类型常量 33
2.3.1 整型常量 33
2.3.2 实型常量 35
2.3.3 字符型常量 37
2.4 基本数据类型变量的定义 38
2.4.1 整型变量的定义 38
2.4.2 实型变量的定义 42
2.4.3 字符型变量的定义 43
练习2 45
第3章 数据的输入与输出 47
3.1 格式输出函数 47
3.1.1 基本的格式输出语句 47
3.1.2 printf函数中常用的格式说明 52
3.1.3 使用printf函数时的注意事项 56
3.2 格式输入函数 56
3.2.1 基本的格式输入语句 56
3.2.2 scanf函数中常用的格式说明 61
3.2.3 通过scanf函数从键盘输入数据 62
3.3 字符输出函数 64
3.4 字符输入函数 65
练习3 66
第4章 C表达式与宏定义 68
4.1 赋值运算 68
4.2 算术运算及其表达式 69
4.3 关系运算及其表达式 71
4.4 逻辑运算及其表达式 73
4.5 其他运算符 77
4.5.1 增1与减1运算符 77
4.5.2 sizeof运算符 78
4.5.3 逗号运算符 79
4.6 标准函数 81
4.7 宏定义 81
4.7.1 符号常量定义 82
4.7.2 带参数的宏定义 83
4.7.3 带#的宏定义 86
练习4 88
第5章 选择结构 92
5.1 语句与复合语句 92
5.2 if语句 96
5.3 if…else结构 101
5.4 条件运算符 106
5.5 switch结构 110
5.6 程序举例 118
练习5 120
第6章 编译预处理 124
6.1 文件包含命令 124
6.2 条件编译命令 126
6.3 #pragma命令 132
6.4 #line命令 133
第7章 循环结构 134
7.1 当型循环与直到型循环 134
7.2 while语句 135
7.3 do…while语句 138
7.4 对键盘输入的讨论 141
7.5 for语句 145
7.6 循环的嵌套与其他有关语句 148
7.6.1 循环的嵌套 148
7.6.2 break语句 151
7.6.3 continue语句 153
7.7 程序举例 155
练习7 166
第8章 模块设计 169
8.1 模块化程序设计与C函数 169
8.1.1 模块化程序设计的基本概念 169
8.1.2 函数的定义 170
8.1.3 函数的调用 173
8.2 模块间的参数传递 178
8.2.1 形参与实参的结合方式 178
8.2.2 局部变量与全局变量 181
8.2.3 动态存储变量与静态存储变量 183
8.2.4 内部函数与外部函数 189
8.3 模块的递归调用 191
8.4 程序举例 193
练习8 198
第9章 数组 202
9.1 数组的基本概念 202
9.2 数组的定义与引用 204
9.2.1 一维数组 204
9.2.2 二维数组 206
9.2.3 数组的初始化 206
9.3 字符数组与字符串 211
9.3.1 字符数组的定义与初始化 211
9.3.2 字符串 212
9.3.3 字符数组与字符串的输入与输出 213
9.3.4 字符串处理函数 216
9.4 数组作为函数参数 220
9.4.1 形参数组与实参数组的结合 220
9.4.2 二维数组作为函数参数 224
9.5 程序举例 227
练习9 232
第10章 指针 236
10.1 指针变量 236
10.1.1 指针的基本概念 236
10.1.2 指针变量的定义与引用 237
10.1.3 指针变量作为函数参数 241
10.1.4 指向指针的指针 245
10.2 指针数组 247
10.3 数组与指针 248
10.3.1 一维数组与指针 248
10.3.2 二维数组与指针 251
10.3.3 数组指针作为函数参数 255
10.4 字符串与指针 260
10.4.1 字符串指针 260
10.4.2 字符串指针作为函数参数 264
10.5 函数与指针 266
10.5.1 用函数指针变量调用函数 266
10.5.2 函数指针变量作为函数参数 268
10.5.3 返回指针值的函数 270
10.6 main函数的形参 271
10.7 程序举例 273
练习10 275
第11章 结构体与联合体 278
11.1 结构体类型变量 278
11.1.1 结构体类型变量的定义与引用 278
11.1.2 结构体的嵌套 282
11.1.3 结构体类型变量的初始化 283
11.1.4 结构体与函数 285
11.2 结构体数组 288
11.2.1 结构体类型数组的定义与引用 288
11.2.2 结构体类型数组作为函数参数 291
11.3 结构体与指针 292
11.3.1 结构体类型指针变量的定义与引用 292
11.3.2 结构体类型指针作为函数参数 294
11.3.3 结构体的大小与#pragma中pack的关系 299
11.4 链表 301
11.4.1 链表的基本概念 301
11.4.2 链表的基本运算 304
11.4.3 多项式的表示与运算 307
11.5 联合体 313
11.6 枚举类型与自定义类型名 315
11.6.1 枚举类型 315
11.6.2 自定义类型名 318
练习11 319
第12章 文件 323
12.1 文件的基本概念 323
12.2 文件的基本操作 326
12.2.1 文件的打开与关闭 326
12.2.2 文件的读写 328
12.2.3 文件的定位 335
12.2.4 文件缓冲区的清除 338
12.3 程序举例 340
练习12 343
第13章 位运算 347
13.1 二进制位运算 347
13.2 位段 353
13.3 程序举例 356
练习13 359
附录A 基本ASCII码表 361
附录B C常用库函数 362
附录C VC6编译系统常用操作说明 366
参考文献 387