文件大小:38.51 MB
文件类型:pdf
发布时间:2021-08-18 10:51:13
需资源分:2
下载次数:22
Tag:C语言大学教程[第八版]
::资源简介::
C语言大学教程[第八版] 完整书签 优化
C语言大学教程[第八版]
内容简介
前言
目录
第01章 计算机/因特网和万维网导论
1_1 引言
1_2 计算机硬件和软件
1_2_1 摩尔定律
1_2_2 计算机组成
1_3 数据的层次结构
1_4 机器语言/汇编语言和高级语言
1_5 C程序设计语言
1_6 C标准库
1_7 C++和其他基于C的程序设计语言
1_8 对象技术
1_8_1 对象_以汽车为例
1_8_2 方法与类
1_8_3 实例化
1_8_4 软件重用
1_8_5 消息与方法调用
1_8_6 属性与实例变量
1_8_7 封装与信息隐藏
1_8_8 继承
1_9 典型的C程序开发环境
1_9_1 第1步:创建一个C程序
1_9_2 第2步和第3步:预处理及编译一个C程序
1_9_3 第4步:链接
1_9_4 第5步:装载
1_9_5 第6步:执行
1_9_6 程序运行时可能会出现的问题
1_9_7 标准输入/标准输出和标准错误流
1_10 在Windows/Linux和Mac OS X上测试并运行一个C应用程序
1_10_1 在Windows命令提示符下运行一个C应用程序
1_10_2 使用Linux中的GNU C来运行一个C应用程序
1_10_3 使用Mac OS X终端来运行一个C应用程序
1_11 操作系统
1_11_1 Windows--一个专有的操作系统
1_11_2 Linux--一个开源的操作系统
1_11_3 苹果公司的Mac OS X;面向iPhone/iPad和iPod Touch的iOS操作系统
1_11_4 谷歌公司的Android操作系统
1_12 因特网和万维网
1_12_1 因特网:计算机网络的网络
1_12_2 万维网:让因特网对用户更友好
1_12_3 万维网服务
1_12_4 Ajax
1_12_5 物联网
1_13 一些重要的软件技术
1_14 跟上信息技术的发展
第02章 C语言程序设计入门
2_1 引言
2_2 一个简单的C程序:打印一行文字
2_3 另一个简单的C程序:两个整数求和
2_4 存储单元的基本概念
2_5 C语言中的算术运算
2_6 做出决策:相等和关系运算符
2_7 安全的C程序设计
第03章 结构化的C程序设计
3_1 引言
3_2 算法
3_3 伪代码
3_4 控制结构
3_5 if条件语句
3_6 if_else条件语句
3_7 while循环语句
3_8 算法设计案例1:计数控制的循环
3_9 自顶向下/逐步求精的算法设计案例2:标记控制的循环
3_10 自顶向下/逐步求精的算法设计案例3:嵌套控制结构
3_11 赋值运算符
3_12 增1和减1运算符
3_13 安全的C程序设计
第04章 C程序控制
4_1 引言
4_2 循环的基本原理
4_3 计数控制的循环
4_4 for循环语句
4_5 for语句:注意事项
4_6 使用for语句的例子
4_7 switch多重选择语句
4_8 do_while循环语句
4_9 break和continue语句
4_10 逻辑运算符
4_11 区分相等运算符(==)和赋值运算符(=)
4_12 结构化程序设计小结
4_13 安全的C程序设计
第05章 C函数
5_1 引言
5_2 C语言中的程序模块
5_3 数学库函数
5_4 函数
5_5 函数定义
5_5_1 square函数
5_5_2 maximum函数
5_6 函数原型:一个深入的剖析
5_7 函数调用堆栈及活动记录堆栈帧
5_8 头文件
5_9 按值或按引用传递参数
5_10 随机数的生成
5_11 案例分析:运气游戏;引入enum
5_12 存储类型
5_13 作用域的规定
5_14 递归
5_15 递归应用案例:斐波那契数列
5_16 递归与迭代
5_17 安全的C程序设计
第06章 C数组
6_1 引言
6_2 数组
6_3 数组定义
6_4 数组实例
6_4_1 定义一个数组并用循环结构来设置数组元素值
6_4_2 在定义语句中用一个初始值列表来初始化一个数组
6_4_3 用符号常量来定义数组的大小并通过计算来初始化数组元素
6_4_4 数组元素值求和
6_4_5 用数组来统计民意调查的结果
6_4_6 用直方图来展示数组元素值
6_4_7 用数组来统计投掷骰子60000000次的结果
6_5 用字符数组来存储和处理字符串
6_5_1 定义一个字符串来初始化一个字符数组
6_5_2 用一个字符初始化列表来初始化一个字符数组
6_5_3 访问一个字符串中的字符
6_5_4 针对一个字符数组的输入
6_5_5 将一个代表字符串的字符数组输出
6_5_6 字符数组的演示
6_6 静态局部数组和自动局部数组
6_7 将数组传递给函数
6_8 数组排序
6_9 案例分析:用数组来计算平均值/中值和众数
6_10 数组查找
6_10_1 线性查找数组元素
6_10_2 折半查找数组元素
6_11 多下标数组
6_11_1 双下标数组概述
6_11_2 双下标数组的初始化
6_11_3 设置某行元素的元素值
6_11_4 计算双下标数组中所有元素值的总和
6_11_5 对双下标数组的处理
6_12 可变长数组
6_13 安全的C程序设计
第07章 C指针
7_1 引言
7_2 指针变量的定义和初始化
7_3 指针运算符
7_4 按引用向函数传递实参
7_5 对指针使用const限定符
7_5_1 用指向可变数据的可变指针将字符串中的字符改成大写
7_5_2 用指向常量数据的可变指针逐个打印字符串中的字符
7_5_3 试图修改指向可变数据的常量指针
7_5_4 试图修改指向常量数据的常量指针
7_6 采用按引用传递的冒泡排序
7_7 sizeof运算符
7_8 指针表达式和指针算术运算
7_8_1 指针算术运算中可使用的运算符
7_8_2 将指针对准一个数组
7_8_3 给指针加上一个整数
7_8_4 给指针减去一个整数
7_8_5 指针增1或减1
7_8_6 从一个指针中减去另一个指针
7_8_7 将一个指针赋予另一个指针
7_8_8 指向void的指针
7_8_9 指针的比较
7_9 指针和数组的关系
7_9_1 指针/偏移量表示法
7_9_2 指针/下标表示法
7_9_3 不能用指针算术运算来修改数组名
7_9_4 指针下标和指针偏移量的使用演示
7_9_5 用数组和指针实现字符串的复制
7_10 指针数组
7_11 案例研究:模拟扑克牌的洗牌和发牌
7_12 指向函数的指针
7_12_1 按升序或降序进行排序
7_12_2 使用函数指针来创建一个菜单驱动的系统
7_13 安全的C程序设计
第08章 C字符和字符串
8_1 引言
8_2 字符串和字符基础
8_3 字符处理函数库
8_3_1 函数isdigit/isalpha/isalnum和isxdigit
8_3_2 函数islower/isupper/tolower和toupper
8_3_3 函数isspace/iscntrl/ispunct/isprint和isgraph
8_4 字符串转换函数
8_4_1 函数strtod
8_4_2 函数strtol
8_4_3 函数strtoul
8_5 标准输入/输出库函数
8_5_1 函数fgets和putchar
8_5_2 函数getchar
8_5_3 函数sprintf
8_5_4 函数sscanf
8_6 字符串处理函数库中的字符串处理函数
8_6_1 函数strcpy和strncpy
8_6_2 函数strcat和strncat
8_7 字符串处理函数库中的比较函数
8_8 字符串处理函数库中的查找函数
8_8_1 函数strchr
8_8_2 函数strcspn
8_8_3 函数strpbrk
8_8_4 函数strrchr
8_8_5 函数strspn
8_8_6 函数strstr
8_8_7 函数strtok
8_9 字符串处理函数库中的内存处理函数
8_9_1 函数memcpy
8_9_2 函数memmove
8_9_3 函数memcmp
8_9_4 函数memchr
8_9_5 函数memset
8_10 字符串处理函数库中的其他函数
8_10_1 函数strerror
8_10_2 函数strlen
8_11 安全的C程序设计
第09章 C格式化输入/输出
9_1 引言
9_2 流
9_3 用printf函数实现格式化输出
9_4 打印整数
9_5 打印浮点数
9_5_1 转换说明符e/E或f
9_5_2 转换说明符g或G
9_5_3 浮点数转换说明符的使用演示
9_6 打印字符串或字符
9_7 其他的转换说明符
9_8 带域宽和精度的打印
9_8_1 在打印整数时指定域宽
9_8_2 在打印整数/浮点数和字符串时指定精度
9_8_3 同时指定域宽和精度
9_9 在printf函数的格式控制字符串中使用标记
9_9_1 右对齐和左对齐
9_9_2 用与不用+标记来打印正数和负数
9_9_3 使用空格标记
9_9_4 使用#标记
9_9_5 使用0标记
9_10 打印文本和转义序列
9_11 用scanf函数读取格式化的输入
9_11_1 scanf的语法
9_11_2 scanf的转换说明符
9_11_3 用scanf来读入整数
9_11_4 用scanf来读入浮点数
9_11_5 用scanf来读入字符和字符串
9_11_6 在scanf中使用扫描集
9_11_7 在scanf中指定域宽
9_11_8 在输入流中忽略掉特定字符
9_12 安全的C程序设计
第10章 结构体/共用体/位操作和枚举类型
10_1 引言
10_2 结构体的定义
10_2_1 自引用结构体
10_2_2 定义结构体类型的变量
10_2_3 结构体标记名
10_2_4 可对结构体实施的操作
10_3 结构体的初始化
10_4 用.和->访问结构体成员
10_5 在函数中使用结构体
10_6 typedef的使用
10_7 实例分析:高性能的洗牌与发牌模拟
10_8 共用体
10_8_1 声明一个共用体
10_8_2 可对共用体执行的操作
10_8_3 在声明语句中对共用体进行初始化
10_8_4 使用共用体的演示
10_9 位运算符
10_9_1 按位显示一个无符号整数
10_9_2 使函数displayBits更具可扩展性和可移植性
10_9_3 按位与/按位或/按位异或和按位取反运算符的使用
10_9_4 按位左移和按位右移运算符的使用
10_9_5 按位运算后赋值运算符
10_10 位域
10_10_1 位域的定义
10_10_2 用位域来表示一张纸牌的花色/牌面值和颜色
10_10_3 无名位域
10_11 枚举常量
10_12 匿名的结构体和共用体
10_13 安全的C程序设计
第11章 文件处理
11_1 引言
11_2 文件与流
11_3 顺序存取文件的创建
11_3_1 指向FILE结构体类型的指针
11_3_2 用函数fopen打开文件
11_3_3 用函数feof来检查文件结束标记
11_3_4 用函数fprintf向文件写入数据
11_3_5 用函数fclose来关闭文件
11_3_6 文件打开模式
11_4 从顺序存取文件中读取数据
11_4_1 文件位置指针的复位
11_4_2 信用查询程序
11_5 随机存取文件
11_6 随机存取文件的创建
11_7 随机地向一个随机存取文件中写入数据
11_7_1 用函数fseek来定位文件位置指针
11_7_2 出错检查
11_8 从一个随机存取文件中读取数据
11_9 案例研究:事务处理程序
11_10 安全的C程序设计
第12章 C数据结构
12_1 引言
12_2 自引用结构体
12_3 动态内存分配
12_4 链表
12_4_1 insert函数
12_4_2 delete函数
12_4_3 printList函数
12_5 堆栈
12_5_1 push函数
12_5_2 pop函数
12_5_3 堆栈的应用
12_6 队列
12_6_1 enqueue函数
12_6_2 dequeue函数
12_7 树
12_7_1 insertNode函数
12_7_2 遍历函数inOrder/preOrder和postOrder
12_7_3 消除冗余
12_7_4 二元树搜索
12_7_5 二元树的其他操作
12_8 安全的C程序设计
第13章 C预处理
13_1 引言
13_2 #include预处理命令
13_3 #define预处理命令:符号常量
13_4 #define预处理命令:宏
13_4_1 带一个参数的宏
13_4_2 带两个参数的宏
13_4_3 宏连续符
13_4_4 #undef预处理命令
13_4_5 标准库函数和宏
13_4_6 不要把带有副作用的表达式放在宏中
13_5 条件编译
13_5_1 #if_#endif预处理命令
13_5_2 用#if_#endif将代码块注释起来
13_5_3 对调试代码的条件编译
13_6 #error和#pragma预处理命令
13_7 #和##运算符
13_8 行号
13_9 预定义的符号常量
13_10 断言
13_11 安全的C程序设计
第14章 C语言的其他专题
14_1 引言
14_2 I/O的重定向
14_2_1 用<来重定向输入
14_2_2 用|来重定向输入
14_2_3 重定向输出
14_3 可变长的参数列表
14_4 使用命令行实参
14_5 编译由多个源文件组成的程序
14_5_1 在别的文件中对全局变量进行extern声明
14_5_2 函数原型
14_5_3 用static来限制作用域
14_5_4 Makefile
14_6 使用exit和atexit终止程序
14_7 整型和浮点型常量的后缀
14_8 信号处理
14_9 动态内存分配:函数calloc和realloc
14_10 用goto实现无条件转移
第15章 C++/一个更好的C:介绍对象技术
15_1 引言
15_2 C++
15_3 简单程序:两个整数相加
15_3_1 用C++编写加法程序
15_3_2 <iostream>头文件
15_3_3 main函数
15_3_4 变量声明
15_3_5 标准输出流和标准输入流对象
15_3_6 std::endl流操纵符
15_3_7 关于std::的说明
15_3_8 级联的流输出
15_3_9 main函数中的return语句不是必需的
15_3_10 运算符重载
15_4 C++标准库
15_5 头文件
15_6 内联函数
15_7 C++关键字
15_8 引用和引用形参
15_8_1 引用形参
15_8_2 按值和按引用传参
15_8_3 函数体内引用作为别名
15_8_4 从函数返回引用
15_8_5 未初始化的引用的错误提示信息
15_9 空形参列表
15_10 默认实参
15_11 一元作用域运算符
15_12 函数重载
15_13 函数模板
15_13_1 定义一个函数模板
15_13_2 使用函数模板
15_14 对象技术与UML简介
15_14_1 对象技术基本概念
15_14_2 类/数据成员和成员函数
15_14_3 面向对象分析与设计
15_14_4 统一建模语言
15_15 C++标准库类模板vector简介
15_15_1 C风格的基于指针的数组
15_15_2 使用类模板vector
15_15_3 异常处理:处理下标越界
15_16 本章小结
第16章 类:对象和字符串简介
16_1 引言
16_2 定义一个具有成员函数的类
16_3 定义一个有参成员函数
16_4 数据成员/set成员函数与get成员函数
16_5 用构造函数初始化对象
16_6 将类放在单独的文件中以增强重用性
16_7 将接口与实现分离
16_8 用set函数验证数据
16_9 本章小结
第17章 类:深入剖析_抛出异常
17_1 引言
17_2 Time类的案例学习
17_3 类域和访问类的成员
17_4 访问函数和工具函数
17_5 Time类的案例学习:具有默认实参的构造函数
17_6 析构函数
17_7 构造函数与析构函数的调用时间
17_8 Time类的案例学习:隐蔽陷阱--返回private数据成员的引用或指针
17_9 默认按成员赋值
17_10 const对象和const成员函数
17_11 组合:对象作为类的成员
17_12 友元函数和友元类
17_13 使用this指针
17_14 static类成员
17_15 本章小结
第18章 运算符重载_string类
18_1 引言
18_2 使用标准库模板类string中的重载运算符
18_3 运算符重载基础
18_4 重载二元运算符
18_5 重载流插入和流读取运算符
18_6 重载一元运算符
18_7 重载一元前置和后置++和--运算符
18_8 案例学习:Date类
18_9 动态内存管理
18_10 案例学习:Array类
18_10_1 使用Array类
18_10_2 Array类定义
18_11 作为类的成员和作为非成员函数的运算符函数的比较
18_12 类型转换
18_13 explicit构造函数和转换运算符
18_14 重载函数调用运算符()
18_15 本章小结
第19章 面向对象编程:继承
19_1 引言
19_2 基类和派生类
19_3 基类和派生类的关系
19_3_1 创建并使用CommissionEmployee类
19_3_2 不用继承创建BasePlusCommissionEmployee类
19_3_3 创建CommissionEmployee-BasePlusCommissionEmployee继承层次结构
19_3_4 使用protected数据的CommissionEmployee-BasePlusCommission-Employee继承层次结构
19_3_5 使用private数据的CommissionEmployee-BasePlusCommission Employee继承层次结构
19_4 派生类的构造函数与析构函数
19_5 public/protected和private继承
19_6 关于继承的软件工程
19_7 本章小结
第20章 面向对象编程:多态
20_1 引言
20_2 多态简介:多态的视频游戏
20_3 继承层次结构中对象间的关系
20_3_1 派生类对象调用基类的函数
20_3_2 派生类指针指向基类对象
20_3_3 用基类指针调用派生类成员函数
20_3_4 虚函数和虚析构函数
20_4 类型域和switch语句
20_5 抽象类和纯虚函数
20_6 案例学习:利用多态的工资系统
20_6_1 创建抽象基类Employee
20_6_2 创建具体的派生类SalariedEmployee
20_6_3 创建具体的派生类CommissionEmployee
20_6_4 创建间接的具体派生类BasePlusCommissionEmployee
20_6_5 演示多态处理
20_7 (选讲)多态/虚函数以及动态联编的幕后机制
20_8 案例学习:利用多态的和运行时类型信息的工资系统/通过向下类型转换/dynamic_cast/typeid以及type_info使用运行时类型信息
20_9 本章小结
第21章 输入/输出流:深入学习
21_1 引言
21_2 流
21_2_1 传统流与标准流的比较
21_2_2 iostream类库头文件
21_2_3 输入/输出流类和对象
21_3 输出流
21_3_1 输出char*变量
21_3_2 用成员函数put输出字符
21_4 输入流
21_4_1 成员函数get和getline
21_4_2 istream类的成员函数peek/putback和ignore
21_4_3 类型安全的I/O
21_5 用read/write和gcount进行无格式I/O
21_6 流操纵符简介
21_6_1 设置整数流的基数:dec/oct/hex和setbase
21_6_2 设置浮点数精度(precision/setprecision)
21_6_3 设置域宽(width/setw)
21_6_4 用户定义的输出流操纵符
21_7 流格式状态和流操纵符
21_7_1 设置尾数零和十进制小数点(showpoint)
21_7_2 设置对齐(left/right和internal)
21_7_3 设置填充字符(fill/setfill)
21_7_4 设置整数流的基数(dec/oct/hex/showbase)
21_7_5 设置浮点数;科学计数法和定点计数法(scientific/fixed)
21_7_6 大/小写控制(uppercase)
21_7_7 指定布尔格式(boolalpha)
21_7_8 用成员函数flags设置和重置格式状态
21_8 流错误状态
21_9 将输出流绑定到输入流上
21_10 本章小结
第22章 异常处理:深入学习
22_1 引言
22_2 实例:处理除数为0的异常
22_3 重新抛出异常
22_4 栈展开
22_5 何时使用异常处理
22_6 构造函数/析构函数与异常处理
22_7 异常与继承
22_8 处理new故障
22_9 unique_ptr类与动态内存分配
22_10 标准库的异常层次结构
22_11 本章小结
第23章 模板
23_1 引言
23_2 类模板
23_3 函数模操作类模板的特化对象
23_4 非类型形参
23_5 模板类型形参的默认实参
23_6 重载函数模板
23_7 本章小结
附录A 运算符优先级表
附录B ASCII字符集
附录C 数值系统
附录D 排序:一个深入的分析
附录E 多线程及其他C11和C99专题
索引
::下载地址::
>> 评论