计算机类教材 > 算法与程序设计
C语言程序设计(第五版)
书号:9787113299279 套系名称:普通高等教育“十一五”国家级规划教材
作者:傅清平 徐文胜 李雪斌 出版日期:2023-02-01
定价:54.00 页码 / 开本: /16
策划编辑:曹莉群 责任编辑:刘丽丽
适用专业:计算机基础教育 适用层次:高等教育
最新印刷时间:2025-01-06
资源下载
教学课件
教学素材
习题答案(暂无)
教学案例(暂无)
教学设计(暂无)
教学视频(暂无)
内容简介
前言
目录
作者介绍
图书特色
本书根据 C 语言程序设计的特点,以 C 语言初学者作为阅读对象,以程序设计为主线,以编程应用为驱动,理论联系实际,通过丰富的实例分析,详细介绍了 C 语言程序设计的思想及方法。全书叙述严谨、实例丰富、由浅入深、重点突出。 全书教学内容安排科学,共 7 章,包括 C 程序设计入门,数据类型、运算符和表达式,算法与程序设计基础,函数,数组类型与指针类型,结构类型与联合类型,文件等。为避免在学习过程中枯燥乏味,书中精选了一些实用性强、趣味性足的实例,增强了全书的可读性和参与性,便于读者在轻松愉快的气氛中学习。 本书适合作为普通高等院校各专业的 C 语言程序设计课程教材,也可作为广大编程爱好者的自学读物,既能给从事计算机相关工作的科技人员提供参考,同时也是参加各类计算机等级考试人员的辅导用书。
C 语言历史悠久,是一种被广泛使用的计算机高级程序设计语言。它以精炼、灵活、可移植性好、应用领域广泛而著称,一直活跃在计算机应用以及计算机专业教学领域,彰显出无穷的编程魅力和蓬勃的生命力。据 TIOBE Programing Community Index 统计分析,几十年来,C 语言一直占据编程语言排行榜的前几位,因此国内外许多高校都将C 语言列为学习程序设计课程的首选语言。 C 语言程序设计课程特色鲜明,以编程语言为平台,详细介绍程序设计的思想及方法,以培养学生掌握程序设计方法与技能为重点。通过学习该课程,学生不仅要掌握程序设计语言的知识,为后续专业课程的学习打下基础,更重要的是要在实践中逐步培养求解问题和应用语言的能力。 本书编者长期从事高校C语言课程的一线教学,普遍教龄都在25年以上,从2002年开始撰写第一版《C 语言程序设计》(含配套实验教材),一直到目前 2023 年第五版教材的修订出版,我们始终都在努力着。根据教学内容、教学方法、教学课时的调整与变化,在有限的教学课时内,更好地帮助学生领悟到程序设计的奥妙。为适应新形势下创新人才培养模式的需要,我们有责任把教材写得更好更精彩,这也正是我们编者殚精竭虑不断修订教材之所在。 在前后 20 多年的教学过程中,编者所编著的《C 语言程序设计》(含配套实验教材)获得了省级普通高等学校优秀教材一等奖,修订的《C 语言程序设计》(第三版)(含配套实验教材)成功入选普通高等教育“十一五”国家级规划教材。教材的成果和教学研究上的进步,永远是鞭策我们前进的动力。 全书以程序设计为主线,以编程应用为驱动,以丰富的实例详细介绍了 C 语言程序设计的思想及方法。全书共 7 章,第 1 章介绍了 C 程序的基本构成与 Code::Blocks的使用;第 2 章介绍了基本数据类型、运算符和表达式、基本输入与输出操作;第 3 章介绍了算法的概念、算法的表示、结构化程序设计中的三种控制结构(即顺序、选择和循环);第 4 章重点介绍了自定义函数、变量的存储类型;第 5 章详细介绍了数组类型、指针类型的定义与使用,以及字符串函数、动态内存分配的应用;第 6 章介绍了结构体类型和联合体类型的使用,涉及常用链表的定义及操作;第 7 章介绍了数据文件的类型与操作方法。这些内容也是全国计算机等级考试大纲所要求的。 第五版教材在延续了前四版教材的叙述严谨、循序渐进、突出实践、方便自主学习的特点外,还在以下几方面进行了修订: (1)增加了微课。对书中属于重点和难点的知识点和例题录制了微视频 56 段,读者只要使用手机扫描书中的二维码,就可观看相关知识点的微视频。 (2)由于 Visual C++ 6.0 与目前流行的操作系统兼容性越来越差,第五版教材中删除了 Visual C++ 6.0 集成开发环境 IDE 的使用,把在实验教材中介绍的兼容性好、免费开源的集成开发环境 Code::Blocks(简称 CB)的内容移到主教材,由浅入深地介绍了使用 Code::Blocks 上机调试程序的完整过程,并列举了在调试中可能出现的问题及其应对方案。 (3)受主教材篇幅的限制,为方便读者掌握并熟练使用全国计算机等级考试二级C 语言的上机环境 Visual C++ 2010,把在 Visual C++ 2010 环境下的上机过程的介绍等内容安排到配套的实验教材中。在实验教材中,有三套等级考试的模拟试卷,继续为读者参加全国计算机等级考试二级(C 语言)及其他同等级别的考试提供帮助。 (4)目前高校的“C 语言程序设计”课程的教学课时压缩,如果按照原来的教学内容进行授课,教学任务将很难完成。基于此,我们删除了在“大学计算机基础”课程中讲过的第 2 章中的数据在内存中的表示,全国计算机等级考试不做要求的第 8 章面向对象的程序设计,第 5 章中的二级指针、函数指针、数组指针等部分内容,并对其他章节的内容进行了重写或者调整,使新版书的内容更加紧凑,实例更具有针对性,全书结构更加合理。 (5)修正了上一版教材中的错误,保证书中的所有源程序均能在 Code::Blocks 环境下运行通过。调整了各章课后的习题,删减了部分实用性弱的题目,补充了一些技巧性强的练习。为培养学生对编程的兴趣和爱好,书中补充了一些实用性强、趣味性足的实例,并给出了详细的分析过程。 本书特色: (1)注重信息素养教育。本书在一些案例和知识点的叙述过程中,嵌入了信息素养和计算思维的培养,力争做到潜移默化、润物细无声的信息素养教学效果。 (2)通俗易懂 , 适用性广。本书针对每一个知识点都进行了深入分析,并通过案例的形式将原本复杂的、难于理解的知识点进行简化,由浅入深,由易到难,适合作为高校各专业零基础学生的入门教材 , 也可以作为全国计算机等级考试的辅导用书。 (3)案例驱动。对每个知识点提供相关的程序实例,使读者能更直观地理解和掌握 C 语言的基本语法和程序设计方法,并逐步提升解决问题的能力。 (4)习题辅学。每一章后面都提供了适量的习题,便于读者检验自己的学习情况,及时发现学习过程中存在的问题并加以解决,同时在配套的实验教材中对习题进行分析解答,进行举一反三地强化学习。 (5)微课导学,攻破重、难点。针对重点和难点知识,给出了大量的分析和注释,同时录制了 56 段微视频对重点、难点的知识点和例题进行讲解,读者只要通过手机扫描书中的微课二维码,就可以进行反复学习。 (6)教学资源丰富。本书配套的电子资源包括 PPT、例题源代码、微视频等,均可在中国铁道出版社有限公司的教学资源网站(http://www.tdpress.com/51eds)上 免 费 下 载 或 观 看。 同 时 本 课 程 在 超 星 教 学 平 台(https://mooc1-1.chaoxing.com/ course/200346734.html)上也有比较丰富的教学资源。 本书可以作为高校计算机专业及相关理工科专业的教材,也适合用作公共计算机必修课的教材,同时也可作为广大编程爱好者的自学读物,既能给从事计算机相关工作的科技人员提供参考,也是参加各类计算机等级考试的辅导用书。 本书由江西师范大学计算机信息工程学院的任课教师傅清平、徐文胜、李雪斌编著,具体分工如下:傅清平老师负责第 1 章、第 2 章、第 3 章和附录 A 的编写 , 李雪斌老师负责第 4 章、第 7 章和附录 B 的编写 , 徐文胜老师负责第 5 章和第 6 章的编写。全书最后由傅清平老师统稿和定稿。 为了配合教学,编者还修订编著了配套的实验指导用书《C 语言程序设计实验教程》(第三版)(中国铁道出版社有限公司出版)。书中除了为配套的《C 语言程序设计》(第五版)提供了全部的习题解答之外,还根据教学进度设计了同步的上机实验内容以及课外练习题。 在本书修订和出版过程中,得到了江西师范大学计算机信息工程学院的领导、同事们的关心、支持与建议,家人的理解和支持,在此表示衷心感谢!特别要感谢本书的前两任主编王声决老师、罗坚 老师!中国铁道出版社有限公司的领导和编辑为本书的出版提供了无私的帮助,在此一并表示真诚的感谢! 在本书编写过程中,参考了大量的书籍和资料,在此谨向这些文献资料的作者表示衷心的感谢! 编者的时间和水平有限,书中难免存在疏漏和不足之处,恳请广大读者批评指正。 编?者 2023 年 1 月
第 1 章 C 程序设计入门.......................................................................................... 1 1.1 引 例........................................................................................................................................... 2 1.2 C 语言概述 ....................................................................................................................................... 7 1.2.1 程序、指令与程序设计语言................................................................................................. 7 1.2.2 C 语言的发展历史.................................................................................................................. 8 1.2.3 C 语言的特点.......................................................................................................................... 8 1.2.4 C 语言中的符号...................................................................................................................... 9 1.3 C 程序的上机调试......................................................................................................................... 10 1.4 Code::Blocks 集成开发环境........................................................................................................... 11 1.4.1 Code::Blocks 的下载安装配置 ............................................................................................. 11 1.4.2 C 程序上机的一般过程 ....................................................................................................... 12 1.5 学习建议......................................................................................................................................... 16 习 题................................................................................................................................................... 16 第 2 章 数据类型、运算符和表达式...................................................................... 19 2.1 数据类型概述................................................................................................................................. 20 2.2 整 型......................................................................................................................................... 20 2.2.1 整型常量 ............................................................................................................................... 21 2.2.2 整型变量 ............................................................................................................................... 22 2.2.3 整型数据的输入与输出....................................................................................................... 22 2.3 浮 点 型......................................................................................................................................... 26 2.3.1 浮点型常量 ........................................................................................................................... 27 2.3.2 浮点型变量 ........................................................................................................................... 27 2.3.3 浮点型数据的输入与输出................................................................................................... 28 2.4 字 符 型......................................................................................................................................... 30 2.4.1 字符常量 ............................................................................................................................... 31 2.4.2 字符型变量 ........................................................................................................................... 32 2.4.3 字符型数据的输入与输出................................................................................................... 33 2.5 字符串常量与符号常量 ................................................................................................................ 34 2.5.1 字符串常量 ........................................................................................................................... 34 2.5.2 符号常量 ............................................................................................................................... 35 2.6 运算符与表达式............................................................................................................................. 35 2.6.1 算术运算符与算术表达式................................................................................................... 37 2.6.2 赋值运算符和赋值表达式................................................................................................... 38 2.6.3 强制类型转换运算符........................................................................................................... 39 2.6.4 自增、自减运算符............................................................................................................... 40 2.6.5 逗号运算符和逗号表达式................................................................................................... 41 2.6.6 位运算 ................................................................................................................................... 41 习 题................................................................................................................................................... 43 第 3 章 算法与程序设计基础 ................................................................................ 48 3.1 算 法......................................................................................................................................... 49 3.1.1 算法的概念 ........................................................................................................................... 49 3.1.2 算法的特性 ........................................................................................................................... 50 3.2 算法的常用表示方法..................................................................................................................... 51 3.2.1 传统流程图 ........................................................................................................................... 51 3.2.2 N-S 结构流程图 ................................................................................................................... 52 3.2.3 用计算机语言表示算法....................................................................................................... 53 3.3 结构化程序设计方法..................................................................................................................... 54 3.4 选择结构......................................................................................................................................... 56 3.4.1 关系运算符和关系表达式................................................................................................... 57 3.4.2 逻辑运算符和逻辑表达式................................................................................................... 58 3.4.3 if 语句.................................................................................................................................... 60 3.4.4 if 语句的嵌套........................................................................................................................ 64 3.4.5 条件运算符和条件表达式................................................................................................... 67 3.4.6 switch 语句 ............................................................................................................................ 68 3.4.7 选择结构程序设计举例....................................................................................................... 72 3.5 循环结构......................................................................................................................................... 75 3.5.1 while 语句.............................................................................................................................. 75 3.5.2 do...while 语句....................................................................................................................... 77 3.5.3 for 语句.................................................................................................................................. 78 3.5.4 多重循环 ............................................................................................................................... 82 3.5.5 break 语句 ............................................................................................................................. 84 3.5.6 continue 语句......................................................................................................................... 87 3.5.7 循环结构程序设计举例....................................................................................................... 88 3.6 常用的编程方法............................................................................................................................. 90 习 题................................................................................................................................................... 96 第 4 章 函 数 ................................................................................................ 103 4.1 问题分解....................................................................................................................................... 104 4.2 函数的定义................................................................................................................................... 106 4.3 函数的调用与返回....................................................................................................................... 108 4.3.1 函数的调用 ......................................................................................................................... 108 4.3.2 函数的返回 ......................................................................................................................... 110 4.3.3 函数原型声明..................................................................................................................... 113 4.4 函数的参数传递方式................................................................................................................... 115 4.4.1 值传递方式 ......................................................................................................................... 115 4.4.2 地址传递方式..................................................................................................................... 117 4.5 函数的嵌套调用与递归调用 ...................................................................................................... 120 4.5.1 函数的嵌套调用................................................................................................................. 120 4.5.2 函数的递归调用................................................................................................................. 121 4.6 变量的作用域............................................................................................................................... 125 4.6.1 局部变量 ............................................................................................................................. 125 4.6.2 全局变量 ............................................................................................................................. 126 4.6.3 外部变量 ............................................................................................................................. 128 4.7 变量的存储类型........................................................................................................................... 129 4.7.1 动态变量 ............................................................................................................................. 129 4.7.2 静态变量 ............................................................................................................................. 130 4.7.3 寄存器变量 ......................................................................................................................... 131 4.8 编译预处理命令........................................................................................................................... 134 4.8.1 宏定义 ................................................................................................................................. 134 4.8.2 文件包含 ............................................................................................................................. 136 习 题................................................................................................................................................. 138 第 5 章 数组类型与指针类型 .............................................................................. 144 5.1 一维数组....................................................................................................................................... 145 5.1.1 一维数组的定义................................................................................................................. 145 5.1.2 一维数组的基本运算......................................................................................................... 148 5.1.3 一维数组的函数编程......................................................................................................... 150 5.1.4 应用示例 ............................................................................................................................. 153 5.2 字 符 串....................................................................................................................................... 159 5.2.1 字符串的概述..................................................................................................................... 159 5.2.2 字符串的基本运算............................................................................................................. 161 5.2.3 字符串的函数编程............................................................................................................. 161 5.2.4 应用示例 ............................................................................................................................. 166 5.3 二维数组....................................................................................................................................... 168 5.3.1 二维数组的定义................................................................................................................. 168 5.3.2 二维数组的基本运算......................................................................................................... 170 5.3.3 二维数组的函数编程......................................................................................................... 171 5.3.4 应用示例 ............................................................................................................................. 174 5.4 指针类型....................................................................................................................................... 177 5.4.1 指针的定义 ......................................................................................................................... 177 5.4.2 指针的基本运算................................................................................................................. 179 5.4.3 指针的函数编程................................................................................................................. 181 5.4.4 应用示例 ............................................................................................................................. 182 习 题................................................................................................................................................. 187 第 6 章 结构体类型与联合体类型 ....................................................................... 195 6.1 结构体类型................................................................................................................................... 196 6.1.1 结构体的定义..................................................................................................................... 196 6.1.2 结构体类型的基本操作..................................................................................................... 199 6.1.3 结构体的函数编程............................................................................................................. 206 6.1.4 应用示例 ............................................................................................................................. 213 6.2 联合体类型................................................................................................................................... 219 6.3 枚举类型....................................................................................................................................... 221 习 题................................................................................................................................................. 223 第 7 章 文 件 ................................................................................................ 227 7.1 文件基本概念............................................................................................................................... 227 7.1.1 文件分类 ............................................................................................................................. 228 7.1.2 文件缓冲区 ......................................................................................................................... 229 7.1.3 文件类型指针..................................................................................................................... 229 7.2 文件的打开和关闭....................................................................................................................... 230 7.2.1 打开文件 ............................................................................................................................. 230 7.2.2 关闭文件 ............................................................................................................................. 232 7.3 按单个字符读 / 写文件 ............................................................................................................... 232 7.3.1 单个字符读 / 写函数.......................................................................................................... 232 7.3.2 对设备的读 / 写.................................................................................................................. 233 7.3.3 文件访问结束判断............................................................................................................. 234 7.4 按字符串读 / 写文件 ................................................................................................................... 237 7.4.1 字符串读 / 写函数.............................................................................................................. 237 7.4.2 再谈文件打开方式............................................................................................................. 240 7.5 按格式读 / 写文件........................................................................................................................ 241 7.5.1 按字符(串)读 / 写与按格式读 / 写比较 ...................................................................... 242 7.5.2 格式化读 / 写函数.............................................................................................................. 243 7.6 按数据块读 / 写文件 ................................................................................................................... 247 7.7 随机读 / 写文件............................................................................................................................ 250 习 题................................................................................................................................................. 254 附录 A 常用字符与 ASCII 码对照表.................................................................... 259 附录 B 常用库函数介绍 ...................................................................................... 260 参考文献............................................................................................................... 273
傅清平,江西师范大学计算机信息工程学院副教授,主讲C语言程序设计、Python程序设计、大学计算机基础、数据库原理、数据结构等课程。主编或参编十余部教材,并获得多个奖项,其中“C语言程序设计”被评为普通高等教育“十一五”国家级规划教材,荣获江西省普通高校第三届优秀教材一等奖。参与国家自然基金项目2项,主持和参与省级课题10余项,发表论文10余篇。 徐文胜,江西师范大学教师,有30年的一线程序设计教学经验,教授的课程有BASIC、VB、JAVA、C、C++、VFP、ACCESS等,教学深入浅出,启动性强,深受学生好评。主编或参编教材多部。 李雪斌,江西师范大学教师,主讲大学计算机、Python编程基础、C编程技术、VB程序设计等课程,获得江西省精品在线开放课程“计算机文化基础”。参编《C语言程序设计》及相关实验教材。主持多项省级课题和校级课题若干项。
本书适合作为普通高等院校各专业的 C 语言程序设计课程教材,也可作为广大编程爱好者的自学读物,既能给从事计算机相关工作的科技人员提供参考,同时也是参加各类计算机等级考试人员的辅导用书。?