图书前言

前言

C语言自推出以来,一直受到人们的广泛欢迎。长期以来,学术界和工业界都在广泛使用标准C语言。在世界各地的很多教育机构中,由于从许多入门级课程到高级课程都可选择C语言,因此C语言是程序设计课程和计算机科学教育的首选语言。此外,C语言带有很多有用的库,并得到许多复杂而安全的集成开发环境的支持。由于C语言是使用方便、目前执行效率最高的语言,因此在人工智能、云计算等领域得到广泛应用,深度学习平台和云计算平台的底层基础架构都是使用C语言实现的。同时,标准C语言还在不断改进、完善和拓展,这些变化及C语言在操作系统、数据库、图形系统、嵌入式系统等方面的广泛影响,使得C语言成为学习信息科学和程序设计的首选。

本书以C语言为工具,力图用简明的语言、典型的案例,介绍计算思维和程序设计的基本方法,把它们的核心思想贯穿于C语言的介绍中,目的是使读者在学习C语言以后,能够用计算思维和程序设计的方法解决相关领域中的实际问题。

全书共13章,包括C语言基本概念、数据类型与表达式、格式化输入与输出、选择结构、循环结构、函数、数组、指针、字符串、指针与数组、自定义数据类型、文件、构建大规模程序。

1. 本书目标

(1) 本书通过提供详细的解题思路来描述问题所涉及的编程元素和解决问题所需要的方法及解题步骤,采用三种基本结构、自顶向下和结构化程序设计方法,并通过大量的流程图或NS图来描述算法,为编写程序提前进行代码预排,帮助读者更好地理解和评价问题所涉及的编程思想。

(2) 通过详细分析示例程序,向读者展现了清晰而完整的程序设计过程,描述了代码的关键特征,目的是让读者掌握一些习惯语法,以便在遇到新情况时作为参考。这种对程序和函数的解析方法有利于突出不同上下文应用中的关键思想。

(3) 本书假设读者没有任何编程背景,既适用于学生及计算机用户,也适用于有经验的但不熟悉C语言、需要掌握结构化程序设计方法的程序员。本书的每章都给出了一些带有详细注释的示例程序,通过这些程序,引导读者编写具有结构化特征的函数。能编写函数是一名合格程序员的标志。

(4) 为了提高代码的重用效率和权威性,本书在示例程序中尽可能涵盖所有的标准C语言的特性和库函数。同时,为了避免给读者造成不必要的学习负担,忽略了这些特性和库函数的一些不必要的细节。

(5) 根据作者多年讲授C语言的经验,本书采用循序渐进的方式来展现C语言的特性。针对某些有一定难度的主题,如函数和指针,本书采用螺旋式的描述方法,即对较难的主题先进行简要介绍,然后在多个章节中多次介绍该主题,逐渐丰富该主题的细节内容。这种循序渐进的方式,使前后内容由浅入深、相互呼应,既防止了内容单调,又避免了知识点过于集中而造成的艰难晦涩。

(6) 本书使用了尽可能多的图来展现函数中变量的状态和C语言特性,试图通过图来展示程序运算过程中不同阶段的数据状态以便动态地描述算法。

(7) 除介绍C语言的特性和编程思想外,还特别强调程序设计过程中所要解决的软件工程问题,即如何运用C语言来处理大规模程序开发过程中产生的问题,使编写的程序具有易读性、可维护性、可靠性和可移植性。在函数设计中,尤其强调信息隐藏和代码的重用性。

2. 本书特色

本书旨在用C语言和计算思维实现程序设计的方法,而不是侧重介绍C语言语法或问题的解决方案。本书的编写特色如下。

(1) 语言简明,可读性好。本书尽量用通俗的语言深入浅出地描述,语言流畅,避免像研究生教材或学术专著那样理论严谨、语言晦涩,让学生能有兴趣、有耐心阅读本书,理解C语言程序设计的思想与基本方法。

(2) 内容实用,注重应用。由于C语言内容繁杂,本书精选知识点和案例,贯穿计算思维,案例驱动教学内容,且所选用案例实用、有趣、易懂,贴近普通大学生的实际生活,让学生倍感亲切。本书在潜移默化中帮助学生了解应用程序设计方法和过程,掌握程序设计语言知识和实用技巧,培养他们的编程素养。

(3) 方法新颖,与时俱进。本书围绕把问题讲清楚、讲明白、讲透彻这个中心目标,放弃一些陈旧的、以炫技为目的的传统设计习惯,追求更直接、更简练的设计风格,尽量把作者多年来在教学和实际应用开发实践中积累的经验贯穿于书中,同时也将程序设计领域最新、最有价值的思想和方法渗透到书中,使本书以焕然一新的面貌呈现在读者面前。

(4) 全书所有代码使用统一的代码规范编写,并强调程序代码的健壮性。书中例题、习题和实验题的内容选取兼具趣味性和实用性,例题以学习C语言特性和编程思想,培养计算思维为目的;问与答以知识探索和解惑为目的,释疑编程中遇到的问题;习题以巩固基本知识点和掌握程序设计方法为目的,难度呈阶梯状,题型包括选择题、程序填空、阅读程序和编程题等;实验题从巩固基础、综合设计、创新应用三个层次进行设计,围绕一个综合应用实例逐步展开模块化设计,以任务驱动方式,引导读者实现具有一定规模、贯穿全书知识点的学生成绩管理系统。

(5) 设置警告。C语言以其陷阱多而闻名,本书将程序设计过程中最常见或最重要的陷阱设置成警告,以警示读者可能掉入的陷阱。

(6) 设置惯用法。C语言程序中经常出现一些通用的代码模式,本书将它设置为惯用法,以方便读者快速掌握。

3. 教学资源

本书是爱课程网“中国大学MOOC”(http://www.icourses.cn/imooc)“C语言程序设计”的主教材,搜索“C语言程序设计”课程(非SPOOC),可以观看课程的微视频,浏览课件和动画。

本书由曾智勇主编,林晖、林铭炜、林崧、王兴、林丽玉、金彪等参与了部分章节内容的编写及本书的书稿校对工作。国家级教学名师、浙江工业大学的王万良教授在百忙之中仔细审阅了全部初稿,并提出了许多宝贵的意见和建议,作者在此对他的辛勤付出表示衷心感谢。

因作者水平所限,书中错误在所难免,欢迎广大读者给作者发送邮件或在爱课程网“中国大学MOOC”的本课程网站留言,对本书提出意见和建议,我们会在重印时及时给予更正。

作者

2025年1月