《C语言程序设计教程》由教学篇、实验篇以及附录三部分组成。教学篇分为10章,第1章对高级语言以及C语言的形成与发展作了具体的叙述;第2章、第3章介绍了C程序基础;第4章、第5章介绍了C程序的控制结构;第6章介绍了组合数据结构“数组”;第7章介绍了C语言的模块化程序设计“函数”;第8章、第9章详细、全面地介绍了C语言的精华——“指针”与“动态数据结构”;第10章介绍了C语言的文件系统。实验篇分为2章,第1章为实验基础,对C源程序的开发环境Visual C++6.0和Turbo C作了全面详细的介绍,作为学习C程序设计的基础;第2章为实验操作,共安排了10个实验,实验内容与节奏与本课程的理论教学保持同步。附录部分提供了附录A至附录H共8个附录,它们依次是:C语言主要关键字及其用途、运算符优先级和结合性、常用字符与ASCII编码对照表、常用库函数、常用关键字和术语的中英文对照表、习题参考解答、实验参考解答以及初学者编程中常犯的错误。特别是附录H介绍了初学者编程中常犯的20多种错误,并解析了出错原因和纠错方法,为提高初学者的程序设计能力提供了极大的帮助。
《C语言程序设计教程》既是高校网络教育学院的“C程序设计”课程的必修教材,又是普通高校本科生的程序设计课程参考用书,亦可用作计算机爱好者的自学读本。
C语言以其小巧、灵活、高效等诸多优点成为20世纪90年代以后的主要编程语言,在国内外得到了广泛的应用。我国的大专院校在多年计算机教学的改革、实践与探索中都将“C程序设计”课程作为大学本科生的“第一计算机语言”,作为他们获取程序设计能力的首选课程。
随着计算机技术的飞速发展以及计算机应用的不断深入,如今程序设计的工具与方法也在不断地发展与更新,这就对大学生程序设计能力的培养提出了更高的标准,要求当代大学生不仅能够编写开发面向过程的结构化程序,而且能够熟练地利用面向对象的程序设计技术,在可视化的编程环境中开发C和windows应用程序,以适应当今信息时代用人单位的需求。
基于上述背景我们编写了本书。本书对C语言作了全面、详细、系统的介绍,并选择Visual C++6.0可视化工具作为本书例题的编译平台,使传统的面向过程的编程语言与现代的面向对象的可视化编译环境有机结合。
本书的编写力求从初学者的认知规律出发,结合网络远程教学培养应用型人才的目标要求、紧扣当今信息社会的发展理念不偏废的原则,对教材内容作了合理的构思与编排:首先在章节的顺序安排上遵循由浅入深、循序渐进的原则,其次对于某些在实际应用中用得极少,甚至不用的内容在不影响知识体系结构完整性的前提下作了一定的删减。本书以美国国家标准化协会颁布的C语言的最新版本87 ANSI C为基础,全书的教学篇共安排了10章内容,涵盖了C程序设计必须具备的语言、算法、数据结构、程序设计方法等方面的全部知识点。实验篇部分共安排10次试验,实验篇的编写风格凸现了本书与众不同的特色:首先,每一次实验在给出具体的操作内容之前,先给出要求学习者阅读的“导读提要”,让学习者了解与本次实验有关的基本概念和知识要点,明白自己要做的准备工作,这既对学习者顺利完成本次实验操作大有帮助,而且也起到了对本章节所学的理论知识进行全面、系统地复习与回顾的作用。其次,本书突破了传统的实验题型的框架,并非就事论事地给出几道枯燥的、毫无启发性的题目,让学习者自己去编写程序;而是采用了丰富多变的形式,给出现成的程序让学习者去模仿,给出一个简单的程序让学习者去扩充功能,给出一个有错的程序让学习者纠错改错,给出一个功能不全的程序让学习者填空补缺以及给出题目和程序说明让学习者独立编程。再其次,考虑到学生较少有机会与教师面对面交流与沟通这一网络教学的特点,为了减少学生学习上的困难和无助感,本书在附录部分增加了习题(包括实验习题)参考答案和初学者编程中常犯的错误,为学生的自学提供尽可能的帮助。
第一篇 教学篇
1 C语言概述
1.1 C语言的形成与发展
1.2 C语言简介
1.3 C语言的基本语法成分
1.4 编译预处理
习题1
2 数据类型及基本运算
2.1 C数据类型
2.2 基本数据类型
2.3 数据的表示
2.4 常用的运算符和表达式
2.5 常用的库函数
习题2
3 顺序结构程序设计
3.1 用于顺序结构的基本语句
3.2 输入与输出
3.3 顺序结构程序设计举例
习题3
4 选择结构程序设计
4.1 if语句
4.2 条件表达式
4.3 switch语句
4.4 应用举例
习题4
5 循环结构程序设计
5.1 while语句
5.2 dowhile语句
5.3 for语句
5.4 循环结构的嵌套
5.5 循环结构的中断与转移
5.6 循环结构应用举例
习题5
6 数组
6.1 数组的概念
6.2 数组的定义与引用
6.3 数组的存储结构和初始化
6.4 数组应用举例
6.5 字符串处理
习题6
7 函数
7.1 函数的概念
7.2 函数的定义
7.3 函数的调用
7.4 函数的嵌套与递归
7.5 变量的作用域
7.6 变量的存储类别
7.7 有参数宏与函数的区别
习题7
8 指针
8.1 指针的概念
8.2 指针与数组
8.3 指针与函数
8.4 指针与字符串
8.5 多级指针
8.6 指针类型小结
习题8
9 结构与其他自定义类型
9.1 结构类型的认识
9.2 结构类型的定义
9.3 结构类型的应用
9.4 动态数据结构“链表
9.5 共用体类型
9.6 枚举类型
9.7 类型自定义
习题9
10 文件
10.1 文件类型和文件指针
10.2 文件的打开与关闭
10.3 文件的读写
10.4 文件的定位
10.5 文件的检测与出错处理
习题10
第二篇 实验篇
1 实验基础
1.1 VisualC++6.O实验环境
1.2 TurboC2.0实验环境
2 实验操作
实验一 C程序设计入门
实验二 设计并运行简单的C程序
实验三 输入与输出
实验四 选择结构程序设计
实验五 循环结构程序设计
实验六 数组
实验七 函数
实验八 指针
实验九 结构
实验十 文件
附录
附录A C语言主要关键字及其用途
附录B 运算符优先级和结合性
附录C 常用字符与ASCII编码对照表
附录D 常用库函数
附录E 常用关键字和术语的中英文对照表
附录F 习题参考答案
附录G 实验参考解答
附录H 初学者编程中常犯的错误
C语言的形成起源于系统软件的发展要求。众所周知,早期的系统软件(例如操作系统),都是使用汇编语言开发的。这主要是由于汇编语言能够体现计算机硬件指令的特性,由汇编语言程序形成的代码有较高的质量。但是,汇编语言依赖于计算机硬件和指令系统,不仅编程的工作强度大,而且程序的可读性差,无通用性。因而,人们期盼能够找到一种具有足够表达能力、并接近于自然语言表达方式的高级语言来进行系统软件的开发。
1960年1月,图灵奖获得者艾伦·佩利(Alan J.Perlis)首先发明了ALGOL60语言,它是世界上最早诞生的用于程序设计的高级语言(简称A语言)。ALGOL60的主要特点是描述算法方便,但它离开计算机硬件系统较远,不宜编写系统程序。
1967年英国剑桥大学的马丁·理查德教授以ALGOL60语言为基础、对其进行了简化,并增加了处理硬件的能力,推出了“BCPL(基本复合程序设计语言)”语言。1970年美国贝尔实验室的肯·汤普逊对BCPL语言进行了进一步的简化,更突出了硬件的处理能力,并取“BCPL"的第一个字母“B”作为新语言的名称,B语言由此诞生,并同时用于UNIx操作系统程序的编写。