程序设计教程:用C/C++语言编程
作者 : 周纯杰 何顶新 周凯波 彭刚 张惕远 编著
出版日期 : 2016-05-23
ISBN : 978-7-111-53386-3
定价 : 49.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 380
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

本书采取循序渐进、突出重点、分散难点的编写方法,系统地介绍作为ANSI C++内核的C语言的基本语法和程序设计方法。在此基础上,简单介绍了如何从C过渡到C++以及C++的主要基础知识。为便于读者学习与复习,每章都有精选的例题、习题,并附有小结,所有例题都是经过上机检验的。为了满足读者上机练习的需要,书后还给出了5个附录,介绍C语言中常用库函数、Borland C++V 3.1集成环境下运行C语言程序的方法,以及在上机过程中常见的编译错误及其原因。

图书特色

本书在作者20多年C/C++语言教学,特别是项目开发的基础上,站在初学者的角度,在注重基础知识学习的同时,以培养学生良好的编程规范意识和编程思想为重点,精心编写, 例程丰富,层次感强,非常适合作为学习C/C++语言的课程教材。
本书特色:
充分考虑到初学者的特点,全书采取了循序渐进、逐层推进的编写方式。
重视学生的编程思想和编程规范意识的培养。在本书中,无论是一个简单的程序,还是相对复杂的程序,都充分体现了编程思想并力求做到编程(书写和编程设计)规范。
注重引导学生如何进行程序设计,包括简单的程序设计和复杂的程序设计。另外,书中精选了大量例题,这些例题实用性强,都经过了上机验证。

图书前言

C语言已经成为全球程序员的公共语言,具有功能丰富、表达力强、使用灵活方便、应用面广、目标效率高及可移植性好等特点;既具有高级语言的优点,又具有低级语言的许多特点。因此,C语言在系统软件和应用软件的开发中得到了广泛的应用。
现在,我国高等学校的理工科专业都开设了C语言课程,并将之作为第一门计算机语言课程,有的甚至开设了C++课程,因此,我们认为作为高校的第一门计算机语言课程,由于其开课时间大多在一年级,在C语言的教学中应注意教学内容的循序渐进,特别要注意对学生编程思想和编程规范意识的培养,走好第一步;在此基础上,根据课时安排,适当扩充C语言的内容,讲授一些C++的基础知识。2005年,我们出版了《标准C语言程序设计及应用》,该书受到了广大读者的好评,如视角新颖、概念清楚、贴近实际应用、注意规范等,被国内多所高校相继在教学中采用。为了适应当前高校计算机教育的发展和教学改革的需要,我们总结多年教学经验,编写了本教材。本教材的特点体现在如下几个方面。
1)充分考虑到初学者的特点,整个教材采取了循序渐进、逐层推进的编写方式,如先介绍数据和表达式,再介绍简单程序设计及流程控制。
2)考虑到函数是C语言程序设计的核心和重点,较早地引入函数对学生加深C语言模块化的理解和应用是有帮助的,因此将“函数”这一章放在讲述简单程序设计和流程控制后,在“函数”这一章,主要介绍函数的基础部分,随后在讲述数组、指针、字符串及结构体等内容时再将函数不断深入。
3)重视学生的编程思想和编程规范意识的培养。在本书中,不论是一个简单的程序(一个函数,几条语句),还是相对复杂的程序,都充分体现了编程思想并力求做到编程(书写和编程设计)规范。
4)字符串是一类特殊的数据类型,在C语言的教学中有特殊的地方,学生最初对其理解起来会较为困难,这也是教学的难点之一。深刻体会字符串对学习指针和函数有很大的帮助,这一部分内容相对独立,所以本书将字符串单独作为一章,以利于学生的学习。
5)建立在C语言语法和基本结构之上的C++近年来得到了很好的发展和应用,为了使读者对C及C++有全面的了解,专门增加了3章,即第11章、第12章和第13章,第11章介绍了C和C++应用场合的区别,如何从C快速过渡到C++,第12章和第13章则主要介绍C++的基础,包括继承与多态方面的知识,供读者选用。
6)我们认为,学习计算机语言的最终目的是能够亲自动手编程,所以在教材中非常注意引导学生如何进行程序设计,包括简单的程序设计和复杂的程序设计。另外,在教材中我们还精选了大量例题,这些例题实用性强,都经过了上机验证。
在撰写本书的过程中,既参考了国内外多种教材,也融入了作者多年在华中科技大学自动化学院及电子与信息学院从事教学和科研的实践经验及体会,同时还吸收了同行专家学者们的建议。
本书由周纯杰教授、何顶新副教授、周凯波副教授和彭刚副教授进行整体规划,周纯杰教授完成统稿工作,其中第1章、第2章、第9章和第10章由周凯波副教授撰写,第3章和第5章由何顶新副教授撰写,第11章由张惕远讲师和彭刚副教授撰写,第12章由张惕远讲师撰写,第13章由彭刚副教授撰写,第4章、第6章、第7章、第8章和本书的其余部分由周纯杰教授撰写。
本书的出版得到了华中科技大学自动化学院及教务处的领导和同事们的关心与支持,机械工业出版社的有关同志为其出版也付出了辛勤的劳动,硕士研究生胡博文对资料的整理和程序的验证进行了有效的工作,另外硕士研究生彭源、张婷、汤晓庆、常昊、刘博、樊旭、姚干、徐高峰、邹育桃、曾玲也进行了部分资料整理和程序验证工作。在此一并表示感谢!
由于作者水平有限,书中疏漏或错误之处恳请广大读者批评指正。

