书籍详情

21天学通C语言(第6版·修订版)

21天学通C语言(第6版·修订版)

作者:(美)Bradley L.Jones,Peter Aitken 著 信达工作室 译

出版社:人民邮电出版社

出版时间:2012-08-01

ISBN:9787115287236

定价:¥69.00

购买这本书可以去
内容简介
  《21天学通C语言(第6版·修订版)》是初学者学习C语言的经典教程。本版按最新的标准(ISO/IEC:9899-1999),以循序渐进的方式介绍了C语言编程方面知识,并提供了丰富的实例和大量的练习。通过学习实例,并将所学的知识用于完成练习,读者将逐步了解、熟悉并精通C语言。《21天学通C语言(第6版·修订版)》包括四周的课程。第一周的课程介绍了C语言程序的基本元素,包括变量、常量、语句、表达式、函数和循环;第二周的课程介绍了数组、指针、字符和字符串、结构和共用体、变量的作用域、输入/输出等;第三周的课程介绍了有关指针和函数的高级主题、磁盘文件读写、字符串操纵函数、函数库、内存管理以及编译器的高级用法等;第四周是附加课程,简要地介绍了最流行的面向对象语言——C++、Java和C#。《21天学通C语言(第6版·修订版)》针对初中级程序员编写,可作为学习C语言的教程或参考资料。
