简介
本书分为19章,内容包括认识C语言、C语言程序结构、算法与流程图、基本数据类型、运算符和表达式、程序流程控制结构、函数、数组与字符串、指针、结构体、共用体、枚举、操作文件、编译与预处理指令、使用库函数、位运算、网络套接字编程、动态数据结构、数据结构进阶、排序等。*后通过1个综合项目实训,进一步讲述C语言在实际工作中的应用。本书注重实战操作,帮助读者循序渐进地掌握C语言中的各项技术。本书共有400多个实例,还有大量的经典习题。随书下载包中赠送了培训班形式的视频教学录像,详细讲解了书中每一个知识点与编程方法和技巧。同时下载包中还提供了本书所有例子的源代码,读者可以直接查看和调用。本书适合C语言初学者和C语言开发人员,同时也能作为高等院校和培训学校相关专业的师生教学参考。
目录
目 录
第1章 为什么要学习C语言——认识C语言 1
1.1C语言概述 1
1.1.1C语言的起源 1
1.1.2C语言的特点 2
1.1.3C语言的应用领域 4
1.2C语言的常用开发环境 4
1.2.1Visual C 6.0开发环境 4
1.2.2Turbo C 2.0开发环境 10
1.2.3Visual Studio 2017开发环境 11
1.3C语言编译机制 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.1C语言源程序 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.2N-S流程图 57
3.3 如何描述算法 57
3.3.1自然语言 57
3.3.2流程图 59
3.3.3三种基本结构 60
3.3.4N-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.8typedef与#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.1if条件 139
6.2.2if…else条件 142
6.2.3条件运算符 144
6.3 多重选择语句 145
6.3.1if…else…if语句 145
6.3.2if的嵌套语句 147
6.3.3switch分支结构语句 149
6.4 循环语句 151
6.4.1while循环 152
6.4.2do…while循环 153
6.4.3for循环 155
6.4.4循环语句的嵌套 157
6.5 跳出循环 158
6.5.1break语句 158
6.5.2continue语句 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.1IP地址 446
15.1.2OSI七层参考模型 447
15.1.3地址解析 448
15.1.4域名系统 449
15.1.5TCP/IP协议 449
15.1.6端口 451
15.1.7网络字节顺序 452
15.2认识套接字 452
15.2.1套接字概述 452
15.2.2TCP的套接字的socket编程 453
15.2.3UDP的套接字的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.1malloc()函数 470
16.1.2calloc()函数 471
16.1.3realloc()函数 472
16.1.4free()函数 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
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