编 者
2015年12月于华中科技大学

上架指导

计算机\程序设计

封底文字

本书在作者20多年C/C++语言教学,特别是项目开发的基础上,站在初学者的角度,在注重基础知识学习的同时,以培养学生良好的编程规范意识和编程思想为重点,精心编写, 例程丰富,层次感强,非常适合作为学习C/C++语言的课程教材。
本书特色:
·充分考虑到初学者的特点,全书采取了循序渐进、逐层推进的编写方式。
·重视学生的编程思想和编程规范意识的培养。在本书中,无论是一个简单的程序,还是相对复杂的程序,都充分体现了编程思想并力求做到编程(书写和编程设计)规范。
·本书非常注意引导学生如何进行程序设计,包括简单的程序设计和复杂的程序设计。另外,书中精选了大量例题,这些例题实用性强,都经过了上机验证。

图书目录

前  言
教学建议
第1章 概论1
1.1 C语言的入门知识1
1.1.1 计算机中的数据1
1.1.2 二进制编码系统3
1.1.3 微型计算机硬件的基本组成4
1.1.4 计算机系统的层次结构5
1.2 C语言的发展及特点8
1.2.1 C语言的发展过程8
1.2.2 C语言的特点9
1.3 C语言概览10
1.3.1 C语言程序的书写格式10
1.3.2 C语言程序的结构特点12
1.4 C语言的基本语法单位13
1.4.1 标识符14
1.4.2 关键字14
1.4.3 分隔符15
1.5 简单的输入/输出15
1.5.1 格式化输入/输出函数15
1.5.2 字符输入/输出函数17
1.6 运行C程序的一般步骤17
本章小结18
习题118
第2章 数据类型、运算符和表达式19
2.1 数据类型19
2.2 常量19
2.2.1 整型常量19
2.2.2 浮点型常量20
2.2.3 字符型常量21
2.2.4 字符串常量22
2.2.5 符号常量23
2.3 变量23
2.3.1 整型变量24
2.3.2 浮点型变量24
2.3.3 字符变量25
2.3.4 指针变量26
2.4 运算符和表达式26
2.4.1 表达式26
2.4.2 算术运算符与算术表达式27
2.4.3 关系运算符与关系表达式28
2.4.4 逻辑运算符与逻辑表达式28
2.4.5 自增和自减运算29
2.4.6 赋值运算符与赋值表达式30
2.4.7 条件运算符与条件表达式31
2.4.8 逗号运算符与逗号表达式31
2.5 位运算31
2.5.1 按位与运算符“&”32
2.5.2 按位或运算符“|”33
2.5.3 按位异或运算符“^”33
2.5.4 二进制左移运算符“<<”34
2.5.5 二进制右移运算符“>>”34
2.5.6 按位取反运算符“~”34
2.6 各类数值型数据间的混合运算35
2.6.1 自动类型转换35
2.6.2 运算符的优先级36
2.7 输入/输出的进一步讨论37
2.7.1 格式化输出函数printf38
2.7.2 格式输入函数scanf39
本章小结41
习题241
第3章 程序和流程控制45
3.1 C语言程序的版式及语句45
3.1.1 C语言程序的版式45
3.1.2C语言的语句47
3.2 结构化程序设计和流程控制48
3.2.1 结构化程序设计48
3.2.2 C语言的流程控制语句和辅助控制语句48
3.3 if语句49
3.3.1 if语句的标准形式49
3.3.2条件分支嵌套50
3.4 switch多分支选择语句52
3.5 循环控制55
3.5.1 while语句55
3.5.2 for语句56
3.5.3 do-while语句58
3.5.4 从一重循环到多重循环58
3.6 辅助控制语句61
3.6.1 break语句61
3.6.2 continue语句62
3.6.3 goto 语句和标号64
3.7 典型程序编写方法举例64
本章小结74
习题375
第4章 函数77
4.1 C语言程序结构及模块化设计77
4.1.1 结构化软件及其优越性77
4.1.2 C语言程序的结构79
4.2 C语言函数的定义、原型和调用79
4.2.1 函数的定义79
4.2.2 函数的调用81
4.2.3 参数数目可变的函数82
4.3 变量的存储类型83
4.3.1 概述83
4.3.2 自动型变量84
4.3.3 寄存器型变量87
4.3.4 外部参照型变量88
4.3.5 静态型变量91
4.4 函数间的数据传递94
4.4.1 使用函数参数在函数间传递数据94
4.4.2 使用返回值传递数据97
4.4.3 使用全局变量传递数据98
4.5 递归函数99
本章小结101
习题4101
第5章 数组105
5.1 数组的定义和应用105
5.1.1 一维数组的定义和应用105
5.1.2 二维数组的定义和应用107
5.2 数组在函数间的传递 110
5.2.1 数组元素在函数间的传递110
 5.2.2 数组在函数间的传递110
