关于本书的内容有任何问题,请联系 刘博
第1章 程序设计的计算机基础 1.1 计算的“自动化”梦想 1 1.2 计算的“无止尽”现实 3 1.3 计算的“再塑造”未来 4 1.4 编程不只是“coding” 4 1.5 什么是“编程” 5 1.6 怎么学“编程” 7 扩展阅读1 “我”的故事 7 扩展阅读2 “我”和“我”的舞台 8 习题1 9 第 2 章 程序设计方法基础——基本 I/O 和基本数据类型 10 2.1 初识C语言,从“Hello world!”开始 10 2.2 常量和变量 12 2.2.1 变量的类型和变量的定义 12 2.2.2 最佳编码原则:标识符的命名规范和程序注释 14 2.2.3 常量的表示形式 15 2.2.4 最佳编码原则:使用宏常量和const常量 17 2.3 变量的类型决定了什么 18 2.4 键盘输入和屏幕输出 24 2.4.1 单个字符的输入输出 25 2.4.2 数据的格式化屏幕输出 26 2.4.3 数据的格式化键盘输入 28 2.5 本章知识树 31 习题2 32 第 3 章 程序设计方法基础——基本运算 33 3.1 算术运算——最基本的数学运算 33 3.2 赋值运算——用变量保存计算结果 36 3.3 增1和减1运算——最快捷常用的运算 37 3.4 混合数据类型运算中的类型转换 38 3.4.1 自动类型转换与类型提升 38 3.4.2 “呼风唤雨”的强制类型转换 39 3.4.3 自动类型转换的安全隐患 40 3.5 位运算及其应用 45 3.6 本章知识树 47 习题3 47 第 4 章 程序设计方法基础——基本控制结构 49 4.1 算法的概念与算法的描述方法 49 4.1.1 算法的概念 49 4.1.2 算法的描述方法 50 4.2 计算机的问题求解 51 4.3 顺序结构 51 4.4 选择结构 53 4.4.1 选择结构的基本形式——变是唯一的不变 53 4.4.2 条件语句——无处不在的抉择 54 4.4.3 开关语句——条条道路通罗马 60 4.4.4 最佳编码原则:正确使用关系和逻辑运算符 64 4.5 循环结构——周而复始的循环之道 66 4.5.1 循环的控制方式 66 4.5.2 计数控制的循环 67 4.5.3 条件控制的循环 74 4.5.4 最佳编码原则:结构化程序设计 78 4.6 本章知识树 84 习题4 84 第 5 章 程序设计方法基础——结构化与模块化 86 5.1 结构化程序设计——像搭积木一样写代码 86 5.1.1 自底向上的程序设计方法 86 5.1.2 自顶向下、逐步求精的结构化程序设计方法 92 5.2 模块化程序设计——分工与合作的艺术 94 5.2.1 模块分解的基本原则 95 5.2.2 如“活字印刷”般的函数 100 5.2.3 函数调用和参数传递 103 5.2.4 最佳编码原则——防御式编程 110 5.2.5 多文件编程 116 5.2.6 最佳编码原则——正确运用变量的作用域和存储类型 122 5.3 程序测试方法 129 5.3.1 程序测试的目的 129 5.3.2 测试方法和测试用例 130 5.3.3 错误实例分析 131 5.4 程序调试方法 136 5.4.1 常用的程序调试与排错方法 136 5.4.2 错误实例分析 139 5.5 最佳编码原则——代码规范 142 5.6 本章知识树 143 习题5 143 第 6 章 程序设计的问题求解基础 145 6.1 问题求解策略 145 6.2 枚举——从找回你的密码谈起 145 6.3 递推——荷花定律和大自然中的秘密 158 6.3.1 正向顺推实例 159 6.3.2 反向逆推实例 161 6.4 递归——“千里之行,始于足下”的启示 163 6.4.1 递归的内涵与数学基础 163 6.4.2 递归算法的基本要素 164 6.4.3 递归的执行过程 166 6.4.4 递归与迭代的关系 169 6.5 本章知识树 178 习题6 178 第 7 章 算法和数据结构基础——用数组保存数据 181 7.1 数组的定义、引用和初始化 181 7.2 向函数传递批量数据 186 7.2.1 按值传递与模拟按引用传递 186 7.2.2 一维数组的参数传递——以筛法求素数为例 187 7.2.3 二维数组的参数传递——以杨辉三角为例 189 7.3 数组下标越界错误案例分析 192 7.3.1 一维数组的下标越界实例分析 192 7.3.2 二维数组的下标越界实例分析 193 7.4 安全编码规范 195 7.5 本章知识树 195 习题7 196 第 8 章 算法和数据结构基础 ——查找和排序算法 198 8.1 线性查找算法——众里寻他千百度 198 8.1.1 线性查找算法的基本原理 199 8.1.2 线性查找算法的程序实现 199 8.2 二分查找算法——猜数游戏中的智慧 201 8.2.1 二分查找算法的基本原理 201 8.2.2 二分查找算法的递归和迭代实现 202 8.2.3 二分查找算法的实际应用 204 8.3 求最值算法 205 8.4 排序算法——如影随形的“顺序” 208 8.4.1 交换排序算法 209 8.4.2 选择排序算法 212 8.4.3 冒泡排序算法 213 8.5 本章知识树 216 习题8 216 第 9 章 算法和数据结构基础——“呼风唤雨”的指针 218 9.1 指针——C语言世界中的如意金箍棒 218 9.1.1 变量的寻址方式 219 9.1.2 指针变量的定义、初始化及其解引用 219 9.2 指针变量与模拟按引用传参 222 9.3 函数指针及其应用 227 9.3.1 函数指针的概念 227 9.3.2 函数指针的应用 230 9.4 指针及其孪生兄弟 232 9.4.1 指针上的游走 232 9.4.2 指针和一维数组的前世之缘 235 9.5 文件指针和数据的格式化文件读写 239 9.6 安全编码规范 249 9.7 本章知识树 250 习题9 251 第 10 章 算法和数据结构基础——字符串和文本处理 252 10.1 字符串的存储、表示与处理 252 10.1.1 字符串的存储与表示 252 10.1.2 字符串的输入和输出 255 10.1.3 字符串处理函数 261 10.2 字符串的应用——编程带你去看“诗和远方” 264 10.2.1 向函数传递字符串——从微情书到回文诗和回文对联 264 10.2.2 从函数返回字符串——破解藏头诗 268 10.2.3 错误案例分析 270 10.3 指针数组及其应用 273 10.3.1 指针和二维数组间的关系——以扑克牌为例 273 10.3.2 字符指针数组和二维字符数组 277 10.3.3 错误案例分析 282 10.4 文本文件的读写及应用 286 10.4.1 读写文件中的字符 286 10.4.2 读写文件中的字符串 288 10.5 安全编码规范 290 10.6 本章知识树 297 习题10 297 第 11 章 算法和数据结构基础 ——用结构封装数据 300 11.1 结构体类型及其应用——变形金刚之组合金刚 300 11.1.1 结构体类型的声明和结构体变量的定义 301 11.1.2 结构体成员的初始化和访问 305 11.1.3 结构体与数组的嵌套 307 11.1.4 结构体占内存的字节数 308 11.1.5 结构体的相关计算和操作 310 11.2 用结构体封装函数参数 311 11.2.1 在函数之间传递结构体数据 312 11.2.2 结构体应用实例1:奥运奖牌排行榜 315 11.2.3 结构体应用实例2:一万小时定律 323 11.2.4 结构体应用实例3:洗发牌模拟 325 11.3 共用体类型和枚举类型 327 11.3.1 共用体类型及其应用 327 11.3.2 枚举类型及其应用 331 11.4 安全编码规范 332 11.5 本章知识树 333 习题11 333 第 12 章 算法和数据结构基础——结构设计之美 335 12.1 从定长数组到动态数组 335 12.1.1 动态内存分配 335 12.1.2 动态数组实例——随机点名 337 12.2 从静态数据结构到动态数据结构 341 12.2.1 线性表的链式存储 341 12.2.2 单向链表的基本操作 342 12.2.3 单向循环链表应用实例——循环报数问题 348 12.3 限定性线性表之栈和队列 354 12.3.1 栈的应用实例——再谈回文诗 354 12.3.2 队列的应用实例——再谈循环报数问题 359 12.4 树和图等非线性数据结构 366 12.4.1 树的概念和应用 366 12.4.2 图的概念和应用 369 12.5 安全编码规范 370 12.6 本章知识树 373 习题12 373 附录A C语言中的关键字 375 附录B GCC中数据类型占内存的字节数和表数范围 376 附录C 运算符的优先级与结合性 377 附录D 常用字符的ASCII码对照表 378 附录E 二进制补码的计算方法 379 附录F 输入输出格式转换说明 381 附录G 常用的ANSI C标准库函数 384 参考文献 395
本书是程序设计基础类教材,旨在面向零基础初学者(特别是非计算机相关专业的读者)讲解C语言程序设计相关知识。主要...
本书为Java基础入门教材,适合初学者使用。全书共13章,第1~2章主要讲解Java技术的一些基础知识,内容包...
本书深入浅出地介绍数据分析的完整流程及Python实现,分为三篇共10章。第一篇为基础篇(第1章~第5章),包...
本书将Python程序设计的知识按由易到难、由浅入深的规律精心设计为12个模块,包括程序开发环境构建与数据输入...
...
我要评论