
标準C程式设计(第6版)
本书通过示例程式、案例学习、编程练习、项目设计以及其他教学手段来帮助读者更好地理解C语言,使得学习过程更加愉悦
基本介绍
- 书名:标準C程式设计(第6版)
- ISBN:9787302346661
- 类别:计算机
- 页数:507
- 定价:68元
- 出版社:清华大学出版社
- 出版时间:2013-12-12
- 装帧:平装
- 开本:16开
图书简介
第6版保留了这本畅销书的精髓,以简洁、清晰且逻辑有序的方式讲解C语言程式设计的概念,十分适合C语言的初学者。本书通过示例程式、案例学习、编程练习、项目设计以及其他教学手段来帮助读者更好地理解C语言,使得学习过程更加愉悦。
图书目录
第1章C语言概述 1
1.1C语言的历史 1
1.2C语言的主要特性 3
1.3示例程式1:显示一条讯息 3
1.4示例程式2:两个数相加 6
1.5示例程式3:利息计算 7
1.6示例程式4:子例程的使用 9
1.7示例程式5:数学函式的使用 10
1.8C程式的基本结构 11
1.9编程风格 12
1.10运行C程式 13
1.11在UNIX系统环境下 14
1.11.1创建程式 14
1.11.2编译与连结 14
1.11.3运行程式 15
1.11.4创建自己的可运行档案 15
1.11.5多个源档案问题 15
1.12在MS-DOS系统环境下 16
複习题 17
编程练习 19
第2章常量、变数及数据类型 21
2.1概述 21
2.2字元集 21
2.3C标记符 23
2.4关键字与标识符 23
2.5常量 24
2.5.1整型常量 24
2.5.2实数常量 26
2.5.3单字元常量 27
2.5.4字元串常量 27
2.5.5反斜槓字元常量 27
2.6变数 28
2.7数据类型 29
2.7.1整型 30
2.7.2浮点型 31
2.7.3void类型 31
2.7.4字元类型 32
2.8变数的声明 32
2.8.1基本类型的声明 32
2.8.2自定义类型的声明 34
2.9存储类型的声明 35
2.10变数的赋值 36
2.10.1赋值语句 36
2.10.2从键盘读取数据 38
2.11符号常量的定义 41
2.11.1可修改性 41
2.11.2可理解性 41
2.12将变数声明为常量 42
2.13将变数声明为可变的 42
2.14数据的溢出 43
2.15案例学习 44
2.15.1平均数计算 44
2.15.2温度转换问题 44
複习题 45
编程练习 47
第3章运算符与表达式 49
3.1概述 49
3.2算术运算符 49
3.2.1整数算术运算 50
3.2.2实数算术运算 51
3.2.3混合算术运算 52
3.3关係运算符 52
3.4逻辑运算符 53
3.5赋值运算符 54
3.6递增和递减运算符 56
3.7条件运算符 57
3.8逐位运算符 57
3.9特殊运算符 58
3.9.1逗号运算符 58
3.9.2sizeof运算符 58
3.10算术表达式 60
3.11表达式的计算 60
3.12算术表达式的优先权 61
3.13一些可计算性问题 63
3.14表达式中的类型转换 64
3.14.1隐式类型转换 64
3.14.2显式类型转换 65
3.15运算符的优先权及其关联性 67
3.16数学函式 69
3.17案例学习 70
3.17.1销售人员的工资 70
3.17.2二次方程的求解 71
複习题 72
编程练习 76
第4章输入输出操作管理 79
4.1概述 79
4.2读取一个字元 80
4.3写一个字元 82
4.4格式化输入 83
4.4.1整数输入 84
4.4.2实数输入 86
4.4.3字元串输入 87
4.4.4混合数据类型的读取 89
4.4.5错误输入的检测 89
4.4.6使用scanf函式时应记住的几个要点 91
4.5格式化输出 92
4.5.1整数的输出 93
4.5.2实数的输出 94
4.5.3单个字元的显示 95
4.5.4字元串的显示 96
4.5.5混合数据的输出 97
4.5.6提高输出的可读性 98
4.6案例学习 99
4.6.1库存报告 99
4.6.2可靠性图形 100
複习题 102
编程练习 105
第5章判断与分支 107
5.1概述 107
5.2if判断语句 107
5.3简单if语句 108
5.4if…else语句 111
5.5嵌套if…else语句 114
5.6阶梯式elseif语句 117
5.7switch语句 120
5.8?:运算符 124
5.9goto语句 128
5.10案例学习 131
5.10.1数值的分布範围 131
5.10.2账单计算 132
练习题 135
编程练习 139
第6章判断与循环 143
6.1概述 143
6.2while语句 145
6.3do语句 147
6.4for语句 149
6.4.1简单的for循环 149
6.4.2for循环的其他特性 153
6.4.3for循环的嵌套 154
6.5循环中的跳转 158
6.5.1跳出循环 158
6.5.2跳过循环的一部分 162
6.5.3避免使用goto语句 164
6.5.4跳出程式 164
6.6简洁的测试表达式 164
6.7案例学习 166
6.7.1二项式係数表 166
6.7.2柱状图 167
6.7.3最小成本 169
6.7.4描绘两函式的曲线图 170
複习题 172
编程练习 175
第7章数组 179
7.1概述 179
7.2一维数组 180
7.3一维数组的声明 182
7.4一维数组的初始化 184
7.4.1编译时初始化 184
7.4.2运行时初始化 185
7.5二维数组 189
7.6二维数组的初始化 192
7.7多维数组 200
7.8动态数组 200
7.9与数组相关的其他内容 201
7.10案例学习 202
7.10.1数列的中值问题 202
7.10.2标準差的计算 204
7.10.3测试评分 205
7.10.4产品与销售分析 207
複习题 213
编程练习 215
第8章字元数组与字元串 219
8.1概述 219
8.2字元串变数的声明与初始化 220
8.3从终端读取字元串 221
8.3.1使用scanf函式 221
8.3.2读取文本行 223
8.3.3使用getchar和gets函式 223
8.4在萤幕上显示字元串 227
8.4.1使用printf函式 227
8.4.2使用putchar和puts函式 230
8.5字元的算术运算 231
8.6将字元串组合在一起 232
8.7两个字元串的比较 234
8.8字元串处理函式 234
8.8.1strcat函式 234
8.8.2strcmp函式 236
8.8.3strcpy函式 236
8.8.4strlen函式 236
8.8.5其他字元串函式 238
8.9字元串表 240
8.10字元串的其他特性 242
8.11案例学习 243
8.11.1计算文本中的单词数 243
8.11.2客户列表处理程式 244
複习题 246
编程练习 249
第9章用户自定义函式 251
9.1概述 251
9.2为什幺需要自定义函式 251
9.3多函式程式 252
9.4自定义函式的元素 254
9.5函式定义 255
9.5.1函式头 256
9.5.2函式体 257
9.6返回值及其类型 257
9.7函式调用 258
9.8函式声明 260
9.9函式的类型 262
9.10无参数无返回值的函式 262
9.11有参数无返回值的函式 264
9.12有参数有返回值的函式 267
9.13无参数但有一个返回值的函式 271
9.14返回多个值的函式 271
9.15函式的嵌套 272
9.16函式的递归 273
9.17将数组传递给函式 275
9.17.1一维数组 275
9.17.2二维数组 278
9.18将字元串传递给函式 279
9.19变数的作用域、可见性和生存期 279
9.19.1自动变数 280
9.19.2外部变数 281
9.19.3外部声明 284
9.19.4静态变数 285
9.19.5暂存器变数 286
9.19.6嵌套代码块 287
9.20多档案程式 288
9.21案例学习 290
複习题 293
编程练习 297
第10章结构体与共用体 299
10.1概述 299
10.2结构体的定义 299
10.3声明结构体变数 301
10.4访问结构体成员 303
10.5结构体的初始化 304
10.6结构体变数的複製与比较 305
10.7单个成员的运算 307
10.8结构体数组 308
10.9结构体中的数组 310
10.10结构体中的结构体 311
10.11结构体与函式 313
10.12共用体 316
10.13结构体的大小 317
10.14位域 317
10.15案例学习 321
複习题 324
编程练习 327
第11章指针 331
11.1概述 331
11.2理解指针 331
11.3访问变数的地址 333
11.4指针变数的声明 334
11.5指针变数的初始化 336
11.6通过指针访问变数 337
11.7指针链 339
11.8指针表达式 340
11.9指针的递增与比例因子 341
11.10指针与数组 342
11.11指针与字元串 345
11.12指针数组 347
11.13将指针作为函式的参数 348
11.14函式返回指针 351
11.15指向函式的指针 352
11.16指针与结构体 354
11.17指针存在的问题 357
11.18案例学习 358
11.18.1考试成绩处理程式 358
11.18.2库存更新程式 362
複习题 363
编程练习 366
第12章档案管理 367
12.1概述 367
12.2定文并打开档案 368
12.3关闭档案 369
12.4档案的输入输出操作 370
12.4.1getc与putc函式 370
12.4.2getw和putw函式 371
12.4.3fprintf与fscanf函式 373
12.5I/O操作的错误处理 375
12.6随机访问档案 377
12.7命令行参数 382
複习题 385
编程练习 386
第13章动态记忆体分配与鍊表 387
13.1概述 387
13.2动态记忆体分配 387
13.3用malloc函式分配一块记忆体 388
13.4用calloc函式分配多个记忆体块 390
13.5用free函式释放已用的空间 391
13.6用realloc函式改变记忆体块的大小 391
13.7鍊表的概念 393
13.8鍊表的优点 395
13.9鍊表的种类 396
13.10再论指针 397
13.11创建鍊表 399
13.12插入一个数据项 402
13.13删除一个数据项 405
13.14鍊表的套用 407
13.15案例学习 408
13.15.1在已排序鍊表中插入数据 408
13.15.2构建已排序的鍊表 411
複习题 413
编程练习 415
第14章预处理器 417
14.1概述 417
14.2宏替换指令 418
14.2.1简单宏替换 418
14.2.2带参数的宏 420
14.2.3宏嵌套 421
14.2.4取消宏定义 422
14.3档案包含 422
14.4编译器控制指令 423
14.4.1情形1 423
14.4.2情形2 424
14.4.3情形3 425
14.4.4情形4 425
14.5ANSIC的其他预处理指令 426
14.5.1#elif指令 426
14.5.2#pragma指令 427
14.5.3#error指令 427
14.5.4字元串化运算符# 427
14.5.5标记符贴上运算符## 428
複习题 429
编程练习 430
第15章C程式开发的一些指导原则 431
15.1概述 431
15.2程式设计 431
15.2.1问题分析 431
15.2.2勾勒出程式的结构 432
15.2.3算法开发 432
15.2.4控制结构的选择 433
15.3程式编码 433
15.3.1自身文档化 433
15.3.2语句的构造 434
15.3.3输入/输出格式 434
15.3.4程式的通用性 435
15.4常见的程式错误 435
15.4.1丢失分号 435
15.4.2误用分号 435
15.4.3丢失括弧 436
15.4.4丢失引号 437
15.4.5误用引号 437
15.4.6使用不正确的注释字元 437
15.4.7未声明变数 438
15.4.8忽视了运算符的优先权 438
15.4.9忽视了递增递减运算符的计算顺序 439
15.4.10忽视了函式参数的说明 439
15.4.11在函式调用中实参和形参类型不匹配 439
15.4.12函式未声明 439
15.4.13在scanf函式的参数中丢失了&运算符 440
15.4.14超出了数组的边界 440
15.4.15忘记了给字元串的空字元留出空间 441
15.4.16使用未初始化的指针 441
15.4.17丢失了间接运算符和地址运算符 441
15.4.18在指针表达式中丢失括弧 442
15.4.19宏定义语句中的参数遗漏了括弧 442
15.5程式测试与调试 442
15.5.1错误的类型 443
15.5.2程式测试 443
15.5.3程式调试 444
15.6程式的效率 444
15.6.1运行时间 445
15.6.2记忆体需求 445
複习题 445
附录A位级程式设计 447
附录B字元的ASCII值 453
附录CANSIC语言的库函式 455
附录D项目设计 459
附录EC99的特性 501