内容简介
《C语言程序设计教程(第3版)/普通高等教育“十一五”国家级规划教材·高等院校精品课程系列教材·省级》介绍利用C语言进行程序设计的基本知识。《C语言程序设计教程(第3版)/普通高等教育“十一五”国家级规划教材·高等院校精品课程系列教材·省级》共12章,详细介绍了C语言的基本概念、算法与程序设计基础、数据的输入和输出、选择结构、循环结构、数组、函数、指针、结构体与共用体、文件、面向对象程序设计与C++基础等内容。每章配有大量的习题,便于读者巩固所学知识,掌握程序设计的基本方法和编程技巧。
《C语言程序设计教程(第3版)/普通高等教育“十一五”国家级规划教材·高等院校精品课程系列教材·省级》力求概念叙述准确、严谨,语言通俗易懂,适合作为高等院校理工科非计算机专业的“C语言程序设计”课程教材,也可供工程技术人员参考。
目录
第3版前言
第2版前言
第1版前言
教学建议
第1章C语言概述
1.1C语言发展简史
1.2C语言的特点
1.3简单C语言程序举例
1.4C语言程序的组成与结构
1.5C语言程序的开发步骤
小结
习题
第2章算法与程序设计基础
2.1算法概述
2.1.1算法的概念
2.1.2算法的特征
2.2算法的常用表示方法
2.2.1自然语言
2.2.2流程图
2.2.3N-S流程图
2.3程序设计典型算法
2.4结构化程序设计方法
小结
习题
第3章数据类型、运算符与表达式
3.1C语言的基本符号
3.1.1标识符
3.1.2常量
3.1.3变量
3.1.4关键字
3.2C语言的数据类型
3.2.1整型数据
3.2.2实型数据
3.2.3字符型数据
3.3运算符和表达式
3.3.1算术运算符和算术表达式
3.3.2赋值运算符和赋值表达式
3.3.3逗号运算符和逗号表达式
3.4数据类型转换
3.4.1不同数据类型的数据间的混合运算
3.4.2强制类型转换
3.5自增运算和自减运算
3.6位运算
小结
习题
第4章数据的输入和输出
4.1数据的输出
4.1.1格式输出函数printf
4.1.2字符输出函数putchar
4.2数据的输入
4.2.1格式输入函数scanf
4.2.2字符输入函数getchar
4.3应用举例
小结
习题
第5章选择结构
5.1关系运算符和关系表达式
5.1.1关系运算符
5.1.2关系表达式
5.2逻辑运算符和逻辑表达式
5.2.1逻辑运算符
5.2.2逻辑表达式
5.3选择语句
5.3.1if语句
5.3.2if语句的嵌套
5.3.3switch语句
5.4条件运算符和条件表达式
5.5应用举例
小结
习题
第6章循环结构
6.1goto语句与标号
6.2while循环语句
6.3do-while循环语句
6.4for循环语句
6.5三种循环语句的比较
6.6循环嵌套
6.7break语句、continue语句和空语句
6.7.1break语句
6.7.2continue语句
6.7.3空语句
6.8应用举例
小结
习题
第7章数组
7.1一维数组
7.1.1一维数组的定义和引用
7.1.2一维数组的初始化
7.1.3一维数组程序举例
7.2二维数组
7.2.1二维数组的定义和引用
7.2.2二维数组的初始化
7.2.3二维数组程序举例
7.3字符数组
7.3.1字符数组的定义
7.3.2字符数组的初始化
7.3.3字符数组的引用
7.3.4字符数组与字符串
7.3.5字符数组的输入和输出
7.3.6字符串处理函数
7.3.7字符数组应用举例
小结
习题
第8章函数
8.1函数的基本概念
8.1.1函数的概念
8.1.2函数的定义
8.1.3函数的调用
8.1.4函数参数的传递方式
8.1.5函数的返回值
8.1.6函数的原型声明
8.2数组作为函数参数
8.2.1一维数组作为函数参数
8.2.2二维数组作为函数参数
8.2.3数组作为函数参数的函数调用方式
8.3函数的嵌套调用和递归调用
8.3.1函数的嵌套调用
8.3.2函数的递归调用
8.4变量的作用域和存储方法
8.4.1局部变量和全局变量
8.4.2变量的存储方法
8.5内部函数和外部函数
8.6编译预处理
8.6.1宏定义
8.6.2文件包含
8.6.3条件编译
8.7函数应用举例
小结
习题
第9章指针
9.1指针的基本概念及指针变量的定义
9.1.1指针的基本概念
9.1.2指针变量的定义方法
9.2指针运算
9.2.1赋值运算
9.2.2取地址运算
9.2.3取内容运算
9.2.4指针表达式与整数相加、减运算
9.2.5自增、自减运算
9.2.6同类指针相减运算
9.2.7关系运算
9.2.8强制类型转换运算
9.2.9空指针
9.3指针变量与一维数组
9.3.1指针变量与一维数组之间的联系和区别
9.3.2字符串指针与字符串
9.4指针与函数
9.4.1指针作为函数参数
9.4.2返回指针的函数
9.4.3函数的指针和指向函数的指针变量
9.5指针与二维数组
9.5.1二维数组的结构
9.5.2二维数组元素及其地址
9.5.3指针数组
9.5.4指针与字符串数组
9.5.5指向数组的指针变量
9.6二级指针
9.7内存空间的动态分配
9.7.1指向void的指针
9.7.2常用内存管理函数
9.8main函数的参数
9.8.1命令行参数
9.8.2指针数组作为main函数的形参
9.9应用举例
小结
习题
第10章结构体与共用体
10.1结构体类型与结构体变量
10.1.1结构体类型的定义
10.1.2结构体变量的定义
10.1.3结构体变量的引用
10.1.4结构体变量的初始化
10.2结构体数组
10.2.1结构体数组的定义
10.2.2结构体数组的引用
10.2.3结构体数组的初始化
10.2.4应用举例
10.3结构体指针
10.3.1结构体指针变量的定义
10.3.2结构体数组指针
10.4结构体类型数据在函数间的传递
10.4.1结构体变量作为函数参数
10.4.2结构体指针变量作为函数参数
10.4.3结构体数组作为函数参数
10.4.4应用举例
10.5共用体
10.5.1共用体类型的定义
10.5.2共用体变量的定义
10.5.3共用体变量的引用和初始化
10.6枚举类型
10.6.1枚举类型的说明
10.6.2枚举型变量的定义
10.7用typedef定义类型
10.8链表及其简单操作
10.8.1链表的概念
10.8.2链表的基本操作
小结
习题
第11章文件
11.1文件概述
11.1.1文件的概念
11.1.2文件的分类
11.1.3文件缓冲区
11.1.4文件类型指针
11.2文件的打开与关闭
11.2.1打开文件
11.2.2关闭文件
11.3文件的顺序读写
11.3.1格式化读写函数fscanf和fprintf
11.3.2字符方式读写函数fgetc和fputc
11.3.3数据块读写函数fread和fwrite
11.3.4字符串读写函数fgets和fputs
11.4文件的定位与随机读写
11.4.1文件指针重定位函数rewind
11.4.2随机读写函数fseek
11.4.3其他相关函数
小结
习题
第12章面向对象程序设计与C++基础
12.1面向对象程序设计的基本概念
12.2面向对象程序设计语言C++简介
12.2.1C++程序结构
12.2.2C++对C的补充
12.2.3C++中的类
12.2.4C++中的构造函数和析构函数
12.2.5C++中的继承
12.2.6C++中的多态性、函数重载和虚函数
小结
习题
习题参考答案
附录AC语言的关键字
附录B双目算术运算中两边运算量类型转换规律
附录C运算符的优先级和结合性
附录D常用字符与ASCII码对照表
附录E常用库函数
参考文献
精彩书摘
第1章C语言概述
1.1C语言发展简史
在计算机科学应用领域,人与计算机之间交流最通用的手段是程序设计语言。当人们想利用计算机解决某个问题时,必须用程序设计语言安排好处理步骤,并存入计算机内供计算机执行,这些用程序设计语言安排好的处理步骤称为计算机程序。程序是计算机操作指令的集合。用程序设计语言编制计算机程序的过程叫做程序设计。
目前有很多程序设计语言,而且新的语言不断涌现。常见的有Fortran、BASIC、COBOL、Pascal、C、C++、Java、Delphi等。各类语言都有其各自的特点和适用的领域。
C语言是一种通用的程序设计语言,由于它很适合用来编写编译器和操作系统,并进行嵌入式系统开发,因此被称为“系统编程语言”,但它同样适用于编写不同领域中的应用程序。
1.C语言的产生
C语言是一种被广泛应用的计算机高级程序设计语言,是在B语言的基础上发展起来的,它经历了不同的发展阶段。
早期的系统软件设计均采用汇编语言,例如,大家熟知的UNIX操作系统。尽管汇编语言在可移植性、可维护性和描述问题的效率等方面远远不及高级程序设计语言,但是一般的高级语言有时难以实现汇编语言的某些功能。
那么,能否设计出一种集汇编语言与高级语言的优点于一身的语言呢?这种思路促成了UNIX系统的开发者(美国贝尔实验室的KenThompson)zlzl970年设计出了既简单又便于硬件操作的B语言,并用B语言写了第一个UNIX操作系统,这个操作系统先在PDP一7上实现,1971年又在PDP—11/20上实现。
B语言的前身是BCPL(BasicCombinedProgrammingLanguage),它是英国剑桥大学的MatinRichards在1967年基于CPL语言设计的,而CPL语言又是在1963年基于ALGOL60产生的。
1972~1973年,贝尔实验室的D.M.Ritchie在B语言的基础上设计出C语言,该语言弥补了B语言过于简单、功能有限的不足。
1973年.KenThompson~D.M.Ritchie合作将90%以上的UNIX代码用C改写。随着改写UNIX操作系统的成功,C语言也逐渐被人们接受。
1987年以后,C语言已先后被移植到大、中、小、微型机上,并独立于UNIX~PDP,从而得到了广泛应用。
2.C语言的发展和应用
1978年,B.M.Kernighan和D.M.Ritchie合写了一本经典著作——《C程序设计语言》(TheCProgrammingLanguage,中文版、影印版均已由机械工业出版社引进出版),它奠定了c语言的基础,被称为标准C。
1983年,美国国家标准学会(ANSI)根据C语言问世以来的各种版本对C的发展和扩充,制订了新的标准,称为A1987年又公布了标准,称为87ANSIC。目前流行的多种版本的C语言编译系统都是以此为基础的。
……前言/序言
《C语言程序设计教程》教材于2007年2月出版发行第1版,2011年出版发行第2版,是高等学校C语言程序设计课程的理想教材。
为了适应计算机科学技术的发展,更好地满足教学的实际需要,编者征求选用《C语言程序设计教程(第3版)/普通高等教育“十一五”国家级规划教材·高等院校精品课程系列教材·省级》作为教材的各院校的意见,在第2版的基础上对《C语言程序设计教程(第3版)/普通高等教育“十一五”国家级规划教材·高等院校精品课程系列教材·省级》进行了修订和调整:
〕)兼顾VC++6.O的实验环境,对教材中文字叙述进行完善和修改。
2)增加了程序中的注释,修改了程序中的格式,注重程序书写的规范,使程序更容易理解。
3)增加了部分章节中的课后练习题目以及趣味程序设计实例,以激发学生学习的兴趣。
4)为满足学时的安排和需要,删除了第13章“数据结构基础”内容。
欢迎广大读者对本教材的编写内容和风格提出建议,再次衷心感谢出皈社的编辑,以及使用本教材的读者。
编者
2013年11月