工程问题C语言求解(原书第4版)
作者 : [美]德洛莉丝 M. 埃特尔(Delores M. Etter) 著
译者 : 宫晓利 周阳 张金 译
丛书名 : 计算机科学丛书
出版日期 : 2016-12-16
ISBN : 978-7-111-55441-7
定价 : 79.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 396
开本 : 16
原书名 : Engineering Problem Solving with C,Fourth Edition
原出版社: Pearson Education Asia
属性分类: 教材
包含CD :
绝版 :
图书简介

本书介绍如何使用ANSI C编程语言求解工程问题。书中提供了丰富的实际问题求解程序来解决各种不同领域的问题,从电子、计算机、机械、文化、化学和环境工程到计算机科学,是一本理论和实践结合紧密的教材。

图书特色

本书与一般C语言编程书籍最大的不同在于以工程问题为引导培养程序设计思维。跟随作者的脚步,你时而化身一名聪明的探员,思考如何解决犯罪现场调查中的指纹识别问题;时而成为一名无人机设计师,研究处理各种地面形态和拓扑结构的导航算法;时而扮演一名航空科学家,收集探测火箭的轨迹数据并分析性能……如果你毫无编程经验,书中详尽的C语言基础知识将带你轻松入门;如果你面临的是实际工程应用,书中经过实践验证的方法论将开拓你对计算思维的理解。

本书特点
有趣的工程问题。本书以“犯罪现场调查”为主题案例,其他精选的工程问题包括冰山追踪、仪器可靠性、海啸分析及氨基酸分子量等,包罗万象,妙趣横生。
经典的解决方案。“五步法”涵盖从问题陈述到测试的全过程,此外,书中还使用了分解提纲、伪代码和流程图来完成自顶向下的程序设计和算法求精。
丰富的习题资源。扩展了与应用问题相关的“修改”题,章后“简述题”可帮助读者巩固知识,“编程题”则提供了动手操练的机会,且书后配有答案。

作者简介
德洛莉丝 M. 埃特尔(Delores M. Etter) 以编写解决工程问题和科学问题的创新教材而得到广泛赞誉。目前任教于美国南卫理公会大学电子工程系和计算机科学系,并任该校工程教育Caruth研究所执行总监以及工程教育德州仪器杰出主席。她曾先后在科罗拉多大学博尔德分校、新墨西哥大学电气和计算机工程学院任教,也曾任斯坦福大学客座教授。埃特尔博士是IEEE会士,著有《工程问题C++语言求解》等多部教材。

图书前言

