|
关于我们
新书资讯 新书推荐 |
C语言程序设计 读者对象:本书既可作为高等院校计算机及相关专业学生的教材,也可满足编程爱好者自学的需求。
本书是高等院校本科教材。本书秉承“理论牵引、实践驱动”的理念,全面讲解 C 语言核心知识与编程思维。全书共 8 章,内容涵盖 C 语言的简单编程、循环程序设计与数据加工、计算思维、嵌套结构与流程控制、构造数据类型与指针、模块化程序设计、进阶编程和文件操作等核心内容。本书采用“从已知(数学、自然语言思维)到未知(C 语言程序)”的递进式教学法,依托三大支柱:? 知识关联:将数学、自然语言思维无缝融入 C 语言语法,实现平滑过渡,入门轻松。? 知识串联:以“计数→循环→数组→指针→常用表”为核心内容主线,环环相扣,逐步构建编程思维,实现知识贯通。? 案例驱动:通过“问题分析→建模→算法设计→编程实现”的完整训练流程,在解决真实问题中培养计算思维。本书特别以模块化程序设计为贯穿主线:自第 4 章起,有机融入函数设计与模块化开发案例,引导读者从零散编码转向结构化、可复用的编程思维,为构建复杂程序打下坚实基础。本书配有完备的电子课件、实验大纲、习题及难点可视化(如位运算、移位运算、排序、动态链表演示),形成立体化教学资源包,支持多种教学与自学场景。
吕振洪,男,浙江师范大学数学与计算机科学学院副教授,毕业于国防科技大学。主要从事计算机科学与技术领域的教学科研工作,研究方向涵盖算法设计、软件工程及自动化技术。2006年作为第一作者在《浙江师范大学学报(自然科学版)》发表《一种快速的条件组合算法》,提出通过限界函数优化解决低阶缺陷幻方复原问题。现担任浙江师范大学人工智能算法及应用系统研发工作室指导教师,带领团队在智慧教育、电子商务等领域完成产学研合作项目,累计科研经费超1000万元?。代表性论文包括《用可视化法建立二叉树实例》《基于PCI总线的高速视频图像采集卡》等。
目 录
第 1 章 C 语言的简单编程·············································································.1 1.1 C 语言的简易程序与框架 ····································································.1 1.1.1 最简单的程序 ·············································································.1 1.1.2 带输出的程序 ·············································································.3 1.1.3 带输入/输出的程序········································································.5 1.1.4 数学表达式与 C 语言表达式································································.6 1.1.5 简单的赋值语句 ···········································································.7 1.1.6 单文件 C 语言程序的程序框架 ···························································.8 1.2 简单的 if 语句···················································································10 1.2.1 不带 else 的 if 语句········································································10 1.2.2 带 else 的 if 语句 ··········································································12 1.3 程序执行的幕后 ················································································13 1.3.1 源程序到可执行程序的转换 ······························································14 1.3.2 程序执行的“舞台”:冯?诺依曼架构 ··················································15 1.3.3 程序执行中的数据流与转换 ······························································15 1.3.4 数的存储···················································································17 1.3.5 数的表示···················································································19 1.4 习题 ·······························································································24 第 2 章 简单循环程序设计及数据加工······························································25 2.1 简单计数原理与循环语句 ····································································25 2.1.1 计数模式···················································································25 2.1.2 for 循环语句与计数模式 ··································································26 2.1.3 while 循环语句与计数模式 ·································································28 2.1.4 do-while 循环语句与计数模式 ····························································30 2.1.5 循环的定步长和变步长 ···································································31 2.1.6 计数模式在数组中的应用·································································32 2.2 累加模式 ·························································································34 2.3 连乘积模式 ······················································································35 2.4 数据加工方法 ···················································································36 2.4.1 字符到数值的转换 ········································································36 2.4.2 开关切换···················································································37 2.4.3 整除与求余 ················································································39 2.5 承上启下模式 ···················································································41 2.6 跟踪模式 ·························································································44 2.7 一票否决模式 ···················································································46 2.8 首尾不一模式 ···················································································47 2.9 随机数模式 ······················································································50 2.10 习题 ·····························································································50 第 3 章 C 语言基础及计算思维·······································································52 3.1 C 语言数据类型 ················································································52 3.1.1 整型数据···················································································54 3.1.2 字符型数据 ················································································57 3.1.3 实数类型···················································································59 3.1.4 选择合适的数据类型······································································60 3.2 运算符、表达式和表达式语句 ······························································61 3.2.1 运算符及优先级结合性 ···································································61 3.2.2 运算符与表达式 ···········································································63 3.2.3 基本数据类型之间的相互转换 ···························································67 3.2.4 表达式语句 ················································································69 3.3 基本的输入/输出 ···············································································69 3.3.1 C 语言的格式化输出 ······································································69 3.3.2 C 语言的格式化输入 ······································································73 3.3.3 其他非格式化的输入/输出函数···························································75 3.4 计算思维 ·························································································75 3.4.1 结构化程序设计方法······································································76 3.4.2 算法························································································78 3.4.3 计算思维的实现(C 语言) ·································································80 3.5 习题 ·······························································································81 第 4 章 C 语言嵌套结构与流程控制 ·································································82 4.1 if 语句的嵌套 ···················································································82 4.1.1 简单的 if 语句嵌套 ········································································82 4.1.2 空悬 else 问题 ·············································································84 4.1.3 多分支 if-else 语句 ········································································85 4.2 switch 语句 ······················································································87 4.3 循环体中的 break 和 continue 语句 ·························································91 4.4 多重循环 ·························································································93 4.4.1 多重循环的实现策略······································································94 4.4.2 五种常见形态的二重循环·································································97 4.4.3 多重循环的算法优化···································································.101 4.5 习题 ····························································································.104 第 5 章 构造数据类型与指针·······································································.106 5.1 一维数组 ······················································································.106 5.1.1 一维数组的定义和引用 ································································.106 5.1.2 数组与循环程序设计···································································.110 5.1.3 字符数组与字符串 ·····································································.112 5.1.4 一维数组的综合应用···································································.115 5.2 指针 ····························································································.118 5.2.1 指针与指针变量 ········································································.118 5.2.2 指针变量的定义 ········································································.118 5.2.3 指针变量的核心特性与价值 ···························································.119 5.2.4 指针变量的使用规则···································································.119 5.2.5 多级指针················································································.120 5.2.6 指针变量的解引用语法 ································································.121 5.2.7 追踪接口绑定轨迹 ·····································································.121 5.2.8 指针变量的常用场景···································································.125 5.2.9 利用指针访问数组 ·····································································.127 5.3 二维数组与指针 ·············································································.130 5.3.1 二维数组的初始化和元素引用 ························································.131 5.3.2 二维数组的循环遍历与编程实现 ······················································.134 5.3.3 指针数组的定义与典型应用 ···························································.135 5.3.4 数组指针及使用 ········································································.139 5.3.5 二维数组指针运算的近似与等价关系·················································.141 5.3.6 数组指针的综合应用···································································.144 5.4 结构体 ·························································································.149 5.4.1 结构体的定义和初始化 ································································.149 5.4.2 结构体变量、指针、数组及应用 ······················································.155 5.5 联合体(共用体) ··········································································.163 5.6 枚举类型 ······················································································.165 5.6.1 枚举类型的定义和使用 ································································.165 5.6.2 枚举类型的综合应用···································································.166 5.7 引用类型 ······················································································.168 5.8 习题 ····························································································.171 第 6 章 模块化程序设计·············································································.173 6.1 函数基础 ······················································································.173 6.1.1 函数定义················································································.174 6.1.2 函数调用················································································.176 6.1.3 函数声明················································································.177 6.1.4 函数定义、声明与调用案例 ···························································.177 6.1.5 函数栈* ·················································································.179 6.2 函数参数的传递方式 ·······································································.181 6.2.1 函数参数的值传递 ·····································································.181 6.2.2 函数参数的指针传递···································································.182 6.2.3 函数参数的引用传递···································································.183 6.3 函数的返回类型和返回值 ·································································.184 6.4 自定义函数的参数表 ·······································································.187 6.4.1 数组作为函数参数时的指针本质 ······················································.187 6.4.2 结构体等复合类型参数 ································································.195 6.4.3 经典参数表分析 ········································································.196 6.4.4 函数指针参数与模块可替换 ···························································.199 6.4.5 函数的相对独立性和参数表设计原则·················································.204 6.5 递归算法与递归函数 ·······································································.207 6.5.1 递归与数学归纳法 ·····································································.209 6.5.2 递归算法的微观验证与宏观理解 ······················································.212 6.5.3 递归算法设计 ··········································································.213 6.6 作用域与存储类别 ··········································································.215 6.6.1 局部变量················································································.215 6.6.2 全局变量················································································.217 6.6.3 变量隐藏················································································.219 6.6.4 变量的存储类别 ········································································.221 6.7 模块化程序设计与综合应用 ·······························································.225 6.7.1 自顶向下设计 ··········································································.226 6.7.2 自顶向下和自底向上方法·······························································.228 6.7.3 实现细节················································································.230 6.7.4 逐步求精的优势 ········································································.233 6.8 习题 ····························································································.233 第 7 章 C 语言的进阶编程··········································································.235 7.1 常用表的数据组织及应用 ·································································.235 7.1.1 索引表 ··················································································.235 7.1.2 跳转表 ··················································································.239 7.1.3 动态数组················································································.242 7.1.4 动态链表················································································.246 7.1.5 静态链表················································································.259 7.2 类封装的模块化程序设计 ·································································.265 7.2.1 问题分析················································································.266 7.2.2 万年历问题的数据模型 ································································.266 7.2.3 struct 程序模块的组织 ·································································.268 7.2.4 算法设计和案例程序···································································.269 7.2.5 万年历案例程序的改进 ································································.272 7.3 习题 ····························································································.276 第 8 章 文件····························································································.278 8.1 文件概述 ······················································································.278 8.1.1 Windows 的树形目录结构 ·······························································.278 8.1.2 应用程序读写文件的原理 ·······························································.279 8.2 文件操作基础 ················································································.280 8.2.1 打开文件················································································.281 8.2.2 关闭文件················································································.281 8.2.3 文件结构体 FILE 与 FILE 指针 ························································.281 8.2.4 流式的概念 ·············································································.282 8.2.5 文本文件与二进制文件 ································································.283 8.2.6 文件定位方式与文件的当前位置 ······················································.284 8.3 有结构文件的读写 ··········································································.285 8.4 随机与顺序读写文件 ·······································································.289 8.4.1 按学号的随机和顺序查找·······························································.290 8.4.2 按二分法随机查找 ·····································································.292 8.4.3 按名字的顺序查找 ·····································································.293 8.5 用定长结构管理可变数据 ·································································.294 8.5.1 dBaseⅢ的逻辑结构 ····································································.294 8.5.2 dBaseⅢ的存储结构 ····································································.296 8.5.3 显示 dBaseⅢ数据库····································································.297 8.6 习题 ····························································································.301 附录 A 关键字 ·························································································.302 附录 B ASCII 码对照表··············································································.303 附录 C 预处理指令 ···················································································.304 参考文献··································································································.305
你还可能感兴趣
我要评论
|

新书资讯


