C程式设计:方法与实践


C程式设计:方法与实践

文章插图
C程式设计:方法与实践【C程式设计:方法与实践】《C程式设计:方法与实践》是2017年5月清华大学出版社出版图书,作者是刘喜平、万常选、舒蔚、骆斯文 。
基本介绍书名:C程式设计:方法与实践
作者:刘喜平、万常选、舒蔚、骆斯文
ISBN:9787302467151
定价:59.50元
出版社:清华大学出版社
出版时间:2017.05.01
开本:32
内容简介本书是强调程式设计能力培养的教材,以C语言为载体,围绕程式的基本构造、数据组织和构造方法展开 。全书共15章 。第1章简要介绍程式设计的基本概念、算法与数据结构以及软体开发过程;第2章首先介绍了C语言最核心的核心;第3~6章在这个核心的基础上介绍了C语言的基础: 数据类型、表达式和基本结构,通过学习这些章节的知识,学生可以阅读和编写基本的C程式;第7~13章介绍了函式、常见算法、指针、结构体和档案等语言元素,使用这些语言特徵可以编写出更加複杂的C程式;第14章介绍了常见的两个C程式开发工具以及调试技巧,第15章列出了配套的实验 。本书的主要特点是: 精心组织结构,精选例题,增强实用性,注重从软体开发和系统的角度来介绍程式设计,突出算法思想的培养,达到提高学生程式设计综合素质和能力的目的 。本书可作为高等学校计算机及相关专业学生的程式设计课程教材,也可供程式设计爱好者自学和参考 。作者简介刘喜平,香港科技大学访问学者、美国罗格斯-新泽西州立大学访问学者,近年来在国内外核心以上期刊发表学术论文40余篇,完成专着2部,正在主持一项国家自然基金项目,主持完成了省级项目3项 。参与编写了《资料库系统原理与设计》、《C语言与程式设计方法》等教材4部,其中《资料库系统原理与设计》于2012年11月获批第一批“十二五”普通高等教育本科国家级规划教材 。在《计算机教育》等国家级教学期刊上发表教学研究论文4篇;获得了省优秀教学成果一等奖1项,省普通高等学校优秀教材一等奖2项;是《资料库系统及套用》国家精品课程、国家精品资源共享课的核心成员 。万常选,工学博士,教授,博士生导师,国务院政府特殊津贴专家,江西省首批“赣鄱英才555工程——领军人才培养计画”人选,江西省高校中青年学科带头人,江西省“十二五”重点学科“计算机科学与技术”学科带头人 。国家精品资源共享课《资料库系统及套用》课程负责人,国家精品课程《资料库系统及套用》课程负责人,国家级特色专业“信息管理与信息系统”负责人,国家级教学团队“管理决策与决策支持教学团队”核心成员(决策支持教学子团队负责人),国家级教学团队“信息系统系列课程教学团队”核心成员 。获第六届高等教育国家级教学成果奖二等奖1项,江西省优秀教学成果一等奖2项、二等奖3项,江西省高校优秀教材一等奖2部 。主持国家自然科学基金、国家社会科学基金项目多项 。出版专着教材多部,其中《资料库系统原理与设计》入选第一批“十二五”普通高等教育本科国家级规划教材 。在国内外权威期刊或国际会议发表学术论文30余篇 。获江西省高校科技成果奖一等奖3项、二等奖2项,江西省自然科学奖三等奖1项 。图书目录第1章 程式设计与软体开发1.1 程式设计的基本概念1.1.1 程式1.1.2 程式设计语言1.1.3 程式设计1.2 算法与数据结构1.2.1 算法及其特徵1.2.2 算法的结构1.2.3 算法的描述1.2.4 数据结构1.3 软体开发1.3.1 软体1.3.2 软体工程1.4 本章小结习题第2章 C语言概述2.1 C语言的发展与特点2.1.1 C语言的发展2.1.2 C语言的特点2.2 一个C程式实例2.2.1 编写和运行C程式2.2.2 注释2.2.3 预处理命令2.2.4 程式主体2.3 C语言的字元集与标识符2.4 数据类型2.5 常量和变数2.5.1 常量2.5.2 变数2.6 运算符和表达式2.6.1 运算符2.6.2 表达式2.7 输入与输出2.7.1 输出函式printf2.7.2 输入函式scanf2.8 语句2.8.1 简单语句2.8.2 语句块2.8.3 if语句2.8.4 while语句2.8.5 for语句2.9 函式2.10 编程实践: 代码风格2.11 本章小结习题第3章 数据类型与输入输出3.1 整型3.1.1 整数的内部表示3.1.2 整型常量3.1.3 整数的输出3.1.4 整数的输入3.2 浮点型3.2.1 浮点常量3.2.2 浮点数的内部表示3.2.3 浮点数的输出3.2.4 浮点数的输入3.2.5 浮点数的比较和计算3.3 字元型3.3.1 字元型数据的内部表示3.3.2 字元常量和变数3.3.3 字元输出3.3.4 字元输入3.3.5 字元处理3.4 数组3.4.1 什幺是数组3.4.2 数组的内部表示3.4.3 数组元素的访问3.4.4 数组的初始化3.5 字元串3.5.1 字元串常量3.5.2 用字元数组处理字元串3.5.3 字元串的输出3.5.4 字元串的输入3.6 文本档案输入与输出3.6.1 声明FILE *类型的变数3.6.2 打开档案3.6.3 关闭档案3.6.4 读写档案3.7 变数的进一步讨论3.7.1 变数的声明与初始化3.7.2 限定词const3.8 编程实践: 命名3.9 本章小结习题第4章 运算符与表达式4.1 运算符与表达式概述4.1.1 C运算符简介4.1.2 C表达式简介4.2 算术运算符和算术表达式4.2.1 算术运算符4.2.2 算术表达式4.2.3 算术表达式的例子4.3 赋值运算符和赋值表达式4.3.1 赋值运算符4.3.2 赋值表达式4.3.3 複合赋值运算符4.4 增量减量运算符4.5 子表达式的求值顺序4.6 数据类型的转换4.6.1 隐式类型转换4.6.2 赋值运算符两侧数据的类型转换4.6.3 强制类型转换4.7 逗号运算符和逗号表达式4.8 本章小结习题第5章 分支结构5.1 关係运算符和关係表达式5.2 逻辑运算符和逻辑表达式5.2.1 逻辑运算符5.2.2 逻辑表达式5.3 条件运算符和条件表达式5.4 C语句概述5.5 if语句5.6 switch语句5.7 套用举例5.8 本章小结习题第6章 循环结构与程式设计基本算法6.1 循环结构与控制语句6.1.1 while语句6.1.2 for语句6.1.3 do-while语句6.1.4 循环嵌套6.1.5 流程控制语句(break语句、continue语句和goto语句)6.2 控制循环的基本方法6.2.1 通过计数器变数控制循环6.2.2 通过程式执行的状态控制循环6.3 穷举算法6.4 叠代与递推算法6.4.1 叠代6.4.2 递推6.5 程式设计实例6.6 编程实践: 程式计时6.7 本章小结习题第7章 函式与结构化程式设计7.1 函式7.1.1 为什幺要使用函式7.1.2 函式定义7.1.3 函式调用7.1.4 函式原型与函式声明7.1.5 函式的执行7.1.6 主调函式与被调函式之间的数据传递7.1.7 函式设计的思路7.2 递归调用与递归算法7.2.1 递归调用的执行过程7.2.2 递归算法7.2.3 Hanoi塔问题7.3 程式的函式分解7.4 C程式结构7.4.1 编译预处理命令7.4.2 全局声明7.4.3 函式7.4.4 C程式的逻辑与物理构成7.5 编程实践: 软体测试7.6 本章小结习题第8章 指针与数组8.1 指针与指针变数8.1.1 指针的概念8.1.2 指针变数的声明与初始化8.1.3 指针的基本运算8.2 数组的指针8.2.1 一维数组的指针8.2.2 二维数组8.2.3 二维数组的元素指针和行指针8.2.4 指向一维数组的指针变数(行指针变数)8.3 字元指针与字元串8.3.1 字元串处理函式8.3.2 指向字元的指针变数处理字元串8.4 指针作为函式参数8.4.1 变数的指针作为函式参数8.4.2 一维数组的指针作为函式参数8.4.3 二维数组的指针作为函式参数8.5 返回指针的函式8.6 指针数组8.6.1 指针数组的概念及其套用8.6.2 指针数组作main函式的形参8.6.3 行指针数组8.7 编程实践: 实用字元串处理8.8 本章小结习题第9章 C程式运行原理9.1 一个C程式的运行之旅9.2 计算机指令的执行过程9.3 计算机的存储模型9.4 程式的记忆体布局9.4.1 概述9.4.2 栈9.4.3 堆9.4.4 执行档映像9.5 变数的存储类型9.5.1 作用域9.5.2 存储期限(生存期)9.5.3 连结9.5.4 变数分类9.6 编程实践: 程式设计与作业系统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.3 动态规划算法10.3.1 动态规划介绍10.3.2 最长公共子序列问题10.3.3 0-1背包问题10.3.4 动态规划算法总结10.4 回溯法10.4.1 回溯法的基本思想10.4.2 n皇后问题10.4.3 0-1背包问题10.4.4 回溯法总结10.5 本章小结习题第11章 结构体、联合共用体与枚举类型11.1 数据类型的再讨论11.1.1 数据类型与事物属性11.1.2 数据类型的定义11.2 结构体11.2.1 结构体类型的定义11.2.2 结构体变数的声明与存储11.2.3 结构体变数的引用与初始化11.3 结构体数组11.4 结构体指针11.5 结构体与函式11.5.1 函式的结构体类型参数11.5.2 结构体类型的函式11.6 结构体嵌套11.7 线性鍊表11.7.1 线性鍊表概述11.7.2 C语言实现线性鍊表11.8 联合共用体11.9 枚举类型11.9.1 枚举类型定义与变数声明11.9.2 枚举类型的使用方法11.9.3 类型名重新定义typedef11.10 编程实践: 中文处理11.11 本章小结习题第12章 档案12.1 C档案概述12.1.1 C档案的基本概念12.1.2 文本档案与二进制档案12.1.3 档案的处理方法12.2 流与档案类型的指针12.3 档案操作12.3.1 档案的打开12.3.2 档案的关闭12.3.3 字元方式读写档案12.3.4 数据块方式读写档案12.4 档案的定位与随机读写12.4.1 档案的定位12.4.2 随机读写12.5 档案操作的出错检测12.6 档案读写操作套用实例12.6.1 档案中数据的修改12.6.2 档案中数据的删除12.6.3 向档案中追加或插入数据12.7 编程实践: C与C++12.8 本章小结习题第13章 指针的进一步讨论与位运算13.1 多级指针13.1.1 指向指针的指针与指向行指针的指针13.1.2 指向指针的指针数组与指向行指针的指针数组13.2 函式与指针13.2.1 指向函式的指针变数13.2.2 指向函式的指针数组13.2.3 指向返回指针的函式的指针变数13.2.4 指向返回指针的函式的指针数组13.2.5 返回行指针的函式13.2.6 指向返回行指针的函式的指针变数13.2.7 指向返回行指针的函式的指针数组13.3 位运算13.3.1 二进制位运算概述13.3.2 位运算符13.3.3 位段13.4 本章小结习题第14章 C程式开发环境与调试14.1 Visual Studio Community 2015 的安装与使用14.1.1 Visual Studio Community 2015 简介14.1.2 Visual Studio Community 2015 的安装14.1.3 Visual Studio Community 2015 中编写C程式14.1.4 Visual Studio Community 2015 中运行C程式14.1.5 Visual Studio Community 2015 中调试C程式14.2 Code::Blocks的安装与使用14.2.1 Code::Blocks简介14.2.2 Code::Blocks的安装14.2.3 在Code::Blocks中编写程式14.2.4 在Code::Blocks中运行和调试程式第15章 C语言上机实验15.1 实验概述15.1.1 实验目的15.1.2 实验步骤15.2 实验项目15.2.1 实验1: C程式调试与输入输出15.2.2 实验2: 运算符、表达式及简单C程式设计15.2.3 实验3: 分支及循环结构15.2.4 实验4: 循环程式设计15.2.5 实验5: 函式程式设计15.2.6 实验6: 函式设计15.2.7 实验7: 数组、指针的套用15.2.8 实验8: 二维数组的套用15.2.9 实验9: 结构体与档案附录 部分字元与ASCII代码对照表参考文献