C程序设计——基于应用导向与任务驱动的学习方法
温馨提示:5折以下图书主要为出版社尾货,大部分为全新(有塑封/无塑封),个别图书品相8-9成新、切口有划线标记、光盘等附件不全详细品相说明>>
- ISBN:9787121332326
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:510
- 出版时间:2018-01-01
- 条形码:9787121332326 ; 978-7-121-33232-6
本书特色
本书采用以解决实际应用问题为导向、以具体编程任务为驱动的模式,将C语言的知识无缝融入每个实际应用程序中。作者精心设计了100多个应用案例,每个案例均有实现特定功能的、完整的、可运行的程序代码。本书图表丰富,对程序设计的概念、求解问题的思路和方法、程序背后的原理和机制进行了深入剖析。全书共9章。第1章从简单程序入手,将程序设计相关的基础性概念融入案例,使读者对C程序设计有一个整体的、直观的、感性的认识。第2章阐述表达复杂逻辑的分支和循环语句的用法,使读者对应用问题中的逻辑具有较好的表达能力。第3章阐述了利用数组处理批量数据。第4章阐述了如何存储和处理文本型数据。第5章全面地阐述了函数这一模块化程序设计利器。第6章对具有内存间接访问能力的指针进行了深入阐述。第7章讲解如何利用结构体类型创建用户所需新数据类型。第8章阐述了如何利用文件实现数据持久化。第9章讲解了位运算的规则和用法。
内容简介
本书采用大量具有实际生活应用背景的实例系统地、通俗地、透彻地讲解了如何运用C语言设计程序解决实际问题。本书提出的基于应用导向与任务驱动的学习方法是值得推荐的程序设计学习方法。本书从形式到内容都具有一定创新性。本书内容组织独具匠心、叙述方式通俗易懂、编程实例力求原创、任务驱动逻辑清晰、代码注释别具一格、知识扩展开拓思路。 本书是大学工科类专业的*门程序设计课程的*教材,也是广大零基础学习程序设计读者不二之选。 本书具有六大特色: 1、以应用导向,将C语言的知识融汇贯穿在对实际问题求解的过程中,尽量避免单纯语法的讲解。 2、每个编程任务目标明确、源于生活、意趣兼备。以实际任务驱动编程,更加生动有趣。全书共150多个编程实例,可使用程序设计练习系统在线评判,方便上机练习。 3、本书大量运用图解、表格、小贴士、小问答等形式,运用类比、对比等方法,尽量用直观的形式帮助读者理解程序设计中相对抽象的概念、原理、机制。 4、本书内容深入浅出,表里兼顾,帮助读者深入地理解程序底层的运行机制和原理。使读者在编程时做到“知其然”且“知其所以然”。本书语言通俗、可读性好、方便自学又不失深度。 5、程序代码与相应注释之间用箭头连接,代码和注释,一目了然,方便阅读。 6、本书始终站在程序设计者的角度即“人”的角度,来讲解程序设计,而不是站在C语言的角度即“语法”的角度,来讲解程序设计。本书始终以工具(C语言作为程序设计的)服务于目标(求解实际问题)视角来展开讨论。从这样的视角出发,读者更容易理解和接受程序代码。
目录
第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、stderr 475
8.5.2 标准输入、输出的重定向 476
8.5.3 理解和运用stderr与stdout 478
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
作者简介
博士,国防科技大学计算机学院计算机应用专业。湖南农业大学信息科学技术学院电商系主任,副教授。中国计算机学会会员,湖南省高教学会计算机教育专业委员会会员。出版教材:现代计算机网络系统原理及技术研究,中国商务出版社,2013年。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0 -
PREMIERE PRO 2023全面精通:视频剪辑+颜色调整+转场特效+字幕制作+案例实战
¥69.3¥99.0