前言 C语言是国内外广泛使用的计算机语言。许多高校都开设了“C语言程序设计”课程。作者于1991年编写了《C程序设计》,由清华大学出版社出版。该书出版后,受到了广大读者的欢迎。大家普遍认为,该书概念清晰、叙述详尽、例题丰富、深入浅出、通俗易懂。大多数高校选其作为教材。该书已先后修订了4次,出了5版,重印200多次,累计发行逾1700万册,为国内外同类书的发行量之首。2021年10月,《C程序设计》(第五版)荣获“全国优秀教材一等奖”。 由于全国各地区、各类学校情况不尽相同,对C语言的教学要求学时数也有所差别。因此,作者除了编写出版《C程序设计》外,还针对学时相对较少学校的情况,于2007年编写出版了《C程序设计教程》一书,适当减少内容,紧扣基本要求,突出重点,同时编写出版了《C程序设计教程学习辅导》一书。2022年,作者对《C程序设计教程》一书再次进行修订,出版了《C程序设计教程》(第4版),同时也对《C程序设计教程学习辅导》进行了修订,出版了《C程序设计教程(第4版)学习辅导》,即本书。 本书包括4部分。 第一部分是“《C程序设计教程》(第4版)习题与参考解答”。这部分包括了《C程序设计教程》(第4版)一书的全部习题,并提供了参考解答。除对其中少数概念问答题,由于能在教材中直接找到答案,不另给出答案外,对所有编程题一律给出参考解答,包括程序清单和运行结果。对于相对简单的问题,只给出程序清单和运行结果,不进行详细说明,以便给读者留下思考的空间。对于一些比较复杂的问题,还对算法进行了详细的分析介绍,给出流程图,并在程序中加注释,以便于读者理解。对少数难度较大的题目(如链表的插入、删除等)还作了比较详细的文字说明。对有些题目,我们给出了两种参考解答,供读者参考和比较,以启发思路。全部程序都在Visual C++ 6.0环境下调试通过。 本书提供的不同类型、不同难度的题目,可以作为读者学习《C程序设计教程》(第4版)的补充材料。希望教师和同学们能善于利用这部分内容。教师可以根据教学要求和学生的情况,从习题中指定学生必须完成若干题目,目的是希望通过完成这些习题巩固消化教材中的内容,同时能帮助读者举一反三,深入思考。 习题中包括不少有价值的、适用于教学的典型问题。由于篇幅和课时的限制,在教材和讲授中不可能介绍很多例子,只能介绍一些典型的例题。教师可以从习题中选一些作为补充例题在课堂上讲授。对于一般读者,不必要求他们全部完成这些题目,但是可以提倡他们直接阅读参考解答,这对于开阔眼界,丰富知识,理解不同的程序,了解有关算法,掌握编程思路,是大有裨益的。对C程序设计有兴趣、有基础的读者,最好能多选一些题目独立完成编程,对提高编程水平会有很大的帮助。有人说: 如果能独立完成这些题目的编程,学习C语言就基本过关了。 应该说明,本书给出的程序并非唯一正确的解答。对同一个题目可以编出多种程序,我们给出的只是其中的一种或两种,而且程序尽可能便于初学者容易理解,不一定直接搬用于专业的程序设计中。读者在使用本书时,千万不要照抄照搬,读者完全可以编写出更好、更专业的程序。 第二部分是“常见错误的分析和程序调试”。作者根据多年教学经验,总结了学生在编写程序时常出现的问题,以提醒读者少犯类似错误。此外,介绍了调试程序的知识和方法,为上机实验打下基础。 第三部分是“C语言上机指南”。介绍了目前常用的 Dev\|C++和Visual Studio 2010集成环境下的上机方法,使读者上机练习有所遵循。 第四部分是“上机实验”。提出了上机实验的要求,介绍了程序调试和测试的初步知识,并且安排了12个实验,便于进行实验教学。 本书不仅可以作为《C程序设计教程》(第4版)的参考书,而且可以作为任何C语言教材的参考书;既适用于高等学校教学,也可供报考计算机等级考试者和其他自学者参考。 南京大学金莹老师以及薛淑斌高级工程师、谭亦峰工程师参加了本书的收集材料以及部分编写和调试程序的工作。 本书难免存在错误和不足之处,作者希望得到广大读者的指正。 2022年3月于清华园