C C++语言程序设计 第2版
作者:邱晓红,李渤 主编
出版时间:2020年版
丛编项: 高等院校信息技术规划教材
内容简介
本书针对教学研究型和教学应用型大学的学生综合素质特点,结合新工科改革的需要,基于CDIO的工程教育理念,结合需要掌握的程序设计知识点,从国内外C/C++语言程序设计的z新教材和经典应用实例,选取了智能ATM自动取款机综合应用实例贯穿全书,并比较分析计算机程序语言与自然语言的相互对应关系,形象化解释程序语言的相关概念,更深层次理解程序语言的特性,进一步增强了计算机相关领域的应用知识点和程序设计语言间的对应关系。
目录
目录
第1章C语言及程序设计概述1
1.1C语言简介1
1.1.1C语言的发展过程1
1.1.2C语言的主要特点1
1.2C语言程序的结构3
1.2.1C语言程序的结构及其主要特点3
1.2.2标识符与关键字5
1.3C语言编译工具简介7
1.3.1C语言程序实现的步骤7
1.3.2Turbo C 2.0编译工具简介7
1.3.3Visual C++ 6.0编译工具简介11
1.4如何学习C语言15
1.4.1学习C语言的理由15
1.4.2学好C语言的步骤17
1.5编程实践18
任务1: 输出金字塔图案18
任务2: 打印输出华氏和摄氏的温度对照表19
习题20第2章数据类型、运算符与表达式22
2.1常量和变量22
2.1.1常量22
2.1.2变量25
2.2基本数据类型27
2.2.1整数类型27
2.2.2字符型28
2.2.3实数类型29
2.3数据类型的转换30
2.3.1自动类型转换31
2.3.2强制类型转换33
2.4运算符和表达式34
2.4.1算术运算符和算术表达式34
2.4.2关系运算符和关系表达式39
2.4.3逻辑运算符和逻辑表达式42
2.4.4赋值运算符和赋值表达式43
2.4.5位运算符与位运算45
2.4.6条件运算符与条件表达式49
2.4.7逗号运算符与逗号表达式50
2.4.8求字节数运算符51
2.4.9特殊运算符52
2.5运算符的优先级和结合性52
2.5.1运算符的优先级52
2.5.2运算符的结合性53
2.6编程实践55
任务: 分析MD5散列算法的基本运算55
习题56第3章算法概念与顺序结构程序设计64
3.1算法简介64
3.1.1算法的概念64
3.1.2算法的常用描述方法65
3.2C语句概述67
3.3C语言的基本输入与输出69
3.3.1字符输入输出函数69
3.3.2格式输入输出函数71
3.4顺序结构程序设计80
3.4.1顺序结构程序设计思想80
3.4.2顺序结构程序设计举例80
3.5编程实践82
任务: 计算正弦函数的面积82
习题83第4章选择结构程序设计87
4.1if语句87
4.1.1单分支if语句87
4.1.2双分支if语句88
4.1.3多分支if语句89
4.1.4if 语句的嵌套91
4.1.5条件运算符和条件表达式93
4.2switch语句93
4.2.1switch语句93
4.2.2switch语句的嵌套96
4.3选择结构程序设计举例97
4.4编程实践99
任务: 计算个人所得税99
习题100第5章循环结构程序设计113
5.1while和dowhile循环结构113
5.1.1while语句的一般形式113
5.1.2while语句使用说明114
5.1.3dowhile语句的一般形式115
5.1.4dowhile语句使用说明 116
5.2for循环结构和循环的嵌套116
5.2.1for循环语句的一般形式117
5.2.2for循环语句使用说明118
5.2.3循环嵌套的形式119
5.2.4嵌套循环的说明119
5.3流程转向语句120
5.3.1goto语句120
5.3.2break语句121
5.3.3continue语句122
5.4循环结构程序设计举例123
5.4.1确定循环次数与不确定循环次数123
5.4.2选择循环语句125
5.4.3提前结束循环127
5.4.4其他应用举例127
5.5编程实践128
任务: 验证哥德巴赫猜想128
习题129第6章数组136
6.1一维数组136
6.1.1一维数组的定义136
6.1.2一维数组元素的引用136
6.1.3一维数组的初始化137
6.1.4一维数组应用举例 138
6.2多维数组140
6.2.1二维数组的定义140
6.2.2二维数组元素的引用141
6.2.3二维数组的初始化142
6.2.4二维数组使用举例142
6.3字符数组145
6.3.1字符数组的定义145
6.3.2字符数组的初始化146
6.3.3字符串与字符串结束标志147
6.3.4字符数组的引用与输入输出147
6.3.5字符串处理函数148
6.3.6字符数组使用举例153
6.4数组应用举例155
6.5编程实践158
任务: 多规格打印万年历158
习题160第7章函数165
7.1函数的定义165
7.1.1函数概述165
7.1.2函数类型165
7.1.3函数定义168
7.2函数参数和返回值170
7.2.1形式参数和实际参数170
7.2.2函数的返回值174
7.3函数的调用175
7.3.1函数调用175
7.3.2函数声明175
7.4函数的嵌套调用和递归调用176
7.4.1函数的嵌套调用176
7.4.2函数的递归调用178
7.5变量的作用域181
7.6变量的存储类别184
7.7编程实践186
任务1: 正(余)弦曲线演示器186
任务2: 杨辉三角形188
习题190第8章指针196
8.1指针和地址196
8.2指针变量197
8.2.1指针变量的定义197
8.2.2指针变量赋值198
8.2.3指针运算符与指针表达式200
8.2.4指针变量的引用 202
8.2.5指针变量作为函数的参数202
8.3指针和数组206
8.3.1指向数组的指针206
8.3.2通过指针引用数组元素207
8.3.3数组名作为函数参数209
8.3.4指向多维数组的指针和指针变量212
8.4指针和字符串216
8.4.1字符串的表示216
8.4.2字符串指针作为函数参数218
8.4.3字符数组与字符串指针的区别219
8.5指针和函数221
8.5.1函数的指针221
8.5.2用指向函数的指针作为函数参数222
8.5.3返回指针值的函数224
8.6指向指针的指针225
8.6.1指向指针的指针简介225
8.6.2指针数组226
8.6.3指针数组作为main函数的参数228
8.7编程实践229
任务1: 黑白棋子交换229
任务2: 班干部值日安排231
习题234第9章结构体和共用体239
9.1结构体239
9.1.1结构体类型的定义239
9.1.2结构体变量的定义241
9.1.3结构体变量的引用243
9.1.4结构体变量的赋值244
9.2结构体数组与结构体指针246
9.2.1结构体数组246
9.2.2指向结构体的指针249
9.2.3结构体作为函数的参数252
9.2.4结构体举例256
9.3链表258
9.3.1链表概述258
9.3.2处理动态链表所需的函数259
9.3.3链表的基本操作262
9.4共用体266
9.4.1共用体类型的定义267
9.4.2共用体类型变量的定义267
9.4.3共用体变量的引用268
9.4.4共用体变量的初始化268
9.5枚举类型和自定义类型270
9.5.1枚举类型的定义271
9.5.2枚举变量的定义和初始化271
9.5.3枚举数据的运算272
9.5.4枚举数据的输入输出273
9.5.5枚举变量举例274
9.5.6用typedef定义类型276
9.6编程实践279
任务1: 三天打鱼两天晒网279
任务2: 航班订票系统280
习题289第10章文件294
10.1文件概述294
10.1.1文件的分类294
10.1.2文件的编码形式294
10.1.3文件的读写方式295
10.2文件的基本操作296
10.2.1文件的打开与关闭296
10.2.2文件的读和写298
10.3文件操作举例303
10.4编程实践310
任务: 精挑细选310
习题312第11章预处理命令314
11.1宏定义314
11.1.1无参宏定义314
11.1.2带参数的宏定义318
11.2“文件包含”处理322
11.3条件编译323
11.4编程实践325
任务: 串化运算325
习题326第12章C++语言的特性331
12.1从C到C++331
12.2C++程序基本结构332
12.3面向对象编程(OOP)思想334
12.4C++对C的扩充335
12.4.1C++的输入输出335
12.4.2用const定义常变量337
12.4.3函数原型声明337
12.4.4函数的重载338
12.4.5函数模板340
12.4.6变量的定义341
12.4.7有默认参数的函数341
12.4.8内置函数342
12.4.9作用域运算符342
12.4.10变量的引用342
12.4.11运算符new和delete343
12.4.12命名空间namespace344
12.4.13using声明和using编译指令344
12.4.14C++增强的特性345
12.5面向对象编程特性347
12.5.1封装性347
12.5.2继承和派生351
12.5.3多态和虚函数357
12.6编程实践360
任务: 学生成绩管理程序360
习题369第13章综合案例实训373
13.1五子棋游戏项目实训373
13.1.1功能模块设计373
13.1.2数据结构设计374
13.1.3函数功能描述374
13.1.4系统数据流程图376
13.1.5程序实现377
13.1.6程序运行398
13.2ATM(自动取款机)案例实训398
13.2.1功能模块399
13.2.2数据结构分析399
13.2.3函数功能描述399
13.2.4系统数据流程图400
13.2.5代码实现400
13.2.6运行结果416附录A常用字符与ASCII对照表417附录BC语言常用语法提要418
B.1标识符418
B.2常量418
B.3表达式418
B.4数据定义419
B.5函数定义420
B.6变量的初始化420
B.7语句420
B.8预处理命令421附录CC语言的常用库函数422
C.1输入输出函数422
C.2数学函数423
C.3字符函数和字符串函数424
C.4动态存储分配函数425参考文献426