您好,欢迎光临有路网!
C程序设计教程(第9版)
QQ咨询:
有路璐璐:

C程序设计教程(第9版)

  • 作者:(美)保罗·戴特尔(Paul Deitel)、哈维·戴特尔(Harvey Dei
  • 出版社:人民邮电出版社
  • ISBN:9787115597212
  • 出版日期:2023年10月01日
  • 页数:532
  • 定价:¥139.80
  • 分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    本书是**的C语言教程。全书系统地介绍了4种当今流行的程序设计方法——面向过程、基于对象、面向对象以及泛型编程,内容全面、生动、易懂。作者由浅入深地介绍了结构化编程及软件工程的基本概念,从简单概念到*终完整的语言描述,清晰、正确、透彻、详细地讲解了C语言,尤其注重程序设计思想和方法的介绍。此外,还涉及**的C程序涉及、提高练习题,覆盖C 和面向对象程序设计、基于Allegro的游戏编程、C标准介绍等内容。
    目录
    第 1章 计算机和C语言简介 1 1.1 简介 2 1.2 硬件和软件 2 1.2.1 摩尔定律 3 1.2.2 计算机组织 3 1.3 数据层次结构 5 1.4 机器语言、汇编语言和**语言 7 1.5 操作系统 9 1.6 C编程语言 11 1.7 C语言标准库和开源库 12 1.8 其他流行的编程语言 13 1.9 典型的C语言程序开发环境 14 1.9.1 第 1阶段:创建一个程序 14 1.9.2 第 2和第3阶段:预处理和 编译C程序 15 1.9.3 第4阶段:链接 15 1.9.4 第5阶段:加载 16 1.9.5 第6阶段:执行 16 1.9.6 执行时可能出现的问题 16 1.9.7 标准输入、标准输出和标准 错误流 17 1.10 在Windows、Linux和macOS中 测试驱动一个C应用程序 17 1.10.1 在Windows 10上用Visual Studio 2019社区版编译和运行一个C语言 程序 17 1.10.2 在macOS上用Xcode编译和运行 一个C程序 20 1.10.3 在Linux上用GNU gcc编译和 运行一个C应用程序 22 1.10.4 在GCC Docker容器中编译和 运行一个C应用程序,并在 Windows 10、macOS或Linux上 原生运行。 24 1.11 因特网、万维网、云和物联网 25 1.11.1 因特网:一个网络的网络 26 1.11.2 万维网:让因特网变得更友好 26 1.11.3 云 26 1.11.4 物联网 27 1.12 软件技术 27 1.13 大数据有多大? 28 1.13.1 大数据分析 32 1.13.2 数据科学和大数据正在产生变化: 使用案例 33 1.14 案例研究:大数据移动应用 33 1.15 AI:在计算机科学和数据科学的 交汇处 34 第 2章 C语言编程入门 39 2.1 简介 39 2.2 一个简单的C程序:打印一行文本 39 2.3 另一个简单的C程序:两个整数 相加 42 2.4 内存概念 45 2.5 C语言中的算术 46 2.6 判断:相等和关系操作符 49 2.7 **的C语言编程 52 第3章 结构体化程序开发 61 3.1 简介 61 3.2 算法 61 3.3 伪代码 62 3.4 控制结构体 63 3.5 if选择语句 64 3.6 if...else选择语句 65 3.7 while循环语句 68 3.8 制订算法案例研究1:计数器控制的 循环 69 3.9 用自顶向下、逐步细化的方式制定算法 案例研究2:标记控制的循环 70 3.10 用自顶向下、逐步细化的方式制定算法 案例研究3:嵌套控制语句 75 3.11 赋值操作符 78 3.12 递增和递减操作符 79 3.13 **的C语言编程 81 第4章 程序控制 95 4.1 简介 95 4.2 循环要点 95 4.3 计数器控制的循环 96 4.4 for循环语句 97 4.5 使用for语句的例子 99 4.6 switch多重选择语句 102 4.7 do...while循环语句 106 4.8 break和continue语句 107 4.9 逻辑操作符 109 4.10 区分相等 (==) 和赋值 ( =) 操作符 111 4.11 结构体化编程的总结 112 4.12 **的C语言编程 116 第5章 函数 128 5.1 简介 128 5.2 C语言中的程序模块化 128 5.3 数学库函数 129 5.4 函数 131 5.5 函数的定义 131 5.5.1 square函数 131 5.5.2 maximum函数 133 5.6 函数原型:更深入的观察 134 5.7 函数调用栈和栈帧 136 5.8 头文件 139 5.9 通过值和引用传递参数 140 5.10 随机数生成 140 5.11 随机数字模拟案例研究:建立一个 赌场游戏 144 5.12 存储类型 146 5.13 作用域规则 147 5.14 递归 150 5.15 使用递归的例子:斐波那契数列 153 5.16 递归与循环 155 5.17 **的C语言编程:**的随机数 生成 157 第6章 数组 172 6.1 简介 173 6.2 数组 173 6.3 定义数组 174 6.4 数组示例 174 6.4.1 定义一个数组并使用循环来设置 数组的元素值 174 6.4.2 在定义中用初始值列表初始化 数组 175 6.4.3 用符号常量指定数组的大小, 用计算方法初始化数组元素 176 6.4.4 对数组中的元素求和 177 6.4.5 使用数组来总结调查的结果 177 6.4.6 用条形图表示数组元素的值 178 6.4.7 掷骰子60,000,000次并将结果 汇总到一个数组中 179 6.5 使用字符数组来存储和操作字符串 180 6.5.1 用一个字符串初始化一个 字符数组 180 6.5.2 用字符的初始化列表初始化 一个字符数组 181 6.5.3 访问一个字符串中的字符 181 6.5.4 输入一个字符数组 181 6.5.5 输出一个代表字符串的字符 数组 181 6.5.6 演示字符数组 181 6.6 静态局部数组和自动局部数组 182 6.7 将数组传递给函数 184 6.8 对数组排序 187 6.9 数据科学入门案例研究: 调查数据分析 189 6.10 搜索数组 193 6.10.1 用线性搜索来搜索一个数组 193 6.10.2 用二分搜索来搜索数组 194 6.11 多维数组 197 6.11.1 展示二维数组 197 6.11.2 初始化双下标数组 198 6.11.3 设置某一行的元素 199 6.11.4 计算二维数组中的元素总数 200 6.11.5 二维数组操作 200 6.12 可变长度数组 203 6.13 **的C语言编程 205 第7章 指针 220 7.1 简介 221 7.2 指针变量的定义和初始化 221 7.3 指针操作符 222 7.4 按引用向函数传递参数 224 7.5 在指针中使用const限定符 227 7.5.1 使用指向可变数据的可变指针 将字符串转换为大写字母 227 7.5.2 用常量数据的可变指针逐个 字符打印字符串 228 7.5.3 试图修改可变数据的常量指针 229 7.5.4 试图修改常量数据的常量指针 230 7.6 使用按引用传递的冒泡排序 231 7.7 sizeof操作符 233 7.8 指针表达式和指针算术 235 7.8.1 指针算术操作符 235 7.8.2 将一个指针指向一个数组 235 7.8.3 将一个整数添加到一个指针上 235 7.8.4 从一个指针中减去一个整数 236 7.8.5 指针的递增和递减 236 7.8.6 用一个指针减去另一个指针 236 7.8.7 互相赋值指针 236 7.8.8 void指针 236 7.8.9 比较指针 237 7.9 指针和数组的关系 237 7.9.1 指针/偏移量表示法 237 7.9.2 指针/下标表示法 238 7.9.3 不能用指针算术修改数组名称 238 7.9.4 演示指针下标和偏移量 238 7.9.5 用数组和指针复制字符串 239 7.10 指针的数组 240 7.11 随机数模拟案例研究: 洗牌和发牌 241 7.12 函数指针 245 7.12.1 按升序或降序排序 245 7.12.2 使用函数指针创建一个菜单 驱动的系统 247 7.13 **的C语言编程 248 第8章 和字符串 276 8.1 简介 277 8.2 字符串和字符的基本原理 277 8.3 字符处理库 278 8.3.1 函数isdigit、isalpha、isalnum和 isxdigit 279 8.3.2 函数islower、isupper、tolower和 toupper 280 8.3.3 函数isspace、iscntrl、ispunct、 isprint和isgraph 280 8.4 字符串转换函数 282 8.4.1 函数strtod 282 8.4.2 函数strtol 283 8.4.3 函数strtoul 283 8.5 标准输入/输出库函数 284 8.5.1 函数fgets和putchar 285 8.5.2 函数getchar 286 8.5.3 函数sprintf 286 8.5.4 函数scanf 287 8.6 字符串处理库的字符串操作函数 287 8.6.1 函数strcpy和strncpy 288 8.6.2 函数strcat和strncat 289 8.7 字符串处理库的比较函数 290 8.8 字符串处理库的搜索函数 291 8.8.1 函数strchr 292 8.8.2 函数strcspn 292 8.8.3 函数strpbrk 293 8.8.4 函数strrchr 293 8.8.5 函数strspn 293 8.8.6 函数strstr 294 8.8.7 函数strtok 294 8.9 字符串处理库的内存函数 296 8.9.1 函数memcpy 296 8.9.2 函数memmove 297 8.9.3 函数memcmp 297 8.9.4 函数memchr 298 8.9.5 函数memset 298 8.10 字符串处理库的其他函数 299 8.10.1 函数strerror 299 8.10.2 函数strlen 299 8.11 **的C语言编程 300 第9章 格式化的输入/输出 321 9.1 简介 321 9.2 流 322 9.3 用printf格式化输出 322 9.4 打印整数 323 9.5 打印浮点数值 324 9.5.1 转换规范e、E和f 324 9.5.2 转换规范g和G 324 9.5.3 示范浮点转换规范 325 9.6 打印字符串和字符 326 9.7 其他转换规范 326 9.8 用域宽和精度打印 327 9.8.1 整数的域宽 327 9.8.2 整数、浮点数和字符串的精度 328 9.8.3 结合域宽和精度 329 9.9 printf格式标记 329 9.9.1 右对齐和左对齐 330 9.9.2 打印带有或不带有 标记的 正数和负数 330 9.9.3 使用空格标记 330 9.9.4 使用#标记 331 9.9.5 使用0标记 331 9.10 打印字面量和转义序列 332 9.11 用scanf格式化输入 333 9.11.1 scanf 语法 333 9.11.2 scanf转换规范 333 9.11.3 读取整数 334 9.11.4 读取浮点数字 334 9.11.5 读取字符和字符串 335 9.11.6 使用扫描集 335 9.11.7 使用域宽 336 9.11.8 跳过输入流中的字符 337 9.12 **的C语言编程 338 第 10章 结构体体、共用体、位操作 和枚举 344 10.1 简介 345 10.2 结构体体的定义 345 10.2.1 自引用结构体体 345 10.2.2 定义结构体体类型的变量 346 10.2.3 结构体体标签名称 346 10.2.4 可以对结构体体进行的操作 346 10.3 初始化结构体体 347 10.4 用.和->访问结构体体成员 348 10.5 在函数中使用结构体体 349 10.6 typedef 349 10.7 随机数模拟案例研究:高性能的 洗牌和发牌 350 10.8 共用体 352 10.8.1 共用体的声明 353 10.8.2 允许的共用体操作 353 10.8.3 在声明中初始化union 353 10.8.4 示范共用体 353 10.9 位操作符 354 10.9.1 显示无符号整数的位数 355 10.9.2 使函数displayBits更加通用和 可移植 356 10.9.3 使用按位与、按位或、按位异或 和按位取反操作符 356 10.9.4 使用左移位和右移位操作符 359 10.9.5 位运算赋值操作符 360 10.10 位域 361 10.10.1 定义位域 361 10.10.2 使用位域来表示牌面、花色 362 10.10.3 未命名位域 363 10.11 枚举常量 364 10.12 匿名结构体体和共用体 365 10.13 **的C语言编程 366 第 11章 文件处理 385 11.1 简介 385 11.2 文件和流 385 11.3 创建一个顺序存取的文件 386 11.3.1 指向FILE的指针 387 11.3.2 使用fopen来打开一个文件 387 11.3.3 使用feof来检查文件结束 标记 388 11.3.4 使用fprintf向文件写数据 388 11.3.5 使用fclose来关闭一个文件 388 11.3.6 文件打开模式 389 11.4 从顺序存取的文件中读取数据 390 11.4.1 重置文件位置指针 391 11.4.2 信用查询程序 391 11.5 随机存取文件 394 11.6 创建一个随机存取的文件 395 11.7 将数据随机写入随机存取文件 396 11.7.1 用fseek定位文件位置指针 398 11.7.2 错误检查 398 11.8 从随机存取文件中读取数据 399 11.9 案例研究:事务处理系统 400 11.10 **的C语言编程 404 第 12章 数据结构体 425 12.1 简介 425 12.2 自引用结构体 426 12.3 动态内存管理 427 12.4 链表 428 12.4.1 函数insert 430 12.4.2 函数delete 432 12.4.3 函数 isEmpty 和 printList 433 12.5 栈 434 12.5.1 函数push 437 12.5.2 函数pop 437 12.5.3 栈的应用 438 12.6 队列 438 12.6.1 函数enqueue 442 12.6.2 函数dequeue 443 12.7 树 443 12.7.1 函数insertNode 446 12.7.2 遍历:函数 inOrder, preOrder 和 postOrder 446 12.7.3 消除重复 447 12.7.4 二叉树搜索 447 12.7.5 其他二叉树操作 447 12.8 **的C语言编程 448 第 13章 计算机科学思维:排序算法 和大O 468 13.1 简介 468 13.2 算法的效率:大O 469 13.2.1 O(1)算法 469 13.2.2 O(n)算法 469 13.2.3 O(n2)算法 469 13.3 选择排序 470 13.3.1 选择排序的实现 471 13.3.2 选择排序的效率 473 13.4 插入排序 473 13.4.1 插入排序的实现 474 13.4.2 插入排序的效率 475 13.5 案例研究:高性能合并排序的 可视化 476 13.5.1 合并排序的实现 476 13.5.2 合并排序的效率 480 13.5.3 总结各种算法的大O符号 480 第 14章 预处理器 485 14.1 简介 485 14.2 #include预处理器指令 486 14.3 #define预处理器指令:符号常量 486 14.4 #define 预处理器指令:宏 487 14.4.1 有一个参数的宏 487 14.4.2 双参数宏 488 14.4.3 宏的续行字符 488 14.4.4 #undef预处理器指令 488 14.4.5 标准库的宏 488 14.4.6 不要在宏中放置有副作用的 表达式 489 14.5 条件编译 489 14.5.1 #if...#endif 预处理器指令 489 14.5.2 用#if...#endif注释掉代码块 490 14.5.3 有条件地编译调试代码 490 14.6 #error和#pragma预处理器指令 490 14.7 #和##操作符 491 14.8 行号 491 14.9 预定义的符号常量 492 14.10 断言 492 14.11 **的C语言编程 493 第 15章 其他主题 497 15.1 简介 497 15.2 可变长度的参数列表 497 15.3 使用命令行参数 499 15.4 编译多源文件程序 500 15.4.1 其他文件中全局变量的extern 声明 501 15.4.2 函数原型 501 15.4.3 用static限制作用域 501 15.5 exit和atexit终止程序 502 15.6 整数和浮点字面量的后缀 503 15.7 信号处理 504 15.8 动态内存分配函数calloc和realloc 506 15.9 goto:无条件分支 507 附录A 操作符优先级 511 附录B ASCII字符集 513 附录C 多线程/多核和其他 C18/C11/C99主题 514 C.1 简介 514 C.2 C99中增加的头文件 515 C.3 指定的初始值和复合字面量 515 C.4 bool类型 517 C.5 复数 518 C.6 具有可变长度的参数列表的宏 518 C.7 其他C99特性 519 C.7.1 编译器*小资源限制 519 C.7.2 restrict关键字 519 C.7.3 可靠的整数除法 519 C.7.4 灵活数组成员 520 C.7.5 泛型数学 520 C.7.6 内联函数 520 C.7.7 __func__ 预定义标识符 521 C.7.8 va_copy 宏程序 521 C.8 C11/C18特性 521 C.8.1 C11/C18头文件 521 C.8.2 quick_exit函数 521 C.8.3 Unicode 支持 522 C.8.4 _Noreturn函数限定符 522 C.8.5 泛型表达式 522 C.8.6 Annex L:可分析性和未定义 行为 522 C.8.7 内存对齐控制 523 C.8.8 静态断言 523 C.8.9 浮点类型 523 C.9 案例研究:多线程和多核系统的 性能 523 C.9.1 示例:两个计算密集型任务的 顺序执行 526 C.9.2 示例:两个计算密集型任务的 多线程执行 527 C.9.3 其他多线程特性 530 附录D 面向对象的编程概念介绍 531 D.1 介绍 531 D.2 面向对象的编程语言 531 D.3 汽车作为一个对象 531 D.4 方法和类 531 D.5 实例化 532 D.6 复用 532 D.7 消息和方法调用 532 D.8 属性和实例变量 532 D.9 继承 532 D.10 面向对象的分析和设计(OOAD) 532

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外