当前位置:主页 > 技术文档 > C语言 下载

C语言大学教程(第8版)

  • 更新:2021-09-16 11:20:27
  • 大小:132 MB
  • 热度:748
  • 审核:叶俊友
  • 类别:技术文章
  • 格式:PDF

  • 资源介绍
  • 学习心得
  • 相关内容

本书是全球畅销的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

资源获取

资源地址1:https://pan.baidu.com/s/1gMxsUV6yPBqt-U07WMOdiw

相关资源

网友留言