图书前言

前言

C语言是目前广泛使用的一种高级程序设计语言,也是国内外高校讲述程序设计方法的首选语言。“C语言程序设计”已成为计算机类课程体系中的第一门重要的基础课程。该课程实践性较强,需要进行大量的上机操作与实训。在实践中发现问题、分析问题、解决问题,才能更好地掌握C语言,并最终学会利用C语言解决实际问题。

目前市面上出版的C语言程序设计类教材比较多,所介绍的理论知识及其应用案例也很全面。很多教材提倡项目(案例)教学思路,把一个或多个真实的软件项目(案例)及其运作流程从头至尾融入C语言课程教学中,通过项目驱动逐一介绍C语言的基本知识内容,以培养学生的工程实践能力,提高学生的动手技能。这种教学思路具有新颖性,但前提是要对所教授学生的实际认知状况进行一个合理的评估。对于一些地方性的应用型本科高校或高职院校层次的学生而言,学习C语言之前大都缺乏一定深度的计算机与软件方面的专业基础知识,加之数学知识较薄弱,又没有实际项目开发经验,因此会觉得课程内容空洞乏味,理解起来有一定难度。编者长期在应用型本科高校一线从事C语言课程的教学及指导实践工作,所在高校的学生在大一阶段学习C语言课程之前,绝大多数都是“程序设计零基础”学习,更不用说具备软件项目实践经历。以各种实际软件项目(案例)为驱动,去讲解C语言的各种语法知识,反而使大多数学生感到课程知识枯燥无味,因为课后还要专门查阅一系列后续计算机类专业课程的资料辅助学习,从而加重了学习负担。在多年的教学实践中,编者能亲身感受到“零基础”学生在学习C语言过程中产生的困惑。很多学生学习时会出现“课堂上老师一讲就懂,上机调试程序总是一调就错,自己又找不出原因”的窘况,反而降低了学习积极性。例如,上机调试程序时,很多学生分不清C语言中=与==、1/3与1/30的区别,会把C语言表达式if(x>2&&x<3)错写成if(2<x<3),把p=pn;错写成p=pn;等情况,导致程序运行异常。归根结底,还是课堂上对C语言的基本语法知识没有掌握扎实,课后又未能及时复习,也没有通过上机实训环节对所学知识进行巩固造成的。所以,编者认为,针对应用型本科学生,C语言课程的教学应定位于“理论知识适度,强调上机实训以强化基本概念,增强学生的职业素养”的教学思想,而对于项目驱动为主导的教学方式,则适合作为对日常教学活动的拓展。同样,仅通过校内几十个学时的学习,试图使“程序设计零基础”的大一学生具备良好的软件项目工程实践能力是不现实的,也是不科学的。因为良好的工程实践能力是需要学生今后通过专门的(校内、外)实习实训,以及在未来的工作岗位中逐渐培养与建立起来的。

基于此,针对应用型本科大一学生的认知特点,结合实际教学环境,编者通过对C语言的了解与感悟以及多年的教学实践,在对自己的备课讲义进行认真而系统的梳理后编写了本书。本书定位于“程序设计零基础”的读者,着眼于理论适度,突出实用。书中对C语言的主要知识内容进行了通俗易懂的讲解,每一个C程序实例则采用了较为简单的方法来实现,注重对C语言语法知识的掌握,而淡化程序算法设计思想,以便学生更容易理解程序的组织结构与功能。针对一些难理解、易混淆的知识点,书中为初学者指出了一些学习上的注意事项,而这些大都来自于近几届学生在课堂学习、课后作业、上机操作等方面所出现的共性问题,希望读者学习时要引起足够重视。全书内容在编排上循序渐进,在一些重要章节的后面都安排了相应的实训任务,实训程序大都由相应章节中的例题所改写,并做适当拓展,目的是要求学生通过上机实训加强对本节所学内容知识的强化与巩固,从而做到举一反三,融会贯通。实训任务既可以安排在上机课内完成,也可以让学生课后自行上机完成。编者建议,学生一定要亲自调试书中的每一个C程序(包括例题程序与实训程序),认真观察与分析程序运行结果,而不能仅局限于“字面上看懂了程序”。最后,本书第10章通过一个简易的“万年历”程序案例,介绍如何使用C语言代码完成程序设计及项目实践过程。任课老师可以根据学时安排,把该案例作为选学内容或C语言课程设计的参考内容。

本书以2014年安徽省职业与成人教育学会教育科研规划项目、2015年安徽省省级质量工程项目、2015年安徽三联学院校级质量工程项目为依托,系项目研究成果之一。成书过程中,编者得到了安徽三联学院校领导的大力支持。此外,合肥工业大学张佑生教授、张正武教授与杜习英教授,安徽三联学院计算机工程学院操晓峰主任也为该书内容的编写提出了宝贵的建议,在此表示衷心的感谢。

本着学习与借鉴的目的,本书在编写过程中参考了大量同类C语言书籍及文献,在此谨向原作者表示诚挚的谢意。由于编者水平有限,加之时间仓促,书中的疏漏和不当之处在所难免,还望各位同行批评指正。

编者

2016年8月