C Primer Plus (第四版) 中文版

副标题:无

作   者:(美) Stephen Prata著

分类号:

ISBN:9787115100757

微信扫一扫,移动浏览光盘

简介

     本书全面讲述了c语言编程的相关概念和知识。 全书共17章。第1、2章是学习c语言编程预备知识。第3到15章介绍了c语言的各方面知识,包括数据类型、格式化输入输入、运算符、表达式、流程控制语句、函数、数组和指针、字符串操作、内存管理、位操作等等,知识内容针对c99标准;另外,第10章强化了对指针的讨论,第12章引入了动态内存分配的概念,这些内容更加适合读者的需求。第16章和第17章讨论了c预处理器和c库函数、高级数据表示(数据结构)方面的内容。附录给出了各章后面复习题和编程练习的答案和丰富的c编程参考资料。 本书适合希望系统学习c语言的读者,也适用于精通其他编程语言并希望进一步掌握和巩固c编程技术的程序员。    [p align="center"][font color="#ff6600"][b]试读下载:[/b][/font][b][a href="/temporary/list/cooperate/zipdownload/6854/01.zip"]第1章[/a] [a href="/temporary/list/cooperate/zipdownload/6854/02.zip"]第2章[/a][/b]   

目录

第1章 概览 1
1.1 C语言的起源 2
1.2 使用C语言的理由 2
1.2.1 设计特性 3
1.2.2 高效性 3
1.2.3 可移植性 3
1.2.4 强大的功能和灵活性 3
1.2.5 面向编程人员 3
1.2.6 缺点 3
1.3 C语言的发展方向 4
1.4 计算机工作的基本原理 5
1.5 高级计算机语言和编译器 5
1.6 使用C语言的7个步骤 6
1.6.1 第1步:定义程序目标 6
1.6.2 第2步:设计程序 7
1.6.3 第3步:编写代码 7
1.6.4 第4步:编译 7
1.6.5 第5步:运行程序 7
1.6.6 第6步:测试和调试程序 8
1.6.7 第7步:维护和修改程序 8
1.6.8 注释 8
1.7 编程机制 8
1.7.1 目标代码文件、可执行文件和库 9
1.7.2 UNIX系统 10
1.7.3 Linux系统 11
1.7.4 集成开发环境(Windows系统下) 12
1.7.5 IBM PC的DOS编译器 12
1.7.6 Macintosh上的C 13
1.8 语言标准 13
1.8.1 第1个ANSI/ISO C标准 13
1.8.2 C99标准 14
1.9 本书的组织结构 14
1.10 本书体例 14
1.10.1 字体 15
1.10.2 屏幕输出 15
1.11 总结 16
1.12 复习题 16
1.13 编程练习 16
第2章 C语言概述 17
2.1 C语言的一个简单实例 18
2.2 解释 18
2.2.1 第一遍 快速简介 18
2.2.2 第二遍 细节 20
2.3 一个简单程序的结构 25
2.4 使程序可读的技巧 26
2.5 更进一步 27
2.5.1 说明 27
2.5.2 多个声明 27
2.5.3 乘法 28
2.5.4 输出多个值 28
2.6 多个函数 28
2.7 调试 29
2.7.1 语法错误 30
2.7.2 语义错误 30
2.7.3 程序状态 31
2.8 关键字和保留标识符 32
2.9 关键概念 32
2.10 总结 33
2.11 复习题 33
2.12 编程练习 34
第3章 数据和C 36
3.1 示例程序 37
3.2 变量与常量数据 38
3.3 数据:数据类型关键字 39
3.3.1 整数类型与浮点数类型 40
3.3.2 整数 40
3.3.3 浮点数 40
3.4 C数据类型 41
3.4.1 int类型 41
3.4.2 其他整数类型 43
3.4.3 使用字符:char类型 47
3.4.4 _Bool类型 51
3.4.5 可移植的类型:inttypes.h 51
3.4.6 float、double和long double类型 52
3.4.7 复数和虚数类型 55
3.4.8 其他类型 55
3.4.9 类型大小 57
3.5 使用数据类型 58
3.6 参数和易犯的错误 58
3.7 另一个例子 59
3.7.1 过程分析 60
3.7.2 刷新输出 60
3.8 关键概念 61
3.9 总结 61
3.10 复习题 61
3.11 编程练习 63
第4章 字符串和格式化输入/输出 64
4.1 前导程序 65
4.2 字符串简介 66
4.2.1 char数组类型和空字符 66
4.2.2 使用字符串 67
4.2.3 strlen()函数 67
4.3 常量和C预处理器 69
4.3.1 const修饰符 71
4.3.2 系统定义的明显常量 71
4.4 研究和利用printf()和scanf() 73
4.4.1 printf()函数 73
4.4.2 使用printf() 74
4.4.3 printf()的转换说明修饰符 75
4.4.4 转换的意义 79
4.4.5 使用scanf() 84
4.4.6 printf()和scanf()的*修饰符 87
4.5 用法提示 88
4.6 关键概念 89
4.7 总结 89
4.8 复习题 90
4.9 编程练习 91
第5章 运算符、表达式和语句 93
5.1 循环简介 94
5.2 基本运算符 95
5.2.1 赋值运算符:= 95
5.2.2 加法运算符:+ 97
5.2.3 减法运算符:- 97
5.2.4 符号运算符:- 和 + 97
5.2.5 乘法运算符:* 97
5.2.6 除法运算符:/ 99
5.2.7 运算符的优先级 100
5.2.8 优先级和求值顺序 101
5.3 其他运算符 103
5.3.1 sizeof运算符和size_t类型 103
5.3.2 取模运算符:% 103
5.3.3 增量和减量运算符:++和-- 104
5.3.4 减量:-- 107
5.3.5 优先级 108
5.3.6 不要太聪明 108
5.4 表达式和语句 109
5.4.1 表达式 109
5.4.2 语句 110
5.4.3 复合语句(代码块) 112
5.5 类型转换 113
5.6 带有参数的函数 115
5.7 一个示例程序 117
5.8 关键概念 118
5.9 总结 118
5.10 复习题 119
5.11 编程练习 121
第6章 C控制语句:循环 123
6.1 最初的例子 124
6.1.1 程序注解 125
6.1.2 C风格的读循环 126
6.2 while语句 126
6.2.1 终止while循环 127
6.2.2 循环何时终止 127
6.2.3 while:入口条件循环 127
6.2.4 语法要点 128
6.3 比较大小:使用关系运算符和表达式 129
6.3.1 什么是真 130
6.3.2 还有什么是真 131
6.3.3 真值的问题 132
6.3.4 新的_Bool类型 133
6.3.5 关系运算符的优先级 134
6.4 不确定循环与计数循环 136
6.5 for循环 136
6.6 更多赋值运算符:+=、-=、*=、/=和%= 141
6.7 逗号运算符 141
6.8 退出条件循环:do while 145
6.9 选择哪种循环 147
6.10 嵌套循环 147
6.10.1 程序讨论 148
6.10.2 嵌套变化 148
6.11 数组 149
6.12 使用函数返回值的循环例子 151
6.12.1 程序讨论 153
6.12.2 使用具有返回值的函数 154
6.13 关键概念 154
6.14 总结 154
6.15 复习题 155
6.16 编程练习 159
第7章 C控制语句:分支和跳转 161
7.1 if语句 162
7.2 在if语句中添加else关键字 163
7.2.1 另一个例子:介绍getchar()和putchar() 165
7.2.2 ctype.h系列字符函数 166
7.2.3 多重选择else if 168
7.2.4 把else与if配对 170
7.2.5 多层嵌套的if 171
7.3 获得逻辑性 174
7.3.1 改变拼写法:iso646.h头文件 175
7.3.2 优先级 175
7.3.3 求值的顺序 176
7.3.4 范围 177
7.4 一个统计字数的程序 177
7.5 条件运算符?: 180
7.6 循环辅助手段:continue和break 181
7.6.1 continue语句 182
7.6.2 break语句 184
7.7 多重选择:switch和break 185
7.7.1 使用switch语句 186
7.7.2 只读取一行的首字符 188
7.7.3 多重标签 188
7.7.4 switch和if else 190
7.8 goto语句 190
7.9 关键概念 193
7.10 总结 193
7.11 复习题 194
7.12 编程练习 196
第8章 字符输入/输出和输入确认 199
8.1 单字符I/O:getchar()和putchar() 200
8.2 缓冲区 201
8.3 终止键盘输入 202
8.3.1 文件、流和键盘输入 202
8.3.2 文件结尾 203
8.4 重定向和文件 204
8.5 创建一个更友好的用户界面 208
8.5.1 使用缓冲输入 208
8.5.2 混合输入数字和字符 210
8.6 输入确认 212
8.6.1 分析程序 215
8.6.2 输入流和数值 216
8.7 菜单浏览 216
8.7.1 任务 217
8.7.2 使执行更顺利 217
8.7.3 混合字符和数值输入 219
8.8 关键概念 221
8.9 总结 221
8.10 复习题 222
8.11 编程练习 222
第9章 函数 224
9.1 函数概述 225
9.1.1 编写和使用一个简单的函数 225
9.1.2 程序分析 226
9.1.3 函数参数 228
9.1.4 定义带有参数的函数:形式参量 229
9.1.5 带参数函数的原型声明 230
9.1.6 调用带有参数的函数:实际参数 230
9.1.7 黑盒子观点 231
9.1.8 使用return从函数中返回一个值 231
9.1.9 函数类型 234
9.2 ANSI C的函数原型 234
9.2.1 产生的问题 235
9.2.2 ANSI的解决方案 236
9.2.3 无参数和不确定参数 237
9.2.4 函数原型的优点 237
9.3 递归 237
9.3.1 递归的使用 238
9.3.2 递归的基本原理 238
9.3.3 尾递归 239
9.3.4 递归和反向计算 241
9.3.5 递归的优缺点 242
9.4 所有C函数地位同等 243
9.5 多源代码文件程序的编译 243
9.5.1 UNIX 243
9.5.2 Linux 243
9.5.3 DOS命令行编译器 244
9.5.4 Windows和Macintosh编译器 244
9.5.5 头文件的使用 244
9.6 地址运算符:& 247
9.7 改变调用函数中的变量 248
9.8 指针简介 249
9.8.1 间接运算符:* 250
9.8.2 指针声明 250
9.8.3 使用指针在函数间通信 251
9.9 关键概念 254
9.10 总结 255
9.11 复习题 255
9.12 编程练习 256

