C语言大学教程 第8版 (美)保罗·戴特尔(Paul Deitel)著 中文高清扫描版完整书签 166MB

 本书是全球畅销的C语言教程之一。全书系统地介绍了4种当今流行的程序设计方法——面向过程、基于对象、面向对象以及泛型编程,内容全面、生动、易懂,作者由浅入深地介绍了结构化编程及软件工程的基本概念,从简单的概念到*终的完整的语言描述,清晰、准确、透彻、详细地讲解了C语言,尤其注重程序设计思想和方法的介绍。相对于上一版,这一版在内容方面新增加了C安全程序设计、”更上一层楼”练习集,更新了C 和面向对象程序设计、基于Allegro的游戏编程、C99标准介绍等内容。

Paul Deitel和Harvey Deitel是全球畅销的编程语言教材和专业图书作家,“How to Program”系列是其负盛名的一套计算机编程教材,已经销售近40年,并被翻译成中文在内的十几种语言。他们成立的Deitel & Associates公司是一家国际知名的企业培训和写作公司, 专门进行计算机编程语言、对象技术、移动应用开发及Internet和Web软件技术方面的培训和写作,出版了一流的编程专业的大学教材、 专业图书以及LiveLessons视频课程。

苏小红,哈尔滨工业大学计算机学院博士生导师,计算机应用技术专家,研究领域主要是色彩匹配,信息融合,空间计算,人工神经网络,进化算法,计算机图形学,灰色预测,彩色图像处理等。

目 录

知识兔

第1章 计算机、因特网和万维网导论 1

1.1 引言 2

1.2 计算机硬件和软件 2

1.2.1 摩尔定律 2

1.2.2 计算机组成 3

1.3 数据的层次结构 3

1.4 机器语言、汇编语言和高级语言 5

1.5 C程序设计语言 6

1.6 C标准库 7

1.7 C 和其他基于C的程序设计语言 8

1.8 对象技术 8

1.8.1 对象——以汽车为例 9

1.8.2 方法与类 9

1.8.3 实例化 9

1.8.4 软件重用 9

1.8.5 消息与方法调用 9

1.8.6 属性与实例变量 9

1.8.7 封装与信息隐藏 10

1.8.8 继承 10

1.9 典型的C程序开发环境 10

1.9.1 第1步:创建一个C程序 11

1.9.2 第2步和第3步:预处理及编译一个C程序 11

1.9.3 第4步:链接 11

1.9.4 第5步:装载 11

1.9.5 第6步:执行 12

1.9.6 程序运行时可能会出现的问题 12

1.9.7 标准输入、标准输出和标准错误流 12

1.10 在Windows、Linux和Mac OS X上测试并运行一个C应用程序 12

1.10.1 在Windows命令提示符下运行一个C应用程序 13

1.10.2 使用Linux中的GNU C来运行一个C应用程序 15

1.10.3 使用Mac OS X终端来运行一个C应用程序 17

1.11 操作系统 19

1.11.1 Windows —— 一个专有的操作系统 19

1.11.2 Linux —— 一个开源的操作系统 19

1.11.3 苹果公司的Mac OS X;面向iPhone、iPad 和iPod Touch的iOS操作系统 20

1.11.4 谷歌公司的Android操作系统 20

1.12 因特网和万维网 20

1.12.1 因特网:计算机网络的网络 21

1.12.2 万维网:让因特网对用户更友好 21

1.12.3 万维网服务 21

1.12.4 Ajax 23

1.12.5 物联网 23

1.13 一些重要的软件技术 23

1.14 跟上信息技术的发展 24

第2章 C语言程序设计入门 28

2.1 引言 28

2.2 一个简单的C程序:打印一行文字 28

2.3 另一个简单的C程序:两个整数求和 31

2.4 存储单元的基本概念 35

2.5 C语言中的算术运算 35

2.6 做出决策:相等和关系运算符 38

2.7 安全的C程序设计 41

第3章 结构化的C程序设计 51

3.1 引言 51

3.2 算法 51

3.3 伪代码 52

3.4 控制结构 52

3.5 if条件语句 54

3.6 if…else条件语句 54

3.7 while循环语句 57

3.8 算法设计案例1:计数控制的循环 58

