在这个科学技术飞速发展的时代,程序设计是大学生在使用计算机时必须具备的能力。本书面向广大非计算机专业的程序设计初学者,由浅入深地讲述了C语言的设计方法。同时,还阐述了程序设计的基本方法和面向对象程序设计的基本知识。本书根据初学者的特点,按照学生的认知规律精心策划,力求使用通俗易懂的语言、丰富的图形及例题介绍比较抽象的概念和逻辑。对于其中比较难于理解的算法,还提供了动画演示(可通过http://www.tupwk.com.cn/downpage/index.asp下载)。本书内容深入浅出,循序渐进,便于自学。可作为非计算机专业C程序设计课程的教材,也可以作为相关培训班的教材。本书前言“程序设计”是针对广大非计算机专业的大学本科学生开设的一门必修课,也是计算机学科的基础课程。本书是为“程序设计”课程编写的教材,其内容选取符合教学大纲的要求,同时也兼顾了学科的广度和深度,适用面广。本书共分3部分19章。第1部分是入门篇,包含前9章。第1~2章从介绍程序设计开始,首先为学习本课程提供了指导性的建议,然后讨论了结构化程序设计的方法和程序调试方法。第3章介绍了程序的各个组成部分以及程序的运行过程。第4章围绕简单的数据计算介绍了数据类型、常量、变量、运算符和表达式等基本概念,以及数据输入输出的方法。第5~7章介绍了程序控制结构的概念、选择结构和循环结构。作为入门篇的高级部分,第8章和第9章讨论了数组和字符串的概念以及应用。第2部分是进阶篇,包含第10~16章。其中,第10~15章依次讨论了C语言中的指针、函数、位运算、复合数据类型、文件和编译预处理等6个方面的内容。第16章围绕着几个实例,介绍了C与面向对象程序设计中的基本概念。第3部分是应用篇,用3章的篇幅详细讨论了链表与堆栈两种数据结构,以及排序与查找两类基本算法。在组织内容时,我们围绕两条主线编写,即语法规则和程序设计。在编写的过程中,一方面吸收了国内外多本经典教材的特点,另一方面也融会了小组成员多年丰富的教学经验和工程开发经验。本教材适合非计算机专业的本科生阅读,同时也可供广大的C语言程序设计初学者和爱好者阅读。本教材提供了示例程序源代码、重点算法的Flash动画、交互式的自测题、供教师授课时使用的幻灯片、供学生课下自学和复习使用的Web站点以及其他素材。读者可通过http://www.tupwk.com.cn/downpage/index.asp下载这些内容。作为补充资料,本教程还有配套的《上机指导和习题解析》。其中包括本教程的习题解答、常见编译系统的上机指导、上机实验和指导、补充习题和模拟试题。如果能够与本教程同时使用,将起到更好的教学效果。本书的第10~13章由王成霞老师编写;第4、14、15、19章、附录A和B、第17章中的17.2节以及该章与堆栈有关的建议和练习题由万红老师编写;其余部分由彭旭东老师编写。在编写本书的过程中,我们得到了天津理工大学计算机科学与工程系领导的大力支持,清华大学出版社的胡伟卷女士、天津理工大学的莫秀良老师也为本书的完成提供了大量的帮助,在此一并表示感谢。