作者简介
暂缺《21天学通C语言(第6版·修订版)》作者简介
目录
第一周课程第1天课程 C语言概览 2
1.1 C语言简史 2
1.2 为何要使用C语言 2
1.3 编程前的准备工作 3
1.4 程序开发周期 4
1.4.1 创建源代码 4
1.4.2 编译源代码 5
1.4.3 链接以创建可执行文件 5
1.4.4 结束开发周期 6
1.5 第一个C语言程序 7
1.6 总结 9
1.7 问与答 10
1.8 作业 10
1.8.1 小测验 10
1.8.2 练习 11TYPE & RUN 1 打印程序清单 13
第一个TYPE & RUN 13第2天课程 C语言程序的组成部分 15
2.1 一个简短的C语言程序 15
2.2 程序的组成部分 16
2.2.1 main()函数(第8~23行) 16
2.2.2 #include编译指令(第2行) 16
2.2.3 变量定义(第4行) 17
2.2.4 函数原型(第6行) 17
2.2.5 程序语句(第11、12、15、16、19、20、22和28行) 17
2.2.6 函数定义(第26~29行) 17
2.2.7 程序注释(第1、10、14、18和25行) 18
2.2.8 使用花括号(第9、23、27和29行) 18
2.2.9 运行程序 18
2.2.10 有关精度的说明 19
2.3 重温程序的组成部分 19
2.4 总结 21
2.5 问与答 21
2.6 作业 22
2.6.1 小测验 22
2.6.2 练习 22第3天课程 存储信息:变量和常量 24
3.1 计算机内存 24
3.2 使用变量存储信息 25
3.3 数值变量的类型 26
3.3.1 变量声明 28
3.3.2 typedef关键字 29
3.3.3 初始化变量 29
3.4 常量 30
3.4.1 字面常量 30
3.4.2 符号常量 30
3.5 总结 33
3.6 问与答 33
3.7 作业 34
3.7.1 小测验 34
3.7.2 练习 34第4天课程 语句、表达式和运算符 36
4.1 语句 36
4.1.1 空白对语句的影响 36
4.1.2 创建空语句 37
4.1.3 使用复合语句 37
4.2 表达式 37
4.2.1 简单表达式 37
4.2.2 复杂表达式 38
4.3 运算符 38
4.3.1 赋值运算符 39
4.3.2 数学运算符 39
4.3.3 运算符优先级和圆括号 42
4.3.4 子表达式的计算顺序 43
4.3.5 关系运算符 43
4.4 if语句 44
4.4.1 else子句 46
4.5 判断关系表达式 48
4.5.1 关系运算符的优先级 49
4.6 逻辑运算符 50
4.7 再谈true/false值 51
4.7.1 运算符的优先级 51
4.7.2 复合赋值运算符 52
4.7.3 条件运算符 53
4.7.4 逗号运算符 53
4.8 再谈运算符优先级 54
4.9 总结 54
4.10 问与答 55
4.11 作业 55
4.11.1 小测验 55
4.11.2 练习 56TYPE & RUN 2 猜数游戏 58第5天课程 使用函数封装代码 60
5.1 函数是什么 60
5.1.1 函数的定义 60
5.1.2 函数的用法 60
5.2 函数的工作原理 62
5.3 函数和结构化编程 63
5.3.1 结构化编程的优点 63
5.3.2 规划结构化程序 63
5.3.3 从顶向下的方法 64
5.4 编写函数 65
5.4.1 函数头 65
5.4.2 函数的返回类型 65
5.4.3 函数名 65
5.4.4 参数列表 65
5.4.5 函数体 67
5.4.6 函数原型 70
5.5 将参数传递给函数 71
5.6 调用函数 71
5.7 函数的位置 74
5.8 内联函数 74
5.9 总结 74
5.10 问与答 75
5.11 作业 75
5.11.1 小测验 75
5.11.2 练习 76第6天课程 基本的程序流程控制 77
6.1 数组的基本知识 77
6.2 控制程序的执行 78
6.2.1 for语句 78
6.2.2 嵌套for语句 82
6.2.3 while语句 83
6.2.4 嵌套while语句 86
6.2.5 do…while循环 87
6.3 嵌套循环 90
6.4 总结 91
6.5 问与答 91
6.6 作业 92
6.6.1 小测验 92
6.6.2 练习 92第7天课程 信息读写基础 94
7.1 在屏幕上显示信息 94
7.1.1 printf()函数 94
7.1.2 格式化字符串 94
7.1.3 转义序列 95
7.1.4 使用puts()显示消息 100
7.2 使用scanf()函数输入数值数据 101
7.3 三字符序列 104
7.4 总结 105
7.5 问与答 105
7.6 作业 106
7.6.1 小测验 106
7.6.2 练习 106第一周复习 108第二周课程第8天课程 使用数值数组 114
8.1 数组是什么 114
8.1.1 一维数组 114
8.1.2 多维数组 117
8.2 命名和声明数组 118
8.2.1 初始化数组 120
8.2.2 初始化多维数组 120
8.2.3 数组的最大长度 123
8.3 总结 125
8.4 问与答 125
8.5 作业 126
8.5.1 小测验 126
8.5.2 练习 126第9天课程 指针 128
9.1 指针是什么 128
9.1.1 计算机内存 128
9.1.2 创建指针 129
9.2 指针和简单变量 129
9.2.1 声明指针 129
9.2.2 初始化指针 130
9.2.3 使用指针 130
9.3 指针和变量类型 132
9.4 指针和数组 133
9.4.1 作为指针的数组名 133
9.4.2 数组元素的存储 133
9.4.3 指针算术 135
9.5 有关指针的注意事项 138
9.6 数组下标表示法和指针 138
9.7 将数组传递给函数 139
9.8 总结 143
9.9 问与答 143
9.10 作业 143
9.10.1 小测验 143
9.10.2 练习 144TYPE & RUN 3 让程序暂停 145第10天课程 字符和字符串 147
10.1 char数据类型 147
10.2 使用字符变量 147
10.3 使用字符串 150
10.3.1 字符数组 150
10.3.2 初始化字符数组 150
10.4 字符串和指针 151
10.5 不存储在数组中的字符串 151
10.5.1 编译时分配字符空间 151
10.5.2 malloc()函数 152
10.5.3 使用malloc()函数 153
10.6 显示字符串和字符 155
10.6.1 puts()函数 155
10.6.2 printf()函数 156
10.7 从键盘读取字符串 156
10.7.1 使用gets()函数输入字符串 156
10.7.2 使用scanf()函数输入字符串 159
10.8 总结 161
10.9 问与答 161
10.10 作业 162
10.10.1 小测验 162
10.10.2 练习 163第11天课程 结构、共用体和TypeDef 164
11.1 简单结构 164
11.1.1 定义和声明结构 164
11.1.2 存取结构的成员 165
11.2 复杂结构 167
11.2.1 包含其他结构的结构 167
11.2.2 包含数组的结构 170
11.3 结构数组 171
11.4 初始化结构 174
11.5 结构和指针 176
11.5.1 将指针作为结构的成员 176
11.5.2 创建指向结构的指针 178
11.5.3 使用指针和结构数组 179
11.5.4 将结构作为参数传递给函数 181
11.6 共用体 182
11.6.1 定义、声明和初始化共用体 182
11.6.2 存取共用体的成员 183
11.7 使用typedef给结构创建别名 187
11.8 总结 187
11.9 问与答 187
11.10 作业 188
11.10.1 小测验 188
11.10.2 练习 188第12天课程 变量作用域 190
12.1 作用域是什么 190
12.1.1 演示作用域 190
12.1.2 作用域为何重要 192
12.2 外部变量 192
12.2.1 外部变量的作用域 192
12.2.2 何时使用外部变量 192
12.2.3 extern关键字 192
12.3 局部变量 193
12.3.1 静态变量和动态变量 194
12.3.2 函数参数的作用域 196
12.3.3 外部静态变量 196
12.3.4 寄存器变量 196
12.4 局部变量和main()函数 197
12.5 应使用哪种存储类型 197
12.6 局部变量和代码块 198
12.7 总结 199
12.8 问与答 199
12.9 作业 200
12.9.1 小测验 200
12.9.2 练习 200TYPE & RUN 4 机密消息 203第13天课程 高级程序流程控制 206
13.1 提早结束循环 206
13.1.1 break语句 206
13.1.2 continue语句 208
13.2 goto语句 209
13.3 死循环 211
13.4 switch语句 214
13.5 退出程序 221
13.6 在程序中执行操作系统命令 222
13.7 总结 224
13.8 问与答 224
13.9 作业 225
13.9.1 小测验 225
13.9.2 练习 225第14天课程 操纵屏幕、打印机和键盘 227
14.1 流和C语言 227
14.1.1 何为程序的输入/输出 227
14.1.2 什么是流 228
14.1.3 文本流和二进制流 228
14.1.4 预定义的流 228
14.2 使用C语言的流函数 229
14.3 读取键盘输入 230
14.3.1 字符输入 230
14.3.2 格式化输入 236
14.4 控制屏幕输出 242
14.4.1 使用putchar()、putc()和fputc()输出字符 242
14.4.2 使用puts()和fputs()输出字符串 244
14.4.3 使用printf()和fprintf()格式化输出 244
14.5 重定向输入/输出 249
14.6 何时使用fprintf() 251
14.7 总结 252
14.8 问与答 253
14.9 作业 253
14.9.1 小测验 253
14.9.2 练习 254第二周复习 255第三周课程第15天课程 有关指针的高级主题 262
15.1 声明指向指针的指针 262
15.2 指针和多维数组 263
15.3 指针数组 269
15.3.1 复习字符串和指针 269
15.3.2 声明char类型指针数组 269
15.3.3 范例 271
15.4 函数指针 275
15.4.1 声明函数指针 276
15.4.2 初始化并使用函数指针 276
15.5 链表 283
15.5.1 有关链表的基本知识 283
15.5.2 使用链表 284
15.5.3 演示简单链表 288
15.5.4 实现链表 290
15.6 总结 297
15.7 问与答 297
15.8 作业 297
15.8.1 小测验 297
15.8.2 练习 298第16天课程 使用磁盘文件 300
16.1 将流与磁盘文件关联起来 300
16.2 磁盘文件的类型 300
16.3 文件名 301
16.4 打开文件 301
16.5 读写文件数据 304
16.5.1 格式化文件输入/输出 304
16.5.2 字符输入/输出 307
16.5.3 直接文件输入/输出 309
16.6 文件缓冲技术:关闭和刷新文件 311
16.7 顺序文件存取和随机文件存取 312
16.7.1 ftell()和rewind()函数 313
16.7.2 fseek()函数 315
16.8 检测文件尾 317
16.9 文件管理函数 319
16.9.1 删除文件 319
16.9.2 给文件重命名 320
16.9.3 复制文件 321
16.10 使用临时文件 323
16.11 总结 324
16.12 问与答 324
16.13 作业 325
16.13.1 小测验 325
16.13.2 练习 325TYPE & RUN 5 计算字符数 327第17天课程 操纵字符串 331
17.1 确定字符串的长度 331
17.2 复制字符串 332
17.2.1 strcpy()函数 332
17.2.2 strncpy()函数 333
17.2.3 strdup()函数 334
17.3 拼接字符串 335
17.3.1 strcat()函数 335
17.3.2 strncat()函数 337
17.4 比较字符串 338
17.4.1 比较两个完整字符串 338
17.4.2 比较字符串的一部分 340
17.4.3 比较字符串时忽略大小写 341
17.5 查找字符串 341
17.5.1 strchr()函数 341
17.5.2 strrchr()函数 342
17.5.3 strcspn()函数 342
17.5.4 strspn()函数 343
17.5.5 strpbrk()函数 344
17.5.6 strstr()函数 345
17.6 字符串转换 346
17.7 其他字符串函数 347
17.7.1 strrev()函数 347
17.7.2 strset()和strnset()函数 347
17.8 将字符串转换为数字 348
17.8.1 将字符串转换为int 348
17.8.2 将字符串转换为long值 349
17.8.3 将字符串转换为long long值 349
17.8.4 将字符串转换为浮点数 349
17.9 字符检测函数 350
17.10 总结 354
17.11 问与答 354
17.12 作业 355
17.12.1 小测验 355
17.12.2 练习 355第18天课程 有关函数的高级主题 357
18.1 将指针传递给函数 357
18.2 void类型的指针 360
18.3 接受可变数目参数的函数 362
18.4 返回指针的函数 364
18.5 总结 366
18.6 问与答 366
18.7 作业 367
18.7.1 小测验 367
18.7.2 练习 367第19天课程 函数库 369
19.1 数学函数 369
19.1.1 三角函数 369
19.1.2 指数函数和对数函数 369
19.1.3 双曲线函数 370
19.1.4 其他数学函数 370
19.1.5 演示数学函数 370
19.2 处理时间 371
19.2.1 时间的表示 371
19.2.2 时间函数 372
19.2.3 使用时间函数 374
19.3 处理错误 376
19.3.1 assert()宏 376
19.3.2 头文件errno.h 378
19.3.3 perror()函数 378
19.4 查找和排序 380
19.4.1 使用bsearch()进行查找 380
19.4.2 使用qsort()进行排序 381
19.4.3 演示查找和排序 381
19.5 总结 386
19.6 问与答 386
19.7 作业 387
19.7.1 小测验 387
19.7.2 练习 387TYPE & RUN 6 计算抵押贷款的偿还金额 389第20天课程 管理内存 391
20.1 类型转换 391
20.1.1 自动类型转换 391
20.1.2 显式转换 393
20.2 分配内存的存储空间 394
20.2.1 使用malloc()函数分配内存 394
20.2.2 使用calloc()函数分配内存 396
20.2.3 使用realloc()函数分配更多的内存 397
20.2.4 使用free()函数释放内存 399
20.3 操纵内存块 400
20.3.1 使用memset()函数初始化内存 401
20.3.2 使用memcpy()复制内存中的数据 401
20.3.3 使用memmove()函数移动内存中的数据 401
20.4 位的用法 402
20.4.1 移位运算符 403
20.4.2 按位逻辑运算符 404
20.4.3 求补运算符 405
20.4.4 结构中的位字段 405
20.5 总结 406
20.6 问与答 407
20.7 作业 407
20.7.1 小测验 407
20.7.2 练习 408第21天课程 编译器的高级用法 410
21.1 使用多个源代码文件的编程 410
21.1.1 模块化编程的优点 410
21.1.2 模块化编程技术 410
21.1.3 模块的组成部分 412
21.1.4 外部变量和模块化编程 413
21.1.5 使用.obj文件 413
21.1.6 使用生成工具 414
21.2 C语言的预处理器 414
21.2.1 #define预处理器编译指令 415
21.2.2 使用编译指令#include 418
21.2.3 使用#if、#elif、#else和#endif 418
21.2.4 使用#if…#endif来帮助调试 419
21.2.5 避免将头文件包含多次 420
21.2.6 #undef编译指令 420
21.3 预定义的宏 421
21.4 使用命令行参数 421
21.5 总结 423
21.6 问与答 423
21.7 作业 424
21.7.1 小测验 424
21.7.2 练习 424第三周复习 426附加课程第22天课程 附加课程1 面向对象编程语言 434
22.1 过程性语言和面向对象语言 434
22.2 面向对象的特征 435
22.2.1 多态 435
22.2.2 封装 437
22.2.3 继承 438
22.2.4 使用OOP 438
22.2.5 C++与C语言的关系 441
22.2.6 C++程序 442
22.3 Java编程语言 442
22.3.1 Java与C和C++的关系 442
22.3.2 Java的平台独立性 443
22.3.3 包 443
22.3.4 Java小程序(applet)和应用程序 443
22.3.5 Java的类库 443
22.3.6 使用Java编写一个显示Hello, World的程序 444
22.4 C#编程语言 444
22.5 总结 445
22.6 问与答 445
22.7 作业 446
22.7.1 小测验 446
22.7.2 练习 446第23天课程 附加课程2 C++编程语言 447
23.1 第一个C++程序 447
23.2 C++的关键字 449
23.3 C++的数据类型 449
23.4 声明变量 450
23.5 运算 451
23.6 函数 451
23.6.1 重载函数 451
23.6.2 为参数设置默认值 451
23.6.3 内联函数 453
23.7 总结 456
23.8 问与答 456
23.9 作业 456
23.9.1 小测验 456
23.9.2 练习 457第24天课程 附加课程3 C++类和对象 458
24.1 C++中的复杂数据类型 458
24.2 类的用法 464
24.2.1 控制对类中数据的访问 465
24.2.2 设置类数据的访问类型 466
24.3 创建存取成员函数 469
24.4 结构与类 471
24.5 类的内务管理 472
24.5.1 构造函数 472
24.5.2 析构函数 472
24.5.3 使用构造函数和析构函数 472
24.6 再谈函数重载 474
24.7 再谈C++的OOP特征 474
24.8 将类用作数据成员 474
24.9 继承 475
24.9.1 创建用于继承的基类 476
24.9.2 数据存取限定符protected 478
24.9.3 继承基类 478
24.9.4 再谈构造函数和析构函数 481
24.10 本书介绍的C++知识小结 482
24.11 详细介绍C++的图书 483
24.12 总结 483
24.13 问与答 483
24.14 作业 484
24.14.1 小测验 484
24.14.2 练习 484第25天课程 附加课程4 Java语言基础 485
25.1 Java程序的结构 485
25.2 Java程序的基本组成部分 485
25.2.1 导入语句 486
25.2.2 方法 486
25.2.3 注释 486
25.3 Java中的关键字 487
25.4 Java标识符 488
25.5 数据类型 489
25.5.1 基本数据类型 489
25.5.2 常量 490
25.5.3 声明和初始化变量 490
25.5.4 变量的作用域 490
25.5.5 存储字符串数据 491
25.6 输入和输出 492
25.7 数组 494
25.8 运算符 494
25.9 流程控制 495
25.9.1 if…else 495
25.9.2 while和do…while 495
25.9.3 switch 496
25.9.4 for 496
25.10 总结 497
25.11 问与答 497
25.12 作业 497
25.12.1 小测验 497
25.12.2 练习 498第26天课程 附加课程5 Java类和方法 499
26.1 定义类 499
26.1.1 指定类所属的包 500
26.1.2 创建类的属性 500
26.1.3 创建并使用一个简单的类 500
26.2 类的方法 501
26.2.1 方法演示 502
26.2.2 重载方法 504
26.2.3 类的构造函数 505
26.3 使用继承 508
26.4 总结 511
26.5 问与答 511
26.6 作业 511第27天课程 附加课程6 其他Java技术 512
27.1 异常 512
27.2 读写文件 513
27.2.1 读文本文件 513
27.2.2 写文本文件 514
27.3 图形和Windows编程 516
27.3.1 创建Windows应用程序 516
27.3.2 绘制几何形状和直线 517
27.3.3 使用按钮和弹出式窗口 519
27.4 编写Java小程序 522
27.4.1 小程序和应用程序之间的区别 522
27.4.2 小程序的结构 523
27.4.3 将小程序加入到Web页中 523
27.4.4 使用小程序 524
27.5 总结 525
27.6 问与答 526
27.7 作业 526第28天课程 附加课程7 C#编程语言 527
28.1 C#是什么 527
28.2 为何使用C# 527
28.2.1 C#是简单的 528
28.2.2 C#是现代的 528
28.2.3 C#是面向对象的 528
28.2.4 C#强大、灵活 528
28.2.5 C#包含的单词为数不多 528
28.2.6 C#是模块化的 529
28.2.7 C#是流行的 529
28.3 C#和其他编程语言的比较 529
28.4 C#程序的类型 530
28.5 创建C#程序 530
28.5.1 给源代码文件命名 530
28.5.2 执行C#程序 531
28.5.3 编译C#源代码 531
28.5.4 C#编译器和.NET运行环境 532
28.6 第一个C#程序 532
28.7 显示基本信息 532
28.8 C#和Web 534
28.9 总结 535
28.10 问与答 535
28.11 作业 535
28.11.1 小测验 535
28.11.2 练习 536附加课程复习 537附录A ASCII字符集 538附录B C/C++中的保留字 542附录C 使用二进制和十六进制数 544
C.1 十进制 544
C.2 二进制 544
C.3 十六进制 544附录D 移植性问题 546
D.1 ANSI标准 546
D.2 ANSI关键字 546
D.3 区分大小写 546
D.4 可移植的字符 548
D.5 确保ANSI兼容性 548
D.6 绕开ANSI标准 549
D.7 使用可移植的数值变量 549
D.7.1 最大值和最小值 550
D.7.2 确定数字的类型 555
D.7.3 转换字符的大小写:一个可移植性范例 558
D.8 可移植的结构和共用体 559
D.8.1 字对齐 559
D.8.2 读写结构 560
D.8.3 在可移植的程序中使用非-ANSI特性 560
D.8.4 ANSI标准头文件 562
D.9 总结 562
D.10 问与答 562
D.11 作业 563
D.11.1 小测验 563
D.11.2 练习 563附录E 常用的C语言函数 565附录F 作业答案 569
第1天课程的答案 569
第2天课程的答案 570
第3天课程的答案 571
第4天课程的答案 572
第5天课程的答案 574
第6天课程的答案 577
第7天课程的答案 578
第8天课程的答案 582
第9天课程的答案 586
第10天课程的答案 588
第11天课程的答案 590
第12天课程的答案 592
第13天课程的答案 595
第14天课程的答案 596
第15天课程的答案 597
第16天课程的答案 599
第17天课程的答案 599
第18天课程的答案 600
第19天课程的答案 601
第20天课程的答案 601
第21天课程的答案 603
附加课程1的答案 603
附加课程2的答案 604
附加课程3的答案 604
附加课程4的答案 605
附加课程5的答案 605
附加课程6的答案 605
附加课程7的答案 606附录G Dev-C++编译器 607
G.1 Dev-C++简介 607
G.2 在Microsoft Windows上安装Dev-C++ 607
G.3 Dev-C++中的程序 609
G.4 使用Dev-C++ 609
G.4.1 针对C语言编程定制Dev-C++ 610
G.4.2 在Dev-C++中输入并编译程序 611
G.4.3 编译Dev-C++程序 613
G.4.4 运行Dev-C++程序 613
G.5 总结 614
猜您喜欢

读书导航