新書推薦:
《
小原流花道技法教程
》
售價:HK$
109.8
《
少女映像室 唯美人像摄影从入门到实战
》
售價:HK$
110.9
《
詹姆斯·伍德系列:不负责任的自我:论笑与小说(“美国图书评论奖”入围作品 当代重要文学批评家詹姆斯·伍德对“文学中的笑与喜剧”的精湛研究)
》
售價:HK$
87.4
《
武当内家散手
》
售價:HK$
50.4
《
诛吕:“诸吕之乱”的真相与吕太后时期的权力结构
》
售價:HK$
99.7
《
炙野(全2册)
》
售價:HK$
78.2
《
女人的胜利
》
售價:HK$
55.9
《
数据有道:数据分析+图论与网络+微课+Python编程(鸢尾花数学大系:从加减乘除到机器学习)
》
售價:HK$
266.6
|
編輯推薦: |
《C语言程序设计(慕课版 第2版)》是一本C语言程序设计互联网教材,买书送名师,明日科技资深讲师面对面授课。本课程依托人民邮电出版社自主开发的在线教育慕课平台人邮学院(www.rymooc.com),该平台具有完备的在线教、学、测功能。人邮学院提供体系完整的100学时慕课教学视频同步讲解,即学即练的在线测试。书中附有188个微课视频,扫一扫书中二维码,便可随时随地学习。附赠300余道习题和自测题, PPT 课件、案例源代码、自测试卷、拓展案例等丰富的配套资源。
|
內容簡介: |
本书系统全面的介绍了有关C语言程序设计开发所涉及的各类知识。全书共分18章,内容包括C语言概述、算法、数据类型、运算符与表达式、常用的数据输入 输出函数、选择结构程序设计、循环控制、数组、函数、指针、结构体和共用体、位运算、预处理、文件、存储管理、网络套接字编程、综合开发实例趣味俄罗斯方块、课程设计学生信息管理系统。
|
關於作者: |
作者多年在高校从事c语言的教学工作,具有丰富的教学经验,同时承担了多项课题,参与了很多企业的程序开发工作,具有很强的程序开发能力,是双师型教师。在我社出版的第一版教材获得了较高的社会认可。
|
目錄:
|
第1章 C语言概述 1
1.1 C语言的发展史 2
1.1.1 程序语言简述 2
1.1.2 C语言的历史2
1.2 C语言的特点 3
1.3 一个简单的C程序
3 1.4 一个完整的C程序 5
1.5 C语言程序的格式 8
1.6 开发环境 9
1.6.1 Dev C 9
1.6.2 Visual C 6.0 12
1.6.3 Visual Studio 2019 14
小结 16
上机指导 16
习题 17
第2章 算法 18
2.1 算法的基本概念 19
2.1.1 算法的特性 19
2.1.2 算法的优劣 19
2.2 算法的描述 20
2.2.1 自然语言 20
2.2.2 流程图 21
2.2.3 N-S流程图 24
小结 25
上机指导 26
习题 26
第3章 数据类型 27
3.1 编程规范 28
3.2 关键字 28
3.3 标识符 29
3.4 数据类型 30
3.5 常量 31
3.5.1 整型常量 31
3.5.2 实型常量 32
3.5.3 字符型常量 33
3.5.4 转义字符 36
3.5.5 符号常量 36
3.6 变量 37
3.6.1 整型变量 37
3.6.2 实型变量 39
3.6.3 字符型变量 41
3.7 变量的存储类别 42
3.7.1 auto变量 42
3.7.2 static变量 43
3.7.3 register变量 44
3.7.4 extern变量 44
3.8 混合运算 45
小结 46
上机指导 47
习题 47
第4章 运算符与表达式 48
4.1 表达式 49
4.2 赋值运算符与赋值表达式 50
4.2.1 变量赋初值 50
4.2.2 自动类型转换 52
4.2.3 强制类型转换 52
4.3 算术运算符与算术表达式 53
4.3.1 算术运算符 54
3.3.2 算术表达式 54
4.3.3 优先级与结合性 55
4.3.4 自增、自减运算符 56
4.4 关系运算符与关系表达式 57
4.4.1 关系运算符 58
4.4.2 关系表达式 58
4.4.3 优先级与结合性 59
4.5 逻辑运算符与逻辑表达式 60
4.5.1 逻辑运算符 60
4.5.2 逻辑表达式 60
4.5.3 优先级与结合性 60
4.6 位逻辑运算符与位逻辑表达式 61
4.6.1 位逻辑运算符 61
4.6.2 位逻辑表达式 62
4.7 逗号运算符与逗号表达式 62
4.8 复合赋值运算符 63
小结 64
上机指导 65
习题 66
第5章 常用的数据输入 输出函数 67
5.1 语句 68 5.2 字符数据输入 输出 68
5.2.1 字符数据输出 68
5.2.2 字符数据输入 69
5.3 字符串输入 输出 71
5.3.1 字符串输出函数 71
5.3.2 字符串输入函数 72 5.4 格式输出函数 73
5.5 格式输入函数 76 5.6 顺序程序设计应用 79
小结 81
上机指导 81
习题 81
第6章 选择结构程序设计 82
6.1 if语句 83
6.2 if语句的基本形式 83
6.2.1 if语句形式 83
6.2.2 if...else语句形式 85
6.2.3 else if语句形式 88
6.3 if的嵌套形式 91
6.4 条件运算符 93
6.5 switch语句 95
6.5.1 switch语句的基本形式 95
6.5.2 多路开关模式的switch语句 98
6.6 if...else语句和switch语句的区别 100
6.7 选择结构程序应用 101
小结 103
上机指导 103
习题 104
第7章 循环控制 105
7.1 循环语句 106
7.2 while语句 106
7.3 do...while语句 107
7.4 for语句 109
7.4.1 for语句使用 109
7.4.2 for循环的变体 111
7.4.3 for语句中的逗号应用 112
7.5 3种循环语句的比较 113
7.6 循环嵌套 114
7.6.1 循环嵌套的结构 114
7.6.2 循环嵌套实例 115
7.7 转移语句 116
7.7.1 goto语句 116
7.7.2 break语句 118
7.7.3 continue语句 119
小结 120
上机指导 120
习题 120
第8章 数组 121
8.1 一维数组 122
8.1.1 一维数组的定义和引用 122
8.1.2 一维数组初始化 123
8.1.3 一维数组应用 125
8.2 二维数组 126
8.2.1 二维数组的定义和引用 126
8.2.2 二维数组初始化 127
8.2.3 二维数组应用 130
8.3 字符数组 131
8.3.1 字符数组的定义和引用 131
8.3.2 字符数组初始化 132
8.3.3 字符数组的结束标志 133
8.3.4 字符数组的输入和输出 134
8.3.5 字符数组应用 135 8.4 多维数组 136
8.5 数组的排序算法 136
8.5.1 选择法排序 136
8.5.2 冒泡法排序 138
8.5.3 交换法排序 139
8.5.4 插入法排序 141
8.5.5 折半法排序 143
8.5.6 排序算法的比较 145
8.6 字符串处理函数 145
8.6.1 字符串复制 145
8.6.2 字符串连接 146
8.6.3 字符串比较 147
8.6.4 字符串大小写转换 148
8.6.5 获得字符串长度 149
8.7 数组应用 150
8.7.1 反转输出字符串 150
8.7.2 输出系统日期和时间 151
8.7.3 字符串的加密和解密 153
小结 155
上机指导 155
习题 155
第9章 函数 156
9.1 函数概述 157
9.2 函数的定义 158
9.2.1 函数定义的形式 159
9.2.2 声明与定义 160
9.3 返回语句 163
9.3.1 从函数返回 163
9.3.2 返回值 163
9.4 函数参数 165
9.4.1 形式参数与实际参数 165
9.4.2 数组作函数参数 166
9.4.3 main函数的参数 171
9.5 函数的调用 172
9.5.1 函数的调用方式 172
9.5.2 嵌套调用 175
9.5.3 递归调用 178
9.6 内部函数和外部函数 179
9.6.1 内部函数 180
9.6.2 外部函数 181
9.7 局部变量和全局变量 182
9.7.1 局部变量 182
9.7.2 全局变量 184
9.8 函数应用 186
小结 190
上机指导 191
习题 191
第10章 指针 192
10.1 指针相关概念 193
10.1.1 地址与指针 193
10.1.2 变量与指针 193 10.1.3 指针变量 194
10.1.4 指针自加自减运算 197
10.2 数组与指针 198
10.2.1 一维数组与指针 198
10.2.2 二维数组与指针 201
10.2.3 字符串与指针 204
10.2.4 字符串数组 205 10.3 指向指针的指针 207
10.4 指针变量作函数参数 209
10.5 返回指针值的函数 216
10.6 指针数组作main函数的参数 217
小结 219
上机指导 219
习题 219
第11章 结构体和共用体 220
11.1 结构体 221
11.1.1 结构体类型的概念 221
11.1.2 结构体变量的定义 222
11.1.3 结构体变量的引用 223
11.1.4 结构体类型变量的初始化 225
11.2 结构体数组 226
11.2.1 定义结构体数组 226
11.2.2 结构体数组的初始化 227
11.3 结构体指针 229
11.3.1 指向结构体变量的指针 229
11.3.2 指向结构体数组的指针 231
11.3.3 结构体作为函数参数 233
11.4 包含结构的结构 235
11.5 链表 236
11.5.1 链表概述 236
11.5.2 创建动态链表 237
11.5.3 输出链表 239
11.6 链表相关操作 242
11.6.1 链表的插入操作 242
11.6.2 链表的删除操作 243
11.7 共用体 246
11.7.1 共用体的概念 246
11.7.2 共用体变量的引用 246
11.7.3 共用体变量的初始化 247
11.7.4 共用体类型的数据特点 248
11.8 枚举类型 248
小结 249
上机指导 250
习题 250
第12章 位运算 251
12.1 位与字节 252
12.2 位运算操作符 252
12.2.1 与运算符 252
12.2.2 或运算符 253
12.2.3 取反运算符 254
12.2.4 异或运算符 255
12.2.5 左移运算符 257
12.2.6 右移运算符 258
12.3 循环移位 260
12.4 位段 261
12.4.1 位段的概念与定义 261
12.4.2 位段相关说明 262
小结 264
上机指导 264
习题 264
第13章 预处理 265
13.1 宏定义 266
13.1.1 不带参数的宏定义 266
13.1.2 带参数的宏定义 267
13.2 #include命令 268
13.3 条件编译 269
13.3.1 #if命令 269
13.3.2 #ifdef及#ifndef命令 271
13.3.3 #undef命令 273
13.3.4 #line命令 273
13.3.5 #pragma命令 273
小结 274
上机指导 274
习题 275
第14章 文件 276
14.1 文件概述 277
14.2 文件基本操作 277
14.2.1 文件类型指针 277
14.2.2 文件的打开 278
14.2.3 文件的关闭 278
14.3 文件的读写 279
14.3.1 fputc函数 279
14.3.2 fgetc函数 279
14.3.3 fputs函数 280
14.3.4 fgets函数 281
14.3.5 fprintf函数 282
14.3.6 fscanf函数 283
14.3.7 fread和fwrite函数 284
14.4 文件的定位 286
14.4.1 fseek函数 286
14.4.2 rewind函数 287
14.4.3 ftell函数 288
小结 289 上机指导 289
习题 290
第15章 存储管理 291
15.1 内存组织方式 292
15.1.1 内存的组织方式 292
15.1.2 堆与栈 292
15.2 动态管理 294
15.2.1 malloc函数 294
15.2.2 calloc函数 295
15.2.3 realloc函数 296
15.2.4 free函数 296
15.3 内存丢失 297
小结 298
上机指导 298
习题 298
第16章 网络套接字编程 299 16.1 内存组织方式 300 16.1.1 IP地址 300 16.1.2 OSI七层参考模型 300 16.1.3 地址解析 301 16.1.4 域名系统 301 16.1.5 TCP IP 302 16.1.6 端口 303 16.1.7 套接字的引入 303 16.1.8 网络字节顺序 304 16.2 套接字概述 304 16.2.1 套接字概述 304 16.2.2 TCP的套接字的socket编程 304 16.2.3 UDP的套接字的socket编程 305 16.3 套接字函数 30516.3.1 套接字函数介绍 306 16.3.2 基于TCP的网络聊天程序 310
小结 315
上机指导 315 习题 315
第17章 综合开发实例 趣味俄罗斯方块 316
17.1 开发背景 317
17.2 系统功能设计 317
17.2.1 系统功能结构 317
17.2.2 业务流程图 317
17.3 使用Dev C项目创建 318
17.3.1 开发环境需求 318
17.3.2 创建项目 318
17.4 预处理模块设计 321
17.4.1 文件引用 321
17.4.2 宏定义 321
17.4.3 定义全局变量 321
17.4.4 函数声明 322
17.5 游戏欢迎界面设计 322
17.5.1 游戏欢迎界面概述 322
17.5.2 设置文字颜色 323
17.5.3 设置文字显示位置 324
17.5.4 设计标题部分 324
17.5.5 设计字符花装饰界面 326
17.5.6 设计菜单选项的边框 327
17.5.7 设计菜单选项的文字 328
17.6 游戏主窗体设计 329
17.6.1 游戏主窗体设计概述 329
17.6.2 打印输出游戏界面 329
17.6.3 绘制俄罗斯方块 331 17.6.4 打印俄罗斯方块 335
17.7 游戏逻辑设计 336
17.7.1 游戏逻辑概述 336
17.7.2 判断俄罗斯方块是否 可移动 336
17.7.3 清除俄罗斯方块下落的 痕迹 337
17.7.4 判断方块是否满行 338
17.7.5 随机产生俄罗斯方块 类型的序号 339
17.8 开始游戏 340
17.8.1 开始游戏模块概述 340
17.8.2 显示俄罗斯方块 341
17.8.3 实现各种按键操作 342
17.8.4 游戏结束界面 346
17.8.5 重新开始游戏 347
17.9 游戏按键说明模块 348
17.9.1 游戏按键说明简介 348
17.9.2 按键说明界面的实现 348
17.10 游戏规则介绍模块 349
17.10.1 游戏规则介绍 349
17.10.2 游戏规则介绍的实现 350
17.11 退出游戏 351
小结 352
第18章 综合实例 学生信息管理系统 353
18.1 开发背景 354
18.2 开发环境需求 354
18.3 系统功能设计 354
18.4 预处理模块设计 354
18.5 主函数设计 355
18.5.1 功能概述 355
18.5.2 实现主函数 356
18.5.3 显示主菜单 357
18.6 录入学生信息 358
18.6.1 模块概述 358
18.6.2 实现文件的打开和 关闭功能 358
18.6.3 实现录入学生信息 359
18.7 查询学生信息 361
18.7.1 模块概述 361
18.7.2 查询没有记录的文件 362
18.7.3 查找并打印学生信息 362
18.8 删除学生信息 363 18.8.1 模块概述 363
18.8.2 实现删除学生信息 363
18.9 修改学生信息 364
18.9.1 模块概述 364
18.9.2 实现修改学生信息 365
18.10 插入学生信息 366
18.10.1 模块概述 36618.10.2 实现插入学生信息 367
18.11 学生成绩排名 368
18.11.1 模块概述 368 18.11.2 使用交换排序法实现 排序功能 369
18.11.3 实现学生成绩排名 369
18.12 统计学生总数 370
18.12.1 模块概述 370
18.12.2 实现统计学生总数 371
18.13 显示所有学生信息 371 18.13.1 模块概述 371
18.13.2 读取并显示所有学生 信息 372
小结 372
附录
上机实验 373
实验1:Visual C6.0的下载和安装 373
实验2:计算某日是该年的第几天 376
实验3:老师分糖果问题 377
实验4:求一元二次方程的根 378
实验5:求学生总成绩和平均成绩 379
实验6:模拟ATM机界面程序 379
实验7:猜数字游戏 382
实验8:使用数组统计学生成绩 385
实验9:设计函数计算学生平均身高 386
实验10:使用指针交换两个数组中的 最大值 386
实验11:设计通信录 388
实验12:取出给定16位二进制数的 奇数位 389
实验13:编写头文件包含圆面积的 计算公式 390
实验14:复制文件内容到另一文件 391
实验15:商品信息的动态存放 392
实验16:利用UDP实现广播通信 393
|
|