前言 “程序设计基础”是一门理论与实践密切相关,以培养学生程序设计能力为目标的课程,它的任务是培养学生运用高级程序设计语言求解问题的基本能力,其难点在于帮助学生形成以机器语言思考问题的思维。通过该课程的学习使学生了解高级程序设计语言的结构,掌握基本的应用计算机求解问题的思维方法以及基本的程序设计过程和方法。从问题提出、数据表示方式选定、算法设计,到代码编写、程序调试和测试,以及结果分析的过程中,培养学生抽象问题、设计与选择解决方案的能力,以及用具体编程语言实现方案并进行测试和评价的能力。 由于C语言具有其他语言无法比拟的优势,因此在计算机的各个领域得到了广泛应用,从系统软件的开发到应用程序的设计,特别是在图形处理和底层应用方面应用广泛。此外,C语言是一门结构化程序设计语言,有利于学生掌握程序设计的思想,目前仍是高校学习程序设计的一门基础性语言,所以本书选用C语言作为实现语言。 本书是作者多年来在讲授“C语言程序设计”的基础上,总结教学经验,整理编写而成的。以掌握程序设计思想为主线,由浅入深,先介绍基本知识及例题,再讲解应用方法,重点是训练读者的编程思维,培养读者利用计算机解决问题的能力。本书突出工程应用型人才的培养,强调实用性,体现“通俗易懂、结构清晰、层次分明、示例丰富”的特色。书中所有例题均在Visual C++6.0、DevC++、Microsoft Visual Studio 2022环境下运行通过。为了方便学习和加强实验教学,同时编写了该书的配套教材《程序设计基础(C语言)学习辅导》(第3版)。 全书共12章。第1、2章介绍了C语言的基本概念、基本常识、算法与程序设计思想,由冯斯苑老师编写;第3章介绍了C语言的基本数据类型与表达式,由房宜汕老师编写;第4章介绍顺序结构程序设计,由钟秀玉老师编写;第5、6章介绍了选择结构程序设计和循环结构程序设计,由房宜汕老师编写;第7章介绍了数组,由钟秀玉老师编写;第8章介绍了函数,由蓝红苑老师编写;第9章介绍了指针,由肖振球老师编写;第10、11章介绍了结构体、共用体、枚举类型和位运算,由巫喜红老师编写;第12章介绍了文件的输入输出操作,由陈世基老师编写,此外,附录部分也由陈世基老师编写。全书由巫喜红老师统稿,钟秀玉老师和巫喜红老师审定。 本书是在第2版的基础上修订而成的,补充了与实验相关的部分实例。相较第2版,充实了教学资源,除了原有的教学资源(包括教学PPT、源程序代码等)以外,新建了题库,扫描封底作业系统二维码可免费使用;专门录制了涵盖所有知识点的微课视频,读者可扫描封底的刮刮卡内二维码观看视频。 在本书写作过程中,参考了部分图书资料和网站资料,在此向其作者表示感谢。 本书的出版得到了2013年教育部地方所属高校“本科教学工程”大学生校外实践教育基地建设项目“嘉应学院梅州市职业技术学校教育学实践教育基地”(教高司函〔2013〕48号)、2015年广东省本科高校教学质量与教学改革工程立项建设项目精品教材“程序设计基础(C语言)”(粤教高函〔2015〕133号)、2016年广东省高校教学质量与教学改革工程项目“精品资源共享课《数据结构》”(粤教高函〔2016〕233号)、2020年广东省高等学校教学质量与教学改革工程本科类项目重点专业“软件工程”(粤教高函〔2020〕19号)、2020年度嘉应学院质量工程建设项目在线开放课程“程序设计基础”(嘉院教〔2020〕19号)的支持,在此表示衷心的感谢。 此外,在2015年校级优秀教材评选活动中,本书的第1版荣获嘉应学院优秀教材一等奖;使用本书第2版作为教材的“程序设计基础”课程已被超星集团收录为“示范教学包”。 由于作者水平和经验有限,书中难免有不足之处,恳请读者提出宝贵意见和建议,使本书日臻完善。为方便教师的教学工作和读者的学习,本书有配套的源程序代码、习题答案和电子教案,读者可从清华大学出版社网站下载。 编者2022年3月