定 价:¥129.00
作 者: | 王英英,李小威 |
出版社: | 清华大学出版社 |
丛编项: | |
标 签: | 暂缺 |
ISBN: | 9787302503262 | 出版时间: | 2018-07-01 | 包装: | 平装 |
开本: | 16 | 页数: | 616 | 字数: |
第1章 为什么要学习C语言——认识C语言 1
1.1 C语言概述 1
1.1.1 C语言的起源 1
1.1.2 C语言的特点 2
1.1.3 C语言的应用领域 4
1.2 C语言的常用开发环境 4
1.2.1 Visual C 6.0开发环境 4
1.2.2 Turbo C 2.0开发环境 10
1.2.3 Visual Studio 2017开发环境 11
1.3 C语言编译机制 14
1.4 编写第1个C语言程序 15
1.4.1 在Visual C 6.0中开发C程序 15
1.4.2 在Turbo C中开发C程序 20
1.4.3 在Visual Studio 2017中开发C程序 23
1.5 疑难解惑 25
1.6 经典习题 26
第2章 C语言程序结构 27
2.1 C语言源程序 27
2.1.1 熟悉源程序的特点 28
2.1.2 函数 28
2.2 编码规范 29
2.2.1 版式要求 29
2.2.2 命名规则 30
2.2.3 正确性与容错要求 30
2.3 语句 31
2.3.1 表达式语句 31
2.3.2 函数调用语句 31
2.3.3 控制语句 31
2.3.4 复合语句 32
2.3.5 空语句 32
2.4 输入输出对象 32
2.4.1 格式化输入函数 32
2.4.2 格式化输出函数 36
2.4.3 字符的输入函数 40
2.4.4 字符的输出函数 42
2.4.5 字符串的输入函数 43
2.4.6 字符串的输出函数 44
2.5 关键字 45
2.6 标识符 46
2.7 小试身手—格式控制符对宽度和精度的操作 47
2.8 技能提升—在printf()函数中展示各类格式控制符 48
2.9 疑难解惑 49
2.10 经典习题 50
第3章 算法与流程图 52
3.1 算法的概念 52
3.1.1 算法的特性 53
3.1.2 衡量算法的“好”与“坏” 53
3.2 流程图简介 54
3.2.1 传统流程图 55
3.2.2 N-S流程图 57
3.3 如何描述算法 57
3.3.1 自然语言 57
3.3.2 流程图 59
3.3.3 三种基本结构 60
3.3.4 N-S流程图 66
3.3.5 伪代码 69
3.3.6 计算机语言 71
3.4 结构化程序设计方法 72
3.5 小试身手—求100以内能被3和5整除的数 73
3.6 技能提升—求奇数的阶层之后再求和 74
3.7 疑难解惑 75
3.8 经典习题 76
第4章 数据类型 78
4.1 数据的表示方法 78
4.1.1 十进制 79
4.1.2 二进制 79
4.1.3 八进制 79
4.1.4 十六进制 79
4.2 基本数据类型 80
4.2.1 整数类型 80
4.2.2 字符类型 83
4.2.3 实型 85
4.2.4 布尔类型 87
4.3 数据类型的转换 88
4.3.1 自动类型转换 88
4.3.2 强制类型转换 90
4.4 常量 91
4.4.1 整数常量 91
4.4.2 字符常量 93
4.4.3 字符串常量 95
4.4.4 符号常量 96
4.5 变量 97
4.5.1 变量的定义 97
4.5.2 变量的声明 98
4.5.3 变量的初始化与赋值 99
4.5.4 变量的分类 100
4.6 变量的存储类别 105
4.6.1 动态存储与静态存储 105
4.6.2 自动(auto)变量 105
4.6.3 静态(static)变量 107
4.6.4 寄存器(register)变量 107
4.6.5 外部(extern)变量 108
4.7 混合运算 109
4.7.1 存储形式 109
4.7.2 范围 109
4.4.3 混合运算原则 110
4.8 typedef与#define 111
4.9 小试身手——查询数据类型的长度 112
4.10 技能提升——求长方体的体积及三个面的面积 114
4.11 疑难解惑 115
4.12 经典习题 116
第5章 运算符和表达式 117
5.1 运算符概述 117
5.1.1 赋值运算符 117
5.1.2 算术运算符 120
5.1.3 关系运算符 122
5.1.4 逻辑运算符 124
5.1.5 位逻辑运算符 126
5.1.6 移位运算符 127
5.1.7 条件运算符 128
5.1.8 逗号运算符 130
5.1.9 类型转换运算符 131
5.2 运算符优先级和结合性 132
5.3 表达式概述 133
5.4 小试身手—判断两个变量的大小 134
5.5 技能拓展—运算符解决生活小问题 135
5.6 疑难解惑 136
5.7 经典习题 137
第6章 程序流程控制语句 138
6.1 顺序语句 138
6.2 条件判断语句 139
6.2.1 if条件 139
6.2.2 if…else条件 142
6.2.3 条件运算符 144
6.3 多重选择语句 145
6.3.1 if…else…if语句 145
6.3.2 if的嵌套语句 147
6.3.3 switch分支结构语句 149
6.4 循环语句 151
6.4.1 while循环 152
6.4.2 do…while循环 153
6.4.3 for循环 155
6.4.4 循环语句的嵌套 157
6.5 跳出循环 158
6.5.1 break语句 158
6.5.2 continue语句 159
6.6 小试身手—判定三角形 160
6.7 技能提升—自动售货机 161
6.8 疑难解惑 163
6.9 自我评估 164
第7章函数 165
7.1 函数的基本结构 165
7.1.1 函数的声明与定义 165
7.1.2 函数的调用 170
7.1.3 函数的嵌套调用 174
7.1.4 函数的递归调用 176
7.1.5 函数的参数 179
7.1.6 参数的传递方式 181
7.2 函数的返回语句 184
7.2.1 函数的返回值 184
7.2.2 函数的结束标志 186
7.2.3 函数的返回值类型 187
7.3 变量的作用域 188
7.3.1 局部变量 189
7.3.2 全局变量 190
7.4 小试身手—倒序输出字符 193
7.5 技能提升1—打印乘法口诀表 194
7.6 技能提升2—分析学生的成绩 195
7.7 疑难解惑 197
7.8 经典习题 198
第8章 数组 200
8.1 数组的概述 200
8.2 一维数组 201
8.2.1 一维数组的定义 201
8.2.2 一维数组的引用 203
8.2.3 一维数组的初始化 204
8.2.4 数组的操作 207
8.3 二维数组和多维数组 209
8.3.1 二维数组的定义 209
8.3.2 二维数组的引用 209
8.3.3 二维数组的初始化 212
8.3.4 多维数组 215
8.3.5 数组的操作 217
8.4 数组与函数 220
8.4.1 一维数组作为函数的参数 220
8.4.2 数组名作为函数参数 221
8.4.3 形参数组和实参数组 222
8.5 字符数组 224
8.5.1 字符数组与字符串 224
8.5.2 字符数组的输出与输入 228
8.5.3 字符串处理函数 231
8.6 小试身手—计算字符数组的长度 237
8.7 技能提升—操作矩阵 238
8.8 疑难解惑 240
8.9 经典习题 241
第9章 指针 242
9.1 指针概述 242
9.1.1 地址与指针 242
9.1.2 指针变量的定义 245
9.1.3 指针变量的引用 248
9.2 指针与函数 251
9.2.1 指针变量作为函数参数 251
9.2.2 指针函数 253
9.2.3 函数指针 256
9.3 指针与数组 258
9.3.1 数组元素的指针 258
9.3.2 指针的运算 259
9.3.3 通过指针引用数组元素 260
9.3.4 指向数组的指针变量作为函数参数 262
9.3.5 通过指针对二维数组进行引用 268
9.4 指针与字符串 274
9.4.1 字符指针 274
9.4.2 使用字符指针做函数参数 278
9.4.3 字符数组与字符指针变量的区别 282
9.5 指针数组和多重指针 283
9.5.1 指针数组 284
9.5.2 指向指针的指针 288
9.6 小试身手—遍历数组 294
9.7 综合案例—寻找第一个相同元素 295
9.8 疑难解惑 297
9.9 经典习题 300
第10章 结构体、共用体和枚举 301
10.1 结构体概述 301
10.1.1 结构体类型 301
10.1.2 定义结构体变量 303
10.1.3 初始化结构体变量 305
10.1.4 结构体变量的引用 306
10.2 结构体数组 309
10.2.1 定义结构体数组 309
10.2.2 结构体数组的初始化 311
10.2.3 结构体数组元素的引用 312
10.2.4 结构体数组应用实例 313
10.3 结构体指针 314
10.3.1 指向结构体变量的指针 314
10.3.2 指向结构体数组的指针 318
10.3.3 结构体变量作为函数参数 320
10.3.4 指向结构体变量的指针作为函数参数 321
10.3.5 结构体作为函数的返回值 323
10.4 共用体 324
10.4.1 共用体的定义 324
10.4.2 共用体变量的定义 324
10.4.3 共用体变量的初始化以及引用 326
10.5 枚 举 329
10.5.1 定义枚举类型 329
10.5.2 定义枚举类型变量 330
10.6 小试身手—建立居民身份信息卡 333
10.7 技能提升—创建学生成绩输入系统 335
10.8 疑难解惑 337
10.9 经典习题 339
第11章 操作文件 340
11.1 文件概述 340
11.1.1 文件类型 341
11.1.2 文件指针 342
11.1.3 文件的缓冲区 343
11.2 文件的打开与关闭 343
11.2.1 文件的打开操作 344
11.2.2 文件的关闭 346
11.3 文件的读写 347
11.3.1 字符的读写 347
11.3.2 字符串的读写 351
11.3.3 数据块的读写 354
11.3.4 格式化读写函数 358
11.4 文件定位与文件的随机读写 362
11.4.1 文件头定位函数rewind() 362
11.4.2 随机定位函数fseek() 363
11.4.3 当前读写位置函数ftell() 365
11.5 文件检测函数 366
11.5.1 文件结束检测函数feof() 366
11.5.2 文件读写错误检测函数ferror() 367
11.5.3 文件错误标志清除函数clearerr() 369
11.6 小试身手—整理学生体检信息 370
11.7 技能提升—制作暑期计划表 372
11.8 疑难解惑 374
11.9 经典习题 376
第12章 编译与预处理指令 377
12.1 预处理 377
12.2 宏定义命令—#define 380
12.2.1 无参数的宏 380
12.2.2 带参数的宏定义 384
12.2.3 宏定义的嵌套 390
12.2.4 宏定义的作用范围 391
12.2.5 宏定义的多行表示 392
12.3 文件包含 393
12.4 条件编译 394
12.4.1 条件编译命令 395
12.4.2 调试中使用DEBUG宏 398
12.4.3 文件的嵌套包含与条件编译 400
12.5 小试身手—判断闰年的宏函数 401
12.6 技能提升—大写字母转换 401
12.7 疑难解惑 402
12.8 经典习题 403
第13章 使用库函数 404
13.1 标准C库函数 404
13.2 数学函数“math.h” 405
13.2.1 求幂函数与开平方函数 405
13.2.2 指数函数与对数函数 407
13.2.3 三角函数 408
13.2.4 绝对值函数 410
13.2.5 取整函数与取余函数 411
13.3 字符串函数“string.h” 413
13.3.1 字符串长度函数 413
13.3.2 字符串连接函数 414
13.3.3 字符串复制函数 415
13.3.4 字符串大小写转换函数 418
13.3.5 字符串查找函数 419
13.3.6 字符串比较函数 421
13.4 字符函数“ctype.h” 424
13.4.1 字符的类型判断函数 424
13.4.2 字符大小写转换函数 426
13.5 其他函数 428
13.5.1 随机函数 428
13.5.2 日期时间函数 429
13.5.3 结束程序函数 431
13.6 小试身手—字符串首字母转换成大写 432
13.7 技能提升—计算任意三角形面积代码 433
13.8 疑难解惑 434
13.9 经典习题 435
第14章 位运算 436
14.1 位(bit)与字节(byte)的关系 436
14.2 循环移位 436
14.3 位段 439
14.3.1 位段的定义 439
14.3.2 位段结构在内存中的存储方式 440
14.4 小试身手—计算段位结构的大小 442
14.5 技能提升—将十进制数转换为二进制数 443
14.6 疑难解惑 444
14.7 经典习题 445
第15章 网络套接字编程 446
15.1 计算机网络入门 446
15.1.1 IP地址 446
15.1.2 OSI七层参考模型 447
15.1.3 地址解析 448
15.1.4 域名系统 449
15.1.5 TCP/IP协议 449
15.1.6 端口 451
15.1.7 网络字节顺序 452
15.2 认识套接字 452
15.2.1 套接字概述 452
15.2.2 TCP的套接字的socket编程 453
15.2.3 UDP的套接字的socket编程 453
15.3 套接字函数 454
15.4 小试身手——基于TCP协议的服务端程序 463
15.5 技能提升——基于TCP协议的客户端程序 465
15.6 疑难解惑 467
15.7 经典习题 468
第16章 动态数据结构 469
16.1 动态存储分配概述 469
16.1.1 malloc()函数 470
16.1.2 calloc()函数 471
16.1.3 realloc()函数 472
16.1.4 free()函数 474
16.2 链表概述 475
16.2.1 链表结点的定义 475
16.2.2 链表的建立 476
16.2.3 链表的遍历 476
16.2.4 链表结点的插入 478
16.2.5 链表结点的删除 482
16.3 小试身手—链表的建立、插入和删除 486
16.4 综合案例—使用链表添加学生信息 490
16.5 疑难解惑 493
16.6 经典习题 494
第17章 数据结构进阶 495
17.1 数据结构概述 495
17.2 线性表 497
17.3 栈 499
17.3.1 栈的基本操作 500
17.3.2 顺序栈 500
17.3.3 链式栈 503
17.4 队列 505
17.4.1 队列的基本运算 505
17.4.2 顺序队列 505
17.4.3 链式队列 509
17.5 二叉树 513
17.5.1 二叉树的定义 513
17.5.2 二叉树的遍历 513
17.6 查找 515
17.6.1 顺序查找 515
17.6.2 折半查找 516
17.7 小试身手—查找数组中指定的元素 518
17.8 综合案例—操作队列 520
17.9 疑难解惑 524
17.10 经典习题 525
第18章 排序 526
18.1 排序的概述 526
18.2 冒泡排序 527
18.3 快速排序 529
18.4 直接插入排序 531
18.5 希尔排序 533
18.6 简单选择排序 535
18.7 堆排序 537
18.8 基数排序 540
18.9 归并排序 542
18.10 疑难解惑 545
18.11 经典习题 547
第19章 项目实训——开发餐饮管理系统 548
19.1 需求分析 548
19.2 功能分析 549
19.3 开发前准备工作 550
19.4 系统代码编写 551
19.4.1 登录管理模块 551
19.4.2 员工管理模块 554
19.4.3 用餐服务相关功能 581
19.4.4 数据组织及工具方法 597
19.4.5 主程序入口 609
19.5 系统运行 610
19.6 项目总结 616