从简单函数估计到非线性方程组求解,工程师需要利用计算机解决各种各样的问题。为完成这些工作,C语言已经成为许多工程师和科学家的选择,不仅是因为它强大的指令和数据结构,而且还因为它很容易被用于实现系统级操作。既然C语言是许多新入行的工程师们在工作中不得不面对的编程语言,那么我们就在此对C语言做一个详细介绍。本书将包括以下内容:
展示一种用于求解工程问题的通用方法。
对C语言基础进行详细介绍,因为C语言已经成为众多工程师和科学家的重要工具。
通过提供多种多样的有趣的工程实例和应用,说明使用C语言求解问题的过程。
为了清晰地表述以上内容,本书第1章介绍了解决工程问题的5步过程,这在本书后面的内容里会一直用到。第2~7章对使用C语言来求解工程问题进行了基本介绍。第8章简单介绍了使用C++进行面向对象的程序设计,因为面向对象程序设计在工程和科学的诸多领域中日渐普及,并且很可能会在以后的工作中遇到。我们用大量工程和科学学科中的例子来贯穿这些章节。对于这些例子的求解方法,则主要是通过使用前述的5步过程和ANSI C(关于ANSI C++会在第8章介绍)来实现。其中ANSI C是由美国国家标准协会设计的标准。
第4版中的变化
新版的主题是犯罪现场调查(CSI)。学习犯罪现场调查背后的技术不仅非常有趣,而且还为本书提供了一些很好的编程问题。在本书中,我们将用C语言程序方法解决这些问题。
修改了1.2节,加入了对诸如云计算和内核等当前热点话题的讨论。
增加了彩色插图来定义犯罪现场调查的重要领域——生物特征识别。生物特征识别是指通过物理特征或行为特征来进行身份识别。插图中讨论了指纹、人脸识别、虹膜识别、DNA以及语音识别的技术。
每章都以犯罪现场调查技术的一张配图和相关讨论开始。除第1章以外,后面的每一章里都增加了相关的节以讲解技术的应用。除了讲解C语言的主要功能以外,还将介绍法医人类学、人脸识别与监控视频、虹膜识别、语音分析和语音识别、DNA分析、指纹识别以及手势识别等相关技术。在这些应用部分,我们会设计相应的C程序来解决犯罪现场调查中遇到的技术问题。
基于每个工程应用提出的问题,后面都增加了“修改”练习题以对原问题进行扩展。
根据最新的C++标准,更新了第8章中关于C++的材料。
预备知识
本书假设读者先前没有任何计算机编程经验。对于数学的预备知识是高等代数和三角函数。当然,如果读者使用过其他的计算机语言和软件工具,则可以跳过开头的预备材料以便更快地阅读内容。
课程结构
本书可以作为理工类相关专业本科生一个学期的课程教材。其中涉及的基本内容包括数学计算、字符数据、控制结构、函数、数组、指针和结构体等。学习过其他计算机编程语言的学生应该可以在一学期内完成这些内容。如果是在短学时课程中对C语言进行初步学习,可以仅学习书中的必修章节(可选章节在目录中已用“*”标出)。下面介绍使用本书的三种方式及对应的推荐章节:
C语言基础。许多基础入门类课程除了向学生介绍编程语言外,还会介绍一些计算机工具。对于这些课程,建议涵盖必修部分的第1~5章。这些内容向学生介绍了C语言的基本功能,通过一定程度的学习之后,学生能够使用数学计算、字符数据、控制结构、函数和数组编写大规模的程序。
使用C语言解决实际问题。如果要通过一学期的课程教会学生掌握C语言,那么建议讲授第1~7章的全部必修章节。这些章节囊括了C语言的所有基本概念,包括数学计算、字符数据、控制结构、函数、数组、指针和结构体。
使用C语言和数值分析方法求解工程问题。书中许多章节都包含了常见的数值分析方法,比如线性插值、线性模型、求多项式的根、解联立方程组等。这些都为需要使用数值分析来完成课程作业的学生提供了强有力的工具。为了达到这样的课程目的,需要学习第1~7章的所有内容。
许多学生在读到有关C++中面向对象特性的附加内容时可能会很感兴趣,这里还是建议首先将第1~7章的所有必修内容学习完毕,最后再来了解第8章的内容。
解决问题的方法论
对于工程和科学问题的求解是本书不可或缺的重要部分。第1章介绍了利用计算机解决工程问题的5步处理过程。这5步处理过程是本书作者在她学术生涯早期提出的,并且由她班里或使用本书的数以千计的学生成功使用。不仅如此,这个成功的问题求解过程同时也被很多其他作者采纳。这5步分别为:
1)清楚地描述问题。
2)描述输入/输出信息。
3)手动计算一个简单例子。
4)设计算法并将它转换为计算机程序。
5)使用多种数据测试解决方案。
为了不断强化求解问题的能力,每次解决工程问题的过程中,都要清晰地标识出这5步中的每一步。除了经典的5步法之外,书中还使用了分解提纲、伪代码和流程图来完成自顶向下的程序设计并且将算法逐步求精。
工程和科学应用
本书的重点是将现实生活中的工程与科学的实例和问题相结合。其中涉及的工程应用包罗万象、种类繁多,下面是书中给出的例子:
海水盐度
速度计算
氨基酸分子量
风洞
波互作用
臭氧测量
探测火箭轨迹
缝合线封装
木材再生
关键路径分析
探空气球
冰山追踪
仪器可靠性
系统稳定性
此外,每章开头都是以某方面的主题讨论开始,后续内容里,都会解决一些与犯罪现场调查技术相关的问题。这些问题涉及以下应用:
法医人类学
人脸识别与视频监控
虹膜识别
语音分析
ANSI C
书中的所有语句和程序都是根据美国国家标准协会制定的C语言标准编写的。通过使用ANSI C,学生可以学习编写适用于不同计算机系统的可移植程序。
软件工程观点
工程师和科学家们一直都希望设计并实现用户友好和可复用的计算机解决方案,因此学习软件工程技术就显得至关重要。在程序设计中,我们重点强调代码的可读性和文档完整性,有关软件工程的其他问题在本书中也都有讨论,比如软件生命周期、移植性、维护、模块化、递归、抽象化、复用性、结构化程序设计、验证和确认。
4种类型的练习题
学习任何新技术都需要不同难度等级的练习。本书设计了4种类型的练习题来提高学生解决问题的能力。第一类题型标注为练习,这些都是与某节内容相关的客观题。大多数小节最后都带有一组“练习”题目,帮助学生判断自己对该节内容的掌握程度,以确认是否为后续学习做好准备。
除了“练习”题目,本书还设计了标注为修改的题型以给学生提供动手实践练习,这些习题都与“解决应用问题”一节中开发的程序有关。在“解决应用问题”中,我们使用5步处理过程设计了一个完整的C程序,而“修改”题要求学生使用不同的数据运行程序,以检验他们对程序的设计原理以及工程变量间关系的理解是否正确。此外,还要求学生对程序进行简单的修改,然后重新运行程序来测试这些修改。本书结尾给出了一些“修改”题的参考答案。
每章都以两组习题结尾。其中,简述题包括判断题、多选题、匹配题、语法题、填空题、内存快照题、程序输出题和程序分析题。本书结尾给出了全部简述题的完整答案。
每章(除第1章外)最后一类题型是编程题。这些编程题都是关于各种工程应用的新问题,题目从易到难。每道习题都要求学生开发一个完整的C程序或函数。本书结尾给出了一些编程题的参考答案,教师参考书中包含了编程题的完整答案。
学习和编程辅助
每章的小结部分都包含对编程风格和调试说明的总结,再加上关键术语列表和C语句总结,这些都使本书具有很高的学习和参考价值。在全书末尾的术语表中包含了完整的关键术语表及其含义。此外,书中还包括常见函数和优先级列表,以及大部分C语句的例子。
可选的数值方法
本书讨论了经常用于求解工程问题的常见数值方法,包括插值、线性模型(回归)、求根和求解联立方程组。书中还介绍了矩阵的概念,并使用大量的例子进行说明。所有这些主题都假定读者仅具有三角函数和高等代数的知识储备。
MATLAB和可视化
具有创造力的工程师往往需要拥有分析问题的直观能力,而将与问题和求解方法相关的信息进行可视化处理是理解问题和提高直观能力的重要部分。因此,本书包含了大量的数据分布图来说明解决指定问题所需的信息之间的关系。所有图像都由MATLAB生成(MATLAB是一个可以进行数值计算、数据分析和可视化的功能强大的工具软件)。附录中也介绍了如何由存储在文本文件中的数据生成简单的分布图像,其中文本文件由文字处理软件或C程序生成。
附录
为了进一步方便读者参考,附录包含了许多重要内容。附录A对ANSI C标准库进行了详细讨论。附录B给出了ASCII字符编码表,附录C介绍了如何使用MATLAB绘制文本文件中的数据点。这使得学生可以用C程序生成ASCII文件,并使用MATLAB绘制文件中的数据分布图像。
非技术技能
除了在工程项目中学到的技能,21世纪的工程师还需要具备更多的能力。第1章对工程师需要具备的非技术技能进行了简短介绍,其中特别讨论了以下内容:提高口语和书面交流能力,了解将想法变为产品的设计/加工/制造过程,在跨学科团队中工作,了解全球化市场、综合与分析的重要性以及在解决工程问题时伦理和其他社会问题的重要性。本书讲授的重点是利用C语言来解决工程问题,与此同时,还尝试将这些非技术内容穿插在书中,结合具体问题一并介绍和讨论。
其他资源
所有老师和学生都可以访问www.pearsonhighered.com/etter。在这里,学生可以访问书中的学生数据文件,老师可以注册教师资源中心(Instructor’s Resource Center,IRC)。IRC中包含了本书中出现的所有编程项目的完整答案,以及一套完整的PPT讲稿。
致谢
许多人都为本书做出过巨大贡献。学生是对教学内容“好”与“不好”的最佳评判者。非常感激那些在阅读本书之前从未使用过计算机的学生们,以及学习过其他语言的本科生和希望使用C语言进行科研分析的研究生的反馈。这些学生的评价和建议对本书的改进提供了很大帮助。
尤其重要的是,本书收到了很多相当具有建设性的评审意见。许多评审员都对本书做出了重要指导,包括:Murali Narayanan(堪萨斯州立大学),Kyle Squires(亚利桑那州立大学),Amelia Regan(加州大学欧文分校),Hyeong-Ah Choi(乔治华盛顿大学),George Friedman(伊利诺伊大学香槟分校),D. Dandapani(科罗拉多大学斯普林斯校区),Karl Mathias(奥本大学),William Koffke(维拉诺瓦大学), Paul Heinemann(宾夕法尼亚州立大学),A. S. Hodel(奥本大学),Armando Barreto(佛罗里达国际大学),Arnold Robbins(佐治亚理工学院),Avelino Gonzalez(中佛罗里达大学),Thomas Walker(弗吉尼亚理工学院暨州立大学),Christopher Skelly(洞察资源公司),Betty Barr(休斯顿大学),John Cordero(南加利福尼亚大学),A. R. Marundarajan(加州州立理工大学波莫那校区),Lawrence Genalo(艾奥瓦州立大学),Karen Davis(辛辛那提大学),PetrosGheresus(通用汽车研究所),Leon Levine(加州大学洛杉矶分校),Harry Tyrer(密苏里大学哥伦比亚分校),Caleb Drake(伊利诺伊大学芝加哥分校),John Miller(密歇根大学迪尔伯恩分校),Elden Heiden(新墨西哥州立大学),Joe Hootman(北达科他大学),Nazeih Botros(南伊利诺伊大学),Mark C. Petzold(圣克劳德州立大学),Ali Saman Tosun(得克萨斯大学圣安东尼奥分校),Turgay Korkmaz(得克萨斯大学圣安东尼奥分校),Billie Goldstein(天普大学),Mark S. Hutchenreuther(加州州立理工大学),Frank Friedman(天普大学),Harold Mitchell Jr.(休斯顿大学)。
很高兴继续与培生教育出版集团的优秀团队一起出版这本书,他们是Marcia Horton、Tracy (Dunkelberger)Johnson、Emma Snider、Kayla Smith-Tarbox和 Eric Arima。我要感谢Jeanine Ingber(新墨西哥大学)在第2版中作为合著者做出的贡献,她的许多贡献仍然体现在第4版中。