5.3 程序设计举例112
本章小结118
习题5119
第6章 指针120
6.1 基本概念120
6.1.1 指针变量的引入120
6.1.2 指针变量的定义与初始化121
6.1.3 指针的使用123
6.2 指针运算125
6.2.1 指针的算术运算125
6.2.2 指针的关系运算128
6.2.3 指针的赋值运算128
6.3 指针与数组131
6.3.1 一维数组与指针131
6.3.2 多维数组与指针137
6.4 指针数组与多级指针142
6.4.1 指针数组142
6.4.2 多级指针145
6.5 指针与函数150
6.5.1 返回指针的函数150
6.5.2 指向函数的指针153
6.6 综合应用158
本章小结162
习题6164
第7章 字符串167
7.1 字符串的基本概念167
7.1.1 字符167
7.1.2 字符串168
7.1.3 字符数组与字符指针168
7.2 字符串的相关库函数及其使用172
7.2.1 字符串输入输出函数173
7.2.2 字符串转换函数173
7.2.3 字符串处理函数174
7.2.4 字符串比较函数177
7.2.5 其他函数178
7.3 单个字符串的处理180
7.4 多个字符串的处理183
7.5 带参数的main函数186
7.6 综合举例188
本章小结196
习题7196
第8章 结构和联合202
8.1 结构及结构变量202
8.1.1 结构的定义202
8.1.2 结构变量的定义203
8.1.3 结构变量的使用形式和初始化204
8.2 结构数组与结构指针206
8.2.1 结构数组206
8.2.2 结构指针208
8.3 结构在函数间的数据传递212
8.4 位字段结构217
8.5 联合218
8.6 类型定义语句typedef221
8.6.1 用typedef语句定义新类型名221
8.6.2 新类型名的应用222
8.7 枚举类型224
8.7.1 枚举类型的定义和枚举变量的说明224
8.7.2 枚举类型的应用225
8.8 综合应用226
8.8.1 链表226
8.8.2 其他应用举例239
本章小结241
习题8241
第9章 C语言中的文件与图形247
9.1 文件的基本概念247
9.1.1 文本文件与二进制文件247
9.1.2 缓冲型文件系统247
9.2 文件类型指针248
9.3 文件操作与相关函数248
9.3.1 文件打开函数fopen ( )248
9.3.2 文件关闭函数fclose( )250
9.3.3 数据块读/写函数fread( )和fwrite( )250
9.3.4 格式化读/写函数fscanf( )和fprintf( )251
9.3.5 读/写字符函数fgetc( )和fputc( )251
9.3.6 读/写字符串函数fgets( )和fputs()251
9.3.7 rewind函数252
9.3.8 fseek函数252
9.3.9 文件检测函数252
9.4 文件函数应用综合举例253
9.5 C语言图形程序设计基本概念255
9.6 C语言中的图形函数255
9.6.1 初始化图形系统函数initgraph255
9.6.2 关闭图形系统函数closegraph256
9.6.3 设置画笔当前颜色及屏幕背景色257
9.6.4 画点及获取屏幕点的颜色257
9.6.5 设置线型及画直线257
9.6.6 画圆、椭圆、矩形及多边形258
9.6.7 填充图形函数259
9.7 图形方式下的文本常见操作函数260
9.7.1 视口操作函数261
9.7.2 图形方式下的文字输出261
9.7.3 屏幕图形的保存和恢复262
9.8 C语言图形操作综合应用举例263
本章小结264
习题9265
第10章 编译预处理268
10.1 宏定义268
10.1.1 不带参数的宏268
10.1.2 带参数的宏269
10.1.3 使用宏定义时应注意的问题270
10.2 文件包含271
10.3 条件编译272
10.4 其他编译预处理274
10.4.1 #error274
10.4.2 # pragma275
10.4.3 #line275
本章小结276
习题10277
第11章 从C到C++279
11.1 对象的思想279
11.1.1 从面向过程到面向对象279
11.1.2 类的说明280
11.1.3 C程序与C++程序对比281
11.2 从C到C++的过渡282
11.2.1 C++的I/O283
11.2.2 const和volatile访问修饰符283
11.2.3 引用286
11.2.4 作用域分辨符290
11.2.5 重载290
11.2.6 内联函数292
11.3 OOP设计思路294
11.3.1 面向对象程序设计的特征294
11.3.2 类设计示例295
11.3.3 类与结构体的区别297
本章小结298
习题11298
第12章 类与对象300
12.1 类的实例化—对象300
12.2 类的构造函数和析构函数301
12.2.1 构造函数301
12.2.2 重载构造函数和缺省构造函数302
12.2.3 析构函数304
12.3 new和delete306
12.4 this指针308
12.5 拷贝构造函数310
12.5.1 缺省拷贝构造函数311
12.5.2 自定义拷贝构造函数312
12.6 运算符重载314
12.7 类的特殊成员317
12.7.1 const成员317
12.7.2 静态成员321
12.8 对象成员324
12.9 对象数组与对象指针326
12.9.1 对象与数组326
12.9.2 对象与指针327
12.10 友元329
12.10.1 友元函数330
12.10.2 友元类332
本章小结333
习题12334
第13章 继承与多态335
13.1 继承的实现方式335
13.1.1 公有继承335
13.1.2 私有继承336
13.1.3 保护继承337
13.1.4 访问控制相关分析338
13.2 子类的构造函数顺序339
13.3 多继承342
13.3.1 多继承的概念342
13.3.2 多继承的构造函数342
13.3.3 多继承的二义性问题344
13.4 多态的实现方式346
13.4.1 虚函数的声明347
13.4.2 虚函数在派生类中的重新定义347
13.4.3 基类的析构函数是虚的351
13.5 虚函数表352
13.6 重载、隐藏和覆盖的区别355
本章小结357
习题13357
附录A ASCII码表362
附录B C语言中的关键字363
附录C C语言中的常用库函数364
参考文献369

教学资源推荐
作者: Richard Blum
作者: [英]理查德·伯德(Richard Bird) 著
作者: 邱李华 曹青 郭志强
参考读物推荐
作者: 徐顺发 编著
作者: (美)凯 S.霍斯特曼(Cay S. Horstmann)著
作者: 黄隽实 著