- 机械工业出版社
- 9787111724261
- 1-1
- 462477
- 46255270-4
- 16开
- 2023-05
- 计算机科学与技术
- 本科
内容简介
本书以教授学生学习用计算机解决问题、学习程序设计的思想和方法为主旨,准确地讲解与程序设计相关的基本概念、基本原理和技术。本书注重循序渐进,分解编程和程序语言学习中的难点,通过大量实例详细描述了分析、思考、设计并解决这些实例,写出合理程序的过程。通过这种方式,帮助初学者逐步领会使用计算机、通过编程解决问题的正确途径。
目录
前言
第1章 程序设计和C/C++?语言 1
1.1 程序和程序语言 1
1.1.1 计算机程序与程序设计 1
1.1.2 程序设计语言及其发展 4
1.1.3 高级语言及其实现 5
1.1.4 具体语言和程序设计 6
1.2 C语言和C++?语言简介 6
1.3 C/C++?程序快速入门 8
1.3.1 程序的加工和执行 8
1.3.2 一个简单程序 9
1.3.3 源程序的格式 12
1.3.4 程序开发过程 13
1.3.5 程序除错 14
1.4 集成开发环境Dev-C++?使用简介 14
1.4.1 源程序的编辑、保存、关闭和
打开 15
1.4.2 源程序的加工和运行 18
本章讨论的重要概念 21
练习 21
第2章 数据与简单计算程序 23
2.1 基本字符、名字表示、标识符和
? 关键字 23
2.1.1 名字(标识符)的构成 24
2.1.2 关键字 24
2.2 常用数据类型 25
2.2.1 整数类型和整数 25
2.2.2 实数类型和实数 27
2.2.3 字符和字符串 28
2.3 运算符、表达式与计算 31
2.3.1 算术运算符 31
2.3.2 算术表达式 31
2.3.3 表达式求值 32
2.3.4 计算和类型 33
2.3.5 简单计算程序 36
2.4 数学函数及其使用 38
2.4.1 函数与函数调用 38
2.4.2 函数调用中的类型转换 41
2.4.3 inf与nan 42
2.5 基本输出功能 43
2.5.1 C++?的基本输出功能 43
*2.5.2 C语言中的输出函数printf 45
*2.6 计算机中的数值表示与存储 48
2.6.1 数制 48
2.6.2 数据存储单位 49
2.6.3 基本类型数据的表示 50
2.7 Dev-C++?中的辅助编辑功能 52
2.7.1 插入头部注释和标准代码模块 52
2.7.2 其他编辑功能 53
本章讨论的重要概念 53
练习 54
第3章 变量和控制结构 56
3.1 语句、复合结构和顺序程序 56
3.2 变量的概念、定义和使用 57
3.2.1 变量的定义 57
3.2.2 变量的使用:赋值与取值 60
3.3 数据输入 71
3.3.1 通过输入流获取数据 71
*3.3.2 C语言的格式输入函数scanf 72
3.4 关系表达式、逻辑表达式和条件
? 表达式 74
3.4.1 关系运算符与关系表达式 74
3.4.2 逻辑运算符与逻辑表达式 76
3.4.3 条件表达式 78
3.5 语句与控制结构 79
3.6 选择语句 80
3.6.1 if语句 80
3.6.2 if语句的嵌套 83
3.6.3 if语句的优化 85
3.6.4 使用if语句的技术 87
3.6.5 开关语句 89
3.7 循环语句 91
3.7.1 while语句 91
3.7.2 do-while循环结构 94
3.7.3 for语句 95
3.7.4 多重循环 98
3.7.5 与循环有关的控制语句 100
3.7.6 死循环 104
3.8 程序动态除错方法(一) 107
3.8.1 动态运行错误的分析与确认 107
3.8.2 排除程序的动态运行错误 108
3.8.3 源代码的可读性 111
本章讨论的重要概念 112
练习 113
第4章 基本程序设计技术 115
4.1 循环程序设计 115
4.1.1 输出一系列完全平方数 116
4.1.2 整数范围与浮点误差 117
4.1.3 迭代与递推 119
4.1.4 通项计算 123
4.1.5 循环中的几种变量 125
4.2 常用标准库函数 126
4.2.1 库函数 126
4.2.2 程序计时 127
4.2.3 随机数生成函数 128
4.3 交互式程序设计的输入输出 130
4.3.1 通过计数器控制循环输入 130
4.3.2 用结束标志控制循环输入 131
4.3.3 输入函数的返回值及其作用 131
4.3.4 输入输出流:字符串流与
文件流 134
4.3.5 字符输入输出与字符相关函数 140
4.4 程序设计实例 145
4.4.1 编程实例1:一个简单猜数
游戏 145
4.4.2 编程实例2:一个简单计算器 147
4.4.3 编程实例3:文件中的单词
计数 149
*4.4.4 编程实例4:图形界面程序 152
本章讨论的重要概念 154
练习 154
第5章 函数与程序结构 157
5.1 函数的定义与调用 157
5.1.1 对自定义函数的需求 158
5.1.2 函数的定义 159
5.1.3 函数的调用 162
5.1.4 函数和程序 165
5.1.5 局部变量的作用域和生存期 166
5.1.6 函数调用的参数传递机制 170
5.2 程序的函数分解、封装与测试 173
5.2.1 程序的函数分解 173
5.2.2 函数封装和两种视角 174
5.2.3 函数的测试 175
5.2.4 自定义函数和测试 176
5.3 循环与递归 183
5.3.1 阶乘和乘幂 183
5.3.2 斐波那契数列 185
5.3.3 最大公约数 188
5.3.4 河内塔问题 191
5.4 外部变量与静态局部变量 193
5.4.1 外部变量 194
5.4.2 变量定义的嵌套 196
5.4.3 静态局部变量 198
5.4.4 外部变量与静态局部变量的
初始化 199
*5.4.5 名字空间 201
5.5 声明与定义 202
5.5.1 先定义后使用 202
5.5.2 定义与声明 203
5.5.3 函数原型声明 204
*5.5.4 外部变量的声明 204
5.5.5 函数分解程序实例 205
5.5.6 多文件开发实例 209
5.6 预处理 210
5.6.1 文件包含命令 211
5.6.2 宏定义与宏替换 212
*5.6.3 条件编译命令 215
5.7 程序动态除错方法(二) 216
5.7.1 开始调试 217
5.7.2 调试过程中的操作 217
5.7.3 调试与除错 218
本章讨论的重要概念 219
练习 219
第6章 数组 222
6.1 数组的概念、定义和使用 222
6.1.1 数组变量的定义 223
6.1.2 数组的使用 224
6.1.3 数组的初始化 227
*6.1.4 变长数组 228
6.2 使用数组的程序实例 229
6.2.1 计算日期的天数序号 230
6.2.2 从字符到下标 230
6.2.3 筛法求质数 232
6.2.4 约瑟夫问题 234
6.2.5 多项式求值 235
6.3 以数组作为函数的参数 237
6.3.1 函数的数组参数 237
6.3.2 修改实参数组的元素 239
6.3.3 定义数组的考虑 241
6.4 二维和多维数组 242
6.4.1 多维数组的初始化 242
6.4.2 多维数组的使用和表示 243
6.4.3 多维数组作为函数的参数 245
6.5 字符数组与字符串 245
6.5.1 字符数组 245
6.5.2 字符串 246
6.5.3 字符串的输出与输入 247
6.5.4 字符串程序实例 249
6.5.5 标准库的字符串处理函数 252
6.5.6 从文件读取字符串程序实例 254
6.6 编程实例 255
6.6.1 拼手气发红包 256
6.6.2 学生成绩的统计和分析 258
6.6.3 统计源程序中的关键字 264
本章讨论的重要概念 267
练习 267
第7章 指针 270
7.1 地址与指针 270
7.2 指针变量的定义和使用 272
7.2.1 指针变量的定义 272
7.2.2 指针操作 273
7.2.3 指针作为函数的参数 275
7.2.4 指针作为函数的返回值 277
7.2.5 与指针有关的一些问题 278
7.3 指针与数组 281
7.3.1 指向数组元素的指针 281
7.3.2 数组写法与指针写法 284
7.3.3 数组参数与指针 285
*7.3.4 多维数组作为参数的通用
?? 函数 287
7.3.5 字符指针与字符串 289
7.4 指针数组 295
7.4.1 字符指针数组 295
7.4.2 指针数组与二维数组 297
*7.4.3 命令行参数及其处理 297
7.5 动态存储管理 300
7.5.1 为什么需要动态存储管理 300
7.5.2 动态存储管理机制 302
7.5.3 动态存储分配程序实例 307
7.6 指向函数的指针 310
7.6.1 作用和定义 311
7.6.2 数值积分函数 314
7.6.3 遍历数组 315
本章讨论的重要概念 316
练习 317
第8章 结构体和其他数据机制 320
8.1 定义类型 320
8.1.1 简单类型定义 320
8.1.2 定义数组类型 321
*8.1.3 定义函数指针类型 322
8.2 结构体 322
8.2.1 结构体类型定义 323
8.2.2 结构体变量的定义和初始化 324
8.2.3 结构体变量的使用 325
8.2.4 结构体与函数 328
8.2.5 结构体、数组与指针 331
8.3 结构体编程实例 335
8.3.1 复数的表示和处理 335
8.3.2 学生成绩管理系统 338
8.4 自引用结构体 347
8.4.1 自引用结构体的概念 347
8.4.2 使用自引用结构体的程序
实例 348
8.4.3 数据与查找 352
本章讨论的重要概念 352
练习 352
附录 355
附录A C和C++?语言运算符表 355
附录B ANSI C关键字列表 356
附录C C和C++?语言常用功能速查 357
附录D 命名规范 358
附录E 编程形式规范 359
进一步学习的建议 361
参考文献 364
第1章 程序设计和C/C++?语言 1
1.1 程序和程序语言 1
1.1.1 计算机程序与程序设计 1
1.1.2 程序设计语言及其发展 4
1.1.3 高级语言及其实现 5
1.1.4 具体语言和程序设计 6
1.2 C语言和C++?语言简介 6
1.3 C/C++?程序快速入门 8
1.3.1 程序的加工和执行 8
1.3.2 一个简单程序 9
1.3.3 源程序的格式 12
1.3.4 程序开发过程 13
1.3.5 程序除错 14
1.4 集成开发环境Dev-C++?使用简介 14
1.4.1 源程序的编辑、保存、关闭和
打开 15
1.4.2 源程序的加工和运行 18
本章讨论的重要概念 21
练习 21
第2章 数据与简单计算程序 23
2.1 基本字符、名字表示、标识符和
? 关键字 23
2.1.1 名字(标识符)的构成 24
2.1.2 关键字 24
2.2 常用数据类型 25
2.2.1 整数类型和整数 25
2.2.2 实数类型和实数 27
2.2.3 字符和字符串 28
2.3 运算符、表达式与计算 31
2.3.1 算术运算符 31
2.3.2 算术表达式 31
2.3.3 表达式求值 32
2.3.4 计算和类型 33
2.3.5 简单计算程序 36
2.4 数学函数及其使用 38
2.4.1 函数与函数调用 38
2.4.2 函数调用中的类型转换 41
2.4.3 inf与nan 42
2.5 基本输出功能 43
2.5.1 C++?的基本输出功能 43
*2.5.2 C语言中的输出函数printf 45
*2.6 计算机中的数值表示与存储 48
2.6.1 数制 48
2.6.2 数据存储单位 49
2.6.3 基本类型数据的表示 50
2.7 Dev-C++?中的辅助编辑功能 52
2.7.1 插入头部注释和标准代码模块 52
2.7.2 其他编辑功能 53
本章讨论的重要概念 53
练习 54
第3章 变量和控制结构 56
3.1 语句、复合结构和顺序程序 56
3.2 变量的概念、定义和使用 57
3.2.1 变量的定义 57
3.2.2 变量的使用:赋值与取值 60
3.3 数据输入 71
3.3.1 通过输入流获取数据 71
*3.3.2 C语言的格式输入函数scanf 72
3.4 关系表达式、逻辑表达式和条件
? 表达式 74
3.4.1 关系运算符与关系表达式 74
3.4.2 逻辑运算符与逻辑表达式 76
3.4.3 条件表达式 78
3.5 语句与控制结构 79
3.6 选择语句 80
3.6.1 if语句 80
3.6.2 if语句的嵌套 83
3.6.3 if语句的优化 85
3.6.4 使用if语句的技术 87
3.6.5 开关语句 89
3.7 循环语句 91
3.7.1 while语句 91
3.7.2 do-while循环结构 94
3.7.3 for语句 95
3.7.4 多重循环 98
3.7.5 与循环有关的控制语句 100
3.7.6 死循环 104
3.8 程序动态除错方法(一) 107
3.8.1 动态运行错误的分析与确认 107
3.8.2 排除程序的动态运行错误 108
3.8.3 源代码的可读性 111
本章讨论的重要概念 112
练习 113
第4章 基本程序设计技术 115
4.1 循环程序设计 115
4.1.1 输出一系列完全平方数 116
4.1.2 整数范围与浮点误差 117
4.1.3 迭代与递推 119
4.1.4 通项计算 123
4.1.5 循环中的几种变量 125
4.2 常用标准库函数 126
4.2.1 库函数 126
4.2.2 程序计时 127
4.2.3 随机数生成函数 128
4.3 交互式程序设计的输入输出 130
4.3.1 通过计数器控制循环输入 130
4.3.2 用结束标志控制循环输入 131
4.3.3 输入函数的返回值及其作用 131
4.3.4 输入输出流:字符串流与
文件流 134
4.3.5 字符输入输出与字符相关函数 140
4.4 程序设计实例 145
4.4.1 编程实例1:一个简单猜数
游戏 145
4.4.2 编程实例2:一个简单计算器 147
4.4.3 编程实例3:文件中的单词
计数 149
*4.4.4 编程实例4:图形界面程序 152
本章讨论的重要概念 154
练习 154
第5章 函数与程序结构 157
5.1 函数的定义与调用 157
5.1.1 对自定义函数的需求 158
5.1.2 函数的定义 159
5.1.3 函数的调用 162
5.1.4 函数和程序 165
5.1.5 局部变量的作用域和生存期 166
5.1.6 函数调用的参数传递机制 170
5.2 程序的函数分解、封装与测试 173
5.2.1 程序的函数分解 173
5.2.2 函数封装和两种视角 174
5.2.3 函数的测试 175
5.2.4 自定义函数和测试 176
5.3 循环与递归 183
5.3.1 阶乘和乘幂 183
5.3.2 斐波那契数列 185
5.3.3 最大公约数 188
5.3.4 河内塔问题 191
5.4 外部变量与静态局部变量 193
5.4.1 外部变量 194
5.4.2 变量定义的嵌套 196
5.4.3 静态局部变量 198
5.4.4 外部变量与静态局部变量的
初始化 199
*5.4.5 名字空间 201
5.5 声明与定义 202
5.5.1 先定义后使用 202
5.5.2 定义与声明 203
5.5.3 函数原型声明 204
*5.5.4 外部变量的声明 204
5.5.5 函数分解程序实例 205
5.5.6 多文件开发实例 209
5.6 预处理 210
5.6.1 文件包含命令 211
5.6.2 宏定义与宏替换 212
*5.6.3 条件编译命令 215
5.7 程序动态除错方法(二) 216
5.7.1 开始调试 217
5.7.2 调试过程中的操作 217
5.7.3 调试与除错 218
本章讨论的重要概念 219
练习 219
第6章 数组 222
6.1 数组的概念、定义和使用 222
6.1.1 数组变量的定义 223
6.1.2 数组的使用 224
6.1.3 数组的初始化 227
*6.1.4 变长数组 228
6.2 使用数组的程序实例 229
6.2.1 计算日期的天数序号 230
6.2.2 从字符到下标 230
6.2.3 筛法求质数 232
6.2.4 约瑟夫问题 234
6.2.5 多项式求值 235
6.3 以数组作为函数的参数 237
6.3.1 函数的数组参数 237
6.3.2 修改实参数组的元素 239
6.3.3 定义数组的考虑 241
6.4 二维和多维数组 242
6.4.1 多维数组的初始化 242
6.4.2 多维数组的使用和表示 243
6.4.3 多维数组作为函数的参数 245
6.5 字符数组与字符串 245
6.5.1 字符数组 245
6.5.2 字符串 246
6.5.3 字符串的输出与输入 247
6.5.4 字符串程序实例 249
6.5.5 标准库的字符串处理函数 252
6.5.6 从文件读取字符串程序实例 254
6.6 编程实例 255
6.6.1 拼手气发红包 256
6.6.2 学生成绩的统计和分析 258
6.6.3 统计源程序中的关键字 264
本章讨论的重要概念 267
练习 267
第7章 指针 270
7.1 地址与指针 270
7.2 指针变量的定义和使用 272
7.2.1 指针变量的定义 272
7.2.2 指针操作 273
7.2.3 指针作为函数的参数 275
7.2.4 指针作为函数的返回值 277
7.2.5 与指针有关的一些问题 278
7.3 指针与数组 281
7.3.1 指向数组元素的指针 281
7.3.2 数组写法与指针写法 284
7.3.3 数组参数与指针 285
*7.3.4 多维数组作为参数的通用
?? 函数 287
7.3.5 字符指针与字符串 289
7.4 指针数组 295
7.4.1 字符指针数组 295
7.4.2 指针数组与二维数组 297
*7.4.3 命令行参数及其处理 297
7.5 动态存储管理 300
7.5.1 为什么需要动态存储管理 300
7.5.2 动态存储管理机制 302
7.5.3 动态存储分配程序实例 307
7.6 指向函数的指针 310
7.6.1 作用和定义 311
7.6.2 数值积分函数 314
7.6.3 遍历数组 315
本章讨论的重要概念 316
练习 317
第8章 结构体和其他数据机制 320
8.1 定义类型 320
8.1.1 简单类型定义 320
8.1.2 定义数组类型 321
*8.1.3 定义函数指针类型 322
8.2 结构体 322
8.2.1 结构体类型定义 323
8.2.2 结构体变量的定义和初始化 324
8.2.3 结构体变量的使用 325
8.2.4 结构体与函数 328
8.2.5 结构体、数组与指针 331
8.3 结构体编程实例 335
8.3.1 复数的表示和处理 335
8.3.2 学生成绩管理系统 338
8.4 自引用结构体 347
8.4.1 自引用结构体的概念 347
8.4.2 使用自引用结构体的程序
实例 348
8.4.3 数据与查找 352
本章讨论的重要概念 352
练习 352
附录 355
附录A C和C++?语言运算符表 355
附录B ANSI C关键字列表 356
附录C C和C++?语言常用功能速查 357
附录D 命名规范 358
附录E 编程形式规范 359
进一步学习的建议 361
参考文献 364