新書推薦:
《
铝合金先进成型技术
》
售價:HK$
266.6
《
英雄之旅:把人生活成一个好故事
》
售價:HK$
87.4
《
分析性一体的涌现:进入精神分析的核心
》
售價:HK$
122.1
《
火枪与账簿:早期经济全球化时代的中国与东亚世界
》
售價:HK$
77.3
《
《全面与进步跨太平洋伙伴关系协定》国有企业条款研究
》
售價:HK$
98.6
《
银行业架构网络BIAN(全球数字化时代金融服务业框架)(数字化转型与创新管理丛书)
》
售價:HK$
98.6
《
金托邦:江湖中的沉重正义
》
售價:HK$
60.5
《
易经今解:释疑·解惑·见微
》
售價:HK$
88.5
|
內容簡介: |
本书紧密结合目前高校计算机教学和发展趋势,将ACM国际大学生程序设计竞赛引进教材,对学生养成良好的编程习惯和编程思维,提高分析和解决问题能力大有帮助,这是本书的创新之处。
全书共分13章,各章节内容由浅入深、相互衔接、前后呼应、循序渐进。第1~6章介绍了C 程序设计的基础、函数与程序结构、数组与字符串、指针、结构体与共用体、ACM国际大学生程序设计竞赛相关知识和竞赛中的输入输出等;第7~13章介绍了C 面向对象特性,包括类与对象及封装性、类的深入、运算符重载、继承性、多态性、输入输出流、模板和标准库;附录A列出了ASCII码对照表;附录B列出了CC 与标准C 头文件对照表,方便学习和参考;附录C介绍了Linux、Unix下编译和调试C 程序;附录D介绍了在Visual C 下调试程序的方法;附录E介绍了在Dev-C 下调试程序的方法。
本书的配套教材《C 程序设计教程习题答案和实验指导》提供了本课程的实验内容、参考答案和模拟试卷。所有习题和程序均按照ACM国际大学生程序设计竞赛要求进行设计,并进行了严格的测试,验证了程序的正确性。本书提供了电子资源和课件,具有丰富的学习参考资料,所有的习题均可在湖南师范大学ACM网站(http:acm.hunnu.edu.cnonline)进行测试,自动评测对错,课本中对每道习题都注明了在OJ上的题号,方便学习使用。
本书特别适合用作计算机专业和相关专业的程序设计类课程的教材;作为ACM国际大学生程序设计竞赛入门教材;也可作为各类考试培训和C 程序设计自学教材。
|
目錄:
|
目 录
内容简介 2
前 言 3
第一章 C 语言概述 10
1.1 C 语言简介 10
1.1.1 C 语言的发展 10
1.1.2 C 语言的特点 10
1.2 C 程序基本结构 11
1.3 C 程序的开发环境 12
1.3.1 Visual C 12
1.3.2 Visual Studio 2010 17
1.3.3 Dev-C 22
1.3.4 CodeBlocks 25
1.4 ACM国际大学生程序设计竞赛 31
1.4.1 ACM-ICPC简介 31
1.4.2 竞赛规则 32
1.4.3 自动评测系统 33
1.4.4 竞赛学习资源书籍推荐 34
习题一 38
第二章 C 语言编程基础 39
2.1 C 语言词法 39
2.1.1 注释 39
2.1.2 标识符 39
2.1.3 关键字 40
2.1.4 运算符 41
2.1.5 标点符号 41
2.1.6 常量 41
2.2 基本数据类型 42
2.2.1 整型 42
2.2.2 浮点型 43
2.2.3 字符型 44
2.2.4 布尔型 45
2.2.5 宽字符类型 45
2.2.6 字符串常量 45
2.3 运算符与表达式 45
2.3.1 变量的定义 45
2.3.2 算术运算符 46
2.3.3 关系运算符 47
2.3.4 逻辑运算符 47
2.3.5 位运算符 48
2.3.6 移位运算符 48
2.3.7 赋值运算符 49
2.3.8 条件运算符 50
2.3.9 逗号运算符 50
2.3.10 类型转换运算 50
2.3.11 自增运算符和自减运算符 50
2.3.12 表达式的估值 51
2.4语句 52
2.4.1语句及三种结构 52
2.4.2 表达式语句 52
2.4.3 复合语句 53
2.4.4 C 标准输入输出流包括常用格式控制 53
2.4.5 选择语句 58
2.4.6 循环语句 62
2.4.7 break语句和continue语句 65
2.4.8 goto语句 66
2.4.9 程序设计综合举例 66
2.5 ACM国际大学生程序设计竞赛中的输入输出 69
习题二 71
第三章 数组与字符串 77
3.1 数组的概念 77
3.2 数组的定义 77
3.2.1 数组的定义 77
3.2.2 数组的初始化 79
3.2.3 二维数组 81
3.4 数组应用举例 82
3.5 字符串 89
3.5.1 C 原生字符串 89
3.5.2 原生字符串函数 90
3.5.3 C STL string 93
习题三 95
第四章 函数 103
4.1 函数与程序结构概述 103
4.2 函数的定义与声明 104
4.2.1 函数的定义 104
4.2.2 函数声明与函数原型 105
4.3 函数参数和函数返回值 106
4.3.1 函数形式参数和实际参数 106
4.3.2 函数的返回值 107
4.3.3 函数调用 108
4.4 函数的嵌套与递归调用 108
4.4.1 函数的嵌套调用 108
4.4.2 递归调用 109
4.5 变量作用域和存储类型 110
4.5.1 局部与全局变量 110
4.5.2 动态存储和静态存储 110
4.6 内联函数 112
4.7 重载函数与默认参数函数 113
4.7.1 重载函数 113
4.7.2 默认参数函数 114
4.8 编译预处理 114
4.8.1 文件包含 114
4.8.2 宏定义 115
4.8.3 条件编译 116
习题四 116
第五章 指针 121
5.1 指针的概念 121
5.2 指针变量 121
5.2.1指针定义 121
5.2.2指针运算符 122
5.2.3 引用变量 123
5.2.4 多级指针与指针数组 125
5.2.5指针与常量限定符 126
5.3 指针与数组 127
5.3.1指针与一维数组 127
5.3.2指针与二维数组 131
5.3.3指针与字符数组 133
5.3.4指针与函数 134
5.4 指针运算 138
5.5 动态存储分配 140
5.5.1 new操作符 140
5.5.2 delete操作符 141
习题五 142
第六章 结构体与共用体 147
6.1 结构体 147
6.l.1 结构体的声明 147
6.1.2结构体变量的引用及初始化赋值 149
6.2 嵌套结构体 150
6.3 结构体数组 151
6.3.1结构体数组的定义和初始化 151
6.3.2结构体数组成员的引用 152
6.4 结构体指针 153
6.4.1指向结构体变量的指针 153
6.4.2指向结构体数组的指针 155
6.4.3用结构体变量和指向结构体变量的指针作为函数参数 156
6.4.4内存动态管理函数 158
6.5共用体 159
6.5.1共用体的概念 159
6.5.2 共用型变量的定义 160
6.5.3共用型变量的引用 160
6.5.4共用体类型数据的特点 161
6.5.5共用体变量的应用 162
6.6枚举类型 163
6.7用typedef定义 166
习题六 167
第七章 类与对象及封装性 170
7.1 类的抽象 170
7.2 类的定义与对象的生成 170
7.3 构造函数和析构函数 175
7.4 构造函数的重载 178
7.5 对象指针 180
习题七 181
第八章 类的深入 183
8.1 友元函数 183
8.2 对象传入函数的讨论 187
8.3 函数返回对象的讨论 190
8.4 拷贝构造函数 193
8.5 this关键字 196
习题八 197
第九章 运算符重载 201
9.1 使用成员函数的运算符重载 201
9.2 友元运算符函数 205
9.3 重载关系运算符 209
9.4 进一步考查赋值运算符 210
9.5 重载new和delete 213
9.6 重载[ ] 215
9.7 重载其他运算符 217
习题九 221
第十章 继承性 223
10.1 继承性的理解 223
10.2 类的继承过程 224
10.3 基类访问控制 225
10.4 简单的多重继承 230
10.5 构造函数析构函数的调用顺序 231
10.6 给基类构造函数传递参数 232
10.7 访问的许可 234
10.8 虚基类 235
习题十 238
第十一章 多态性 241
11.1基类的指针及引用 241
11.2 虚函数 242
11.3 继承虚函数 243
11.4 多态性的优点 244
11.5 纯虚函数和抽象类 246
习题十一 248
第十二章 输入输出流 252
12.112.1 C 的输入输出 252
12.2 标准输入输出流 253
12.3文件流 254
12.4 字符串流 257
12.5 格式控制 259
12.5.1 流操纵符 259
12.5.2 流对象的成员函数 260
12.6 ACM中的文件输入输出 262
习题十二 265
第十三章 模板和标准库 266
13.1函数模板 266
13.2 类模板 267
13.3 标准库 268
13.3.1 顺序容器 268
13.3.2 关联容器 270
13.3.3 算法 272
13.3.4 迭代器 276
习题十三 277
附录A:ASCII码对照表 284
附录B:CC 与标准C 头文件对照表 285
附录C:Linux、Unix下编译C 程序 286
附录D:在Visual C 下调试程序 290
附录E:Dev-C 调试 295
参考文献 299
|
內容試閱:
|
C语言是目前最流行的面向对象程序设计语言之一。它既支持传统的面向过程的程序设计方法,也支持的面向对象的程序设计方法。它是Linux和Unix下编程的最主要的语言之一,也是嵌入式开发最常用的编程语言。C全面兼容C,对熟悉C的程序员仅需学习C语言的面向对象特征,就可很快地用C编写程序。
本书是一本通过编程实践引导学生掌握C程序开发的教材。在编写过程中,我们组织了多位长期从事程序设计、数据结构、面向对象程序设计和计算机算法设计课程教学的老师,其中部分老师是本校的ACM程序设计集训队的教练和指导老师,他们都有着丰富的教学和编程经验。本书在编写过程中力求将复杂的概念用简洁、通俗的语言来描述,做到深入浅出、循序渐进,从而使学生能体会到学习编程的乐趣。
传统的程序设计教材和采用的教学模式多以学习计算机语言为主,多重视理论教学,轻实践教学环节,编程能力低也导致了后续一些课程学习困难,不利于培养学生的算法思想、设计理论和创新意识,也就无法适应当今信息社会和知识经济对人才的要求。在这种情况下,我们改革程序设计类课程实践教学,突出计算机的实践教育,培养学生分析问题和解决问题的创新能力。
近年,以培养和提高计算机编程能力的不同层次比赛应运而生。如省级大学生计算机程序设计竞赛、ACM国际大学生程序设计竞赛等。因此,以程序设计竞赛为依托,改革程序设计类课程教学体系和内容,探讨和创新程序设计类课程的实践教学方法和手段,对加强程序设计类课程的教学和实践环节,提高学生们的编程能力,促进计算机类创新人才培训和培养出符合社会需求的人才具有重要理论和实践意义。
本书将ACM国际大学生程序设计竞赛引进到课程学习之中,使学生从编程入门开始就养成良好的编程习惯和编程思维,强化学生对实际问题分析能力和解决问题能力的培养,激发学生对编程的兴趣,达到以教学促竞赛,以竞赛强化教学的目的。
ACM国际大学生程序设计竞赛(简称ACM-ICPC)是由国际计算机界具有悠久历史的权威性组织ACM学会(Association for Computing Machinery)主办,是世界上公认的规模最大、水平最高、参与人数最多的大学生程序设计竞赛,其宗旨是使大学生能通过计算机充分展示自己分析问题和解决问题的能力。现在各个高校都非常重视计算机程序设计竞赛。
与本书配套的教材《C程序设计教程习题答案和实验指导》提供了本课程的实验内容、参考答案和模拟试卷。所有习题和程序均按照ACM国际大学生程序设计竞赛要求进行设计,并进行了严格的测试,验证了程序的正确性。
参与本书编写的人员有:湖南师范大学的瞿绍军、罗迅、刘宏、张丽霞、谢超和石坚老师,衡阳师范学院的李浪老师,吉首大学的王从银和彭华老师,湖南文理学院的丁德红老师,湖南农业大学的张引琼老师。
本书吸收了国内外近几年出版的同类教材的优点,内容丰富,特别适合用作计算机专业和相关专业的程序设计类课程的教材;作为ACM国际大学生程序设计竞赛入门教材;也可作为各类考试培训和C程序设计自学教材。
本教材的出版得到了湖南师范大学教学改革研究项目程序设计类课程实践教学体系、内容、方法和手段改革的研究与实践的资助。
为方便教师的教学。本书配有丰富的电子资源和课件,您在使用过程中有任何疑问可发邮件与我们联系Email:powerhope@163.com。
编者
2015年12月于长沙岳麓山
|
|