第一部分入门篇 3
第1章C语言的产生及其工作流程 3
1.1 C语言的产生 3
1.2程序和程序设计 3
1.2.1 C程序 3
目录 3
1.2.2程序设计 4
习题 4
第2章C程序设计的初步知识 5
2.1 简单C程序的构成和格式 5
2.2常量、变量和标识符 6
2.2.1标识符 6
2.2.2常量 7
2.2.3 用定义一个符号名的方法来代表一个常量 7
2.3.1 整型常量 8
2.3.2整型变量 8
2.3整型数据 8
2.2.4变量 8
2.4实型数据 9
2.4.1 实型常量 9
2.4.2实型变量 9
2.5字符型数据 10
2.5.1 字符常量 10
2.5.2字符串常量 11
2.5.3字符变量 11
2.6算术表达式 11
2.6.1 基本的算术运算符 11
2.6.2 运算符的优先级、结合性和算术表达式 12
2.6.3强制类型转换表达式 13
2.7赋值表达式 13
2.7.1 赋值运算符和赋值表达式 13
2.7.2赋值运算中的类型转换 14
习题 15
3.1复合语句和空语句 16
3.1.1 复合语句 16
3.1.2空语句 16
3.2程序举例 16
第3章 顺序结构程序 16
习题 17
第4章 选择结构 19
4.1关系运算和逻辑运算 19
4.1.1 C语言中的逻辑值 19
4.1.2关系运算符和关系表达式 19
4.1.3 逻辑运算符和逻辑表达式 20
4.2 if语句和用if语句构成的选择结构 21
习题 22
5.1.1 for语句构成的循环结构 25
5.1.3 有关for语句的说明 25
5.1.2 for循环的执行过程 25
第5章循环结构 25
5.1 for语句和用for语句构成的循环结构 25
5.2循环结构的嵌套 27
习题 28
第6章 函数 30
6.1 函数的定义和返回值 30
6.1.1 函数定义的语法 30
6.1.2 函数的返回值 30
6.2.2 函数调用时的语法要求 32
6.2函数的调用 32
6.2.1 函数的调用方式 32
6.3 函数的说明 33
6.3.1 函数说明的形式 33
6.3.2函数说明的位置 34
6.4调用函数和被调用函数之间的数据传递 34
6.5库函数 36
6.6.1 printf函数(格式输出函数) 37
6.6数据输入输出及常用库函数 37
6.6.2 scanf函数(格式输入函数) 39
6.6.3 调用putchar和getchar函数输出和输入字符 40
6.7程序举例 41
习题 43
第7章 数组 45
7.1 一维数组的定义和一维数组元素的引用 45
7.1.1一维数组的定义 45
7.1.2一维数组元素的引用 46
7.1.3一维数组的初始化 46
7.1.4一维数组的定义和数组元素引用举例 47
7.2 函数之间对一维数组和数组元素的引用 47
7.2.1 数组元素做实参 47
7.2.2数组名做实参 49
7.3一维数组应用举例 50
7.4.1 字符数组的定义 53
7.4字符数组 53
7.4.2字符数组的初始化 54
7.4.3 字符数组的引用 54
7.4.4 字符串与字符串结束标志 55
7.4.5 字符数组的输入输出 56
7.4.6 字符串处理函数 58
7.4.7字符数组应用举例 60
习题 61
第8章 文件 63
8.1 C语言文件的概念 63
8.2打开文件 64
8.3 关闭文件 65
8.4调用getc(fgetc)和putc(fputc)等常用函数进行输入和输出 65
8.5判断文件结束函数feof 68
习题 69
9.1算法 73
第9章算法 73
第二部分提高篇 73
9.2结构化程序设计和模块化结构 74
9.2.1结构化程序 74
9.2.2模块化结构 76
习题 76
第10章结构体和用户定义类型 78
10.1结构体类型 78
10.1.1 结构体类型的说明 78
10.1.2 结构体类型的变量、数组的定义 80
10.1.3 给结构体变量、数组赋初值 81
10.1.4 引用结构体变量中的数据 82
10.1.5结构体数组应用举例 84
10.2 typedef说明一种新类型名 85
习题 87
11.1地址和指针 89
第11章指针、链表和动态内存分配 89
11.2指针变量的定义和指针变量的基类型 90
11.3指针变量的赋值及基本操作 91
11.3.1 给指针变量赋地址值 91
11.3.2给指针变量赋“空”值 91
11.3.3通过指针来引用一个存储单元 92
11.3.4移动指针 94
11.4.1 形参为指针变量时,实参和形参之间的数据传递 95
11.4函数之间地址值的传递 95
11.3.5指针比较 95
11.4.2 通过传送地址值,在被调用函数中直接改变调用函数中变量的值 96
11.4.3 函数返回地址值 97
11.5动态存储分配 98
11.6链表的建立及基本操作 100
11.6.1 结构体中含有可以指向本结构体的指针成员 100
11.6.2动态链表的概念 101
11.7.2通过指针引用数组元素 106
11.7数组指针和指向数组的指针变量 106
11.7.1 指向数组元素的指针 106
11.7.3数组名做函数参数 110
11.8字符串的指针和指向字符串的指针变量 120
11.8.1 字符串的表示形式 120
11.8.2字符串指针做函数参数 123
11.8.3 对使用字符指针变量和字符数组的讨论 125
11.9用结构体变量和指向结构体的指针做函数参数 128
习题 130
第12章 多维数组 132
12.1二维数组的定义和引用 132
12.1.1 二维数组的定义 132
12.1.2二维数组的引用 132
12.2二维数组的初始化 133
12.3二维数组应用举例 134
习题 136
12.4多维数组的定义和引用 136
第13章 选择结构 138
13.1 swittch语句以及用switch语句和break语句构成的选择结构 138
13.1.1 switch语句 138
13.1.2 switch语句的执行过程 138
13.1.3在switch语句体中使用break语句 140
13.2语句标号和goto语句(选讲内容) 141
13.2.1语句标号 141
13.2.2 goto语句 141
13.3嵌套的if语句(选讲内容) 142
习题 145
第14章 循环结构 147
14.1 while语句和用while语句构成的循环结构 147
14.1.1 while循环的一般形式 147
14.1.2 while循环的执行过程 147
14.2.2 do-while循环的执行过程 149
14.2.1 do-while语句的循环结构 149
14.2 do-while语句和用do-while语句构成的循环结构 149
14.3 break和continue语句在循环体中的应用 151
14.3.1 break语句 151
14.3.2 continue语句 151
14.4程序举例 152
习题 154
第15章 函数 157
15.1 函数的嵌套调用 157
15.2函数的递归调用 160
15.3带命令行参数的主函数(指针数组做main函数的形参) 166
15.3.1指针数组 166
15.3.2指针数组做main函数的形参 167
习题 169
第16章文件 171
16.1文件指针 171
16.2流式文件操作 172
16.3文件定位函数 173
16.3.1 fseek函数 173
16.3.2 ftell函数 174
16.3.3 rewind函数 174
习题 174
第17章 自加、自减、逗号和位操作符和条件表达式构成的选择结构 177
17.1 自加(++)、自减(--)运算符和逗号运算符 177
17.2复合的赋值表达式 178
17.3逗号运算符和逗号表达式 178
17.4位运算 178
17.4.1位运算符 178
17.4.2位运算符的运算功能 179
17.5条件表达式构成的选择结构 181
习题 182
18.1.3共用体数据类型 184
18.1.2无符号型数据 184
18.1.1 短整型和长整型数据 184
18.1其他变量类型 184
第18章 其他变量类型、变量的作用域、变量的存储类别和编译预处理 184
18.2局部变量和全局变量 187
18.2.1 局部变量 187
18.2.2全局变量 188
18.3变量的存储类别 191
18.3.1 动态存储方式和静态存储方式 191
18.3.2 auto变量 192
18.3.3用static声明局部变量 192
18.3.4 register变量 194
18.3.5用extern声明外部变量 196
18.3.6用static声明外部变量 198
18.3.7关于变量的声明和定义 198
18.3.8存储类别小结 199
18.4.1宏替换 201
18.4编译预处理 201
18.4.2文件包括 204
18.4.3 条件编译(选讲内容) 204
18.5如何运行一个多文件的程序 207
习题 208
第19章C++对C的扩充 211
19.1 C++的特点 211
19.2最简单的C++程序 211
19.3 C++的输入输出 212
19.3.1 用cout进行输出 213
19.3.2用cin进行插入 214
19.4函数的重载 214
19.5带缺省参数的函数 217
19.6变量的引用类型 218
19.6.1 引用的类型 218
19.6.2 引用的简单说明 218
19.6.3 引用作为函数参数 219
19.7内置函数 221
19.8作用域运算符 222
19.9动态分配/撤销内存的运算符new和delete 223
19.10小 结 224
第20章 C++的面向对象基础 226
20.1 概述 226
20.2类和对象 227
20.3构造函数和析构函数 230
20.3.1 构造函数 230
20.3.2 析构函数 232
20.4继承与派生 235
20.4.1 继承与派生的概念 235
20.4.2 建立派生类的方法 237
20.4.3 公用派生类 238
20.4.4私有派生类 240
20.4.5保护成员 241
20.4.6派生类的构造函数 242
20.4.7 继承在软件开发中的重要意义 245
附录及参考文献 246
附录Ⅰ 美国标准信息交换码——ASCⅡ码表 246
附录Ⅱ C语言中的关键字 247
附录Ⅲ C语言类型转换规则 248
附录Ⅳ C语言中运算符的优先级和结合性 249
附录Ⅴ C语言常用语法提要 252
附录Ⅵ C库函数 256
附录Ⅶ C语言转义字符 262
附录Ⅷ 常见错误分析和程序调试 263
附录Ⅸ 程序调试 277
附录Ⅹ Turbo C 2.0集成环境简介 279
附录Ⅺ 如何在Windows XX和无盘环境下使用Turbo C 2.0 289
附录Ⅻ 计算机水平测试系统使用说明 295
参考文献 297