3.9 自顶向下、逐步求精的算法设计案例2:标记控制的循环 60

3.10 自顶向下、逐步求精的算法设计案例3:嵌套控制结构 65

3.11 赋值运算符 67

3.12 增1和减1运算符 68

3.13 安全的C程序设计 70

第4章 C程序控制 84

4.1 引言 84

4.2 循环的基本原理 84

4.3 计数控制的循环 85

4.4 for循环语句 86

4.5 for语句:注意事项 88

4.6 使用 for语句的例子 89

4.7 switch多重选择语句 91

4.8 do…while循环语句 96

4.9 break和continue语句 97

4.10 逻辑运算符 98

4.11 区分相等运算符(= =)和赋值运算符(=) 100

4.12 结构化程序设计小结 101

4.13 安全的C程序设计 105

第5章 C函数 117

5.1 引言 117

5.2 C语言中的程序模块 117

5.3 数学库函数 118

5.4 函数 119

5.5 函数定义 120

5.5.1 square函数 120

5.5.2 maximum函数 123

5.6 函数原型:一个深入的剖析 123

5.7 函数调用堆栈及活动记录堆栈帧 125

5.8 头文件 128

5.9 按值或按引用传递参数 129

5.10 随机数的生成 129

5.11 案例分析:运气游戏;引入enum 133

5.12 存储类型 135

5.13 作用域的规定 137

5.14 递归 139

5.15 递归应用案例:斐波那契数列 142

5.16 递归与迭代 144

5.17 安全的C程序设计 146

第6章 C数组 161

6.1 引言 162

6.2 数组 162

6.3 数组定义 163

6.4 数组实例 163

6.4.1 定义一个数组并用循环结构来设置数组元素值 163

6.4.2 在定义语句中用一个初始值列表来初始化一个数组 164

6.4.3 用符号常量来定义数组的大小并通过计算来初始化数组元素 165

6.4.4 数组元素值求和 166

6.4.5 用数组来统计民意调查的结果 166

6.4.6 用直方图来展示数组元素值 168

6.4.7 用数组来统计投掷骰子60 000 000次的结果 169

6.5 用字符数组来存储和处理字符串 170

6.5.1 定义一个字符串来初始化一个字符数组 170

6.5.2 用一个字符初始化列表来初始化一个字符数组 170

6.5.3 访问一个字符串中的字符 170

6.5.4 针对一个字符数组的输入 170

6.5.5 将一个代表字符串的字符数组输出 171

6.5.6 字符数组的演示 171

6.6 静态局部数组和自动局部数组 171

6.7 将数组传递给函数 173

6.8 数组排序 176

6.9 案例分析:用数组来计算平均值、中值和众数 178

6.10 数组查找 181

6.10.1 线性查找数组元素 181

6.10.2 折半查找数组元素 182

6.11 多下标数组 185

6.11.1 双下标数组概述 185

6.11.2 双下标数组的初始化 186

6.11.3 设置某行元素的元素值 187

6.11.4 计算双下标数组中所有元素值的总和 187

6.11.5 对双下标数组的处理 188

6.12 可变长数组 190

6.13 安全的C程序设计 192

第7章 C指针 207

7.1 引言 207

7.2 指针变量的定义和初始化 208

7.3 指针运算符 208

7.4 按引用向函数传递实参 210

7.5 对指针使用const限定符 213

7.5.1 用指向可变数据的可变指针将字符串中的字符改成大写 214

7.5.2 用指向常量数据的可变指针逐个打印字符串中的字符 215

7.5.3 试图修改指向可变数据的常量指针 217

7.5.4 试图修改指向常量数据的常量指针 217

7.6 采用按引用传递的冒泡排序 218

7.7 sizeof运算符 220

7.8 指针表达式和指针算术运算 222

7.8.1 指针算术运算中可使用的运算符 222

7.8.2 将指针对准一个数组 222

7.8.3 给指针加上一个整数 222

7.8.4 给指针减去一个整数 223

7.8.5 指针增1或减1 223

7.8.6 从一个指针中减去另一个指针 223

7.8.7 将一个指针赋予另一个指针 223

7.8.8 指向void的指针 224

7.8.9 指针的比较 224

