商品详情
书名:C语言程序设计——程序思维与代码调试
定价:89.0
ISBN:9787121370984
作者:周幸妮
版次:第1版
出版时间:2019-07
内容提要:
作者简介:
目录:
第1章 程序概论 1
1.1 流程的概念 1
1.1.1 关于流程 1
1.1.2 流程的表达方式 3
1.1.3 流程的基本逻辑结构 4
1.2 程序的概念 8
1.2.1 自动化流程 9
1.2.2 程序的概念 9
1.2.3 程序的执行特点 12
1.2.4 计算机工作流程 12
1.3 程序的构成 13
1.3.1 计算机解题流程之数据 14
1.3.2 计算机解题流程之处理 15
1.3.3 计算机解题流程之结果 15
1.4 程序的开发过程 17
1.4.1 问题引例 17
1.4.2 程序开发基本步骤 18
1.4.3 计算机解题实例 19
1.4.4 程序开发流程 24
1.5 C语言程序简介 25
1.5.1 C程序样例 25
1.5.2 C程序框架结构 28
1.5.3 代码格式要求 29
1.6 本章小结 30
习题 31
第2章 算法 32
2.1 算法的概念 32
2.2 算法的表示 35
2.3 算法的可行性 39
2.4 算法的通用性 42
2.5 算法的全面性 44
2.6 算法设计过程与算法特性 49
2.6 本章小结 52
习题 52
第3章 基本数据 54
3.1 常量与变量 54
3.1.1 常量 54
3.1.2 变量 56
3.2 数据类型 62
3.2.1 计算机中的信息表示 62
3.2.2 计算机中的信息处理问题
讨论 63
3.2.3 C语言的基本数据类型 66
3.3 整数存储规则 67
3.3.1 有符号整数 68
3.3.2 无符号整数 68
3.3.3 字符类型数据 69
3.4 实数存储规则 70
3.5 运算符与表达式 74
3.6 数值处理 76
3.6.1 算术运算符和算术表达式 76
3.6.2 数据运算中的出界问题 80
3.7 逻辑判断处理 81
3.7.1 关系运算 81
3.7.2 逻辑运算 82
3.8 数据类型转换 86
3.8.1 强制类型转换 88
3.8.2 自动类型转换 89
3.9 其他运算 90
3.9.1 条件表达式 90
3.9.2 sizeof运算符 91
3.9.3 赋值运算符与表达式 92
3.9.4 复合赋值运算符 92
3.9.5 逗号运算符和逗号表达式 92
3.10 本章小结 93
习题 94
第4章 输入/输出 95
4.1 输入/输出的概念 95
4.1.1 标准输入/输出 95
4.1.2 C标准库函数 96
4.1.3 头文件 96
4.2 数据的输出 97
4.2.1 字符输出函数 97
4.2.2 字符串输出函数 98
4.2.3 格式输出函数 99
4.3 数据的输入 102
4.3.1 字符输入函数 103
4.3.2 字符串输入函数 104
4.3.3 格式输入函数 105
4.4 数据输入的常见问题 109
4.5 本章小结 112
习题 113
第5章 程序语句 115
5.1 顺序结构 115
5.2 双分支选择结构 117
5.2.1 双分支选择结构的语法规则 117
5.2.2 复合语句的作用 118
5.2.3 if语句实例 119
5.2.4 嵌套的if-else语句 121
5.3 多分支选择结构 124
5.3.1 多分支问题的引入 124
5.3.2 多分支结构语法规则 125
5.3.3 多分支结构实例 128
5.3.4 各种分支结构语句的比较 134
5.4 循环问题的引入 134
5.4.1 循环中的要素分析 134
5.4.2 循环三要素 136
5.4.3 循环语句 137
5.5 当型循环结构 137
5.5.1 当型循环语法规则 137
5.5.2 循环要素必要性验证 138
5.5.3 当型循环实例 142
5.5.4 循环控制方式 146
5.6 直到型循环结构 146
5.6.1 直到型循环语法规则 146
5.6.2 do-while的适用场合 150
5.6.3 do-while语句实例 150
5.7 当型循环的另一种形式 151
5.7.1 for语句语法规则 151
5.7.2 for语句实例 152
5.8 无限循环 154
5.8.1 实际问题中的无限制循环 154
5.8.2 无限循环的while语句表达 154
5.8.3 无限循环的for语句表达 155
5.9 中断循环 157
5.9.1 实际问题中的循环中断 157
5.9.2 跳出循环的break语句 158
5.9.3 在循环内跳转的continue
语句 161
5.10 自由跳转机制 164
5.10.1 自由跳转的概念 164
5.10.2 无条件转移语句规则 164
5.10.3 无条件转移语句实例 164
5.10.4 goto语句的特点 166
5.11 本章小结 167
习题 168
第6章 数组 172
6.1 数组的概念 172
6.1.1 一组同类型数据的处理
问题 172
6.1.2 一组同类型数据所需要的
表达方式 175
6.2 数组的存储 176
6.2.1 数组的定义 176
6.2.2 数组的初始化 178
6.2.3 数组的空间分配 179
6.2.4 数组的空间查看 180
6.3 一维数组的操作 183
6.4 二维数组的操作 196
6.5 字符数组的操作 205
6.6 本章小结 214
习题 215
第7章 指针 217
7.1 指针的概念 217
7.1.1 名称引用和地址引用 217
7.1.2 存储空间的管理 219
7.1.3 指针的概念 223
7.2 指针的运算 224
7.2.1 指针运算符 224
7.2.2 指针运算种类 224
7.2.3 指针运算基本规则 224
7.2.4 指针偏移的意义 227
7.2.5 空指针的概念 230
7.3 指针与数组 230
7.3.1 指针与一维数组 230
7.3.2 指针与二维数组 234
7.4 指针与多组字符串问题 238
7.4.1 一维指针数组与指向指针的
指针 240
7.5 本章小结 241
习题 242
第8章 复合类型数据 244
8.1 结构体的概念 244
8.1.1 问题引入 244
8.1.2 综合数据表的存储方案 245
8.2 结构体的存储 246
8.2.1 结构体类型定义 246
8.2.2 结构体变量定义 248
8.2.3 结构体初始化 248
8.2.4 结构体变量空间分配 249
8.2.5 结构体成员引用 253
8.3 结构体应用实例 254
8.4 共用体 264
8.4.1 问题引入 264
8.4.2 共用体的空间存储描述 264
8.5 枚举 269
8.5.1 问题引入 269
8.5.2 枚举的概念及定义形式 270
8.5.3 枚举实例 271
8.5.4 枚举的使用规则 272
8.6 声明新的类型名 273
8.6.1 问题引入 273
8.6.2 typedef声明形式及使用 275
8.7 本章小结 275
习题 276
第9章 函数 278
9.1 函数的概念 278
9.1.1 问题的提出 278
9.1.2 模块的概念 279
9.2 函数形式设计 281
9.2.1 模块间信息交流方法 281
9.2.2 函数形式设计 282
9.3 函数间信息交流机制设计 285
9.3.1 函数间信息交流特点分析 285
9.3.2 函数间信息交流之处理数据
的提交与接收 287
9.3.3 函数结果的获取方式 288
9.4 函数总体设计 289
9.4.1 函数设计要素 289
9.4.2 函数间信息传递归结 289
9.4.3 函数的调用 290
9.5 函数设计实例 292
9.5.1 传值调用 292
9.5.2 传址调用 298
9.5.3 函数综合实例 306
9.5.4 main函数的参数 316
9.6 作用域 319
9.6.1 问题引入 319
9.6.2 模块的屏蔽机制 321
9.6.3 内存分区与存储分类 322
9.6.4 屏蔽机制1——变量的有效期
和作用范围 323
9.6.5 屏蔽机制2——函数的有效
范围 330
9.6.6 屏蔽机制3——共享数据的
使用限制 332
9.7 递归 333
9.7.1 引例 333
9.7.2 递归概念 336
9.7.3 递归实例 337
9.8 本章小结 339
习题 340
第10章 编译预处理——编译前的
工作 343
10.1 问题的引入 343
10.2 宏定义 344
10.2.1 简单的宏定义 344
10.2.2 带参数的宏定义 346
10.2.3 宏定义的副作用 348
10.3 文件包含 348
10.4 条件编译 350
10.5 本章小结 353
习题 354
第11章 文件——外存数据的操纵 356
11.1 问题的引入 356
11.2 文件的概念 357
11.3 文件的操作流程 358
11.4 内存和外存的数据交流 359
11.5 程序对文件的操作 361
11.5.1 打开文件 361
11.5.2 文件的读写 362
11.5.3 关闭文件 366
11.5.4 随机读取文件内容 367
11.6 关于文件读写函数的讨论 368
11.7 程序调试与输入输出重定向 372
11.8 本章小结 374
习题 375
第12章 程序的运行 377
12.1 程序运行环境 377
12.1.1 集成环境主界面 379
12.1.2 建立项目 380
12.1.3 新建源文件 382
12.1.4 编辑源文件 382
12.1.5 编译源文件 384
12.1.6 链接程序 385
12.1.7 运行程序 386
12.2 程序测试 387
12.2.1 引子 387
12.2.2 程序测试方法与实例 388
12.3 程序调试概念 392
12.3.1 bug与debug 392
12.3.2 bug无处不在 393
12.3.3 软件调试的困难 393
12.4 软件调试的方法论 394
12.4.1 引例 394
12.4.2 软件调试的基本过程 395
12.4.3 程序错误的查找方法讨论 395
12.4.4 跟踪方法方案探索 397
12.5 程序调试工具 399
12.5.1 IDE中调试器的功能 399
12.5.2 调试命令 401
12.6 调试实例 405
12.6.1 基本调试步骤示例 405
12.6.2 调试查找程序错误示例 407
12.6.3 调用栈的使用示例 416
12.6.4 数据断点使用示例 418
12.7 本章小结 420
习题 421
附录A 运算符的优先级和结合性 425
附录B ASCII码表 426
附录C C语言常用库函数 427
附录D 常用转义字符表 432
附录E 位运算简介 433
附录F 在工程中加入多个文件 435
附录G 编程范式 441
附录H 空类型void问题 449
参考文献 450
定价:89.0
ISBN:9787121370984
作者:周幸妮
版次:第1版
出版时间:2019-07
内容提要:
本书站在程序设计的角度,从程序和算法、数据、程序语句、指针、结构体、函数和文件等基本的C语言要素讲起,全面介绍C语言程序设计的方方面面,引导学习者以“程序的思维”看问题,即如何从一个问题入手,算法应该如何设计、程序如何实现的角度去看程序设计问题,让初学者容易理解并掌握程序设计的基本思想与方法。通过对实际问题、解决方法或存在问题的讨论,引入新概念,深入浅出,让学习的过程变得有趣且容易。本书图文、表格并茂,便于直观理解。
作者简介:
周幸妮,西安电子科技大学计算机学院教授,长期从事程序设计、数据结构等课程的教学工作,著有C语言、数据结构与算法等方面的多部教材。
目录:
第1章 程序概论 1
1.1 流程的概念 1
1.1.1 关于流程 1
1.1.2 流程的表达方式 3
1.1.3 流程的基本逻辑结构 4
1.2 程序的概念 8
1.2.1 自动化流程 9
1.2.2 程序的概念 9
1.2.3 程序的执行特点 12
1.2.4 计算机工作流程 12
1.3 程序的构成 13
1.3.1 计算机解题流程之数据 14
1.3.2 计算机解题流程之处理 15
1.3.3 计算机解题流程之结果 15
1.4 程序的开发过程 17
1.4.1 问题引例 17
1.4.2 程序开发基本步骤 18
1.4.3 计算机解题实例 19
1.4.4 程序开发流程 24
1.5 C语言程序简介 25
1.5.1 C程序样例 25
1.5.2 C程序框架结构 28
1.5.3 代码格式要求 29
1.6 本章小结 30
习题 31
第2章 算法 32
2.1 算法的概念 32
2.2 算法的表示 35
2.3 算法的可行性 39
2.4 算法的通用性 42
2.5 算法的全面性 44
2.6 算法设计过程与算法特性 49
2.6 本章小结 52
习题 52
第3章 基本数据 54
3.1 常量与变量 54
3.1.1 常量 54
3.1.2 变量 56
3.2 数据类型 62
3.2.1 计算机中的信息表示 62
3.2.2 计算机中的信息处理问题
讨论 63
3.2.3 C语言的基本数据类型 66
3.3 整数存储规则 67
3.3.1 有符号整数 68
3.3.2 无符号整数 68
3.3.3 字符类型数据 69
3.4 实数存储规则 70
3.5 运算符与表达式 74
3.6 数值处理 76
3.6.1 算术运算符和算术表达式 76
3.6.2 数据运算中的出界问题 80
3.7 逻辑判断处理 81
3.7.1 关系运算 81
3.7.2 逻辑运算 82
3.8 数据类型转换 86
3.8.1 强制类型转换 88
3.8.2 自动类型转换 89
3.9 其他运算 90
3.9.1 条件表达式 90
3.9.2 sizeof运算符 91
3.9.3 赋值运算符与表达式 92
3.9.4 复合赋值运算符 92
3.9.5 逗号运算符和逗号表达式 92
3.10 本章小结 93
习题 94
第4章 输入/输出 95
4.1 输入/输出的概念 95
4.1.1 标准输入/输出 95
4.1.2 C标准库函数 96
4.1.3 头文件 96
4.2 数据的输出 97
4.2.1 字符输出函数 97
4.2.2 字符串输出函数 98
4.2.3 格式输出函数 99
4.3 数据的输入 102
4.3.1 字符输入函数 103
4.3.2 字符串输入函数 104
4.3.3 格式输入函数 105
4.4 数据输入的常见问题 109
4.5 本章小结 112
习题 113
第5章 程序语句 115
5.1 顺序结构 115
5.2 双分支选择结构 117
5.2.1 双分支选择结构的语法规则 117
5.2.2 复合语句的作用 118
5.2.3 if语句实例 119
5.2.4 嵌套的if-else语句 121
5.3 多分支选择结构 124
5.3.1 多分支问题的引入 124
5.3.2 多分支结构语法规则 125
5.3.3 多分支结构实例 128
5.3.4 各种分支结构语句的比较 134
5.4 循环问题的引入 134
5.4.1 循环中的要素分析 134
5.4.2 循环三要素 136
5.4.3 循环语句 137
5.5 当型循环结构 137
5.5.1 当型循环语法规则 137
5.5.2 循环要素必要性验证 138
5.5.3 当型循环实例 142
5.5.4 循环控制方式 146
5.6 直到型循环结构 146
5.6.1 直到型循环语法规则 146
5.6.2 do-while的适用场合 150
5.6.3 do-while语句实例 150
5.7 当型循环的另一种形式 151
5.7.1 for语句语法规则 151
5.7.2 for语句实例 152
5.8 无限循环 154
5.8.1 实际问题中的无限制循环 154
5.8.2 无限循环的while语句表达 154
5.8.3 无限循环的for语句表达 155
5.9 中断循环 157
5.9.1 实际问题中的循环中断 157
5.9.2 跳出循环的break语句 158
5.9.3 在循环内跳转的continue
语句 161
5.10 自由跳转机制 164
5.10.1 自由跳转的概念 164
5.10.2 无条件转移语句规则 164
5.10.3 无条件转移语句实例 164
5.10.4 goto语句的特点 166
5.11 本章小结 167
习题 168
第6章 数组 172
6.1 数组的概念 172
6.1.1 一组同类型数据的处理
问题 172
6.1.2 一组同类型数据所需要的
表达方式 175
6.2 数组的存储 176
6.2.1 数组的定义 176
6.2.2 数组的初始化 178
6.2.3 数组的空间分配 179
6.2.4 数组的空间查看 180
6.3 一维数组的操作 183
6.4 二维数组的操作 196
6.5 字符数组的操作 205
6.6 本章小结 214
习题 215
第7章 指针 217
7.1 指针的概念 217
7.1.1 名称引用和地址引用 217
7.1.2 存储空间的管理 219
7.1.3 指针的概念 223
7.2 指针的运算 224
7.2.1 指针运算符 224
7.2.2 指针运算种类 224
7.2.3 指针运算基本规则 224
7.2.4 指针偏移的意义 227
7.2.5 空指针的概念 230
7.3 指针与数组 230
7.3.1 指针与一维数组 230
7.3.2 指针与二维数组 234
7.4 指针与多组字符串问题 238
7.4.1 一维指针数组与指向指针的
指针 240
7.5 本章小结 241
习题 242
第8章 复合类型数据 244
8.1 结构体的概念 244
8.1.1 问题引入 244
8.1.2 综合数据表的存储方案 245
8.2 结构体的存储 246
8.2.1 结构体类型定义 246
8.2.2 结构体变量定义 248
8.2.3 结构体初始化 248
8.2.4 结构体变量空间分配 249
8.2.5 结构体成员引用 253
8.3 结构体应用实例 254
8.4 共用体 264
8.4.1 问题引入 264
8.4.2 共用体的空间存储描述 264
8.5 枚举 269
8.5.1 问题引入 269
8.5.2 枚举的概念及定义形式 270
8.5.3 枚举实例 271
8.5.4 枚举的使用规则 272
8.6 声明新的类型名 273
8.6.1 问题引入 273
8.6.2 typedef声明形式及使用 275
8.7 本章小结 275
习题 276
第9章 函数 278
9.1 函数的概念 278
9.1.1 问题的提出 278
9.1.2 模块的概念 279
9.2 函数形式设计 281
9.2.1 模块间信息交流方法 281
9.2.2 函数形式设计 282
9.3 函数间信息交流机制设计 285
9.3.1 函数间信息交流特点分析 285
9.3.2 函数间信息交流之处理数据
的提交与接收 287
9.3.3 函数结果的获取方式 288
9.4 函数总体设计 289
9.4.1 函数设计要素 289
9.4.2 函数间信息传递归结 289
9.4.3 函数的调用 290
9.5 函数设计实例 292
9.5.1 传值调用 292
9.5.2 传址调用 298
9.5.3 函数综合实例 306
9.5.4 main函数的参数 316
9.6 作用域 319
9.6.1 问题引入 319
9.6.2 模块的屏蔽机制 321
9.6.3 内存分区与存储分类 322
9.6.4 屏蔽机制1——变量的有效期
和作用范围 323
9.6.5 屏蔽机制2——函数的有效
范围 330
9.6.6 屏蔽机制3——共享数据的
使用限制 332
9.7 递归 333
9.7.1 引例 333
9.7.2 递归概念 336
9.7.3 递归实例 337
9.8 本章小结 339
习题 340
第10章 编译预处理——编译前的
工作 343
10.1 问题的引入 343
10.2 宏定义 344
10.2.1 简单的宏定义 344
10.2.2 带参数的宏定义 346
10.2.3 宏定义的副作用 348
10.3 文件包含 348
10.4 条件编译 350
10.5 本章小结 353
习题 354
第11章 文件——外存数据的操纵 356
11.1 问题的引入 356
11.2 文件的概念 357
11.3 文件的操作流程 358
11.4 内存和外存的数据交流 359
11.5 程序对文件的操作 361
11.5.1 打开文件 361
11.5.2 文件的读写 362
11.5.3 关闭文件 366
11.5.4 随机读取文件内容 367
11.6 关于文件读写函数的讨论 368
11.7 程序调试与输入输出重定向 372
11.8 本章小结 374
习题 375
第12章 程序的运行 377
12.1 程序运行环境 377
12.1.1 集成环境主界面 379
12.1.2 建立项目 380
12.1.3 新建源文件 382
12.1.4 编辑源文件 382
12.1.5 编译源文件 384
12.1.6 链接程序 385
12.1.7 运行程序 386
12.2 程序测试 387
12.2.1 引子 387
12.2.2 程序测试方法与实例 388
12.3 程序调试概念 392
12.3.1 bug与debug 392
12.3.2 bug无处不在 393
12.3.3 软件调试的困难 393
12.4 软件调试的方法论 394
12.4.1 引例 394
12.4.2 软件调试的基本过程 395
12.4.3 程序错误的查找方法讨论 395
12.4.4 跟踪方法方案探索 397
12.5 程序调试工具 399
12.5.1 IDE中调试器的功能 399
12.5.2 调试命令 401
12.6 调试实例 405
12.6.1 基本调试步骤示例 405
12.6.2 调试查找程序错误示例 407
12.6.3 调用栈的使用示例 416
12.6.4 数据断点使用示例 418
12.7 本章小结 420
习题 421
附录A 运算符的优先级和结合性 425
附录B ASCII码表 426
附录C C语言常用库函数 427
附录D 常用转义字符表 432
附录E 位运算简介 433
附录F 在工程中加入多个文件 435
附录G 编程范式 441
附录H 空类型void问题 449
参考文献 450
- 电子工业出版社有限公司
- 电子工业出版社有限公司有赞官方供货商,为客户提供一流的知识产品及服务。
- 扫描二维码,访问我们的微信店铺