Delores M. Etter
南卫理公会大学电气工程系
得克萨斯,达拉斯

上架指导

计算机\程序设计

封底文字

本书与一般C语言编程书籍最大的不同在于以工程问题为引导培养程序设计思维。跟随作者的脚步,你时而化身一名聪明的探员,思考如何解决犯罪现场调查中的指纹识别问题;时而成为一名无人机设计师,研究处理各种地面形态和拓扑结构的导航算法;时而扮演一名航空科学家,收集探测火箭的轨迹数据并分析性能……如果你毫无编程经验,书中详尽的C语言基础知识将带你轻松入门;如果你面临的是实际工程应用,书中经过实践验证的方法论将开拓你对计算思维的理解。

本书特点
·有趣的工程问题。新版以“犯罪现场调查”为主题,其他精选的工程问题包括冰山追踪、仪器可靠性、海啸分析及氨基酸分子量等,包罗万象,妙趣横生。
·经典的解决方案。“五步法”涵盖从问题陈述到测试的全过程,此外,书中还使用了分解提纲、伪代码和流程图来完成自顶向下的程序设计和算法求精。
·丰富的习题资源。扩展了与应用问题相关的“修改”题,章后“简述题”可帮助读者巩固知识,“编程题”则提供了动手操练的机会,且书后配有答案。

