前言
本书自2022年出版以来,被多所学校作为“C语言设计”“程序设计基础”等课程的教材使用。3年多的时间里,许多同行提出了宝贵的建议,在此深表感谢。2023年,“高级语言程序设计”被评选为国家级一流本科课程(线下课程),对课程的进一步建设提出了新的要求。
在过去的3年多,大模型等人工智能技术快速发展,许多问题的求解都可以直接求助大模型,这为程序设计类课程的教学带来了新的挑战。在这种情况下,探索以培养计算思维为主要目标的教学模式势必成为人工智能新时代的主流。本次修订工作正是基于这样的考虑开展的。本次修订进一步淡化程序设计语言的语法知识,加强对学生计算思维的培养;注重知识体系的完整,将部分基础知识利用网络平台展示;进一步探索计算机类专业创新人才的个性化培养,将部分程序设计竞赛的题目转化为教学案例。
全书共分9章,各章核心内容如下。
第1章程序设计入门。本章系统介绍C语言的发展,程序设计基本过程,算法的概念、特性及其表示,DEVC++开发环境的安装、新建、运行、调试等基本操作技能,为 C 语言学习奠定基础。
第2章顺序结构。本章重点讲解整型、实型、字符型3个基本数据类型;明确常量与变量的定义和使用规则;解析各类运算符与表达式的语法规则、优先级;阐述自动数据类型转换和强制类型转换规则,并介绍标准输入输出函数的基本用法。
第3章选择结构。本章全面讲解5种经典的选择结构: if单分支、ifelse双分支、嵌套的 ifelse多分支、elseif 多分支,以及switch 多分支;结合闰年判断、模拟计算器、日期统计等经典案例,讲解选择结构在实际编程中的应用。
第4章循环控制结构。本章详解 while、dowhile和for 3种基础循环控制结构的语法格式与适应场景;介绍循环嵌套的基本用法;剖析break与continue循环控制语句的功能与区别;通过百钱买百鸡、斐波那契数列、二分法、快速幂等经典算法案例,强化循环结构的编程实践。
第5章数组。本章系统讲解一维数组、二维数组与字符数组的定义、初始化、存储方式;介绍数组相关经典算法与应用,包括折半查找、冒泡排序、素数筛、高精度大数运算、魔方矩阵、鞍点求解等。
第 6 章函数与模块化设计。本章讲解函数的定义、调用与声明方法,明确形参和实参的匹配规则,解析递归函数原理与典型应用;深入分析局部变量、全局变量的作用域与生命周期,阐述模块化程序设计的思想和编程规范。
第7章指针。本章聚焦 C 语言核心知识点,讲解指针的基础概念与定义方式,通过指针访问变量、一维数组、多维数组、字符串的用法;介绍指针作为函数参数、函数指针等核心应用,全面夯实C语言编程核心能力。
第8章结构体与链表。主要讲解结构体的定义、成员访问、初始化及数组排序方法;介绍链表的基本概念,详细演示链表的创建、遍历、插入与删除等基本操作。
第9章文件。本章区分文本文件与二进制文件的概念,讲解文件指针的使用;介绍字符、字符串、数据库、格式化输入输出4类文件的基本读写操作;并以学生成绩管理系统的开发为案例,实现文件操作的综合实践应用。
本次修订由张小峰、刘慧、袁红芝、贾世祥、刘业朋、杨昌玉等老师共同完成。其中,第1、2章由袁红芝、刘业朋负责,第3~6章由张小峰、贾世祥负责,第7~9章由刘慧、杨昌玉负责,补充录制的视频由张小峰负责。
感谢鲁东大学ACM创新实验室的小伙伴们对程序评测平台的题库进行了进一步丰富,目前题库已涵盖Codeforces、AtCoder、USACO、GESP等相关比赛。同时,OJ平台也进行了智能升级,引入大模型开展答疑。
在本书的编写过程中,作者参阅了国内外诸多同行的著作,在这里不再一一列举,在此向他们致以谢意。限于作者学识水平,书中在具体内容的选择取舍、程序设计思想的介绍等方面肯定存在着不妥之处,恳请专家和读者提出批评指正。
作者
2026年4月于烟台
