目录
目 录
第1章 邂逅程序设计—初识C语言1
1.1 第一个程序—我会算加法2
1.2 人机交互—输入和输出函数的基本用法10
1.3 条件与判断—随机应变17
1.3.1 二叉分支的表达—基本的if-else语句17
1.3.2 复合条件的表达22
1.4 利用库函数—拿来主义25
1.5 机器擅长之“算术运算”—计算机的老本行28
1.6 变量—数据的栖身之所34
1.6.1 变量的概念34
1.6.2 变量的数据类型37
1.6.3 程序中的常量40
1.7 赋值运算—改变变量的值42
1.8 程序设计的一般过程47
本章小结48
第2章 程序逻辑之关键—分支与循环51
2.1 机器智能与决策之基石—分支结构52
2.1.1 决策与分支结构52
2.1.2 基本分支结构及其连接方式60
2.1.3 逻辑运算与复合条件表达71
2.1.4 if条件表达典型错误分析75
2.2 机器擅长之“循环”—不厌其烦地重复77
2.2.1 for循环的引入78
2.2.2 剖析for循环86
2.2.3 必须应用循环结构的场合90
2.2.4 循环的初步运用93
2.2.5 for循环常见错误分析96
2.3 程序逻辑进阶—多分支和多重循环98
2.3.1 深入理解循环98
2.3.2 循环的连接100
2.3.3 双重循环与多重循环107
2.3.4 break和continue的运用110
2.3.5 分支与循环的串联和嵌套120
2.4 其他形式分支与循环121
2.4.1 switch-case分支结构121
2.4.2 while与do...while循环128
本章小结130
第3章 批量数据存储与处理—数组134
3.1 何时需要数组134
3.2 序列数据的处理—一维数组135
3.2.1 一维数组的定义135
3.2.2 数组与内存分配137
3.2.3 数组操作之演练140
3.2.4 一维数组的运用141
3.2.5 巧用数组下标149
3.3 表格型数据的处理—二维数组154
3.3.1 二维数组的定义154
3.3.2 访问二维数组的元素155
3.3.3 二维数组操作演练155
3.3.4 二维数组的应用159
3.4 其他164
3.4.1 数组的拓展—多维数组164
3.4.2 二维数组与一维数组的关系165
3.4.3 数组下标越界165
3.4.4 数组定义时的大小能否为变量167
本章小结168
第4章 文本数据处理—字符串169
4.1 字符数据存储和处理169
4.1.1 字符的编码169
4.1.2 字符数据的存储173
4.1.3 字符数据的运算173
4.2 字符串数据存储和处理176
4.2.1 字符串的存储176
4.2.2 文本型数据输入/输出177
4.2.3 字符串处理与库函数180
4.3 文本型数据处理之演练190
4.4 其他193
4.4.1 空字符'\0'的作用193
4.4.2 字符和字符串的区别与联系194
本章小结195
第5章 模块化设计之利器—函数196
5.1 初识函数设计197
5.2 函数的概念200
5.2.1 函数的概念剖析200
5.2.2 模块化设计思想在函数中的体现203
5.3 新函数是如何炼成的206
5.4 函数的设计207
5.4.1 发掘任务中的模块207
5.4.2 函数的定义207
5.4.3 设计函数的方法论209
5.4.4 设计函数的要点详解211
5.5 函数的测试220
5.6 函数的交付使用221
5.6.1 函数的调用形式223
5.6.2 函数调用过程详解224
5.6.3 函数参数的传递230
5.6.4 函数的声明234
5.7 函数设计实践236
5.8 函数的递归—自相似之美249
5.8.1 初识递归函数250
5.8.2 递归函数设计的关键点253
5.8.3 递归调用的执行过程262
5.8.4 二分法与递归264
5.8.5 递归与非递归273
5.8.6 提高递归效率281
5.9 函数相关主题287
5.9.1 局部变量与全局变量287
5.9.2 函数的嵌套定义的应用289
5.9.3 如何生成随机数289
5.9.4 库函数295
5.9.5 初谈提高程序效率295
本章小结299
第6章 内存间接访问之—指针301
6.1 深入理解内存地址302
6.1.1 内存是什么302
6.1.2 什么是内存地址302
6.2 间接访问与直接访问305
6.3 指针变量与普通变量309
6.3.1 指针变量的概念309
6.3.2 揭秘“指针”的由来310
6.3.3 普通变量与指针变量的对比311
6.4 指针与数组的天然联系312
6.4.1 数组名与数组起始地址312
6.4.2 揭秘访问数组的更多细节313
6.5 指针的移动319
6.6 地址值在函数调用中的特殊作用331
6.6.1 函数调用过程详解331
6.6.2 指针作为函数参数334
6.6.3 数组名作为函数实参341
6.6.4 可接受地址值的形参类型探究349
6.7 指针与动态内存分配352
6.7.1 一维数组的动态内存分配354
6.7.2 二维及多维数组与指针357
6.7.3 多阶指针370
6.7.4 返回值为指向动态分配空间的指针370
6.8 变量的存储区、作用范围与生命期371
6.8.1 静态变量和全局变量372
6.8.2 进程内存地址空间布局376
6.8.3 变量的作用范围、生命期和存储区379
6.8.4 extern的用法382
6.9 函数也可作为参数—函数指针与应用384
6.9.1 函数指针的概念384
6.9.2 函数指针数组的运用387
6.9.3 函数指针与qsort( )函数的应用388
本章小结396
第7章 创造新数据类型—结构体类型399
7.1 为何引入结构体类型399
7.2 结构体类型的定义和基本用法402
7.2.1 结构体类型的定义402
7.2.2 结构体类型的基本用法406
7.3 结构体类型数组的用法409
7.4 结构体类型在函数中的运用411
7.4.1 结构体类型在函数中的一般用法411
7.4.2 结构体类型数组的排序420
7.5 结构体类型与链表431
7.5.1 链表的概念和用途431
7.5.2 链表432
7.5.3 为什么需要链表439
7.5.4 循环单链表及其应用440
本章小结447
第8章 数据持久化—文件448
8.1 文件的基本概念449
8.1.1 文件的“纸带模型”449
8.1.2 缓冲文件读/写过程模型451
8.1.3 读/写文件基本流程与文件指针452
8.1.4 文件打开方式454
8.2 文件的读/写454
8.2.1 文本文件的读/写454
8.2.2 二进制文件读/写459
8.3 文件读/写位置的定位466
8.4 文本文件与二进制文件的对比470
8.5 其他主题475
8.5.1 关于stdin、stdout、stderr475
8.5.2 标准输入、输出的重定向476
8.5.3 理解和运用stderr与stdout478
8.5.4 fflush( )函数的用法479
8.5.5 EOF的运用481
8.5.6 容易被误解的feof( )函数482
8.5.7 fgets( )与gets( )的区别484
本章小结485
第9章 深入到bit的运算—位运算487
9.1 位运算的运算符487
9.2 初识位运算488
9.3 位运算的应用489
9.4 位运算的注意事项505
9.4.1 右移的补位方式505
9.4.2 移位量的取模特性506
9.4.3 位运算的数据类型507
9.5 位域509
本章小结510
主编推荐
本书采用大量具有实际生活应用背景的实例系统地、通俗地、透彻地讲解了如何运用C语言设计程序解决实际问题。本书提出的基于应用导向与任务驱动的学习方法是值得的程序设计学习方法。本书从形式到内容都具有一定创新性。本书内容组织独具匠心、叙述方式通俗易懂、编程实例力求原创、任务驱动逻辑清晰、代码注释别具一格、知识扩展开拓思路。
本书是大学工科类专业的*门程序设计课程的*教材,也是广大零基础学习程序设计读者。
本书具有六大:
1、以应用导向,将C语言的知识融汇贯穿在对实际问题求解的过程中,尽量避纯语法的讲解。
2、每个编程任务目标明确、源于生活、意趣兼备。以实际任务驱动编程,更加生动有趣。全书共150多个编程实例,可使用程序设计练习系统在线评判,方便上机练习。
3、本书大量运用图解、表格、小贴士、小问答等形式,运用类比、对比等方法,尽量用直观的形式帮助读者理解程序设计中相对抽象的概念、原理、机制。
4、本书内容深入浅出,表里兼顾,帮助读者深入地理解程序底层的运行机制和原理。使读者在编程时做到“知其然”且“知其所以然”。本书语言通俗、可读性好、方便自学又不失深度。
5、程序代码与相应注释之间用箭头连接,代码和注释,一目了然,方便阅读。
6、本书始终站在程序设计者的角度即“人”的角度,来讲解程序设计,而不是站在C语言的角度即“语法”的角度,来讲解程序设计。本书始终以工具(C语言作为程序设计的)服务于目标(求解实际问题)视角来展开讨论。从这样的视角出发,读者更容易理解和接受程序代码。
精彩内容
本书采用以解决实际应用问题为导向、以具体编程任务为驱动的模式,将C语言的知识无缝融入每个实际应用程序中。作者精心设计了100多个应用案例,每个案例均有实现特定功能的、完整的、可运行的程序代码。本书图表丰富,对程序设计的概念、求解问题的思路和方法、程序背后的原理和机制进行了深入剖析。全书共9章。第1章从简单程序入手,将程序设计相关的基础性概念融入案例,使读者对C程序设计有一个整体的、直观的、感性的认识。第2章阐述表达复杂逻辑的分支和循环语句的用法,使读者对应用问题中的逻辑具有较好的表达能力。第3章阐述了利用数组处理批量数据。第4章阐述了如何存储和处理文本型数据。第5章全面地阐述了函数这一模块化程序设计利器。第6章对具有内存间接访问能力的指针进行了深入阐述。第7章讲解如何利用结构体类型创建用户所需新数据类型。第8章阐述了如何利用文件实现数据持久化。第9章讲解了位运算的规则和用法。
以下为对购买帮助不大的评价