内容介绍
本书以Turbo C 为依据,以C语言为起点,全面地介绍C 语言的程序设计基础和面向对象的程序设计方法。全书分为两大部分,第一部分介绍C语言基础,第二部分介绍面向对象程序设计的概念和方法。
本书可作为高等学校程序设计语言课程的教材或参考书,也可供初学者自学参考。
目录
- 第一篇C语言基础
- 第1章对C语言的初步认识2
- 1.1程序与程序设计语言2
- 1.1.1程序、程序设计和程序设计语言2
- 1.1.2结构化程序设计方法3
- 1.2C语言及其源程序的基本结构4
- 1.2.1C语言4
- 1.2.2C语言源程序的基本结构5
- 1.2.3C语言的基本语句6
- 1.3C语言的基本词法7
- 1.3.1C语言的字符集7
- 1.3.2标识符8
- 1.3.3保留字8
- 1.3.4C语言的词类8
- 1.4源程序的编译和C语言的集成开发环境8
- 1.4.1C程序的开发过程8
- 1.4.2C语言的集成开发环境9
- 小结11
- 习题11
- 第2章基本数据类型、操作符和表达式12
- 2.1数据类型12
- 2.2整型数据13
- 2.2.1整型常量13
- 2.2.2整型变量13
- 2.3实型数据14
- 2.3.1实型常量14
- 2.3.2实型变量15
- 2.4字符型数据与字符串15
- 2.4.1字符型常量15
- 2.4.2字符型变量15
- 2.4.3字符串常量16
- 2.5变量说明与初始化17
- 2.5.1变量说明(定义)17
- 2.5.2变量的初始化17
- 2.6运算符和表达式17
- 2.6.1运算符17
- 2.6.2表达式18
- 2.6.3表达式中数据类型的转换20
- 小结22
- 习题22
- 第3章顺序结构程序设计24
- 3.1算术运算符和赋值运算符24
- 3.1.1算术运算符与算术表达式24
- 3.1.2赋值运算符与赋值表达式25
- 3.1.3自反赋值运算符26
- 3.2赋值语句和注释语句27
- 3.2.1赋值语句27
- 3.2.2注释语句27
- 3.3输入输出语句28
- 3.3.1字符输出函数putchar()29
- 3.3.2字符输入函数getchar()29
- 3.3.3格式输出函数printf()30
- 3.3.4格式输入函数scanf()32
- 3.4顺序结构程序设计34
- 小结36
- 习题37
- 第4章选择结构程序设计39
- 4.1关系运算符及关系运算表达式39
- 4.2逻辑运算符及逻辑表达式41
- 4.3选择语句43
- 4.3.1单分支if选择语句43
- 4.3.2双分支if_else选择语句44
- 4.3.3多分支结构45
- 4.3.4多分支开关语句switch49
- 4.4选择结构程序设计50
- 4.5条件运算符54
- 小结56
- 习题56
- 第5章循环结构程序设计58
- 5.1逗号运算符和逗号表达式58
- 5.2goto语句59
- 5.3循环语句60
- 5.3.1for循环语句60
- 5.3.2while循环语句64
- 5.3.3do_while循环语句65
- 5.4多重循环——循环的嵌套67
- 5.5break语句和continue语句69
- 5.5.1break语句69
- 5.5.2continue语句70
- 5.6循环程序设计71
- 小结76
- 习题76
- 第6章位运算78
- 6.1位运算符及位运算表达式78
- 6.2位逻辑运算79
- 6.3移位运算81
- 6.4位自反赋值运算83
- 小结84
- 习题84
- 第7章数组与字符串85
- 7.1一维数组85
- 7.1.1一维数组的定义85
- 7.1.2数组元素的引用86
- 7.1.3一维数组的初始化87
- 7.1.4一维数组程序设计88
- 7.2多维数组92
- 7.2.1多维数组的定义和引用92
- 7.2.2二维数组的初始化93
- 7.2.3二维数组程序设计94
- 7.3字符数组与字符串96
- 7.3.1字符数组的定义与初始化96
- 7.3.2字符串与字符数组97
- 7.4常用的字符串系统库函数99
- 7.4.1字符串输入函数gets()100
- 7.4.2字符串输出函数puts()100
- 7.4.3字符串复制函数strcpy()100
- 7.4.4字符串连接函数strcat()101
- 7.4.5字符串比较函数strcmp()101
- 7.4.6测试字符串长度函数strlen()102
- 7.5字符数组程序设计实例102
- 小结104
- 习题104
- 第8章指针106
- 8.1指针的概念106
- 8.1.1指针和指针变量106
- 8.1.2指针变量的定义108
- 8.2指针运算符和指针变量的初始化108
- 8.2.1指针运算符108
- 8.2.2指针变量的初始化110
- 8.2.3指针运算与指针表达式110
- 8.2.4用指针处理简单变量112
- 8.3数组的指针114
- 8.3.1指向一维数组的指针114
- 8.3.2指向二维数组的指针116
- 8.4用指针处理字符串121
- 8.5指针数组123
- 8.6多级指针125
- 小结128
- 习题128
- 第9章函数130
- 9.1函数概述130
- 9.2函数的定义、调用和返回131
- 9.2.1函数的定义131
- 9.2.2函数的返回132
- 9.2.3函数的调用133
- 9.2.4函数原型的使用134
- 9.2.5指针类型函数136
- 9.3函数参数的传递方式137
- 9.3.1值传递方式137
- 9.3.2地址传递方式138
- 9.3.3数组作为函数参数138
- 9.4函数指针139
- 9.5函数的嵌套调用和递归调用142
- 9.5.1函数的嵌套调用142
- 9.5.2函数的递归调用143
- 9.6主函数main()的参数144
- 9.6.1主函数main()的参数144
- 9.6.2函数main()的返回值147
- 小结148
- 习题148
- 第10章数据的存储类型150
- 10.1变量在内存中的存储150
- 10.2局部变量和全局变量150
- 10.2.1局部变量151
- 10.2.2全局变量151
- 10.3变量的存储类型153
- 10.3.1局部变量的存储定义154
- 10.3.2全局变量的存储定义156
- 10.3.3变量存储类型小结158
- 10.4内部函数和外部函数158
- 10.4.1内部函数与外部函数158
- 10.4.2在Turbo C 集成环境下编译多文件程序159
- 10.5动态存储单元160
- 10.6修饰符const161
- 小结162
- 习题163
- 第11章用户定义数据类型164
- 11.1结构型(Structure)164
- 11.1.1结构型的定义164
- 11.1.2结构型变量的定义165
- 11.1.3结构型变量的初始化167
- 11.1.4结构型变量成员的引用167
- 11.1.5结构型变量作为函数的参数170
- 11.2结构型数组171
- 11.2.1结构型数组的定义和初始化171
- 11.2.2结构型数组元素成员的引用172
- 11.3指向结构型数据的指针173
- 11.3.1指向结构型变量指针的定义、初始化和引用173
- 11.3.2结构型变量指针的应用举例174
- 11.3.3指向结构型数组的指针177
- 11.4位域型(Bit_Fields)178
- 11.4.1位域型的定义178
- 11.4.2位域型变量的说明和初始化179
- 11.4.3位域型变量的引用179
- 11.5联合型(Unions)180
- 11.5.1联合型的定义180
- 11.5.2联合型变量的说明181
- 11.5.3联合型变量的引用181
- 11.6枚举型(Enumerations)185
- 11.6.1枚举型的定义185
- 11.6.2枚举型变量的定义185
- 11.6.3枚举型变量的引用186
- 11.7用户自定义数据类型名称188
- 小结189
- 习题190
- 第12章C语言的预处理器192
- 12.1宏定义和宏替换192
- 12.1.1不带参数的宏定义和引用192
- 12.1.2带参数的宏定义和引用195
- 12.1.3取消宏定义197
- 12.2文件包含197
- 12.3条件编译199
- 12.3.1#if_#endif类型的条件编译命令199
- 12.3.2#ifdef和#ifndef类型的条件编译命令200
- 小结201
- 习题202
- 第13章磁盘文件操作(I/O系统)203
- 13.1文件概述203
- 13.1.1C语言文件的概念203
- 13.1.2二进制文件和文本文件203
- 13.1.3顺序文件和随机文件204
- 13.1.4缓冲文件系统和非缓冲文件系统204
- 13.1.5文件型指针204
- 13.2打开文件和关闭文件205
- 13.2.1打开文件函数205
- 13.2.2关闭文件函数207
- 13.2.3标准设备文件207
- 13.3文件的读和写208
- 13.3.1字符文件读写函数208
- 13.3.2文件尾测试函数、错误测试函数和文件头定位函数210
- 13.3.3字符串文件读写函数212
- 13.3.4数据块文件读写函数213
- 13.3.5格式化读写文件函数218
- 13.4文件的定位与文件的随机存取220
- 13.4.1文件随机定位函数220
- 13.4.2随机读写文件举例221
- 13.4.3当前位置函数ftell()223
- 小结223
- 习题224
- 第二篇C 面向对象程序设计
- 第14章C 概述226
- 14.1面向对象的程序设计226
- 14.1.1传统的程序设计方法226
- 14.1.2面向对象的程序设计227
- 14.2面向对象方法的基本特征227
- 14.2.1对象227
- 14.2.2类228
- 14.2.3继承(inheritance)228
- 14.2.4多态性(polymorphism)229
- 14.3C 对C语法的扩充229
- 14.3.1变量的定义229
- 14.3.2C 的函数原型230
- 14.3.3常数说明230
- 14.3.4C 的注释语句231
- 14.3.5C 的标准I/O操作232
- 14.3.6作用域区分符233
- 14.3.7函数参数的缺省234
- 14.3.8引用型变量235
- 14.3.9内联函数236
- 14.3.10动态内存的分配237
- 小结239
- 习题239
- 第15章类240
- 15.1类的结构240
- 15.1.1类的定义240
- 15.1.2类成员函数的定义241
- 15.1.3类的对象的定义与访问242
- 15.2类中的内联函数245
- 15.2.1用修饰符inline说明成员函数245
- 15.2.2隐式内联函数246
- 15.3类的友元成员246
- 15.3.1定义友元函数247
- 15.3.2定义友元成员函数247
- 15.3.3定义友元类249
- 15.4类的静态成员250
- 15.4.1静态数据成员250
- 15.4.2静态成员函数251
- 15.5对象作为函数的参数252
- 15.5.1值传递252
- 15.5.2引用传递253
- 15.6类的指针254
- 15.6.1对象指针254
- 15.6.2this指针256
- 小结257
- 习题258
- 第16章类的工具259
- 16.1构造函数和析构函数259
- 16.1.1不带参数的构造函数259
- 16.1.2析构函数260
- 16.1.3带参数的构造函数262
- 16.1.4构造函数参数的缺省值263
- 16.2函数重载264
- 16.2.1一般函数的重载264
- 16.2.2构造函数重载265
- 16.2.3重载类成员函数266
- 16.2.4构造函数的动态初始化267
- 16.3运算符重载268
- 16.3.1用成员函数重载运算符269
- 16.3.2用友元函数重载运算符271
- 16.4对象的动态存储管理273
- 小结275
- 习题276
- 第17章类的继承278
- 17.1继承278
- 17.1.1继承与派生类278
- 17.1.2公有派生279
- 17.1.3私有派生280
- 17.2继承机制中的初始化282
- 17.2.1不带参数的基类构造函数282
- 17.2.2带参数的基类构造函数283
- 17.3多重继承286
- 17.3.1多重继承的继承机制286
- 17.3.2指向派生类的指针288
- 17.4虚基类290
- 17.4.1多重继承中的二义性290
- 17.4.2虚基类292
- 小结294
- 习题294
- 第18章虚函数与多态性297
- 18.1虚函数297
- 18.1.1虚函数的概念297
- 18.1.2虚函数的应用299
- 18.2纯虚函数和抽象基类303
- 18.2.1纯虚函数303
- 18.2.2抽象基类304
- 18.3编译连接与执行连接305
- 小结305
- 习题305
- 第19章C 的I/O系统308
- 19.1C 的I/O系统概述308
- 19.1.1C 的I/O流的基本概念308
- 19.1.2输入/输出操作符的使用310
- 19.2用户自定义插入操作符和提取操作符310
- 19.2.1创建插入操作符“<<”310
- 19.2.2重载提取操作符“>>”313
- 19.3格式化I/O314
- 19.3.1用ios类的成员函数实现格式化I/O314
- 19.3.2使用控制器函数实现格式化I/O318
- 19.3.3建立自己的控制器函数319
- 19.4文件的I/O321
- 19.4.1打开和关闭文件321
- 19.4.2文件的读和写324
- 19.4.3二进制文件的读和写328
- 19.4.4文件的随机访问329
- 小结331
- 习题332
- 附录1实验指导书333
- 附录2常用Turbo C库函数343
- 附录3常用字符的ASCⅡ345
- 参考资料346