第1章 C语言程序设计概述 1
1.1 程序与程序设计语言 1
1.1.1 程序的基本概念 1
1.1.2 程序设计语言 2
1.2 C语言的发展及特点 4
1.2.1 C语言的发展概况 4
1.2.2 C语言的特点 4
1.2.3 结构化的C语言 5
1.3 程序设计基础 8
1.3.1 什么是程序设计 8
1.3.2 算法 9
1.4 C语言程序的开发环境 12
1.4.1 Visual C++6.0集成开发环境介绍 13
1.4.2 源程序编辑、编译、连接和运行 14
习题 14
第2章 基本数据类型与表达式 15
2.1 基本数据类型概述 15
2.2 常量和变量 16
2.2.1 常量与符号常量 16
2.2.2 变量 17
2.3 整型数据 18
2.3.1 整型常量 18
2.3.2 整型变量 18
2.4 实型数据 20
2.4.1 实型常量 20
2.4.2 实型变量 20
2.5 字符型数据 22
2.5.1 字符常量 22
2.5.2 字符变量 23
2.5.3 字符串常量 24
2.6 各类数值型数据之间的混合运算 25
2.7 C运算符和表达式 27
2.7.1 C运算符概述 27
2.7.2 算术运算符与算术表达式 27
2.7.3 赋值运算符与赋值表达式 29
2.7.4 自增、自减运算符 31
2.7.5 逗号运算符及逗号表达式 32
习题 32
第3章 输入、输出与顺序程序设计 33
3.1 数据输入、输出的概念 33
3.2 字符的输入与输出 34
3.2.1 putchar函数 34
3.2.2 getchar函数 34
3.3 格式输入与输出 35
3.3.1 printf函数 35
3.3.2 scanf函数 38
3.4 顺序结构程序设计 42
3.4.1 顺序结构介绍 42
3.4.2 程序举例 42
习题 44
第4章 选择结构程序设计 45
4.1 选择结构的引出 45
4.2 关系运算和逻辑运算 46
4.2.1 关系运算符与关系表达式 46
4.2.2 逻辑运算符与逻辑表达式 47
4.3 if语句 48
4.3.1 if语句的格式 48
4.3.2 if语句的嵌套 51
4.3.3 条件运算符 53
4.4 switch 语句 54
4.4.1 switch语句的一般形式 54
4.4.2 switch语句的执行过程 55
4.5 程序设计举例 56
习题 58
第5章 循环结构程序设计 59
5.1 概述 59
5.2 while语句 59
5.2.1 while语句形式 59
5.2.2 while语句执行流程 60
5.2.3 while语句实例 60
5.3 do-while语句 62
5.3.1 do-while语句形式 62
5.3.2 do-while语句执行流程 62
5.3.3 do-while语句实例 63
5.4 for语句 65
5.4.1 for语句形式 65
5.4.2 for语句执行流程 66
5.4.3 for语句实例 66
5.4.4 for语句的变形 70
5.5 goto语句以及用goto语句构成循环 72
5.5.1 goto语句的形式 72
5.5.2 goto语句的执行流程 72
5.5.3 goto语句实例 72
5.6 break语句和continue语句 74
5.6.1 break语句 74
5.6.2 continue语句 74
5.6.3 break语句和continue语句的区别 75
5.7 循环的嵌套 76
5.8 循环结构程序设计举例 79
习题 82
第6章 函数 84
6.1 概述 84
6.1.1 函数简介 84
6.1.2 函数分类 85
6.2 函数的定义 86
6.2.1 无参函数的定义 87
6.2.2 有参函数的定义 87
6.2.3 空函数的定义 88
6.3 函数的调用 88
6.3.1 标准库函数 88
6.3.2 函数的声明 89
6.3.3 函数的调用 90
6.3.4 函数参数及其传递方式 91
6.3.5 函数返回值 94
6.4 函数的嵌套和递归调用 95
6.4.1 函数的嵌套调用 95
6.4.2 函数的递归调用 96
6.5 变量作用域和存储类型 100
6.5.1 变量作用域 100
6.5.2 变量存储类型 104
6.6 函数应用举例 108
习题 112
第7章 数组 114
7.1 一维数组的定义和引用 114
7.1.1 一维数组的定义 114
7.1.2 一维数组的引用 116
7.1.3 一维数组的赋值 117
7.1.4 一维数组实例 119
7.2 二维数组的定义和引用 121
7.2.1 二维数组的定义 122
7.2.2 二维数组的引用 123
7.2.3 二维数组的初始化 123
7.2.4 二维数组实例 124
7.3 字符数组与字符串 127
7.3.1 字符数组的定义 127
7.3.2 字符数组的存储结构 127
7.3.3 字符数组的初始化 128
7.3.4 字符串和字符数组 129
7.3.5 字符数组的输入与输出 130
7.3.6 字符串处理函数 133
7.3.7 字符数组实例 136
7.4 数组与函数 139
7.4.1 数组元素作为函数参数 140
7.4.2 数组名作为函数参数 141
7.4.3 多维数组名作为函数参数 142
7.5 数组程序设计举例 143
习题 149
第8章 指针 150
8.1 地址指针的基本概念 150
8.2 变量的指针和指向变量的指针变量 151
8.2.1 定义一个指针变量 151
8.2.2 指针变量的引用 152
8.2.3 指针变量作为函数参数 156
8.2.4 指针变量几个问题的进一步说明 160
8.3 数组指针和指针数组 164
8.3.1 数组指针 164
8.3.2 指针数组 165
8.3.3 数组名作函数参数 167
8.3.4 指向多维数组的指针和指针变量 174
8.4 字符串的指针及指向字符串的指针变量 177
8.4.1 字符串的表示形式 177
8.4.2 使用字符串指针变量与字符数组的区别 181
8.5 函数指针 182
8.6 指针函数 183
8.7 指针数组和指向指针的指针 185
8.7.1 指针数组的概念 185
8.7.2 指向指针的指针变量 188
8.7.3 main函数的参数 190
8.8 有关指针的数据类型和指针运算的小结 191
8.8.1 有关指针的数据类型的小结 191
8.8.2 指针运算的小结 192
8.8.3 void指针类型 192
习题 192
第9章 结构体与共用体 195
9.1 结构体类型 195
9.1.1 结构体类型的定义和存储模式 195
9.1.2 结构体变量的赋值和初始化 199
9.1.3 结构体数组 201
9.1.4 用递归结构体处理链表 211
9.2 共用体类型 218
9.2.1 共用体的定义 218
9.2.2 共用体变量的说明 219
9.2.3 共用体变量的引用和初始化 220
9.3 枚举类型 222
9.3.1 枚举类型及枚举变量的定义 222
9.3.2 枚举元素的取值 222
9.3.3 枚举变量的使用 223
9.4 用typedef定义类型 224
9.4.1 类型定义的形式 224
9.4.2 几个类型定义的例子 224
9.4.3 几点说明 225
9.5 本章小结 225
习题 226
第10章 编译预处理 227
10.1 宏定义 227
10.2 文件包含 233
10.3 条件编译 236
10.4 本章小结 238
习题 239
第11章 文件 240
11.1 C文件概述 240
11.2 文件类型指针 242
11.3 缓冲文件操作 242
11.3.1 文件的打开(fopen函数) 242
11.3.2 文件关闭函数(fclose函数) 244
11.3.3 文件的读写 244
11.3.4 文件的随机读写和文件检测 251
11.4 非缓冲文件操作 253
11.4.1 非缓冲文件的打开(open函数) 253
11.4.2 非缓冲文件的关闭(close函数) 254
11.4.3 非缓冲文件的创建(creat函数) 254
11.4.4 非缓冲文件的读写操作 254
习题 255
第12章 C++简介 256
12.1 C++对C语言的扩展 256
12.2 从结构到类 261
12.2.1 结构体的定义 261
12.2.2 结构体与类 263
12.3 C++的面向对象特性 264
12.3.1 类与对象 265
12.3.2 构造函数 268
12.3.3 析构函数 271
12.4 C++的类的继承与多态 273
习题 276
附录 277
附录A C语言运算符优先级 277
附录B ASCII码表及常用字符 278
附录C C语言中的关键字 280
附录D 标准C库函数 281
参考文献 286