第10章 数组和指针 257
10.1 数组 258
10.1.1 初始化 258
10.1.2 指定初始化项目(C99) 261
10.1.3 为数组赋值 262
10.1.4 数组边界 262
10.1.5 指定数组大小 264
10.2 多维数组 264
10.2.1 初始化二维数组 266
10.2.2 更多维数的数组 267
10.3 指针和数组 268
10.4 函数、数组和指针 270
10.4.1 使用指针参数 272
10.4.2 评论:指针和数组 274
10.5 指针操作 274
10.6 保护数组内容 276
10.6.1 对形式参量使用const 277
10.6.2 有关const的其他内容 278
10.7 指针和多维数组 280
10.7.1 指向多维数组的指针 282
10.7.2 指针兼容性 283
10.7.3 函数和多维数组 284
10.8 变长数组(VLA) 286
10.9 复合文字 289
10.10 关键概念 291
10.11 总结 291
10.12 复习题 292
10.13 编程练习 294
第11章 字符串和字符串函数 296
11.1 在程序中定义字符串 298
11.2 字符串数组及其初始化 299
11.2.1 数组与指针 300
11.2.2 字符串数组 301
11.2.3 指针和字符串 302
11.3 字符串输入 303
11.3.1 创建存储空间 303
11.3.2 gets()函数 304
11.3.3 fgets()函数 305
11.3.4 scanf()函数 306
11.4 字符串输出 307
11.4.1 puts()函数 307
11.4.2 fputs()函数 308
11.4.3 printf()函数 309
11.5 自定义字符串输入/输出函数 309
11.6 字符串函数 311
11.6.1 strlen()函数 311
11.6.2 strcat()和strncat()函数 312
11.6.3 strcmp()和strncmp()函数 314
11.6.4 strcpy()和strncpy()函数 317
11.6.5 sprintf()函数 320
11.6.6 其他字符串函数 321
11.7 字符串例子:字符串排序 323
11.8 ctype.h字符函数和字符串 325
11.9 命令行参数 326
11.9.1 集成环境下的命令行参数 328
11.9.2 Macintosh的命令行参数 328
11.10 把字符串转换为数字 329
11.11 关键概念 331
11.12 总结 331
11.13 复习题 331
11.14 编程练习 334
第12章 存储类、链接和内存管理 336
12.1 存储类 337
12.1.1 作用域 337
12.1.2 链接 338
12.1.3 存储时期 339
12.1.4 自动变量 339
12.1.5 寄存器变量 342
12.1.6 具有代码块作用域的静态变量 342
12.1.7 具有外部链接的静态变量 343
12.1.8 具有内部链接的静态变量 347
12.1.9 多文件 347
12.1.10 存储类说明符 347
12.1.11 存储类和函数 349
12.1.12 使用哪种存储类 350
12.2 随机数函数和静态变量 350
12.3 掷骰子 353
12.3.1 分配内存:malloc()和free() 356
12.3.2 free()的重要性 358
12.3.3 函数calloc() 359
12.3.4 动态内存分配与变长数组 359
12.3.5 存储类与动态内存分配 360
12.4 ANSI C的类型限定词 360
12.4.1 类型限定词const 360
12.4.2 类型限定词volatile 362
12.4.3 类型限定词restrict 362
12.5 旧关键字的新位置 363
12.6 关键概念 364
12.7 总结 364
12.8 复习题 365
12.9 编程练习 366
第13章 文件输入/输出 369
13.1 和文件进行通信 370
13.1.1 文件是什么 370
13.1.2 I/O级别 371
13.1.3 标准文件 371
13.2 标准I/O 371
13.2.1 检查命令行参数 372
13.2.2 fopen()函数 373
13.2.3 getc()函数和putc()函数 374
13.2.4 文件结尾 374
13.2.5 fclose()函数 375
13.2.6 标准文件 375
13.3 一个简单的文件压缩程序 375
13.4 文件I/O:fprintf ( )、fscanf ( )、fgets ( )和fputs ( )函数 377
13.4.1 fprintf()和fscanf()函数 377
13.4.2 fgets()和fputs()函数 378
13.5 随机存取:fseek()和ftell()函数 379
13.5.1 fseek()和ftell()如何工作 380
13.5.2 二进制模式和文本模式 381
13.5.3 可移植性 382
13.5.4 fgetpos()和fsetpos()函数 382
13.6 标准I/O内幕 382
13.7 其他标准I/O函数 383
13.7.1 int ungetc(int c,FILE * fp)函数 383
13.7.2 int fflush(FILE * fp)函数 384
13.7.3 int setvbuf(FILE * fp,char * buf,int mode,size_t size)函数 384
13.7.4 二进制I/O:fread()和fwrite()函数 384
13.7.5 size_t fwrite(void * ptr,size_t size,size_t nmemb,FILE * fp)函数 385
13.7.6 size_t fread(void * ptr,size_t size,size_t nmemb,FILE * fp)函数 386
13.7.7 int feof(FILE * fp)和int ferror(FILE * fp)函数 386
13.7.8 一个例子 386
13.7.9 使用二进制I/O进行随机存取 388
13.8 关键概念 389
13.9 总结 390
13.10 复习题 390
13.11 编程练习 392
第14章 结构和其他数据形式 394
14.1 示例问题:创建书籍目录 395
14.2 建立结构声明 396
14.3 定义结构变量 396
14.3.1 初始化结构 397
14.3.2 结构的指定初始化项目 398
14.4 访问结构成员 398
14.5 结构数组 399
14.5.1 声明结构数组 400
14.5.2 标识结构数组的成员 401
14.5.3 程序讨论 401
14.6 嵌套结构 402
14.7 指向结构的指针 403
14.7.1 声明和初始化结构指针 404
14.7.2 使用指针访问成员 405
14.8 向函数传递结构信息 405
14.8.1 传递结构成员 406
14.8.2 使用结构地址 406
14.8.3 把结构作为参数传递 407
14.8.4 其他结构特性 408
14.8.5 结构,还是指向结构的指针 410
14.8.6 在结构中使用字符数组还是字符指针 411
14.8.7 结构、指针和malloc() 412
14.8.8 复合文字和结构(C99) 414
14.8.9 伸缩型数组成员(C99) 415
14.8.10 使用结构数组的函数 416
14.9 把结构内容保存到文件中 418
14.10 结构:下一步是什么 421
14.11 联合简介 421
14.12 枚举类型 424
14.12.1 enum常量 424
14.12.2 默认值 424
14.12.3 指定值 425
14.12.4 用法 425
14.12.5 共享的名字空间 426
14.13 typedef简介 426
14.14 奇特的声明 428
14.15 函数和指针 429
14.16 关键概念 434
14.17 总结 435
14.18 复习题 435
14.19 编程练习 437
第15章 位操作 440
15.1 二进制数、位和字节 441
15.1.1 二进制整数 441
15.1.2 有符号整数 442
15.1.3 二进制浮点数 442
15.2 其他基数 443
15.2.1 十进制 443
15.2.2 十六进制 443
15.3 C的位运算符 444
15.3.1 位逻辑运算符 444
15.3.2 用法:掩码 445
15.3.3 用法:打开位 446
15.3.4 用法:关闭位 446
15.3.5 用法:转置位 447
15.3.6 用法:查看一位的值 447
15.3.7 移位运算符 447
15.3.8 编程实例 448
15.3.9 另一个实例 449
15.4 位字段 451
15.4.1 位字段实例 452
15.4.2 位字段和位运算符 454
15.5 关键概念 458
15.6 总结 459
15.7 复习题 459
15.8 编程练习 460
第16章 C预处理器和C库 462
16.1 第一步 463
16.2 明显常量:#define 463
16.2.1 语言符号 466
16.2.2 重定义常量 466
16.3 在#define中使用参数 467
16.3.1 利用宏参数创建字符串:#运算符 469
16.3.2 预处理器的粘合剂:##运算符 469
16.3.3 可变宏:…和__VA_ARGS__ 470
16.4 宏,还是函数 471
16.5 文件包含:#include 472
16.5.1 头文件:一个实例 473
16.5.2 使用头文件 474
16.6 其他指令 475
16.6.1 #undef指令 475
16.6.2 已定义:C预处理器的观点 475
16.6.3 条件编译 476
16.6.4 预定义宏 479
16.6.5 #line和#error 480
16.6.6 #pragma 481
16.7 内联函数 481
16.8 C库 483
16.8.1 访问C库 483
16.8.2 参考库描述 484
16.9 数学库 485
16.10 通用工具库 487
16.10.1 exit()和atexit()函数 487
16.10.2 qsort()函数 488
16.11 诊断库 492
16.12 string.h库中的memcpy()和memmove() 493
16.13 可变参数:stdarg.h 494
16.14 关键概念 496
16.15 总结 496
16.16 复习题 496
16.17 编程练习 497
第17章 高级数据表示 500
17.1 研究数据表示 501
17.2 从数组到链表 503
17.2.1 使用链表 506
17.2.2 反思 508
17.3 抽象数据类型(ADT) 509
17.3.1 变得抽象 510
17.3.2 构造接口 510
17.3.3 使用接口 513
17.3.4 实现接口 514
17.4 队列ADT 520
17.4.1 实现接口的数据表示 521
17.4.2 测试队列 528
17.5 用队列进行模拟 529
17.6 链表与数组 534
17.7 二叉搜索树 537
17.7.1 二叉树ADT 537
17.7.2 二叉搜索树的接口 538
17.7.3 二叉树的实现 540
17.7.4 试用树 551
17.7.5 树的思想 555
17.8 其他说明 556
17.9 关键概念 557
17.10 总结 557
17.11 复习题 557
17.12 编程练习 557
附录A 复习题答案 559
附录B 参考资料 590


已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

C Primer Plus (第四版) 中文版
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon