第1章 C语言概述 1
1.1 C语言的起源和发展 1
1.2 C语言的特点 2
1.3 C语言程序的基本结构 4
1.3.1 一个简单的C语言程序 4
1.3.2 C语言程序的基本结构 4
1.4 简单的C程序设计 8
1.4.1 格式输出函数printf()简介 9
1.4.2 格式输入函数scanf()简介 10
1.4.3 简单的赋值语句 11
1.4.4 简单程序设计举例 11
1.5 C程序的开发过程和Turbo C集成环境 12
1.5.1 C程序的开发过程 12
1.5.2 Turbo C 2.0集成环境 13
本章小结 18
练习题 19
第2章 基本数据类型、常量和变量 21
2.1 基本数据类型 21
2.1.1 五种基本数据类型 21
2.1.2 基本数据类型的存储方式和取值范围 21
2.1.3 基本数据类型的修饰 23
2.2 常量及其类型 23
2.2.1 整数 23
2.2.2 实数 24
2.2.3 字符常量 25
2.2.4 字符串常量 26
2.3 变量及其类型 27
2.3.1 变量的定义 27
2.3.2 变量的初始化 31
2.4 符号常量 32
2.4.1 宏定义 32
2.4.2 const修饰 33
2.5 不同类型数据的输入输出 34
2.5.1 printf()函数 34
2.5.2 scanf()函数 36
2.5.3 字符输出函数putchar()和输入函数getchar() 37
2.5.4 单字符输入函数getche()和getch() 38
本章小结 39
练习题 39
第3章 数据运算 44
3.1 算术运算 45
3.1.1 算术运算符 45
3.1.2 算术表达式 45
3.1.3 强制类型转换 48
3.2 赋值运算 49
3.3 逗号运算(顺序运算) 51
3.4 关系运算和逻辑运算 53
3.4.1 关系运算符和逻辑运算符 53
3.4.2 关系表达式、相等表达式和逻辑表达式 54
3.5 位运算 56
3.5.1 按位逻辑运算 56
3.5.2 移位运算 57
3.5.3 由位操作运算符组成的复合赋值运算符 58
3.5.4 位操作的应用举例 59
3.6 测试数据长度运算符sizeof 60
3.7 数学函数 61
本章小结 62
练习题 62
第4章 流程控制 66
4.1 结构化程序设计的概念 66
4.2 选择结构 67
4.2.1 if-else语句 67
4.2.2 if-else语句的嵌套 69
4.2.3 if-else if-else语句 70
4.2.4 条件表达式 72
4.2.5 switch语句和break语句 73
4.3 循环结构 77
4.3.1 for语句 77
4.3.2 while语句 79
4.3.3 do-while语句 81
4.3.4 循环的嵌套 82
4.4 转移控制语句 83
4.4.1 break语句 83
4.4.2 continue语句 85
4.4.3 exit()函数 85
4.4.4 goto语句和标号 86
4.5 综合举例 88
4.5.1 枚举法的应用 88
4.5.2 归纳法的应用 90
本章小结 93
练习题 93
第5章 数组和字符串 100
5.1 数组的定义和初始化 100
5.1.1 数组的定义 100
5.1.2 数组的存储结构 101
5.1.3 数组的初始化 101
5.2 数组的赋值 103
5.3 数组的输入和输出 104
5.3.1 数值型数组的输入和输出 104
5.3.2 字符型数组的输入和输出 105
5.3.3 字符串处理函数 107
5.4 数组的应用举例 108
本章小结 113
练习题 113
第6章 指针 119
6.1 地址和指针 119
6.1.1 地址 119
6.1.2 指针的概念和指针的定义 122
6.1.3 指针的运算 124
6.2 用指针访问变量 127
6.3 用指针访问一维数组 127
6.4 用指针处理字符串 128
6.5 用指针访问二维数组 130
6.5.1 将二维数组视为一维数组处理 130
6.5.2 行指针 131
6.5.3 指针数组 133
6.6 二级指针 136
6.6.1 一级指针和二级指针 136
6.6.2 用二级指针访问一维数组 136
6.6.3 用二级指针访问二维数组 137
6.7 用指针进行内存动态分配 139
6.7.1 内存动态分配的含义 139
6.7.2 内存动态分配函数 139
本章小结 141
练习题 141
第7章 函数 147
7.1 C语言程序的模块结构 147
7.1.1 模块化程序设计的特点 147
7.1.2 C语言程序的模块结构 147
7.2 C语言函数的定义 148
7.3 C语言函数的调用 150
7.4 函数间数据传递方式之一——哑实结合 152
7.4.1 变量的哑实结合 153
7.4.2 数组的哑实结合 156
7.4.3 函数的哑实结合(函数指针) 159
7.5 函数间数据传递方式之二——函数返回值 162
7.6 函数间数据传递方式之三——全局变量 164
7.7 函数的嵌套调用和递归调用 165
7.7.1 函数的嵌套调用 165
7.7.2 函数的递归调用 166
7.8 main()函数的参数和返回值 168
本章小结 170
练习题 170
第8章 结构、联合和枚举 177
8.1 结构类型和结构变量 177
8.1.1 结构类型和结构变量的定义 177
8.1.2 结构变量的初始化、赋值和结构成员的访问 179
8.1.3 嵌套结构 181
8.1.4 结构的存储 182
8.2 结构数组 183
8.3 结构指针 183
8.4 结构在函数间的传递 186
8.4.1 结构在函数间的传递(哑实结合) 186
8.4.2 结构型函数和结构指针型函数(函数返回值方式) 189
8.5 联合(共用体) 191
8.6 枚举 195
本章小结 196
练习题 196
第9章 文件 200
9.1 文件的概念 200
9.2 文件的打开与关闭 202
9.2.1 文件指针 202
9.2.2 文件的打开 202
9.2.3 文件的关闭 204
9.3 文件读写函数 204
9.3.1 字符读写函数getc()与fgetc()、putc()与fputc() 204
9.3.2 字符串读写函数fgets()和fputs() 206
9.3.3 格式读写函数fscanf()和fprintf() 208
9.3.4 数据块读写函数fread()和fwrite() 210
9.4 文件检测函数 211
9.5 文件的存取 211
9.5.1 文件的定位 211
9.5.2 文件的顺序存取和随机存取 214
本章小结 217
练习题 217
第10章 编译预处理和分割编译 223
10.1 宏定义(#define) 223
10.2 文件包含(#include) 227
10.2.1 文件包含的形式和功能 227
10.2.2 文件包含的嵌套 229
10.3 条件编译 230
10.4 分割编译 232
本章小结 235
练习题 235
第11章 C++语言简介 238
11.1 C++语言与面向对象程序设计 238
11.2 C++语言简介 240
11.2.1 C++语言对C语言的扩充 240
11.2.2 用类实施数据封装和数据隐藏 241
11.2.3 继承和派生类 245
11.2.4 多态性和虚函数 248
附录 练习题参考答案 251