本书重点介绍在C语言环境下编写程序的思路与方法。全书以程序设计的基本思想与方法作为主要结构,介绍了程序的基本结构组织、批量数据的组织方式与处理技巧,引入了递推、递归、动态规划、贪心等常用的算法设计方法应用案例,注重强调了程序设计中设计方法与动手实践。
本书可作为高等院校相关专业教材,亦可供从事计算机相关领域的科研人员参考自学。
《程序设计基础(C语言)(第2版)》在程序的基本结构、批量数据组织与处理的基础上,特别引入了递推、递归、动态规划、贪心等专题算法设计案例,体现了程序设计实践能力有序培养的基本理念。使读者在收获知识的同时,还可以逐渐养成良好的专业思维习惯与专业实践习惯。
第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用NS流程图表示算法
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本章小结
......