作者简介
以编写解决工程问题和科学问题的创新教材而得到广泛赞誉。目前任教于美国南卫理公会大学电子工程系和计算机科学系,并任该校工程教育Caruth研究所执行总监以及工程教育德州仪器杰出主席。她曾先后在科罗拉多大学博尔德分校、新墨西哥大学电气和计算机工程学院任教,也曾任斯坦福大学客座教授。埃特尔博士是IEEE会士,著有《工程问题C++语言求解》等多部教材。

作者简介

[美]德洛莉丝 M. 埃特尔(Delores M. Etter) 著:【加照片】德洛莉丝 M. 埃特尔(Delores M. Etter) 以解决工程和科学问题方面的创新教材而得到广泛赞誉,目前是美国南卫理公会大学工程教育学院德州仪器杰出主席。她曾先后在美国海军学院、科罗拉多大学博尔德分校、新墨西哥大学电气和计算机工程学院任教,也曾是斯坦福大学客座教授。埃特尔博士是美国国家工程院院士,IEEE、AAAS、ASEE会士,还曾是国家科学委员会成员。

译者简介

宫晓利 周阳 张金 译:暂无简介

译者序

第一次技术革命让我们摆脱了终日与自然抗争的求生之路,创造了农耕文明。
第二次技术革命让我们超越了身体的物理极限,开创了蒸汽工业社会。
第三次技术革命让我们释放了思想,开启了信息与数据的时代。
未来是一个深度融合的时代,人与人之间的思想通过互联网相互汇聚形成前所未有的逻辑虚拟空间,物与物之间通过物联网罗织成物理世界在虚拟空间中的完整映射,最终虚拟空间将与物理世界相重合,从而使得人的智慧与机器的能力相互交汇融合,进入人类社会的全新纪元。
因此,对于计算机尤其是“计算思想”的认知和运用就变得极其重要。而编程语言正是运用计算思想与机器沟通的重要工具,或者说是与计算机这种“另类生物”的沟通方法。那么如何学习编程语言呢?其实只是很简单的一句话——“无他,唯手熟尔。”我们常常困惑,即使是看过一本本厚厚的编程书籍,但仍然不能掌握编程方法,甚至对于编程概念都感到模糊。究其原因在于没有建立计算思想,即没有形成利用编程思维去解决实际问题的习惯。在编程的学习过程中,通过反复训练形成编程思维,建立运用计算思想去解决问题的习惯尤为重要。这也是我们翻译并推介美国著名学者Delores M. Etter所著的这本书的重要原因。
与传统的编程语言教材不同的是,本书从一个个技术领域的趣味性问题入手,利用计算思想提炼和抽象问题之后,再运用C语言的案例作答;从而在形成计算思想和编程思维训练的同时,帮助读者熟悉编程语言的运用。这些趣味性的问题涵盖了当今大多数的热点技术领域,例如犯罪现场调查、海水冰点、速度计算、波互作用、臭氧测量、冰山追踪、仪器可靠性、系统稳定性、飓风等级测量、分子量、地形导航、电路分析、地震监测和地表风向等。这种从趣味性的真实问题入手,引入相关的语法知识,通过设计有效的算法来求解问题,最后对求解方法加以验证的科学讲授方法,令初学者能够快速建立起C语言的知识体系,同时还能通过求解实际问题对计算思想加深理解,使得原本单调的语法和代码跃然纸上,这是很多教材中刻板的教学方法和玩具式的示例程序难以望其项背的。
计算机编程虽属工科范畴,但从本质上讲,它跟世界上任何一门人类语言一样,在漫长的学习过程中,唯有勤思多练,才能逐渐领悟精髓。就好比研究汉语言的学者,他们对汉语的钻研早已融入长年累月的工作、学习和交流之中,因此自然口吐莲花、谈吐不俗。所以,经过长期而专注的阅读、思考、训练和总结,终有一天你会由“渐悟”走向“顿悟”,从“不得其法”走向“触类旁通”。
在这里要衷心感谢南开大学计算机与控制工程学院的刘晓光、王刚、李忠伟、张海威、任明明以及其他老师在本书翻译过程中提供的编程经验和技术指导。同时还要感谢谢彦苗、李欣、张瑞和杨皓翔四位同学对本书文字及内容的认真审阅。此外,还要感谢南开大学嵌入式与信息安全实验室的全体同学在全书的翻译过程中提供的支持与帮助。
限于译者的水平和经验,译文中难免存在不当之处,恳请读者提出宝贵意见。

