从问题到程式:程式设计与C语言引论


从问题到程式:程式设计与C语言引论

文章插图
从问题到程式:程式设计与C语言引论【从问题到程式:程式设计与C语言引论】《从问题到程式程式设计与C语言引论》是2011年5月1日机械工业出版社出版的图书,作者是裘宗燕 。本书以c作为工具语言,讨论了基本程式设计的各方面内容,详细解释了与c语言和程式设计有关的问题 。
基本介绍书名:从问题到程式:程式设计与C语言引论
作者:裘宗燕
ISBN:9787111337157
定价:39.00
出版社:机械工业出版社
出版时间:2011年5月1日
装帧:平装
开本:16开
内容简介《从问题到程式:程式设计与c语言引论》适合作为高等院校计算机及相关专业第一门程式设计课程的教材,也可供其他学习c程式设计的读者自学使用 。编辑推荐《从问题到程式:程式设计与c语言引论》在新版中,特别加强了针对近年日益受到业界和学术界广泛重视的问题的讨论,并通过详细地分析和讨论大量符合c99标準的实例,给出了分析和分解问题、找出解决问题的主要步骤、确定函式抽象、找出循环、选择语言结构直至最后做出所需程式的完整过程 。目录《从问题到程式:程式设计与c语言引论》前言本书中的编程实例和模式第1章 程式设计和c语言 11.1 程式和程式语言 11.2 c语言简介 61.3 一个简单的c程式 81.4 程式开发过程 101.5 问题与程式设计 14本章讨论的重要概念 15练习 15第2章 数据与简单计算程式 162.1 基本字元、标识符和关键字 162.2 数据、类型和简单程式 172.2.1 几个常用类型 182.2.2 函式printf和简单文本输出程式 192.3 运算符、表达式和计算 222.3.1 算术运算符和算术表达式 222.3.2 表达式的求值 23.2.3.3 计算和类型 242.4 数学函式和简单计算程式 262.4.1 函式、函式调用 262.4.2 数学函式及其使用 272.4.3 函式调用中的类型转换 28语言细节和问题 29c语言的字元集 29基本数据类型的一些问题 29数据形式的转换和输出 31运算对象的求值顺序 32几个常用程式模式 32本章讨论的重要概念 32练习 33第3章 变数、函式和流程控制 343.1 複合结构和顺序程式 343.2 变数的概念和使用 353.2.1 变数的定义 353.2.2 变数的使用 363.2.3 注释和简单顺序程式 383.3 定义函式(初步) 383.3.1 函式定义 393.3.2 函式与程式 423.3.3 函式与类型 433.3.4 自定义输出函式 443.4 关係表达式、条件表达式、逻辑表达式 443.4.1 关係表达式和条件表达式 443.4.2 逻辑表达式 463.5 语句与控制结构 473.5.1 条件语句:if语句 483.5.2 循环语句:while语句 503.5.3 循环语句:for语句 523.6 若干c语言结构 543.6.1 增量和减量运算符(++、--) 543.6.2 逗号运算符 553.6.3 实现二元运算符操作的赋值运算符 553.6.4 空语句 553.6.5 定义枚举常量 563.7 输入和输出 563.7.1 格式输入函式scanf 573.7.2 字元输入和输出函式 60语言细节和问题 61变数的意义和实现 61赋值操作的一些问题 61条件表达式和条件语句 62表达式和求值 63输入和缓冲 65几个常用程式模式 65本章讨论的重要概念 65练习 66第4章 基本编程技术 684.1 循环程式设计 684.1.1 基本循环方式 694.1.2 求一系列完全平方数 694.1.3 判断素数(谓词函式) 714.1.4 艰难旅程(浮点误差) 714.1.5 求立方根(叠代和逼近) 734.1.6 求sin函式值(通项计算) 744.1.7 从循环中退出 754.2 输入循环 774.2.1 输入循环的基本技术 774.2.2 字元输入 804.2.3 检查输入 834.2.4 一个简单计算器 844.3 循环与递归 854.3.1 阶乘和乘幂(循环,递归) 854.3.2 fibonacci序列(计算与时间) 874.3.3 为计算过程计时 884.3.4 fibonacci序列的叠代计算(程式正确性与循环不变式) 894.3.5 最大公约数 914.3.6 河内塔(梵塔)问题 934.4 程式调试和排错 954.4.1 测试 954.4.2 白箱测试 954.4.3 黑箱测试 964.4.4 排除程式里的错误 98语言细节和问题 98程式的逐步求精和控制结构嵌套 99循环中的几种变数 99与输入输出有关的几个问题 100输入与安全性 100几个常用程式模式 101本章讨论的重要概念 102练习 102第5章 c程式结构 1055.1 数值类型 1055.1.1 字元类型 1055.1.2 整数类型 1065.1.3 基本数据类型的选择 1075.2 几种控制语句 1075.2.1 do-while循环结构 1075.2.2 流程控制语句 1085.2.3 开关语句 1095.3 一些标準库函式 1105.3.1 字元分类函式 1115.3.2 随机数生成函式 1125.4 程式的函式分解 1135.4.1 函式分解 1135.4.2 对函式的两种观点 114 5.4.3 函式定义与调用之间的配合 1185.4.4 函式原型 1195.4.5 求函式的根 1215.4.6 一个简单猜数游戏 1235.5 c程式结构与变数 1255.5.1 外部定义的变数 1255.5.2 作用域、存在期和变数类 1265.5.3 变数的其他问题 1305.6 预处理 1315.6.1 档案包含命令 1325.6.2 宏定义与宏替换 1325.6.3 条件编译命令 1355.6.4 定义常量 1355.6.5 单词计数问题 1365.7 字位运算符 138本章讨论的重要概念 141练习 141第6章 顺序数据组织:数组 1446.1 数组的定义和使用 1446.1.1 数组变数的定义和声明 1456.1.2 数组的使用 1456.1.3 数组的初始化 1476.1.4 数组程式实例 1476.1.5 定义数组的问题 1516.2 以数组为参数的函式 1516.2.1 一个例子 1526.2.2 修改实参数组的元素 1536.3 二维和多维数组 1536.3.1 多维数组的初始化 1546.3.2 多维数组的使用 1546.3.3 多维数组作为函式的参数 1556.4 字元数组与字元串 1566.4.1 字元数组 1566.4.2 字元串 1566.4.3 程式实例 1576.4.4 标準库字元串处理函式 1596.4.5 输出文本里的最长行 1606.5 编程实例 1626.5.1 成绩直方图 1626.5.2 一个通用的带检查的整数输入函式 1656.5.3 “计算”数组变数的大小 1666.5.4 数组的划分 1676.5.5 数组的排序 1696.5.6 统计c程式里的关键字 170语言细节和问题 172数组的存储实现 172越界访问的可能后果 173多维数组的实现 173函式参数与sizeof运算符 173字元串的字典序 174几个常用程式模式 174本章讨论的重要概念 174练习 174第7章 指针的套用 1767.1 指针的定义和使用 1767.1.1 指针的定义 1777.1.2 指针操作 1777.1.3 指针作为函式参数 1787.1.4 有关指针的几个问题 1807.2 指针与数组 1817.2.1 指向数组元素的指针 1817.2.2 基于指针运算的数组程式设计 1837.2.3 数组参数与指针 1847.2.4 指针与数组操作的程式实例 1847.2.5 字元指针与字元数组 187 7.2.6 多维数组作为参数的通用函式 1887.3 指针数组 1897.3.1 字元指针数组 1907.3.2 指针数组与二维数组 1907.3.3 命令行参数及其处理 1917.4 动态存储管理 1937.4.1 c语言的动态存储管理机制 1947.4.2 两个程式实例 1967.4.3 函式、指针和动态存储 1997.4.4 定义类型 2007.5 指向函式的指针 2027.5.1 函式指针的定义和使用 2027.5.2 函式指针作为函式的参数 203语言细节和问题 206指针运算原理 206指针转换 206使用动态存储管理的要点和细节 206动态调整策略 207过时的函式指针形式 207複杂类型描述与解读 208几个常用程式模式 209本章讨论的重要概念 209练习 209第8章 档案和输入输出程式设计 2118.1 档案的概念 2118.1.1 流和档案指针 2118.1.2 缓冲式输入输出 2128.2 档案的使用 2138.2.1 档案的打开和关闭 2138.2.2 输入输出函式 2148.2.3 程式实例 2158.2.4 标準错误流 2168.2.5 直接输入输出函式 2178.3 标準流输入输出与格式控制 2188.3.1 行式输入和输出 2188.3.2 输入格式控制 2188.3.3 输出格式控制 2218.3.4 以字元串作为格式化输入输出对象 2238.4 程式实例 2238.4.1 求档案中数据的平均值 2238.4.2 一个背单词程式 2258.4.3 资金账目系统 228几个常用程式模式 230本章讨论的重要概念 231练习 231第9章 结构和複杂数据组织 2329.1 结构 2329.1.1 结构声明与变数定义 2329.1.2 结构变数的初始化和使用 2359.1.3 结构、数组与指针 2369.2 枚举 2379.3 结构与函式 2389.3.1 处理结构的函式 2389.3.2 程式实例 2419.4 编程实例 2439.4.1 数据组的排序 2439.4.2 複数的表示和处理 2459.5 连结结构(自引用结构) 2479.5.1 连结结构 2479.5.2 自引用结构的定义 2499.5.3 程式实现 2499.5.4 数据与查找 252语言细节和问题 253结构的实现 253联合 254栏位 256 本章讨论的重要概念 257练习 257第10章 程式开发技术 25910.1 分别编译和c程式的分块开发 25910.1.1 分块开发的问题和方法 25910.1.2 程式实例:学生成绩处理 26010.1.3 分块重整 26310.1.4 其他安排和考虑 26610.1.5 模组化思想和技术 26710.1.6 单一头档案结构和多个头档案结构 27110.2 功能模组和程式库 27310.2.1 複数模组 27310.2.2 目标档案和库 27510.2.3 防止重複包含 27610.3 错误报告和处理 27610.3.1 建立统一的错误报告机制 27610.3.2 定义变参数的错误报告函式 27710.3.3 运行中错误的检查和处理 27910.4 程式的配置 28310.4.1 程式的行为参数和启动时配置 28310.4.2 互动式配置 28510.4.3 通过命令行参数 28610.4.4 採用配置档案 28710.5 程式开发过程 28710.5.1 自上而下的开发 28810.5.2 自下而上的开发 28910.5.3 实际开发过程 290本章讨论的重要概念 291练习 291第11章 标準库 29311.1 标準库结构 29311.1.1 标準定义([stddef.h]) 29411.1.2 错误信息([errno.h]) 29411.1.3 c99的几个头档案 29511.2 几个已经介绍过的头档案 29511.3 字元串函式([string.h]) 29511.3.1 一些字元串函式 29611.3.2 存储区操作函式 29911.4 功能函式([stdlib.h]) 29911.4.1 几个整数函式 29911.4.2 数值转换 29911.4.3 执行控制 30011.4.4 与执行环境互动 30111.4.5 常用函式bsearch和qsort 30111.5 日期和时间([time.h]) 30211.6 实现特徵([limit.h]和[float.h]) 30311.6.1 整数类型特徵 30311.6.2 浮点数类型特徵 30411.7 其他与输入输出有关的函式([stdio.h]) 30411.7.1 符号常量和类型 30511.7.2 档案操作函式 30511.7.3 流缓冲区操作函式 30611.7.4 档案定位及定位函式 30611.7.5 其他有关函式 30711.7.6 採用va_list参数的输出函式 30811.8 定义变长参数表([stdarg.h]) 30911.9 非局部控制转移([setjmp.h]) 311 11.10 调试断言和信号处理([assert.h]和[signal.h]) 31311.11 标準库的其他功能 31411.11.1 本地化 31411.11.2 多位元组字元 315本章讨论的重要概念 316练习 316第12章 c99导引 31712.1 c99扩充 31712.1.1 语言层扩充 31712.2 c99 数组和结构 31912.2.1 複合对象的初始化 31912.2.2 变长数组的定义和声明 32012.2.3 函式的变长数组参数 32112.2.4 结构的变长数组成员 32212.3 几个c99标準库包 32412.3.1 标準库包[stdint.h]和[inttype.h] 32412.3.2 标準库包[complex.h] 325附录a c语言运算符表 327附录b c语言速查 328进一步学习的建议 333参考文献 336