本书是一本兼具趣味性和实用性的C语言程序设计教材。全书由13章组成,内容包括:为什么要学C语言,C数据类型,简单的算术运算和表达式,键盘输入和屏幕输出,选择控制结构,循环控制结构,函数,数组,指针,字符串,指针和数组,结构体和共用体,文件操作。本书以应用为背景,面向工程实践和编程能力训练,从实际问题出发,在案例的不断深化中逐步引出知识点,形成逻辑清晰的脉络和主线。案例内容紧密结合实践,举一反三,融会贯通,尤其侧重错误案例的分析和讲解,在任务驱动下,由浅入深、启发引导读者循序渐进地编写规模逐渐加大的程序,让读者在不知不觉中逐步加深对C程序设计方法的了解和掌握。本教材配有多媒体课件、例题和习题源代码以及编程题考试自动评分系统等教学资源,免费向任课教师提供。本书适合作为高等学校各专业的C语言程序设计课程教材,也可作为从事计算机相关工作的科技人员、计算机爱好者及各类自学人员参考。
		
	
  程序设计课程一直以来都是高等院校重要的计算机基础课程之一,其重点是培养学生的计算思维能力,掌握程序设计的思想和方法,利用一种程序设计语言去编写程序解决实际问题,从而提高问题求解的能力。 
  C语言由于其结构简单、数据类型丰富、表达能力强;既有高级语言的优点,又兼具低级语言直接操作计算机硬件的特点,使用灵活方便;其程序也具有速度快、效率高、代码紧凑、可移植性强等优点,一直以来被广泛地应用,也是很多高等院校作为程序设计课程的首选语言。 
  作者开设的“C/C++程序设计”课程先后被评为国家级精品课程(2008年)和国家精品资源共享课(2014年),经过多年的课程建设和教学实践,在教学内容、教学方法、教学手段和考试方法方面已经形成了一套行之有效的体系。针对目前C语言教学中学时少、教学内容多的情况,本教材以案例编写为主导思想,旨在通过具体案例教学达到举一反三的效果。 
  教材编写思路及其特点: 
  (1)每章精选若干案例进行知识点的讲解,强调编程思想,注重问题求解思维方式的培养,程序设计基本方法的引导。案例的选取不仅要考虑本章所涉及的知识,更重要的是突出程序设计思想的典型案例和有可进行举一反三的思考与练习题配套。 
  (2)不同于一般教材的编写思路,本书编写不再是大而全。本书内容简洁实用(适合课程学时少的教学需求),同时考虑到了知识点的覆盖面;本书采用新形态教材编写方式,读者使用手机扫描教材中的二维码即可观看到相关知识点的微视频。
  (3)为了做到学以致用举一反三,每一章都提供了实验内容及指导,还提供了相应的习题,使教材更方便学生使用。 
  (4)每章每节的第一小节都给出一个案例,往后的各小节针对该案例中涉及的知识点及其算法进行讲解。
第1章 C程序设计基础 
1.1 简单C程序的编写 
1.1.1 案例 
1.1.2 数据类型、常量与变量 
1.1.3 运算符、表达式和语句 
1.1.4 格式化输出函数printf() 
1.1.5 C程序的编写与执行 
1.2 求任意半径的圆面积 
1.2.1 案例 
1.2.2 格式化输入函数scanf() 
1.2.3 C程序的函数 
1.3 实验内容及指导 
习题1 
第2章 分支结构 
2.1 判断闰年 
2.1.1 案例 
2.1.2 if-else语句 
2.2 判断字母、数字和其他字符 
2.2.1 案例 
2.2.2 else-if语句 
2.2.3 字符输入函数getchar() 
2.3 选择执行菜单项 
2.3.1 案例 
2.3.2 switch语句 
2.4 实验内容及指导 
习题2 
第3章 循环结构 
3.1 求和问题 
3.1.1 案例 
3.1.2 while语句 
3.2 求π值 
3.2.1 案例 
3.2.2 do-while语句 
3.3 素数问题 
3.3.1 案例 
3.3.2 for语句 
3.4 输出图形 
3.4.1 金字塔 
3.4.2 九九乘法表 
3.5 实验内容及指导 
习题3 
第4章 函数 
4.1 人民币兑换问题 
4.1.1 案例 
4.1.2 函数的定义 
4.1.3 无参函数的调用 
4.1.4 函数的返回值 
4.2 三角形问题 
4.2.1 案例 
4.2.2 函数调用的一般形式 
4.2.3 函数原型 
4.2.4 变量作为形参 
4.3 二分法求方程的根 
4.3.1 案例 
4.3.2 局部变量与全局变量 
4.3.3 变量的存储类型 
4.4 实验内容及指导 
习题4 
第5章 数组 
5.1 日期转换 
5.1.1 案例 
5.1.2 一维数组的定义 
5.1.3 一维数组的初始化 
5.2 找最大数 
5.2.1 案例 
5.2.2 数组元素的引用 
5.2.3 一维数组名作为函数的参数 
5.3 一维数组名作为函数的参数案例 
5.3.1 冒泡排序 
5.3.2 字符串比较 
5.4 判断回文 
5.4.1 案例 
5.4.2 字符串输入函数gets() 
5.4.3 字符串输出函数puts() 
5.5 字符后移 
5.5.1 案例 
5.5.2 常用字符串处理函数 
5.6 矩阵运算 
5.6.1 案例 
5.6.2 二维数组 
5.6.3 二维数组名作为函数的参数 
5.7 实验内容及指导 
习题5 
…… 
第6章 指针 
第7章 结构体 
第8章 文件 
第9章 综合案例 
附录