译者
2016年11月于马蹄湖畔

图书目录

出版者的话
译者序
前言
工程应用项目
第1章 工程问题求解 1
犯罪现场调查 1
1.1 21世纪的工程学 1
1.1.1 现代工程学取得的成就 1
1.1.2 不断变化的工程环境 5
1.2 计算机系统:硬件与软件 6
1.2.1 计算机硬件 7
1.2.2 计算机软件 7
1.3 工程问题求解方法论 11
本章小结 13
习题 14
第2章 简单的C程序 18
犯罪现场调查:法医人类学 18
2.1 程序结构 18
2.2 常量和变量 21
2.2.1 科学计数法 23
2.2.2 数值数据类型 23
2.2.3 字符型数据 24
2.2.4 符号常量 26
2.3 赋值语句 26
2.3.1 算术运算符 28
2.3.2 运算符优先级 29
2.3.3 上溢和下溢 31
2.3.4 自增运算符和自减运算符 32
2.3.5 缩写赋值运算符 32
2.4 标准输入和输出 33
2.4.1 输出函数printf 34
2.4.2 输入函数scanf 37
2.5 解决应用问题:根据骨骼长度估算身高 38
2.6 数值方法:线性插值 41
2.7 解决应用问题:海水的冰点 44
2.8 数学函数 47
2.8.1 基本数学函数 47
2.8.2 三角函数 48
*2.8.3 双曲函数 49
2.9 字符函数 50
2.9.1 字符输入/输出 50
2.9.2 字符比较 51
2.10 解决应用问题:速度计算 52
2.11 系统边界 55
本章小结 56
习题 58
第3章 控制结构和数据文件 63
犯罪现场调查:人脸识别与监控视频 63
3.1 算法开发 63
3.1.1 自顶向下设计 64
3.1.2 结构化编程 65
3.1.3 多种解决方案评估 67
3.1.4 条件错误 67
3.1.5 测试数据的生成 67
3.2 条件表达式 68
3.2.1 关系运算符 68
3.2.2 逻辑运算符 69
3.2.3 优先级和结合性 70
3.3 选择语句 71
3.3.1 简单if语句 71
3.3.2 if/else语句 72
3.3.3 switch语句 74
3.4 解决应用问题:人脸识别 76
3.5 循环结构 79
3.5.1 while循环 79
3.5.2 do/while循环 80
3.5.3 for循环 81
3.5.4 break语句和continue语句 84
3.6 解决应用问题:波互作用 85
3.7 数据文件 91
3.7.1 输入/输出语句 92
3.7.2 读取数据文件 94
3.7.3 生成数据文件 100
*3.8 数值方法:线性建模 102
*3.9 解决应用问题:臭氧测量 105
本章小结 108
习题 111
第4章 用函数实现模块化程序设计 117
犯罪现场调查:虹膜识别 117
4.1 模块化 117
4.2 自定义函数 119
4.2.1 函数示例 120
4.2.2 函数定义 122
4.2.3 函数原型 124
4.2.4 参数列表 125
4.2.5 存储类型和作用域 127
4.3 解决应用问题:计算虹膜边界 128
4.4 解决应用问题:冰山追踪 133
4.5 随机数 137
4.5.1 整数序列 138
4.5.2 浮点数序列 141
4.6 解决应用问题:仪器可靠性 142
*4.7 数值方法:求多项式的根 147
4.7.1 多项式的根 147
4.7.2 增量搜索技术 149
*4.8 解决应用问题:系统稳定性 150
*4.9 宏 155
*4.10 递归 158
4.10.1 阶乘运算 159
4.10.2 斐波那契数列 160
本章小结 162
习题 163
第5章 数组和矩阵 169
犯罪现场调查:语音分析和语音识别 169
5.1 一维数组 170
5.1.1 定义和初始化 170
5.1.2 计算和输出 172
5.1.3 函数参数 174
5.2 解决应用问题:飓风等级 176
5.3 解决应用问题:分子量 180
5.4 统计测量 184
5.4.1 简单统计分析 184
5.4.2 方差和标准差 186
5.4.3 自定义头文件 188
5.5 解决应用问题:语音信号分析 188
5.6 排序算法 193
5.7 搜索算法 195
5.7.1 无序数列 196
5.7.2 有序数列 196
5.8 二维数组 199
5.8.1 定义和初始化 199
5.8.2 计算和输出 201
5.8.3 函数参数 203
5.9 解决应用问题:地形导航 205
*5.10 矩阵和向量 208
5.10.1 点积 208
5.10.2 行列式 209
5.10.3 转置 210
5.10.4 矩阵加减法 210
5.10.5 矩阵乘法 211
*5.11 数值方法:联立方程组求解 212
5.11.1 图像阐释 213
5.11.2 高斯消元法 215
*5.12 解决应用问题:电路分析 217
*5.13 多维数组 221
本章小结 222
习题 224
第6章 指针编程 230
犯罪现场调查:DNA分析 230
6.1 地址和指针 230
6.1.1 地址运算符 231
6.1.2 指针赋值 232
6.1.3 地址运算 235
6.2 指向数组元素的指针 237
6.2.1 一维数组 238
6.2.2 二维数组 239
6.3 解决应用问题:厄尔尼诺-南方涛动现象 241
6.4 函数调用中的指针 243
6.5 解决应用问题:地震监测 246
6.6 字符串 250
6.6.1 字符串定义与输入/输出 251
6.6.2 字符串函数 251
6.7 解决应用问题:DNA测序 254
*6.8 动态内存分配 256
*6.9 快速排序算法 259
本章小结 262
习题 263
第7章 利用结构体编程 267
犯罪现场调查:指纹识别 267
7.1 结构体 267
7.1.1 定义和初始化 268
7.1.2 输入和输出 269
7.1.3 结构体的运算 270
7.2 使用结构体的函数 271
7.2.1 结构体作为函数参数 272
7.2.2 返回结构体的函数 273
7.3 解决应用问题:指纹分析 273
7.4 结构数组 277
7.5 解决应用问题:海啸分析 278
*7.6 动态数据结构 281
本章小结 291
习题 293
第8章 C++编程语言简介 297
犯罪现场调查:手部识别 297
8.1 面向对象编程 297
8.2 C++程序结构 298
8.3 输入和输出 299
8.3.1 cout对象 299
8.3.2 流函数 300
8.3.3 cin对象 301
8.3.4 定义文件流 302
8.4 C++编程范例 302
8.4.1 简单计算 303
8.4.2 循环 303
8.4.3 函数、一维数组和数据文件 304
8.5 解决应用问题:手部识别 305
8.6 解决应用问题:地表风向 307
8.7 类 310
8.7.1 定义类数据类型 310
8.7.2 构造函数 313
8.7.3 类运算符 314
8.8 数值方法:复根 314
8.8.1 复数类定义 315
8.8.2 二次方程的复根 318
本章小结 320
习题 321
附录A ANSI C语言标准库 323
附录B ASCII字符编码表 335
附录C 使用MATLAB绘制文本文件中的数据点 339
“练习”的完整答案 342
“修改”的部分答案 353
章末简述题的完整答案 355
章末编程题的部分答案 359
术语表 362
索引 367

教学资源推荐
作者: Brian W.Kernighan
作者: Kathryn E.Sanders, Andries Van Dam
作者: 辛运帏 饶一梅
参考读物推荐
作者: [美] 巴里·勃姆(Barry Boehm) 乔·安·莱恩(Jo Ann Lane) 苏帕尼卡·科尔曼黄(Supannika Koolmanojwong) 理查德·特纳(Richard Turner)著
作者: (美) William F. Punch Richard Enbody 著
作者: 乔什·洛斯皮诺索(Josh Lospinoso)著
作者: [美]伊恩 F.达尔文(Ian F. Darwin)著