7.9 指针和数组的关系 224

7.9.1 指针/偏移量表示法 224

7.9.2 指针/下标表示法 225

7.9.3 不能用指针算术运算来修改数组名 225

7.9.4 指针下标和指针偏移量的使用演示 225

7.9.5 用数组和指针实现字符串的复制 226

7.10 指针数组 227

7.11 案例研究:模拟扑克牌的洗牌和发牌 228

7.12 指向函数的指针 232

7.12.1 按升序或降序进行排序 232

7.12.2 使用函数指针来创建一个菜单驱动的系统 234

7.13 安全的C程序设计 236

第8章 C字符和字符串 252

8.1 引言 252

8.2 字符串和字符基础 253

8.3 字符处理函数库 254

8.3.1 函数isdigit,isalpha,isalnum和isxdigit 255

8.3.2 函数islower,isupper,tolower和toupper 256

8.3.3 函数isspace,iscntrl,ispunct,isprint和isgraph 257

8.4 字符串转换函数 258

8.4.1 函数strtod 258

8.4.2 函数strtol 259

8.4.3 函数strtoul 260

8.5 标准输入/输出库函数 260

8.5.1 函数fgets和putchar 261

8.5.2 函数getchar 261

8.5.3 函数sprintf 262

8.5.4 函数sscanf 263

8.6 字符串处理函数库中的字符串处理函数 263

8.6.1 函数strcpy和 strncpy 264

8.6.2 函数strcat和 strncat 264

8.7 字符串处理函数库中的比较函数 265

8.8 字符串处理函数库中的查找函数 266

8.8.1 函数strchr 267

8.8.2 函数strcspn 268

8.8.3 函数strpbrk 268

8.8.4 函数strrchr 268

8.8.5 函数strspn 269

8.8.6 函数strstr 269

8.8.7 函数strtok 270

8.9 字符串处理函数库中的内存处理函数 271

8.9.1 函数memcpy 271

8.9.2 函数memmove 272

8.9.3 函数memcmp 272

8.9.4 函数memchr 273

8.9.5 函数memset 273

8.10 字符串处理函数库中的其他函数 274

8.10.1 函数strerror 274

8.10.2 函数strlen 274

8.11 安全的C程序设计 275

第9章 C格式化输入/输出 285

9.1 引言 285

9.2 流 286

9.3 用printf函数实现格式化输出 286

9.4 打印整数 286

9.5 打印浮点数 287

9.5.1 转换说明符e,E或f 288

9.5.2 转换说明符g或G 288

9.5.3 浮点数转换说明符的使用演示 288

9.6 打印字符串或字符 289

9.7 其他的转换说明符 289

9.8 带域宽和精度的打印 290

9.8.1 在打印整数时指定域宽 290

9.8.2 在打印整数、浮点数和字符串时指定精度 291

9.8.3 同时指定域宽和精度 292

9.9 在printf函数的格式控制字符串中使用标记 292

9.9.1 右对齐和左对齐 292

9.9.2 用与不用 标记来打印正数和负数 293

9.9.3 使用空格标记 293

9.9.4 使用#标记 293

9.9.5 使用0标记 294

9.10 打印文本和转义序列 294

9.11 用scanf函数读取格式化的输入 294

9.11.1 scanf的语法 295

9.11.2 scanf的转换说明符 295

9.11.3 用scanf来读入整数 295

9.11.4 用scanf来读入浮点数 296

9.11.5 用scanf来读入字符和字符串 296

9.11.6 在scanf中使用扫描集 297

9.11.7 在scanf中指定域宽 298

9.11.8 在输入流中忽略掉特定字符 298

9.12 安全的C程序设计 299

第10章 结构体、共用体、位操作和枚举类型 305

10.1 引言 306

10.2 结构体的定义 306

10.2.1 自引用结构体 306

10.2.2 定义结构体类型的变量 307

10.2.3 结构体标记名 307

10.2.4 可对结构体实施的操作 307

10.3 结构体的初始化 308

10.4 用.和?>访问结构体成员 308

10.5 在函数中使用结构体 310

10.6 typ

下载体验

请输入密码查看下载!

点击领取巨无霸学习包+密码!

点击下载

评论