出版时间:2009-11 出版社:华中科技大学出版社 作者:鞠剑平 编 页数:406
前言
计算机诞生至今不过几十年的时间,但人们的学习、工作、生活、娱乐的方方面面都已经离不开计算机和计算机技术了。在计算机技术的各个组成部分中,软件设计占有重要的地位。 程序设计是学习软件设计的入门课程,是进一步学习“面向对象程序设计”、“数据结构”、“算法设计与分析”等课程的基础。程序设计是以编程语言为平台,介绍程序设计的思想和方法。通过“c语言程序设计”课程的学习,学生不仅要掌握高级程序设计语言的知识,更重要的是,要在实践中逐步掌握程序设计的基本思想和方法。 c语言是一种历史悠久的程序设计语言。今天的c++、Java、PHP,以及.NET中的c#和visual Basic.NET等,都是以c语言为基础的。c语言具有表达能力强、功能丰富、目标程序质量高、可移植性好、使用灵活等特点。c语言既具有高级语言的优点,又具有低级语言的某些特性,特别适合于编写系统软件和嵌入式软件。c语言的上述特点使得我国绝大部分高等院校都把c语言作为计算机和非计算机专业的第一门程序设计语言课程。全国计算机等级考试、全国计算机应用技术证书考试也都将c语言列入考试范围。 目前国内外的c语言教材很多,但很多教材重理论轻实践,大讲c语言的相关语法和一些编程技巧,而对如何编写高质量的应用程序涉及甚少。本书编写的初衷就是要给c语言的学习者提供更多的动手机会,加强学习者对程序设计和c语言概念、原理和规则的理解,培养学习者形成良好的编程风格和工程纪律,为学习者进一步学习其他程序设计语言打下基础。 本书共分11章。其中第1章、第9章、第10章由鞠剑平编写,第2章由吴思华编写,第3章由黎曦编写,第4章由吴慰编写,第5章由徐鹏编写,第6章由方洁编写,第7章、第8章由韩桂华编写,第11章由丁崧编写,陈海洲、陈次球负责部分章节的编写。全书由鞠剑平负责统稿工作。 湖北省高等教育学会高校计算机教学专业委员会主任孙俊逸教授审阅了全书,并提出了宝贵的修改意见。在本书编写过程中,湖北工业大学商贸学院电子信息工程系主任张胜利教授对编者给予了极大的支持和鼓励,程贵卿副教授、陈小常副教授和金国芳副教授给予了无私的帮助,武汉大学东湖分校的领导和老师也给予了很大的支持并提出了许多有益的意见,使本书增色不少。在此,对他们一并表示衷心感谢! 由于时间紧迫,编者水平有限,书中错误及疏漏之处在所难免,敬请读者批评指正。
内容概要
本书共分11章,前10章介绍了C语言的概念、数据类型、控制结构、数组、函数、编译预处理、指针、结构体和共用体、位运算和文件等相关知识。第11章是综合程序设计:设计了一个学生成绩管理系统(给出了完整的源代码,并做了必要的注释),并介绍了软件开发中的基本思路和方法。 本书适用于计算机和非计算机专业的程序设计初学者,同时也可作为编程人员和C语言自学者的参考用书。
书籍目录
第1章 C语言程序设计基础 1.1 程序与程序设计语言 1.2 算法与结构化程序设计 1.3 C语言概述 1.4 C语言程序的结构 1.5 C语言程序的实现 1.6 程序的编辑、编译、调试和运行实训 习题1.1 习题1.2第2章 数据类型、运算符和表达式 2.1 C语言的数据类型 2.2 常量与变量 2.3 变量赋初值 2.4 各类数值型数据间的混合运算 2.5 C语言的运算符和表达式 2.6 数据类型与运算符实训 习题2.1 习题2.2第3章 C语言控制结构 3.1 顺序程序设计 3.2 分支结构程序 3.3 循环控制 3.4 控制结构实训 习题3.1 习题3.2第4章 数组 4.1 概述 4.2 一维数组 4.3 二维数组 4.4 字符数组与字符串 4.5 数组综合实例 4.6 数组与数据的排序实训 习题4.1 习题42第5章 函数 5.1 函数概述 5.2 函数的定义 5.3 函数的调用 5.4 函数的嵌套与递归调用 5.5 变量的作用域和存储域 5.6 函数间的数据传递 5.7 main()函数的参数和返回值 5.8 文件包含与条件编译 5.9 函数应用综合实例 5.10 函数应用实训 习题5.1 习题5.2第6章 指针 6.1 地址和指针的概念 6.2 变量的指针和指向变量的指针变量 6.3 数组的指针和指向数组的指针变量 6.4 字符串与指针 6.5 指向函数的指针 6.6 返回指针值的函数 6.7 指针数组和指向指针的指针 6.8 指针与数组实训 6.9 指针与字符串实训 习题6.1 习题6.2第7章 预处理命令 7.1 宏定义 7.2 文件包含 7.3 条件编译 7.4 编译预处理实训 习题7.1 习题7.2第8章 结构体与共用体第9章 位运算第10章 文件第11章 综合程序设计习题参考答案参考文献
章节摘录
1.2.4 结构化程序设计 前面介绍的三种基本结构组成的算法,可以解决任何复杂的问题。由基本结构所构成的算法属于“结构化”的算法,它不存在无规律的转向,只在其基本结构内才允许存在分支和向前或向后的跳转。一个结构化程序就是用高级语言表示的结构化算法。用三种基本结构组成的程序必然是结构化的程序,这种程序便于编写、阅读、修改和维护。 结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构。结构化程序设计方法的基本思路是:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。 可以采取以下方法来得到结构化的程序:自顶向下;逐步细化;模块化设计;结构化编码。 在接受一个任务后,通常有两种不同的方法来解决问题:一种是自顶向下,逐步细化;另一种是自下而上,逐步积累。结构化程序设计采用的是自顶向下的方法,按照这种方法,开始的时候不要一下子就力图触及问题解法的细节,而应当从问题的全局出发,给出高度概括、抽象的算法,通常是把这些问题的求解分成可以独立求解的若干子问题;接着对每一个子问题再进行分解;……;最后对不可再分的子问题分别设计算法,而且设计的过程也是从概括到逐步细化。一般来说,上层解决的是“做什么”的过程,逐步细化解决的是“怎么做”的过程。 在用伪代码描述算法时,随着逐步细化,最终可以用程序设计语言代替算法中的伪代码。等到全部伪代码都用某种程序设计语言描述了,程序设计也就基本完成了。 用这种方法逐步分解,直到编写者认为可以直接将各小段表达为文字语句为止。这种方法就叫做“自顶向下,逐步细化”。 自顶向下,逐步细化方法的优点非常明显:考虑周全,结构清晰,层次分明,编写者容易写,阅读者容易读。如果发现某一部分中有一段内容不妥,需要修改,只需找出该部分后修改有关段落即可,而与其他部分无关。 模块化设计的思想实际上是一种“分而治之”的思想,即把一个大任务分为若干个子任务,每一个子任务就相对简单了。这种子任务称为模块,模块可以是一条语句(statement)、一段程序或一个函数(子程序)等。将复杂程序划分为若干个相互独立的模块,如果这些模块的规模还嫌大,还可以再划分为更小的模块。这个过程采用自顶向下的方法来实现。子模块一般不超过50行。划分子模块时应注意模块的独立性,即:使一个模块完成一项功能,耦合性愈少愈好。
图书封面
评论、评分、阅读与下载