注册 登录 进入教材巡展
#

出版时间:2016年8月

出版社:清华大学出版社

以下为《程序设计基础(C语言)(第2版)》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 清华大学出版社
  • 9787302440864
  • 2-1
  • 184295
  • 16开
  • 2016年8月
  • 工学
  • 软件工程
  • TP312
  • 计算机
  • 本专科、高职高专
内容简介
本书重点介绍在C语言环境下编写程序的思路与方法。全书以程序设计的基本思想与方法作为主要结构,介绍了程序的基本结构组织、批量数据的组织方式与处理技巧,引入了递推、递归、动态规划、贪心等常用的算法设计方法应用案例,注重强调了程序设计中设计方法与动手实践。本书可作为高等院校相关专业教材,亦可供从事计算机相关领域的科研人员参考自学。
目录



第1章程序设计引论

1.1计算机程序与计算机语言

1.1.1计算机程序

1.1.2计算机内存

1.1.3计算机语言

1.1.4C语言简介

1.2简单的C程序构成

1.2.1最简单的C语言程序举例

1.2.2C程序的结构

1.3C程序设计的基本步骤

1.3.1需求分析

1.3.2详细设计

1.3.3编辑程序

1.3.4编译与链接

1.3.5运行与调试

1.4C程序文件的创建、编译与运行

1.4.1CodeBlocks下程序文件的创建、编译与运行

1.4.2Visual C 6.0下程序文件的创建、编译与运行

1.5本章小结

第2章算法设计基础

2.1什么是算法

2.1.1日常生活中的算法

2.1.2计算机算法的分类

2.1.3简单算法举例

2.2算法的特征

2.3算法的表示方法

2.3.1自然语言表示算法

2.3.2传统流程图表示算法

2.3.3三种基本结构

2.3.4用NS流程图表示算法

2.3.5其他表示算法的方法

2.4程序设计中常用算法

2.4.1迭代法

2.4.2穷举搜索法

2.4.3递推法

2.4.4递归

2.4.5回溯法

2.4.6贪心法

2.4.7分治法

2.4.8动态规划法

2.5本章小结

第3章数据类型基础

3.1数据在计算机中的存储方式

3.1.1二进制

3.1.2位与字节

3.1.3数据的存储方式

3.2常量与变量

3.2.1基本概念

