
作者:皮德常
页数:352
出版社:机械工业出版社
出版日期:2021
ISBN:9787111694212
电子书格式:pdf/epub/txt
内容简介
以“程序设计”为主线,从材料取舍、内容表达方式、实例选取到习题和课程设计配置都以读者掌握“程序设计”的基本概念、方法和技巧为重点,并融入了作者多年的C++教学经验和软件工程实践经验。
作者简介
皮德常,男,1971年11月生,博士,副教授,硕士生导师。于1994年、1997、2002年在南京航空航天大学获得学士、硕士和博士学位。近几年来,先后发表科研论文42篇,获南京航空航天大学教学很好奖4次,教学观摩奖1次;主持和参与国家自然科学基金3项、江苏省自然科学基金和国家“863”计划各1项;先后获得省部级科技进步二等奖2次、三等奖2次;在清华大学出版社、国防工业出版社和机械工业出版社出版计算机专业书5本。
本书特色
涵盖C++程序设计必要基础知识,系统介绍C++程序设计基本概念、方法和技术的优秀教材
目录
前言
教学建议
第1章 C++程序设计基础 1
1.1 为什么要学习C++程序设计 1
1.2 简单的C++程序举例 2
1.3 注释方法 3
1.4 编程风格 3
1.5 C++程序的词法单位 3
1.5.1 C++程序中的字符 4
1.5.2 标识符 4
1.5.3 关键字 4
1.6 C++的基本数据类型 5
1.7 变量和常量 6
1.7.1 变量 6
1.7.2 文字常量 7
1.7.3 符号常量 8
1.7.4 常变量 9
1.8 运算符和表达式 9
1.8.1 算术运算符和算术表达式 9
1.8.2 初识运算符的优先级和结合性 9
1.8.3 赋值运算符和赋值表达式 10
1.8.4 自增、自减运算符 11
1.8.5 关系运算符和关系表达式 11
1.8.6 逻辑运算符和逻辑表达式 12
1.8.7 位运算符和位表达式 13
1.8.8 逗号运算符和逗号表达式 15
1.8.9 sizeof运算符 15
1.8.10 C++的运算符优先级和结合性 16
1.9 语句 16
1.10 类型转换 17
1.10.1 赋值时的类型转换 17
1.10.2 混合运算时的类型转换 18
1.10.3 强制类型转换 19
1.11 简单的输出和输入方法 19
1.11.1 cout对象和cin对象 19
1.11.2 格式化输出 22
1.11.3 采用函数成员实现格式化输出 24
1.11.4 对函数成员的初步讨论 26
1.11.5 指定输入域宽 26
1.11.6 读取一行 27
1.11.7 读取一个字符 27
1.11.8 读取字符时易出错的地方 28
1.12 枚举类型 29
1.12.1 枚举类型的定义 29
1.12.2 枚举类型的变量 29
1.12.3 枚举类型的应用 30
思考与练习 31
第2章 C++的流程控制 32
2.1 算法的基本概念和表示方法 32
2.1.1 算法的基本概念 32
2.1.2 算法的表示 32
2.1.3 算法的三种基本结构 33
2.2 选择结构程序设计 34
2.2.1 基本的if语句 34
2.2.2 嵌套的if语句 36
2.2.3 条件运算符 38
2.2.4 switch语句 39
2.3 循环结构程序设计 41
2.3.1 while循环 41
2.3.2 do-while循环 42
2.3.3 for循环 42
2.3.4 循环嵌套 44
2.3.5 break语句 45
2.3.6 continue语句 46
2.3.7 应该少用的goto语句 47
2.4 程序设计应用举例 47
思考与练习 51
第3章 函数 54
3.1 函数的定义和调用 54
3.1.1 概述 54
3.1.2 定义函数 54
3.1.3 调用函数 55
3.2 函数的声明 57
3.3 函数的参数传递和返回值 58
3.3.1 函数参数的传递方式 58
3.3.2 函数的返回值 59
3.4 局部变量和全局变量 61
3.4.1 内存存储区的布局 61
3.4.2 局部变量 62
3.4.3 全局变量 62
3.4.4 局部变量与栈 63
3.5 变量的存储类别 64
3.5.1 auto修饰的变量 64
3.5.2 register修饰的变量 65
3.5.3 static修饰的变量 65
3.5.4 extern修饰的变量 66
3.6 默认参数 68
3.7 引用做参数 70
3.8 函数重载 71
3.9 函数模板 74
3.9.1 从函数重载到函数模板 74
3.9.2 定义函数模板的方法 77
3.9.3 函数模板重载 77
3.10 内联函数 78
3.11 函数的递归调用 79
3.12 函数的调试方法 84
3.13 编译预处理 85
3.13.1 宏定义 85
3.13.2 文件包含 87
3.13.3 条件编译 87
思考与练习 89
第4章 数组 92
4.1 一维数组 92
4.1.1 一维数组的定义和应用 92
4.1.2 引用一维数组元素 93
4.1.3 数组无越界检查 93
4.1.4 数组初始化 93
4.2 多维数组 95
4.2.1 二维数组的定义 95
4.2.2 二维数组的初始化 95
4.2.3 引用二维数组元素 96
4.3 数组做函数参数 97
4.3.1 数组元素做函数参数 97
4.3.2 数组名做函数参数 98
4.4 常用算法举例 99
4.5 字符数组与字符串 110
4.5.1 字符数组的定义 110
4.5.2 字符数组的初始化 111
4.5.3 字符串 111
4.5.4 字符数组的输入和输出 112
4.6 处理字符和字符串 113
4.6.1 处理字符的宏 113
4.6.2 处理C风格字符串的函数 114
4.6.3 自定义字符串处理函数 117
思考与练习 119
第5章 指针 120
5.1 指针的概念 120
5.2 指针变量 120
5.2.1 定义指针变量 120
5.2.2 运算符&和最 121
5.2.3 引用指针变量 122
5.3 指针与数组 124
5.3.1 指向数组元素的指针 124
5.3.2 指针的运算 125
5.3.3 二维数组与指针 127
5.4 指针与函数 131
5.4.1 基本类型的变量做函数形参 131
5.4.2 引用做函数形参 132
5.4.3 指针变量做函数形参 133
5.4.4 返回指针的函数 135
5.4.5 指向函数的指针 137
5.5 指针数组与指向指针的指针 138
5.5.1 指针数组 138
教学建议
第1章 C++程序设计基础 1
1.1 为什么要学习C++程序设计 1
1.2 简单的C++程序举例 2
1.3 注释方法 3
1.4 编程风格 3
1.5 C++程序的词法单位 3
1.5.1 C++程序中的字符 4
1.5.2 标识符 4
1.5.3 关键字 4
1.6 C++的基本数据类型 5
1.7 变量和常量 6
1.7.1 变量 6
1.7.2 文字常量 7
1.7.3 符号常量 8
1.7.4 常变量 9
1.8 运算符和表达式 9
1.8.1 算术运算符和算术表达式 9
1.8.2 初识运算符的优先级和结合性 9
1.8.3 赋值运算符和赋值表达式 10
1.8.4 自增、自减运算符 11
1.8.5 关系运算符和关系表达式 11
1.8.6 逻辑运算符和逻辑表达式 12
1.8.7 位运算符和位表达式 13
1.8.8 逗号运算符和逗号表达式 15
1.8.9 sizeof运算符 15
1.8.10 C++的运算符优先级和结合性 16
1.9 语句 16
1.10 类型转换 17
1.10.1 赋值时的类型转换 17
1.10.2 混合运算时的类型转换 18
1.10.3 强制类型转换 19
1.11 简单的输出和输入方法 19
1.11.1 cout对象和cin对象 19
1.11.2 格式化输出 22
1.11.3 采用函数成员实现格式化输出 24
1.11.4 对函数成员的初步讨论 26
1.11.5 指定输入域宽 26
1.11.6 读取一行 27
1.11.7 读取一个字符 27
1.11.8 读取字符时易出错的地方 28
1.12 枚举类型 29
1.12.1 枚举类型的定义 29
1.12.2 枚举类型的变量 29
1.12.3 枚举类型的应用 30
思考与练习 31
第2章 C++的流程控制 32
2.1 算法的基本概念和表示方法 32
2.1.1 算法的基本概念 32
2.1.2 算法的表示 32
2.1.3 算法的三种基本结构 33
2.2 选择结构程序设计 34
2.2.1 基本的if语句 34
2.2.2 嵌套的if语句 36
2.2.3 条件运算符 38
2.2.4 switch语句 39
2.3 循环结构程序设计 41
2.3.1 while循环 41
2.3.2 do-while循环 42
2.3.3 for循环 42
2.3.4 循环嵌套 44
2.3.5 break语句 45
2.3.6 continue语句 46
2.3.7 应该少用的goto语句 47
2.4 程序设计应用举例 47
思考与练习 51
第3章 函数 54
3.1 函数的定义和调用 54
3.1.1 概述 54
3.1.2 定义函数 54
3.1.3 调用函数 55
3.2 函数的声明 57
3.3 函数的参数传递和返回值 58
3.3.1 函数参数的传递方式 58
3.3.2 函数的返回值 59
3.4 局部变量和全局变量 61
3.4.1 内存存储区的布局 61
3.4.2 局部变量 62
3.4.3 全局变量 62
3.4.4 局部变量与栈 63
3.5 变量的存储类别 64
3.5.1 auto修饰的变量 64
3.5.2 register修饰的变量 65
3.5.3 static修饰的变量 65
3.5.4 extern修饰的变量 66
3.6 默认参数 68
3.7 引用做参数 70
3.8 函数重载 71
3.9 函数模板 74
3.9.1 从函数重载到函数模板 74
3.9.2 定义函数模板的方法 77
3.9.3 函数模板重载 77
3.10 内联函数 78
3.11 函数的递归调用 79
3.12 函数的调试方法 84
3.13 编译预处理 85
3.13.1 宏定义 85
3.13.2 文件包含 87
3.13.3 条件编译 87
思考与练习 89
第4章 数组 92
4.1 一维数组 92
4.1.1 一维数组的定义和应用 92
4.1.2 引用一维数组元素 93
4.1.3 数组无越界检查 93
4.1.4 数组初始化 93
4.2 多维数组 95
4.2.1 二维数组的定义 95
4.2.2 二维数组的初始化 95
4.2.3 引用二维数组元素 96
4.3 数组做函数参数 97
4.3.1 数组元素做函数参数 97
4.3.2 数组名做函数参数 98
4.4 常用算法举例 99
4.5 字符数组与字符串 110
4.5.1 字符数组的定义 110
4.5.2 字符数组的初始化 111
4.5.3 字符串 111
4.5.4 字符数组的输入和输出 112
4.6 处理字符和字符串 113
4.6.1 处理字符的宏 113
4.6.2 处理C风格字符串的函数 114
4.6.3 自定义字符串处理函数 117
思考与练习 119
第5章 指针 120
5.1 指针的概念 120
5.2 指针变量 120
5.2.1 定义指针变量 120
5.2.2 运算符&和最 121
5.2.3 引用指针变量 122
5.3 指针与数组 124
5.3.1 指向数组元素的指针 124
5.3.2 指针的运算 125
5.3.3 二维数组与指针 127
5.4 指针与函数 131
5.4.1 基本类型的变量做函数形参 131
5.4.2 引用做函数形参 132
5.4.3 指针变量做函数形参 133
5.4.4 返回指针的函数 135
5.4.5 指向函数的指针 137
5.5 指针数组与指向指针的指针 138
5.5.1 指针数组 138















