C程序设计(第二版)
分类: 图书,计算机/网络,程序设计,C C++ C# VC VC++,
作者: 谭浩强
出 版 社: 清华大学出版社
出版时间: 1999-12-1字数: 605版次: 1页数: 388印刷时间: 20000201开本:印次:纸张:I S B N : 9787302038061包装: 平装内容简介
C语言是国内外广泛使用的计算机语言,是计算机应用人员应掌握的一种程序设计工具。本书第一版于1991年出版,全书针对初学者的特点,精心策划、准确定位、概念清晰、例题丰富、深入浅出,受到专家和读者的一致好评。普遍认为它是学习C语言的好教材,被全国大多数高校选用。几年来发行量达270万册,创同类书发行量的全国纪录。被电子工业部评为部级优秀教材一等奖。
根据发展的需要,作者对本书进行了修订,加强了算法,按C的新标准改写全书各章,增加了C++的初步知识。本书内容新颖、体系合理、逻辑性强、文字流畅、通俗易懂,是学习C语言的理想教材。凡具有计算机初步知识的读者都能读懂本书。本书可作为高等学校各专业的正式教材,也是一本自学的好教材。
目录
1C语言概述
1.1C语言出现的历史背景
1.2C语言的特点
1.3简单的C程序介绍
1.4C程序的上机步骤
习题
2程序的灵魂——算法
2.1算法的概念
2.2简单算法举例
2.3算法的特性
2.4怎样表示一个算法
2.4.1用自然语言表示算法
2.4.2用流程图表示算法
2.4.3三种基本结构和改进的流程图
2.4.4用N-S流程图表示算法
2.4.5用伪代码表示算法
2.4.6用计算机语言表示算法
2.5结构化程序设计方法
习题
3数据类型、运算符与表达式
3.1C的数据类型
3.2常量与变量
3.2.1常量和符号常量
3.2.2变量
3.3整型数据
3.3.1整型常量的表示方法
3.3.2整型变量
3.3.3整型常量的类型
3.4实型数据
3.4.1实型常量的表示方法
3.4.2实型变量
3.4.3实型常量的类型
3.5字符型数据
3.5.1字符常量
3.5.2字符变量
3.5.3字符数据在内存中的存储形式及其使用方法
3.5.4字符串常量
3.6变量赋初值
3.7各类数值型数据间的混合运算
3.8算术运算符和算术表达式
3.8.1C运算符简介
3.8.2算术运算符和算术表达式
3.9赋值运算符和赋值表达式
3.10逗号运算符和逗号表达式
习题
4最简单的C程序设计——顺序程序设计
4.1C语句概述
4.2赋值语句
4.3数据输入输出的概念及在C语言中的实现
4.4字符数据的输入输出
4.4.1putchar函数(字符输出函数)
4.4.2getchar函数(字符输入函数)
4.5格式输入与输出
4.5.1printf函数(格式输出函数)
4.5.2scanf函数(格式输入函数)
4.6顺序结构程序设计举例
习题
5选择结构程序设计
5.1关系运算符和关系表达式
5.1.1关系运算符及其优先次序
5.1.2关系表达式
5.2逻辑运算符和逻辑表达式
5.2.1逻辑运算符及其优先次序
5.2.2逻辑表达式
5.3if语句
5.3.1if语句的三种形式
5.3.2if语句的嵌套
5.3.3条件运算符
5.4switch语句
5.5程序举例
习题
6循环控制
6.1概述
6.2goto语句以及用goto语句构成循环
6.3while语句
6.4do-while语句
6.5for语句
6.6循环的嵌套
6.7几种循环的比较
6.8break语句和continue语句
6.8.1break语句
6.8.2continue语句
6.9程序举例
习题
7数组
7.1一维数组的定义和引用
7.1.1一维数组的定义
7.1.2一维数组元素的引用
7.1.3一线数组的初始化
7.1.4一维数组程序举例
7.2二维数组的定义和引用
7.2.1二维数组的定义
7.2.2二维数组的引用
7.2.3二维数组的初始化
7.2.4二维数组程序举例
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.2函数定义的一般形式
8.3函数参数和函数的值
8.3.1形式参数和实际参数
8.3.2函数的返回值
8.4函数的调用
8.4.1函数调用的一般形式
8.4.2函数调用的方式
8.4.3对被调用函数的声明和函数原型
8.5函数的嵌套调用
8.6函数的递归调用
8.7数组作为函数参数
8.8局部变量和全局变量
8.8.1局部变量
8.8.2全局变量
8.9变量的存储类别
8.9.1动态存储方式与静态存储方式
8.9.2auto变量
8.9.3用static声明局部变量
8.9.4register变量
8.9.5用extern声明外部变量
8.9.6用static声明外部变量
8.9.7关于变量的声明和定义
8.9.8存储类别小结
8.10内部函数和外部函数
8.10.1内部函数
8.10.2外部函数
8.11如何运行一个多文件的程序
习题
9预处理命令
9.1宏定义
9.1.1不带参数的宏定义
9.1.2带参数的宏定义
9.2“文件包含”处理
9.3条件编译
习题
10指针
10.1地址和指针的概念
10.2变量的指针和指向变量的指针变量
10.2.1定义一个指针变量
10.2.2指针变量的引用
10.2.3指针变量作为函数参数
10.3数组的指针和指向数组的指针变量
10.3.1指向数组元素的指针
10.3.2通过指针引用数组元素
10.3.3数组名作函数参数
10.3.4指向多维数组的指针和指针变量
10.4字符串的指针和指向字符串的指针变量
10.4.1字符串的表示形式
10.4.2字符串指针作函数参数
10.4.3对使用字符指针变量和字符数组的讨论
10.5函数的指针和指向函数的指针变量
10.5.1用函数指针变量调用函数
10.5.2用指向函数的指针作函数参数
10.6返回指针值的函数
10.7指针数组和指向指针的指针
10.7.1指针数组的概念
10.7.2指向指针的指针
10.7.3指针数组作main函数的形参
10.8有关指针的数据类型和指针运算的小结
10.8.1有关指针的数据类型的小结
10.8.2指针运算小结
10.8.3void指针类型
习题
11结构体与共用体
11.1概述
11.2定义结构体类型变量的方法
11.3结构体变量的引用
11.4结构体变量的初始化
11.5结构体数组
11.5.1定义结构体数组
11.5.2结构体数组的初始化
11.5.3结构体数组应用举例
11.6指向结构体类型数据的指针
11.6.1指向结构体变量的指针
11.6.2指向结构体数组的指针
11.6.3用结构体变量和指向结构体的指针作函数参数
11.7用指针处理链表
11.7.1链表概述
11.7.2简单链表
11.7.3处理动态链表所需的函数
11.7.4建立动态键表
11.7.5输出链表
11.7.6对链表的删除操作
11.7.7对链表的插入操作
11.7.8对链表的综合操作
11.8共用体
11.8.1共用体的概念
11.8.2共用体变量的引用方式
11.8.3共用体类型数据的特点
11.9枚举类型
11.10用typedef定义类型
习题
12位运算
12.1位运算符和位运算
12.1.1“按位与”运算符(&)
12.1.2按位或运算符(|)
12.1.3“异或”运算符(^)
12.1.4“取反”运算符(~)
12.1.5左移运算符(<<)
12.1.6右移运算符(>>)
12.1.7位运算赋值运算符
12.1.8不同长度的数据进行位运算
12.2位运算举例
12.3位段
习题
13文件
13.1C文件概述
13.2文件类型指针
13.3文件的打开与关闭
13.3.1文件的打开(fopen函数)
13.3.2文件的关闭(fclose函数)
13.4文件的读写
13.4.1fputc函数和fgetc函数(putc函数和getc函数)
13.4.2fread函数和fwrite函数
13.4.3fprintf函数和fscanf函数
13.4.4其他读写函数
13.5文件的定位
13.5.1rewind函数
13.5.2fseek函数和随机读写
13.5.3fiell函数
13.6出错的检测
13.6.1ferror函数
13.6.2clearerr函数
13.7文件输入输出小结
习题
14C++对C的扩充
14.1C++的特点
14.2最简单的C++程序
14.3C++的输入输出
14.3.1用cout进行输出
14.3.2用cin进行输入
14.4函数的重载
14.5带缺省参数的函数
14.6变量的引用类型
14.6.1引用的概念
14.6.2引用的简单使用
14.6.3引用作为函数参数
14.7内置函数
14.8作用域运算符
14.9动态分配/撤销内存的运算符new和delete
14.10小结
15C++的面向对象基础
15.1概述
15.2类和对象
15.3构造函数和折构函数
15.3.1构造函数
15.3.2析构函数
15.4继承与派生
15.4.1继承与派生的概念
15.4.2建立派生类的方法
15.4.3公用派生类
15.4.4私有派生类
15.4.5保护成员
15.4.6派生类的构造函数
15.4.7继承在软件开发中的重要意义
16常见错误和程序调试
16.1常见错误分析
16.2程序调试
附录Ⅰ常用字符与ASCII代码对照表
附录ⅡC语言中的关键字
附录Ⅲ运算符和结合性
附录ⅣC语言常用语法提要
附录ⅤC库函数
参考文献