3.2.2定义常量的名字(预处理命令#define)

3.2.3变量的声明和赋值

3.2.4常量的分类

3.3基本数据类型

3.3.1整型

3.3.2实型

3.3.3字符型

3.3.4sizeof()求类型大小

3.4数据类型转换

3.4.1自动转换

3.4.2强制类型转换

3.5运算符与表达式

3.5.1算术运算符

3.5.2自增运算符和自减运算符

3.5.3算术表达式

3.5.4运算符的优先级和结合性

3.6本章小结

第4章顺序控制结构与数据的输入输出

4.1顺序结构

4.1.1C语句综述

4.1.2赋值运算符和赋值表达式

4.1.3顺序结构实例

4.2数据的输入输出及实现

4.3字符数据的输入输出

4.3.1putchar函数

4.3.2getchar函数

4.4格式化输入输出

4.4.1格式输出printf函数

4.4.2格式输入scanf函数

4.5本章小结

第5章分支控制结构

5.1关系运算符和关系表达式

5.2逻辑运算符和逻辑表达式

5.3if语句

5.3.1if语句的三种形式

5.3.2if语句的嵌套

5.3.3条件运算符与条件表达式

5.3.4if语句中的复合语句

5.4switch语句

5.5本章小结

第6章循环控制结构

6.1循环控制结构

6.2while()语句

6.2.1while语句的一般形式

6.2.2如何终止while循环

6.2.3while语法要点

6.2.4计数循环与不确定循环

6.3do…while语句——退出条件循环

6.3.1do while的一般形式

6.3.2do while语句的使用

6.3.3do while语句的语法要点

6.4逗号运算符和逗号表达式

6.5for语句

6.5.1for语句的一般形式

6.5.2for语句的灵活运用

6.5.3逗号表达式在for语句中的使用

6.6空语句在循环中的使用

6.7循环语句的选择

6.8循环嵌套

6.9break和continue语句

6.10本章小结

第7章函数

7.1函数概述

7.1.1什么是函数

7.1.2为什么使用函数

7.1.3函数的特点

7.1.4函数的分类

7.2函数定义和调用

7.2.1函数定义

7.2.2函数调用

7.2.3函数的声明

7.2.4return语句

7.3嵌套调用与递归调用

7.3.1嵌套调用

7.3.2递归调用

7.4变量与函数

7.4.1变量的作用域和存储类别

7.4.2局部变量的作用域和存储类别

7.4.3全局变量的作用域和存储类别

7.5随机数函数

7.6本章小结

第8章数组

8.1一维数组的定义、引用与初始化

8.1.1一维数组的定义

8.1.2一维数组元素的引用

8.1.3一维数组的初始化

8.2一维数组的应用

8.2.1Fibonacci数列

8.2.2统计问题

8.2.3排序问题

8.2.4查找问题

8.2.5逆置与移位

8.2.6元素删除

8.3二维数组

8.3.1二维数组的定义

8.3.2二维数组元素的引用

8.3.3二维数组的初始化

8.3.4二维数组程序举例

8.4数组与函数

8.4.1数组元素作函数实参

8.4.2数组名作为函数参数

8.5本章小结

第9章指针

9.1地址与指针

9.1.1变量、数组、函数与地址

9.1.2变量的地址和变量的值

9.1.3变量的访问方式

9.1.4指针和指针变量

9.2指针变量

9.2.1指针变量的定义

9.2.2指针变量的引用

9.2.3指针变量作为函数参数

9.3指向数组的指针变量

9.3.1指向数组元素的指针

9.3.2通过指针引用数组元素

9.3.3指向数组的指针变量作为函数参数

9.3.4指向多维数组的指针变量

9.4函数指针变量

9.4.1函数指针与指向函数的指针变量

9.4.2用函数指针变量调用函数

9.4.3用指向函数的指针变量作函数参数

9.5返回指针值的函数

9.6指针数组和指向指针的指针

9.6.1指针数组的概念

9.6.2指向指针的指针

9.7本章小结

第10章字符串

10.1字符串常量

10.1.1字符串与字符串结束标志

10.1.2什么是字符串常量

10.1.3如何存储字符串常量

10.2如何表示字符串变量

10.2.1字符数组的定义与引用

10.2.2字符数组的初始化

10.2.3指针变量与字符串

10.2.4字符串数组

10.3字符串的输入输出

10.3.1用gets函数和puts函数输入输出字符串

10.3.2用scanf函数和printf函数输入输出字符串

10.4字符串处理函数

10.5字符指针与字符数组的区别

10.6程序举例

10.7本章小结

第11章结构体、共用体和枚举

11.1示例问题: 学生成绩管理的例子

11.2结构体

11.2.1结构体类型的定义

11.2.2结构体类型变量的定义

11.2.3结构体类型变量的引用与赋值

11.2.4结构体变量的初始化

11.2.5结构体类型数组

11.2.6结构体类型指针变量

11.2.7结构体类型指针变量作函数参数

11.3共用体

11.3.1共用体类型的概念

11.3.2共用体类型变量的引用

11.3.3共用体类型数据的特点

11.4枚举

11.4.1枚举类型的概念和定义

11.4.2枚举类型变量的赋值和使用

11.5利用typedef自定义类型

11.6本章小结

第12章文件

12.1文件概述

12.1.1文件的概念

12.1.2文件的分类

12.1.3标准文件I/O

12.2文件指针

12.3文件的打开与关闭

12.3.1文件打开函数(fopen)与程序结束函数(exit)

12.3.2文件关闭函数(fclose)

12.4文本文件的读写

12.4.1字符读写函数(fgetc和fputc)

12.4.2字符串读写函数(fgets和fputs)

12.4.3格式化读写函数(fscanf和fprintf)

12.5二进制文件的读写

12.5.1二进制模式与文本模式的区别

12.5.2数据块读写函数(fread和fwtrite)

12.6文件操作的其他函数

12.6.1判断文件是否结束函数(feof)

12.6.2文件内部指针定位

12.6.3ftell函数

12.6.4int fflush()函数

12.7综合示例

12.8本章小结

第13章链表

13.1动态内存分配

13.1.1C程序的内存划分

13.1.2内存分配方式

13.1.3动态内存分配函数

13.2单链表概述

13.2.1结点的结构

13.2.2单链表的结构

13.3单链表结点的基本操作

13.3.1单链表结点的查找

13.3.2单链表结点的插入

13.3.3单链表结点的删除

13.4单链表的建立

13.4.1逆序建链表

13.4.2顺序建链表

13.5单链表的应用

13.5.1单链表的逆置

13.5.2单链表的归并

13.5.3单链表的拆分

13.6循环链表与约瑟夫环问题

13.6.1循环链表

13.6.2约瑟夫环问题

13.7本章小结

第14章递推与递归

14.1递推

14.1.1递推思想

14.1.2求解递推关系的方法

14.1.3递推关系的建立

14.2递推设计实例

14.2.1简单Hanoi塔问题

14.2.2捕鱼问题

14.2.3Fibonacci类问题

14.2.4错排公式

14.2.5马踏过河卒

14.3递归

14.3.1递归的定义

14.3.2递归的思想

14.4递归设计实例

14.4.1青蛙过河问题

14.4.2快速排序问题

14.4.3第k小的数

14.4.4全排列问题

14.4.5八皇后问题

14.5递归的效率

14.6本章小结

第15章贪心法与动态规划法

15.1贪心法

15.1.1贪心法的思想

15.1.2贪心法的实现过程

15.1.3贪心法的基本要素

15.1.4贪心法的注意事项

15.2贪心法实例

15.2.1删数问题

15.2.2活动选择问题

15.2.3区间覆盖问题

15.2.4贪心法解题的一般步骤

15.3动态规划

15.3.1什么是动态规划

15.3.2引入动态规划的意义

15.3.3动态规划的特征

15.3.4动态规划算法的基本步骤

15.4动态规划实例

15.4.1简单最短路径问题

15.4.2最长公共子序列问题

15.4.3最长上升子序列问题

15.5本章小结