第1章 C语言概述 1
1.1 C语言的发展历史及其基本特征 1
1.1.1 C语言的发展历史 1
目录 1
1.1.2 C语言的基本特征 2
1.2 简单的C程序介绍 4
本章小结 6
习题 7
2.1.1 标识符 8
2.1.2 关键字 8
2.1 标识符 8
第2章 基本数据类型、运算符和表达式 8
2.2 C语言的基本数据类型 9
2.2.1 常量与变量 9
2.2.2 整型数据 12
2.2.3 实型数据 15
2.2.4 字符型数据和字符串常量 16
2.3 类数值型数据间的混合运算 18
2.4 C语言的运算符和表达式 20
2.4.1 算术运算符和算术表达式 21
2.4.2 赋值运算符和赋值表达式 23
2.4.3 逗号运算符和逗号表达式 24
2.4.4 条件运算符、位运算符及表达式 24
习题 26
本章小结 26
第3章 基本输入输出和顺序程序设计 29
3.1 数据输入输出的概念 29
3.2 字符数据的输入输出 29
3.2.1 putchar函数(字符输出函数) 29
3.2.2 getchar函数(字符输入函数) 30
3.3 格式输入输出 31
3.3.1 printf()函数(格式输出函数) 31
3.3.2 scanf(格式输入函数) 34
3.4 常用函数的使用 37
3.4.1 数学函数 38
3.4.2 字符处理函数 39
3.4.3 基本图形函数 40
3.5 顺序结构程序设计举例 41
本章小结 43
习题 44
第4章 选择和循环结构程序设计 47
4.1 语句概述 47
4.2 关系运算符和关系表达式 48
4.2.1 关系运算符及其优先次序 48
4.2.2 关系表达式 48
4.3 逻辑运算符和逻辑表达式 49
4.3.1 逻辑运算符及其优先次序 49
4.3.2 逻辑表达式 49
4.4.1 if语句 52
4.4 选择结构的程序设计 52
4.4.2 条件运算符 58
4.4.3 switch语句 60
4.5 循环结构的程序设计 63
4.5.1 while语句 64
4.5.2 do_while语句 68
4.5.3 for语句 70
4.5.4 循环的嵌套 74
4.5.5 break语句和continue语句 76
4.6 程序设计 78
本章小结 81
习题 82
8.10 返回指针值的函数 i 84
第5章 数组 88
5.1.1 一维数组的定义 88
5.1 一维数组的定义和引用 88
5.1.2 一维数组的引用 89
5.1.3 一维数组的初始化 89
5.1.4 一维数组程序举例 90
5.2 二维数组的定义和使用 91
5.2.1 二维数组的定义 91
5.2.2 二维数组的引用 92
5.2.3 二维数组的初始化 92
5.3.2 字符数组的初始化 94
5.3.1 字符数组的定义和引用 94
5.3 字符数组与字符串 94
5.3.3 字符数组与字符串的输入与输出 95
5.3.4 字符串处理函数 98
5.4 程序举例 103
本章小结 107
习题 107
第6章 函数 115
6.1 概述 115
6.2 函数的定义和调用 117
6.2.1 函数定义的一般形式 117
6.2.2 函数的参数和函数的值 119
6.2.3 函数的调用 123
6.3 函数的嵌套调用 126
6.4 函数的递归调用 127
6.5 变量的作用域和存储类别 132
6.5.1 局部变量和全局变量 133
6.5.2 变量存储类型 136
本章小结 140
习题 141
第7章 预处理命令 145
7.1 宏定义 145
7.1.1 无参宏定义 145
7.1.2 带参宏定义 148
7.2 “文件包含”处理 152
7.3 条件编译 153
本章小结 155
习题 155
第8章 指针 156
8.1 指针的概念 156
8.1.1 变量的地址与变量的内容 156
8.1.2 直接访问与间接访问 157
8.1.3 指针与指针变量 157
8.2 指针变量的定义与引用 157
8.2.1 指针变量的定义 157
8.2.2 指针变量的引用 158
8.3.1 指针的算术运算 161
8.3.2 指针的关系运算 161
8.3 指针运算 161
8.4 指针和数组 162
8.4.1 指针与一维数组 162
8.4.2 指针与二维数组 164
8.5 指针与字符串 167
8.6 指针数组和指向指针的指针 170
8.6.1 指针数组 170
8.6.2 指向指针的指针 172
8.7 指针与内存的动态分配 174
8.8 指针与数组作为函数的参数 177
8.8.1 指针变量作为函数的参数 177
8.8.2 数组名作为函数的参数 178
8.9 带参数的main函数 182
8.11 函数指针的定义与引用 186
8.11.1 函数指针的定义 186
8.11.2 函数指针变量的赋值 186
8.11.3 函数指针变量的引用 186
8.11.4 函数指针变量作为函数的参数 187
本章小结 190
习题 192
第9章 结构体、共用体及枚举型 196
9.1 结构体 196
9.1.1 结构体类型的定义 196
9.1.2 结构体变量的定义和引用 197
9.1.3 简化结构体类型名 200
9.1.4 结构体数组 200
9.2 指向结构体类型数据的指针 203
9.2.1 指向结构体变量的指针 203
9.2.2 指向结构体类型数据的指针 205
9.3 共用体及枚举型 207
9.3.1 共用体 207
9.3.2 枚举型 210
本章小结 212
习题 213
10.2 文件类型及文件变量的定义 216
第10章 文件 216
10.1 文件的概述 216
10.3 文件操作 218
10.3.1 文件的打开 218
10.3.2 文件的关闭 219
10.4 文件的读写 220
10.4.1 fprintf()函数和fscanf()函数 220
10.4.2 fputc()函数和fgetc()函数 221
10.4.3 fputs()函数和fgets()函数 222
10.4.4 fread()函数和fwrite()函数 224
10.5 文件的定位 225
10.5.2 fseek()函数 226
10.5.1 rewind()函数 226
10.5.3 ftell()函数 227
10.6 文件应用举例 228
本章小结 229
习题 230
第11章 C++的面向对象基础知识 232
11.1 面向对象的程序设计概述 232
11.1.1 传统的程序设计方法 232
11.1.2 面向对象的程序设计方法 233
11.2 C++对C的扩充 236
11.2.1 C++语言源程序的编译 236
11.2.2 基本数据类型 237
11.2.3 变量的定义 240
11.2.4 常量说明 242
11.2.5 C++的函数原型 243
11.2.6 C++的注释语句 244
11.2.7 C++的标准I/O操作 244
11.2.8 函数参数的缺省 247
11.3 C++程序结构 247
11.4 面向对象程序设计的重要特征 249
11.4.1 类 249
11.4.2 对象 253
11.4.3 构造函数和析构函数 255
11.4.4 继承性 259
11.4.5 作用域运算符 261
11.4.6 动态内存分配 262
11.4.7 多态性 263
本章小结 265
习题 265
附录 271
附录1 可见字符与ASCII代码对照表 271
附录2 由ANSI标准定义的32个关键字 272
附录3 运算符的优先级和结合方向 273
附录4 C语言的常用库函数 274
参考文献 305
后记 306