本书全面介绍了数据结构的基础内容,帮助学生深入了解软件工程的思想和技术。学生还可以通过对一些高级编程概念(如接口、抽象和封装)的了解,为进一步深入学习高级编程知识打下坚实的基础。本书观点清晰明了、语言风格鲜明独特,深入浅出地介绍了一些高级主题。 本书特色: ◆介绍了多个库包,可用于简化编程流程,使学生可以专注于高层次理论问题的研究,避免了C语言编程的繁琐细节; ◆详细讨论了递归编程的用法,包括大量难度各异的编程示例和练习,如简单的递归函数,分析双人游戏的最小最大(minimax)策略,等等; ◆帮助读者培养编写健壮、可重用代码的良好编程习惯 。 第Ⅰ部分 预备知识 1 第1章 ANSI C概述 1 1.1 什么是C 1 1.2 C程序的结构 3 1.2.1 注释 4 1.2.2 库包含 5 1.2.3 程序级定义 5 1.2.4 函数原型 5 1.2.5 main程序 6 1.2.6 函数定义 7 1.3 变量、值和类型 7 1.3.1 变量 7 1.3.2 命名规则 8 1.3.3 局部变量和全局变量 9 1.3.4 数据类型的概念 9 1.3.5 整数类型 9 1.3.6 浮点类型 10 1.3.7 文本类型 11 1.3.8 布尔类型 12 1.3.9 简单的输入与输出 12 1.4 表达式 14 1.4.1 优先级与结合性 14 1.4.2 表达式中的类型混合 15 1.4.3 整数除法和求余运算符 16 1.4.4 类型转换 17 1.4.5 赋值运算符 17 1.4.6 递增与递减运算符 19 1.4.7 布尔运算符 20 1.5 语句 22 1.5.1 简单语句 22 1.5.2 块 22 1.5.3 if语句 23 1.5.4 switch语句 23 1.5.5 while语句 25 1.5.6 for语句 28 1.6 函数 29 1.6.1 返回函数结果 29 1.6.2 函数定义和原型 30 1.6.3 函数调用过程的机制 30 1.6.4 逐步求精 31 1.7 小结 31 1.8 复习题 32 1.9 编程练习 33 第2章 C的数据类型 38 2.1 枚举类型 38 2.1.1 枚举类型的内部表示 39 2.1.2 标量类型 40 2.1.3 理解typedef 41 2.2 数据和内存 41 2.2.1 位、字节、字 42 2.2.2 内存地址 42 2.3 指针 44 2.3.1 把地址当作数值 44 2.3.2 声明指针变量 45 2.3.3 基本的指针运算 45 2.3.4 特殊指针NULL 47 2.3.5 通过引用传递参数 48 2.4 数组 51 2.4.1 声明数组 51 2.4.2 数组选择 52 2.4.3 有效空间和已分配空间 53 2.4.4 作为参数传递数组 54 2.4.5 初始化数组 56 2.4.6 多维数组 57 2.5 指针和数组 59 2.5.1 指针运算 60 2.5.2 指针的自加和自减 62 2.5.3 指针和数组的关系 62 2.6 记录 64 2.6.1 定义一种新的结构类型 65 2.6.2 声明结构变量 66 2.6.3 记录选择 66 2.6.4 初始化纪录 66 2.6.5 记录的指针 67 2.7 动态分配 68 2.7.1 类型void* 68 2.7.2 应对内存限制 70 2.7.3 动态数组 71 2.7.4 动态记录 72 2.8 小结 73 2.9 复习题 74 2.10 编程练习 76 第3章 库和接口 83 3.1 接口的概念 83 3.1.1 接口和实现 84 3.1.2 包和抽象 84 3.1.3 良好的接口设计规则 85 3.2 随机数字 85 3.2.1 random.h接口的结构 86 3.2.2 构建客户程序 89 3.2.3 有关随机数字的ANSI函数 91 3.2.4 实现random.c 93 3.3 字符串 96 3.3.1 字符串的底层表示 96 3.3.2 数据类型string 97 3.3.3 ANSI字符串库 98 3.3.4 接口strlib.h 102 3.4 标准的I/O库 108 3.4.1 数据文件 108 3.4.2 在C中使用文件 109 3.4.3 标准文件 110 3.4.4 字符I/O 110 3.4.5 从输入文件中重读字符 111
2021-11-12 16:23:31 39.06MB 程序设计 C语言 抽象思想 软件工程
1
传统的软件开发方法,如面向过程方法和面向数据方法,都只是针对具体问题的功能,不允许用户需求在开发过程中有所改变。显然,由此开发的软件系统在可靠性、可维护性和可重用性上就会存在很大的不足。为了克服传统方法的缺点,人们在实践中创造了接近人们认识过程的面向对象的软件开发方法。面向对象方法包括面向对象分析、面向对象设计和面向对象实现。尽管面向对象方法主要用于应用系统的设计,但面向对象分析作为一种独立的需求分析方法以及其它分析方法的补充,它在我们进行软件开发过程中发挥着越来越大的作用。
1
exception.c exception.h gcalloc.h genlib.c genlib.h graphics.c graphics.h random.c random.h simpio.c simpio.h strlib.c strlib.h
2021-04-02 16:48:59 22KB 头文件
1
再读“程序设计抽象思想:C语言描述”,苦于没有书签,于是做了一个书签给她!不想练打字,于量找到了源代码,一并发在这里。经典的C语言提高教材,涵盖了基本知识、算法分析、数据结构,建议大家读下,希望对大家有帮助。
2019-12-21 20:59:45 30.84MB 程序设计 抽象思想 C语言 书签
1
作者: Eric S.Roberts / 闪四清 出版社: 清华大学出版社 副标题: C语言描述 译者: 闪四清 不知道为什么,难道是这本书发售渠道太窄,没有多少人来读。我补下书评。因为我觉得,这本书还是值得推荐的。 学会基本语法后,就我来说,当时的疑惑就是大型程序如何组织的,这方面却没有见到什么入门书籍介绍,很多人都是从阅读大量代码悟道的,但这本书能给那些略懂数据结构和算法的人一个组织程序的学习过程。 作者从一个简单的库说起,慢慢运用到后面的数据结构和算法课程中,可以说是从头到尾的演示了程序如何组织"算法"+"数据"来完成一个个问题的。 同这本书配套的是作者的另一本,这两本加起来,我觉得是大学里不错的打基础书,至少要比现有的谭氏教材好。 我就是读这本书理解"递归"的。也是从这里接触素数的欧式解法的。
2019-12-21 19:55:57 34.75MB 数据结构
1