1C语言概述 1
1.1C语言的由来与发展 1
1.2C语言的特点 2
1.3C语言的基本结构 3
1.3.1字符集 3
1.3.2标识符 3
1.3.3关键字 4
1.3.4运算符 5
1.3.5C程序的结构 6
1.3.6C程序的书写 7
1.4C程序的上机方法 8
1.4.1C程序实现步骤 8
1.4.2程序的执行 9
1.4.3TURBO C上机操作 9
1.4.4UNIX操作系统中运行C程序 11
习题 11
2数据类型与表达式 12
2.1C的数据类型 12
2.1.1整型 12
2.1.2浮点型 14
2.1.3字符型 15
2.1.4逻辑类型 17
2.2标准函数 18
2.3数据的定义方法 19
2.3.1常量定义 19
2.3.2变量定义 19
2.4表达式 20
2.4.1表达式的组成 20
2.4.2表达式的书写 21
2.4.3表达式的分类 21
2.4.4表达式的计算 22
2.4.5数据类型转换 22
2.4.6算术表达式 24
2.4.7赋值表达式 25
2.4.8逻辑表达式 28
2.4.9位运算表达式 28
2.4.10其他表达式 30
习题 32
3C程序设计初步 34
3.1程序和程序设计 34
3.1.1程序和程序设计的概念 34
3.1.2评价一个程序系统的标准 35
3.1.3用先进的程序设计理论指导程序设计 37
3.2程序设计风格 38
3.3结构化程序设计方法 40
3.3.1限制使用GOTO语句 41
3.3.2结构化程序设计的三种基本结构 41
3.3.3结构化流程图 43
3.3.4自顶向下逐步求精 44
3.4说明语句 45
3.5赋值语句 46
3.6数据输入函数 47
3.6.1getchar()函数 47
3.6.2scanf()函数 47
3.7数据输出函数 49
3.7.1putchar()函数 49
3.7.2printf()函数 51
3.8简单的程序设计举例 55
习题 58
4分支结构程序 61
4.1条件语句 61
4.1.1简单的条件语句 61
4.1.2if-else语句 62
4.1.3else-if形式 64
4.1.4if语句的嵌套 65
4.1.5条件运算符 67
4.2switch语句 69
4.3复合语句和程序举例 71
习题 76
5循环控制结构 78
5.1while语句 78
5.2do-while语句 81
5.3for语句 82
5.4循环的嵌套 86
5.5goto语句continue语句break语句 88
5.5.1goto语句 88
5.5.2continue语句 89
5.5.3break语句 90
5.6程序举例 91
习题 98
6数组及其应用 101
6.1数组概述 101
6.1.1数组的概念 101
6.1.2数组的分类 101
6.1.3数组在内存中的存放 101
6.2一维数组 102
6.2.1一维数组的定义与引用 102
6.2.2一维数组的初始化 103
6.2.3一维数组程序举例 104
6.3二维数组 106
6.3.1二维数组的定义与引用 106
6.3.2二维数组的初始化 107
6.3.3二维数组程序举例 108
6.4字符数组 110
6.4.1字符数组的定义 110
6.4.2字符数组的初始化 11
6.4.3字符数组的输入输出 114
6.4.4字符串处理函数 115
6.4.5字符数组应用举例 118
习题 120
7编译预处理 121
7.1宏定义 121
7.1.1不带参数的宏定义 121
7.1.2带参数的宏定义 124
7.2文件包含 125
7.3条件编译 125
习题 129
8函数与变量 132
8.1函数概述 132
8.1.1C函数间的调用关系 132
8.1.2C函数的分类 133
8.1.3C语言源程序的编译、连接 134
8.2库函数 134
8.2.1库函数概述 134
8.2.2库函数的分类 134
8.2.3库函数的调用方法 134
8.3函数的定义 135
8.3.1函数的定义 135
8.3.2空函数 136
8.4函数参数与函数的返回值 137
8.4.1形式参数和实际参数 137
8.4.2函数的返回值 138
8.5函数的调用 141
8.5.1函数调用的过程 141
8.5.2函数调用的一般形式 141
8.5.3函数调用的方式 142
8.5.4数据复制方式与地址传送方式传递数据 142
8.5.5对被调用函数的说明 145
8.6函数的嵌套与递归 147
8.6.1函数的嵌套调用 147
8.6.2函数的递归调用 150
8.7局部变量与全局变量 153
8.7.1局部变量 153
8.7.2全局变量 154
8.8变量的存储类型 156
8.8.1存储器类型与变量的生存期 156
8.8.2变量的存储类型 156
8.8.3变量存储类型小结 161
习题 161
9指针 162
9.1指针的概念与其变量的定义 162
9.1.1指针的概念 162
9.1.2指针变量的定义 163
9.1.3指针的运算 164
9.2指针与数组 166
9.2.1指向一维数组的指针变量 166
9.2.2数组名作函数参数 169
9.2.3指向二维数组的指针变量 171
9.2.4指向由n个整数组成的一维数组的指针变量 174
9.3指针与字符串 175
9.3.1字符串指针的表示 175
9.3.2字符串(指针)作函数参数 177
9.3.3字符指针变量与字符数组 179
9.4指针与函数 179
9.4.1指向函数的指针变量 179
9.4.2指针的函数 182
9.5指针的其他应用 183
9.5.1指针数组 183
9.5.2指向指针的指针 184
9.5.3数组作main函数的形参 185
9.6程序设计举例 186
习题 190
10结构体 共用体 链表 193
10.1结构体 193
10.1.1结构体类型的定义 193
10.1.2结构体变量的定义 194
10.1.3结构体变量的引用 196
10.1.4结构体变量的初始化 196
10.1.5结构体作函数参数 198
10.1.6嵌套结构体 199
10.2结构体数组 200
10.3共用体类型 202
10.3.1共用体类型的定义 202
10.3.2共用体变量的定义 202
10.3.3共用体变量的引用 204
10.4枚举类型 205
10.4.1枚举类型的定义 205
10.4.2枚举类型变量的定义 206
10.5链表 208
10.5.1单链表的数据描述 208
10.5.2单链表的建立 209
10.5.3单链表的基本操作 211
习题 213
11文件 215
11.1概述 215
11.2文件指针 215
11.3文件的打开与关闭 215
11.3.1文件的打开(fopen函数) 216
11.3.2文件关闭函数(fclose函数) 218
11.4文件的读写 218
11.4.1字符读写函数fgetc和fputc 218
11.4.2数据块读写函数fread和fwrite 221
11.4.3格式化读写函数fscanf和fprintf 223
11.4.4字符串读写函数fgets和fputs 223
11.5文件的随机读写 225
11.5.1文件定位 225
11.5.2文件的随机读写 226
11.5.3文件检测函数 227
习题 227
12C++语言概述 229
12.1面向对象程序设计方法 229
12.1.1什么是面向对象的程序设计方法 229
12.2C++与C的关系 229
12.2.1C++语言的起源 229
12.2.2C++语言与C语言的联系 230
12.2.3C++语言与C语言的主要区别 230
12.2.4C++语言与C语言的细小区别 230
12.3C++语言上机过程 233
习题 234
13类与对象 235
13.1类的定义和类的实例 235
13.1.1类的声明 235
13.1.2类的成员 236
13.1.3对象 239
13.2构造函数与析构函数 240
13.2.1初始化列表 240
13.2.2构造函数 241
13.2.3拷贝构造函数 243
13.2.4析构函数 245
13.3类的聚合 246
13.3.1类的聚合 246
13.3.2类的对象成员初始化 247
习题 249
14继承与派生 250
14.1C++的继承和派生机制 250
14.1.1派生类的定义 250
14.1.2派生类生成过程 251
14.1.3派生方式 252
14.2派生类中构造函数和析构函数 257
14.2.1派生类的构造函数 257
习题 259
附录 260
参考文献 271