文件大小:87.35 MB
文件类型:pdf
发布时间:2021-09-22 12:13:27
需资源分:2
下载次数:2
Tag:C语言程序设计 现代方法
::资源简介::
C语言程序设计_现代方法[第2版],1
目录,9
第01章 C语言概述,17
1_1 C语言的历史,17
1_1_1 起源,17
1_1_2 标准化,17
1_1_3 基于C的语言,18
1_2 C语言的优缺点,19
1_2_1 C语言的优点,19
1_2_2 C语言的缺点,19
1_2_3 高效地使用C语言,20
问与答,21
第02章 C语言基本概念,23
2_1 编写一个简单的C程序,23
[程序]显示双关语,23
2_1_1 编译和链接,24
2_1_2 集成开发环境,24
2_2 简单程序的一般形式,25
2_2_1 指令,25
2_2_2函数,25
2_2_3 语句,26
2_2_4 显示字符串,26
2_3 注释,27
2_4 变量和赋值,28
2_4_1 类型,28
2_4_2 声明,29
2_4_3 赋值,29
2_4_4 显示变量的值,30
[程序]计算箱子的空间重量,30
2_4_5 初始化,31
2_4_6 显示表达式的值,32
2_5 读入输入,32
[程序]计算箱子的空间重量(改进版),32
2_6 定义常量的名字,33
[程序]华氏温度转换为摄氏温度,33
2_7 标识符,34
2_8 C程序的书写规范,35
问与答,37
练习题,39
编程题,40
第03章 格式化输入/输出,42
3_1 printf函数,42
3_1_1 转换说明,43
[程序]用printf函数格式化数,44
3_1_2 转义序列,44
3_2 scanf函数,45
3_2_1 scanf函数的工作方法,46
3_2_2 格式串中的普通字符,47
3_2_3 易混淆的printf函数和scanf函数,48
[程序]分数相加,48
问与答,49
练习题,50
编程题,51
第04章 表达式,52
4_1 算术运算符,52
[程序]计算通用产品代码的校验位,54
4_2 赋值运算符,55
4_2_1 简单赋值,56
4_2_2 左值,57
4_2_3 复合赋值,57
4_3 自增运算符和自减运算符,58
4_4 表达式求值,59
4_5 表达式语句,61
问与答,61
练习题,63
编程题,65
第05章 选择语句,66
5_1 逻辑表达式,66
5_1_1 关系运算符,66
5_1_2 判等运算符,67
5_1_3 逻辑运算符,67
5_2 if语句,68
5_2_1 复合语句,69
5_2_2 else子句,69
5_2_3 级联式if语句,70
[程序]计算股票经纪人的佣金,71
5_2_4 “悬空else”的问题,72
5_2_5 条件表达式,73
5_2_6 C89中的布尔值,74
5_2_7 C99中的布尔值,74
5_3 switch语句,75
[程序]显示法定格式的日期,77
问与答,78
练习题,81
编程题,83
第06章 循环,85
6_1 while语句,85
[程序]显示平方表,87
[程序]数列求和,87
6_2 do语句,88
[程序]计算整数的位数,89
6_3 for语句,89
6_3_1 for语句的惯用法,90
6_3_2 在for语句中省略表达式,91
6_3_3 C99中的for语句,91
6_3_4 逗号运算符,92
[程序]显示平方表(改进版),93
6_4 退出循环,94
6_4_1 break语句,94
6_4_2 continue语句,94
6_4_3 goto语句,95
[程序]账簿结算,96
6_5 空语句,97
问与答,99
练习题,100
编程题,101
第07章 基本类型,104
7_1 整数类型,104
7_1_1 C99中的整数类型,106
7_1_2 整数常量,106
7_1_3 C99中的整数常量,107
7_1_4 整数溢出,107
7_1_5 读/写整数,107
[程序]数列求和(改进版),108
7_2 浮点类型,109
7_2_1 浮点常量,110
7_2_2 读/写浮点数,110
7_3 字符类型,110
7_3_1 字符操作,111
7_3_2 有符号字符和无符号字符,111
7_3_3 算术类型,112
7_3_4 转义序列,112
7_3_5 字符处理函数,113
7_3_6 用scanf和printf读/写字符,114
7_3_7 用getchar和putchar读/写字符,114
[程序]确定消息的长度,115
7_4 类型转换,116
7_4_1 常用算术转换,117
7_4_2 赋值过程中的转换,118
7_4_3 C99中的隐式转换,119
7_4_4 强制类型转换,119
7_5 类型定义,121
7_5_1 类型定义的优点,121
7_5_2 类型定义和可移植性,121
7_6 sizeof运算符,122
问与答,123
练习题,125
编程题,126
第08章 数组,129
8_1 一维数组,129
8_1_1 数组下标,129
[程序]数列反向,131
8_1_2 数组初始化,131
8_1_3 指定初始化式,132
[程序]检查数中重复出现的数字,132
8_1_4 对数组使用sizeof运算符,133
[程序]计算利息,134
8_2 多维数组,135
8_2_1 多维数组初始化,136
8_2_2 常量数组,137
[程序]发牌,137
8_3 C99中的变长数组,138
问与答,139
练习题,140
编程题,141
第09章函数,145
9_1 函数的定义和调用,145
[程序]计算平均值,145
[程序]显示倒计数,146
[程序]显示双关语(改进版),147
9_1_1 函数定义,148
9_1_2 函数调用,149
[程序]判定素数,150
9_2函数声明,151
9_3 实际参数,152
9_3_1 实际参数的转换,153
9_3_2 数组型实际参数,154
9_3_3 变长数组形式参数,156
9_3_4 在数组参数声明中使用static,157
9_3_5 复合字面量,157
9_4 return语句,158
9_5 程序终止,159
9_6 递归,160
[程序]快速排序,162
问与答,163
练习题,166
编程题,169
第10章 程序结构,171
10_1 局部变量,171
10_1_1 静态局部变量,172
10_1_2 形式参数,172
10_2 外部变量,172
10_2_1 示例:用外部变量实现栈,172
10_2_2 外部变量的利与弊,173
[程序]猜数,174
10_3 程序块,177
10_4 作用域,178
10_5 构建C程序,179
[程序]给一手牌分类,179
问与答,185
练习题,185
编程题,186
第11章 指针,188
11_1 指针变量,188
11_2 取地址运算符和间接寻址运算符,189
11_2_1 取地址运算符,189
11_2_2 间接寻址运算符,190
11_3 指针赋值,190
11_4 指针作为参数,192
[程序]找出数组中的最大元素和最小元素,193
11_5 指针作为返回值,195
问与答,196
练习题,197
编程题,198
第12章 指针和数组,200
12_1 指针的算术运算,200
12_1_1 指针加上整数,201
12_1_2 指针减去整数,201
12_1_3 两个指针相减,202
12_1_4 指针比较,202
12_1_5 指向复合常量的指针,202
12_2 指针用于数组处理,202
12_3 用数组名作为指针188程序数列反向(改进版),205
12_3_1 数组型实际参数(改进版),205
12_3_2 用指针作为数组名,207
12_4 指针和多维数组,207
12_4_1 处理多维数组的元素,207
12_4_2 处理多维数组的行,208
12_4_3 处理多维数组的列,208
12_4_4 用多维数组名作为指针,208
12_5 C99中的指针和变长数组,209
问与答,210
练习题,211
编程题,213
第13章 字符串,214
13_1 字符串字面量,214
13_1_1 字符串字面量中的转义序列,214
13_1_2 延续字符串字面量,215
13_1_3 如何存储字符串字面量,215
13_1_4 字符串字面量的操作,216
13_1_5 字符串字面量与字符常量,216
13_2 字符串变量,216
13_2_1 初始化字符串变量,217
13_2_2 字符数组与字符指针,218
13_3 字符串的读和写,219
13_3_1 用printf函数和puts函数写字符串,219
13_3_2 用scanf函数和gets函数读字符串,219
13_3_3 逐个字符读字符串,220
13_4 访问字符串中的字符,221
13_5 使用C语言的字符串库,222
13_5_1 strcpy函数,223
13_5_2 strlen函数,224
13_5_3 strcat函数,224
13_5_4 strcmp函数209程序显示一个月的提醒列表,225
13_6 字符串惯用法,227
13_6_1 搜索字符串的结尾,227
13_6_2 复制字符串,229
13_7 字符串数组,230
[程序]核对行星的名字,233
问与答,234
练习题,236
编程题,238
第14章 预处理器,241
14_1 预处理器的工作原理,241
14_2 预处理指令,243
14_3 宏定义,243
14_3_1 简单的宏,243
14_3_2 带参数的宏,245
14_3_3 #运算符,247
14_3_4 ##运算符,247
14_3_5 宏的通用属性,248
14_3_6 宏定义中的圆括号,249
14_3_7 创建较长的宏,249
14_3_8 预定义宏,250
14_3_9 C99中新增的预定义宏,251
14_3_10 空的宏参数,252
14_3_11 参数个数可变的宏,252
14_3_12 func标识符,253
14_4 条件编译,253
14_4_1 #if指令和#endif指令,254
14_4_2 defined运算符,254
14_4_3 #ifdef指令和#ifndef指令,255
14_4_4 #elif指令和#else指令,255
14_4_5 使用条件编译,256
14_5 其他指令,256
14_5_1 #error指令,256
14_5_2 #line指令,257
14_5_3 #pragma指令,258
14_5_4_Pragma运算符,258
问与答,259
练习题,261
第15章 编写大型程序,264
15_1 源文件,264
15_2 头文件,265
15_2_1 #include指令,265
15_2_2 共享宏定义和类型定义,266
15_2_3 共享函数原型,267
15_2_4 共享变量声明,268
15_2_5 嵌套包含,269
15_2_6 保护头文件,269
15_2_7 头文件中的#error指令,270
15_3 把程序划分成多个文件254程序文本格式化,271
15_4 构建多文件程序,276
15_4_1 makefile,276
15_4_2 链接期间的错误,278
15_4_3 重新构建程序,278
15_4_4 在程序外定义宏,280
问与答,280
练习题,281
编程题,282
第16章 结构/联合和枚举,283
16_1 结构变量,283
16_1_1 结构变量的声明,283
16_1_2 结构变量的初始化,285
16_1_3 指定初始化,285
16_1_4 对结构的操作,286
16_2 结构类型,286
16_2_1 结构标记的声明,287
16_2_2 结构类型的定义,288
16_2_3 结构作为参数和返回值,288
16_2_4 复合字面量,289
16_3 嵌套的数组和结构,290
16_3_1 嵌套的结构,290
16_3_2 结构数组,290
16_3_3 结构数组的初始化/程序维护零件数据库,291
16_4 联合,297
16_4_1 用联合来节省空间,298
16_4_2 用联合来构造混合的数据结构,300
16_4_3 为联合添加“标记字段”,300
16_5 枚举,301
16_5_1 枚举标记和类型名,302
16_5_2 枚举作为整数,302
16_5_3 用枚举声明“标记字段”,302
问与答,303
练习题,305
编程题,309
第17章 指针的高级应用,310
17_1 动态存储分配,310
17_1_1 内存分配函数,310
17_1_2 空指针,311
17_2 动态分配字符串,312
17_2_1 使用malloc函数为字符串分配内存,312
17_2_2 在字符串函数中使用动态存储分配,312
17_2_3 动态分配字符亭的数组,313
[程序]显示一个月的提醒列表(改进版),313
17_3 动态分配数组,315
17_3_1 使用malloc函数为数组分配存储空间,315
17_3_2 calloc函数,316
17_3_3 realloc函数,316
17_4 释放存储空间,317
17_4_1 free函数,317
17_4_2 悬空指针问题,317
17_5 链表,318
17_5_1 声明结点类型,318
17_5_2 创建结点,319
17_5_3 ->运算符,319
17_5_4 在链表的开始处插入结点,320
17_5_5 搜索链表,322
17_5_6 从链表中删除结点,323
17_5_7 有序链表,324
[程序]维护零件数据库(改进版),325
17_6 指向指针的指针,329
17_7 指向函数的指针,330
17_7_1 函数指针作为参数,330
17_7_2 qsort函数,330
17_7_3 函数指针的其他用途,332
[程序]列三角函数表,333
17_8 受限指针,334
17_9 灵活数组成员,335
问与答,336
练习题,339
编程题,341
第18章 声明,343
18_1 声明的语法,343
18_2 存储类型,344
18_2_1 交量的性质,344
18_2_2 auto存储类型,345
18_2_3 static存储类型,345
18_2_4 extern存储类型,346
18_2_5 register存储类型,347
18_2_6 函数的存储类型,348
18_2_7 小结,348
18_3 类型限定符,349
18_4 声明符,350
18_4_1 解释复杂声明,351
18_4_2 使用类型定义来简化声明,352
18_5 初始化式,352
18_6 内联函数,353
18_6_1 内联定义,354
18_6_2 对内联函数的限制,355
18_6_3 在GCC中使用内联函数,355
问与答,355
练习题,358
第19章 程序设计,361
19_1 模块,361
19_1_1 内聚性与耦合性,363
19_1_2 模块的类型,363
19_2 信息隐藏,363
19_3 抽象数据类型,366
19_3_1 封装,367
19_3_2 不完整类型,367
19_4 栈抽象数据类型,368
19_4_1 为栈抽象数据类型定义接口,368
19_4_2 用定长数组实现栈抽象数据类型,369
19_4_3 改变栈抽象数据类型中数据项的类型,370
19_4_4 用动态数组实现栈抽象数据类型,371
19_4_5 用链求实现栈抽象数据类型,373
19_5 抽象数据类型的设计问题,375
19_5_1 命名惯例,375
19_5_2 错误处理,375
19_5_3 通用抽象数据类型,375
19_5_4 新语言中的抽象数据类型,376
问与答,376
练习题,377
编程题,378
第20章 底层程序设计,379
20_1 位运算符,379
20_1_1 移位运算符,379
20_1_2 按位求反运算符/按位与运算符/按位异或运算符和按位或运算符,380
20_1_3 用位运算符访问位,381
20_1_4 用位运算符访问位域,382
[程序]XOR加密,382
20_2 结构中的位域,383
20_3 其他底层技术,385
20_3_1 定义依赖机器的类型,385
20_3_2 用联合提供数据的多个视角,386
20_3_3 将指针作为地址使用,387
[程序]查看内存单元,387
20_3_4 volatile类型恨之符,389
问与答,390
练习题,390
编程题,392
第21章 标准库,393
21_1 标准库的使用,393
21_1_1 对标准库中所用名字的限制,393
21_1_2 使用宏隐藏的函数,394
21_2 C89标准库概述,394
21_3 C99标准库更新,396
21_4 <Stddef.h>:常用定义,397
21_5 <Stdbool.h>:布尔类型和值,397
问与答,398
练习题,398
编程题,399
第22章 输入/输出,400
22_1 流,400
22_1_1 文件指针,401
22_1_2 标准流和重定向,401
22_1_3 文本文件与二进制文件,401
22_2 文件操作,402
22_2_1 打开文件,402
22_2_2 模式,403
22_2_3 关闲文件,404
22_2_4 为打开的流附加文件,405
22_2_S 从命令行获取文件名,405
[程序]检查文件是否可以打开,405
22_2_6 临时文件,406
22_2_7 文件缓冲,407
22_2_8 其他文件操作,408
22_3 格式化的输入/输出,409
22_3_1 printf函数,409
22_3_2 printf转换说明,409
22_3_3 C99对printf转换说明的修改,411
22_3_4 printf转换说明表例,412
22_3_5 scanf函数,414
22_3_6 scanf格式串,414
22_3_7 scanf转换说明,414
22_3_8 C99对scanf转换说明的改变,416
22_3_9 scanf示例,416
22_3_10 检测文件未见和错误条件,417
22_4 字符的输入j输出,419
22_4_1 输出函数,19
22_4_2 输入函数,419
[程序]复制文件,420
22_S 行的输入/输出,421
22_5_1 输出函数,421
22_5_2 输入函数,422
22_6 块的输入/输出,422
22_7 文件定位,423
[程序]修改零件记录文件,425
22_8 字符巾的输入/输出,425
22_8_1 输出函数,426
22_8_2 输入函数,426
问与答,427
练习题,430
编程题,432
第23章 库对戴值和字符数据的支持,435
23_1 <float.h>:浮点类型的特性,435
23_2 <limits.h>:整数类型的大小,437
23_3 <math.h>:数学计算(C89),438
23_3_1 错误,438
23_3_2 三角函敛,438
23_3_3 双曲函数,439
23_3_4 指数函数和对数函数,439
23_3_5 幂函数,440
23_3_6 就近取整函数/绝对值函数和取余函数,440
23_4 <math.h>:数学计算(C99),441
23_4_1 IEEE浮点标准,441
23_4_2 类型,442
23_4_3 宏,442
23_4_4 错误,442
23_4_5 函数,443
23_4_6 分类宏,443
23_4_7 三角函数,444
23_4_8 双曲函数,444
23_4_9 指数函数和对数函数,445
23_4_10 幂函数和绝对值函数,446
23_4_11 误差函数和伽玛函数,446
23_4_12 就近取整函数,447
23_4_13 取余函数,448
23_4_14 操作函数,448
23_4_15 最大值函数/最小值函数和正差函数,449
23_4_16 浮点乘加,449
23_4_17 比较宏,450
23_5 <ctype.h>:字符处理,450
23_5_1 字符分类函数,451
[程序]测试字符分类函数,452
23_5_2 字符大小写映射函数,453
[程序]测试大小写映射函数,53
23_6 <string.h>:字符串处理,453
23_6_1 复制函数,453
23_6_2 拼接函数,454
23_6_3 比较函数,455
23_6_4 搜索函数,456
23_6_5 其他函数,458
问与答,458
练习题,459
编程题,460
第24章 错误处理,462
24_1 <assert.h>:诊断,462
24_2 <errno.h>:错误,463
24_3 <signal.h>:信号处理,464
24_3_1 信号宏,465
24_3_2 signal函数,465
24_3_3 预定义的信号处理函数,466
24_3_4 raise函数,466
[程序]测试信号,467
24_4 <Setjmp.h>:非局部跳转,468
[程序]测试setjmp和longjmp,468
问与答,469
练习题,470
第25章 国际化特性,472
25_1 <locale.h>:本地化,472
25_1_1 类,472
25_1_2 setlocale函数,473
25_1_3 1ocaleconv函数,474
25_2 多字节字符和宽字符,477
25_2_1 多字节字符,477
25_2_2 宽字符,477
25_2_3 统一码和通用字符集,478
25_2_4 统一码销码,478
25_2_5 多字节/宽字符转换函疆生,479
25_2_6 多字节/宽字符事转换函数,481
25_3 双字符和三字符,481
25_3_1 三字符,481
25_3_2 双字符,482
25_3_3 <iso646.h>:拼写替换,483
25_4 通用字符名,483
25_5 <wchar.h>:扩展的多字节和宽字符实用工具,483
25_5_1 流倾向,484
25_5_2 格式化宽字符输入/输出函数,484
25_5_3 宽字符输入/输出函数,486
25_5_4 通用的宽字符串实用工具,487
25_5_5 宽字符时间转换函数,490
25_5_6 扩展的多字节/宽字符转换实用工具,490
25_6 <WCtype.h>:宽字符分类和映射实用工具,493
25_6_1 宽字符分类函数,493
25_6_2 可扩展的宽字符分类函数,494
25_6_3 宽字符大小写映射函数,494
25_6_4 可扩展的宽字符大小写映射函数,494
问与答,495
练习题,495
编程题,496
第26章 其他库函数,498
26_1 <stdarg.h>:可变参数,498
26_1_1 调用带有可交参数列表的函数,499
26_1_2 v…printf函数,500
26_1_3 v…scanf函数,501
26_2 <stdlib.h>:通用的实用工具,501
26_2_1 数值转换函数,501
[程序]测试数值转换函数,502
26_2_2 伪随机序列生成函数,504
[程序]测试伪随机序列生成函数,504
26_2_3 与环境的通信,505
26_2_4 搜索和排序实用工具,506
[程序]确定航空里程,507
26_2_5 整数算术运算函数,508
26_3 <time.h>:日期和时间,508
26_3_1 时间处理函数,509
26_3_2 时间转换函数,511
[程序]显示日期和时间,514
问与答,516
练习题,517
编程题,518
第27章 C99对数学计算的新增支持,519
27_1 <Stdint.h>:整数类型,519
27_1_1 <Stdint.h>类型,519
27_1_2 对指定宽度整数类型的限制,520
27_1_3 对其他整数类型的限制,521
27_1_4 用于整数常量的宏,521
27_2 <inttypes.h>:整数类型的格式转换,522
27_2_1 用于格式说明符的宏,522
27_2_2 用于最大宽度整数类型的函数,523
27_3 复数,524
27_3_1 复数的定义,524
27_3_2 复数的算术运算,525
27_3_3 C99中的复数类型,525
27_3_4 复数的运算,526
27_3_5 复数类型的转换规则,526
27_4 <complex.h>:复数算术运算,527
27_4_1 <complex.h>宏,527
27_4_2 C>LLIMITED_RANGE编译提示,528
27_4_3 <complex.h>函数,528
27_4_4 三角函数,528
27_4_5 双曲函数,529
27_4_6 指数函数和对数函数,530
27_4_7 函数和绝对值函数,530
27_4_8 操作函数,530
[程序]求二次方程的根,531
27_5 <tgmath.h>:泛型数学,531
27_5_1 泛型宏,532
27_5_2 调用泛型宏,533
27_6 <fenv.h>:浮点环境,534
27_6_1 浮点状态标志和控制模式,534
27_6_2 <fenv.h>宏,535
27_6_3 FENV_ACCESS串串译提示,535
27_6_4 浮点异常函数,536
27_6_5 舍入函数,536
27_6_6 环境函数,537
问与答,537
练习题,538
编程题,539
附录A C语言运算符,540
附录B C99与C89的比较,541
附录C C89与经典C的比较,545
附录D 标准库函数,548
附录E ASCII字符集,585
参考文献,586
索引,589
::下载地址::
>> 评论