C语言作为一种简洁、高效的语言,目前是绝大多数高校本科生学习程序设计的入门语言。
《C语言程序设计(第2版)/高等学校计算机基础教育教材精选》所有作者均来自教学第一线,具有多年教学经验,本书概念清晰,注重实用,运用大量的例题和精选的习题,有助于学生快速掌握C语言程序设计的基本方法。
《C语言程序设计(第2版)/高等学校计算机基础教育教材精选》共10章,内容包括程序设计概述、基本数据类型、顺序结构程序设计、选择结构程序设计、循环结构程序设计、函数、数组、指针、结构体、联合体和枚举、文件。
本书可以作为高等学校非计算机专业学生的教材,也可以作为本科新生或C语言爱好者的自学教材。本书还配有辅助教材《C语言习题及实验指导》(第2版)。
《C语言程序设计(第2版)/高等学校计算机基础教育教材精选》主要是面向大学非计算机专业本科新生而写,作者全部来自于教学一线,具有多年的C语言程序设计教学实际经历。
教材内容不拘泥于语法,采用丰富的案例描述C语言的应用,辅以精挑细选的常用考试题型的习题帮助读者检验学习效果。因而特别适合作为大学新生学习C语言程序设计的教材或参考书,也可作为高职计算机专业的学生学习C语言程序设计的教材或参考书。
第2版前言
C语言程序设计(第2版)本教材第1版自出版以来,已经过3次印刷,尽管在后两次印刷时对个别内容进行了修订,但使用中仍发现有些内容达不到一些专业的教学要求。第2版主要进行了如下的修订:
(1) 增加了3.5节“位运算符”。
(2) 增加了9.6节“联合体”和9.7节“枚举类型”。
教学大纲中没有以上内容的专业在教学中可跳过以上内容。
(3) 对各章后的习题进行了补充。
目前与本教材配套的网络教学平台——北京信息科技大学计算中心网络教学平台(http://cms.bistu.edu.cn)已经开通,选择本教材进行C语言程序设计教学的各学校主讲教师可以享受在本平台免费开课及资源共享,有意开课的老师请给作者发送邮件申请具体开课事宜。作者邮箱:wenjie_li@126.com或者wenjie_li@bistu.edu.cn。
由于作者水平和精力所限,本次修订后仍可能有错误。如果发现错误,请给作者的邮箱发信,在此对大家的支持表示衷心感谢!
作者
2014年3月30日
第1版前言
C语言程序设计(第2版)大家对计算机都不陌生,但是会用计算机的人是否都懂得计算机是如何完成我们交给它的任务的,相信会有很多人不明白。这也是目前各高校无论对于计算机专业还是非计算机专业,甚至文科专业,都要开设程序设计这类课程的原因之一。C语言作为一种简洁高效并且支持结构化编程的程序设计语言,在讲究效率的时代,对于帮助学习者掌握程序设计的基本思想和方法,进而更好地理解计算机的工作,会有极大的帮助。
本书虽然像传统的教材那样,按照知识学习的规律,顺序介绍C语言的语法和用C语言解决实际问题的方法,但并不是一本C语言的语法书。本书完全是从应用的角度出发,对C语言的语法进行展开的,所以不要把本书作为语法大全。
本书的读者对象是大学本科新生,尤其是非计算机专业的同学,他们希望通过学习C语言程序设计来理解计算机的工作,尽管他们可能今后并不会成为程序员,但他们希望知道计算机能做什么以及如何做,以便当他们在今后的工作中,需要向程序员提出他们的软件需求时,能够很好地与软件开发人员进行沟通,这是非计算机专业本科生必备的能力。
程序设计是一项工作,程序就是这项工作的产品。如果我们要制造产品,必须有好的原材料,这些原材料对于程序来说就是程序设计语言的语法知识,以及各种问题的解决方法和步骤。所以本书在介绍C语言语法的同时,介绍了各种常见问题的解决方法和思路(算法),读者通过这些内容的积累,等到创造自己的作品(程序)时就会得心应手。所以读者一定要尽可能多地积累算法,真正做到熟能生巧。
本书第1章和第8章由李文杰编写,第2章和第9章由徐英慧编写,第3章由贾艳萍编写,第4章由张良编写,第5章由崇美英编写,第6章由黄宏博编写,第7章由李颖编写,第10章由方炜炜编写。全书由李文杰负责统稿,北京信息科技大学计算中心主任周长胜副教授主审。在书稿规划和撰写的各个阶段,刘梅彦和刘亚辉老师多次提出了建设性的意见,清华大学出版社的白立军编辑自始至终都毫无怨言地为作者提供各种方便,使本书得以及时出版。
本书的所有例程都是在Visual C++ 6.0集成开发环境调试的,所给出的程序运行情况也是在Windows XP+Visual C++ 6.0环境下得到的。本书配套的教学资源包括多媒体教学课件和所有范例程序的源代码,可以从清华大学出版社网站获取。因作者水平所限,书中难免会出现某些错误。欢迎读者就书中内容与作者进行交流。
作者
2010年5月于北京信息科技大学计算中心
第1章 程序设计概述
1.1 程序和程序设计
1.1.1 程序的概念
1.1.2 程序设计
1.1.3 程序设计语言
1.2 C语言概述
1.2.1 C语言简介
1.2.2 C语言程序示例
1.2.3 为何要学C语言
1.3 算法及其描述
1.3.1 算法的概念
1.3.2 算法的特性
1.3.3 算法的描述
1.3.4 结构化程序设计
1.4 C语言程序开发过程
1.4.1 使用计算机解题的过程
1.4.2 常用的C语言开发环境
习题1
第2章 基本数据类型
2.1 数据类型概述
2.2 标识符、常量和变量
2.2.1 标识符
2.2.2 常量
2.2.3 变量
2.3 整型数据
2.3.1 整型常量的表示
2.3.2 整型变量
2.3.3 整型常量的类型
2.4 实型数据
2.4.1 实型常量的表示
2.4.2 实型数据在内存中的存放形式
2.4.3 实型变量
2.5 字符数据
2.5.1 字符在内存中的存放形式
2.5.2 字符常量
2.5.3 字符变量
2.5.4 字符串常量
2.6 数据的输入与输出
2.6.1 字符数据的输入和输出
2.6.2 格式化输入输出
习题2
第3章 顺序结构程序设计
3.1 算术运算和算术表达式
3.1.1 整数算术运算
3.1.2 实数算术运算
3.1.3 混合算术运算
3.1.4 算术表达式
3.1.5 算术表达式的计算规则
3.2 赋值运算和赋值表达式
3.2.1 赋值运算符
3.2.2 赋值表达式
3.3 自增自减运算
3.4 优先级和类型转换
3.4.1 优先级
3.4.2 类型转换
3.5 位运算符
3.5.1 “按位与”运算符&
3.5.2 “按位或”运算符|
3.5.3 “按位异或”运算符^
3.5.4 “按位取反”运算符
3.5.5 “按位左移”运算符<<
3.5.6 “按位右移”运算符>>
3.5.7 位运算赋值运算符
……
第4章 选择结构程序设计
第5章 循环结构程序设计
第6章 模块化程序设计——函数
第7章 数组
第8章 指针
第9章 结构体、联合体和枚举
第10章 文件