猜你喜欢
C语言从入门到精通(第6版)

C语言从入门到精通(第6版)

书籍作者:明日科技 ISBN:9787302635673
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:5643
创建日期:2024-04-13 发布日期:2024-04-13
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

《C语言从入门到精通(第6版)》从初学者的角度出发,以通俗易懂的语言、丰富多彩的实例,详细介绍了使用C语言进行程序开发需要掌握的各方面知识。全书分为4篇,共20章,内容包括C语言概述、算法、数据类型、运算符与表达式、数据输入/输出、选择结构、循环控制、数组、函数、指针、结构体和共用体、位运算、预处理、文件、内存管理、网络套接字编程、单词背记闯关游戏、学生信息管理系统、单片机基础和GSM短信控制家庭防盗报警系统。书中所有知识都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,读者可以轻松领会C语言程序开发的精髓,快速提高开发技能。

作者简介

明日科技,全称是吉林省明日科技有限公司,是一家专业从事软件开发、教育培训以及软件开发教育资源整合的高科技公司,其编写的教材非常注重选取软件开发中的必需、常用内容,同时也很注重内容的易学、方便性以及相关知识的拓展性,深受读者喜爱。其教材多次荣获“全行业优秀畅销品种”“全国高校出版社优秀畅销书”等奖项,多个品种长期位居同类图书销售排行榜的前列。

前言

丛书说明:“软件开发视频大讲堂”丛书第1版于2008年8月出版,因其编写细腻、易学实用、配备海量学习资源和全程视频等,在软件开发类图书市场上产生了很大反响,绝大部分品种在全国软件开发零售图书排行榜中名列前茅,2009年多个品种被评为“全国优秀畅销书”。

“软件开发视频大讲堂”丛书第2版于2010年8月出版,第3版于2012年8月出版,第4版于2016年10月出版,第5版于2019年3月出版,第6版于2021年7月出版。十五年间反复锤炼,打造经典。丛书迄今累计重印680多次,销售400多万册,不仅深受广大程序员的喜爱,还被百余所高校选为计算机、软件等相关专业的教学参考用书。

“软件开发视频大讲堂”丛书第7版在继承前6版所有优点的基础上,进行了大幅度的修订。第一,根据当前的技术趋势与热点需求调整品种,拓宽了程序员岗位就业技能用书;第二,对图书内容进行了深度更新、优化,如优化了内容布置,弥补了讲解疏漏,将开发环境和工具更新为新版本,增加了对新技术点的剖析,将项目替换为更能体现当今IT开发现状的热门项目等,使其更与时俱进,更适合读者学习;第三,改进了教学微课视频,为读者提供更好的学习体验;第四,升级了开发资源库,提供了程序员“入门学习→技巧掌握→实例训练→项目开发→求职面试”等各阶段的海量学习资源;第五,为了方便教学,制作了全新的教学课件PPT。

C语言是Combined Language(组合语言)的简称。作为一门程序开发语言,它同时具有高级语言和汇编语言两者的特点,因此受到广大编程人员的喜爱。C语言的应用非常广泛,既可以编写系统程序,也可以编写应用程序,还可以应用到单片机及嵌入式系统的开发中。这就是为什么大多数开发人员初学编程都选择C语言的原因。

本书内容

本书提供了从C语言入门到编程高手所必需的各类知识,共分为4篇。

第1篇:基础知识。本篇讲解C语言的基础知识,主要内容包括C语言的发展史和特性、C语言开发环境、算法、数据类型、运算符与表达式、数据输入/输出、选择结构和循环控制等,帮助读者夯实语法基础。唯有扎实掌握本篇内容,才能准确写出C语言代码。

第2篇:基础进阶。本篇介绍C语言中数组、函数、指针这三大重点核心内容。数组是由相同类型数据组成的线性序列,访问速度很快,通过它能快速、大批量地处理数据。函数是程序模块的重要组成部分,一个功能复杂的程序通常由若干个函数组成。指针是C语言的核心、精髓所在,通过指针可以直接操作内存空间。学习完本 篇,读者能够编写一些简单的C应用程序。

第3篇:高级编程。本篇介绍结构体、链表、共用体、枚举等构造数据类型,以及位运算、预处理、文件、内存管理和网络套接字编程等知识。深入理解并熟练掌握本篇内容后,读者可尝试开发复杂的C应用程序。

第4篇:项目实战。本篇将带领读者一步一步地亲身体验项目开发的全过程。其中,单词背记游戏和学生信息管理系统属于软件项目开发,单片机基础知识和GSM短信控制家庭防盗报警系统属于硬件项目开发。通过3个项目的实战训练,相信读者可独立开发出各类复杂的C应用程序,并可进行简单的单片机开发。

本书特点

由浅入深,循序渐进。本书以初、中级程序员为对象,带领读者先从C语言基础学起,再学习C语言的程序结构,然后学习C语言的高级应用,最后练习开发两个软件项目和一个硬件项目。讲解详尽,层次清晰,在叙述过程中会给出相应的实例,以便于读者理解。在讲解实例时分步骤进行,使读者一目了然,从而快速掌握书中内容。

微课视频,讲解详尽。为便于读者直观感受程序开发的全过程,书中重要章节配备了教学微课视频(共204集,时长13小时),使用手机扫描章节标题一侧的二维码,即可观看学习。便于初学者快速入门,感受编程的快乐和成就感,进一步增强学习的信心。

基础实例+编程训练+综合练习+项目案例,实战为王。通过例子学习是最好的学习方式,本书核心知识讲解通过“一个知识点、一个示例、一个结果、一段评析、一个综合应用”的模式,详尽透彻地讲述了实际开发中所需的各类知识。全书共计有171个应用实例,118个编程训练,110个综合练习,3个项目案例,为初学者打造“学习1小时,训练10小时”的强化实战学习环境。

精彩栏目,贴心提醒。本书根据学习需要在正文中设计了很多“注意”“说明”“技巧”等小栏目,让读者在学习的过程中更轻松地理解相关知识点及概念,更快地掌握个别技术的应用技巧。

读者对象:自学编程的入门读者;编程爱好者;大中专院校的老师和学生;相关培训机构的老师和学员;做毕业设计的学生;初、中级程序开发人员;程序测试及维护人员;参加实习的“菜鸟”级程序员。

本书学习资源

本书提供了大量的辅助学习资源,读者需刮开图书封底的防盗码,扫描并绑定微信后,获取学习权限。

同步教学微课

学习书中知识时,扫描章节名称处的二维码,可在线观看教学视频。

在线开发资源库

本书配备了强大的C语言开发资源库,包括技术资源库、技巧资源库、实例资源库、项目资源库、源码资源库、视频资源库。扫描二维码,可登录明日科技网站,获取C语言开发资源库一年的免费使用权限。

学习答疑

关注清大文森学堂公众号,可获取本书的源代码、PPT课件、视频等资源,加入本书的学习交流群,参加图书直播答疑。

读者扫描图书封底的“文泉云盘”二维码,或登录清华大学出版社网站,可在对应图书页面下查阅各类学习资源的获取方式。

致读者

本书由明日科技C语言程序开发团队组织编写。明日科技是一家专业从事软件开发、教育培训及软件开发教育资源整合的高科技公司,其编写的教材既注重选取软件开发中的必需、常用内容,又注重内容的易学、方便及相关知识的拓展,深受读者喜爱。其编写的教材多次荣获“全行业优秀畅销品种”“中国大学出版社优秀畅销书”等奖项,多个品种长期位居同类图书销售排行榜的前列。

在本书编写的过程中,我们以科学、严谨的态度,力求精益求精,但疏漏之处在所难免,敬请广大读者批评指正。

感谢您购买本书,希望本书能成为您编程路上的领航者。

“零门槛”学编程,一切皆有可能。

祝读书快乐!


目录

第1篇 基础知识

第1章 C语言概述 2

视频讲解:64分钟

1.1 C语言的发展史 2

1.1.1 程序语言简述 2

1.1.2 C语言的发展历程 3

1.2 C语言的特点 4

1.3 一个简单的C程序 4

1.4 一个完整的C程序 7

1.5 C语言程序的格式 10

1.6 C语言开发环境 12

1.6.1 Visual C++ 6.0 12

1.6.2 Visual Studio 2022 18

1.6.3 Dev C++ 24

1.7 实践与练习 26

第2章 算法 27

视频讲解:16分钟

2.1 算法的基本概念 27

2.1.1 算法的特性 27

2.1.2 算法的优劣 28

2.2 算法描述 29

2.2.1 自然语言 29

2.2.2 流程图 30

2.2.3 N-S流程图 33

2.3 实践与练习 35

第3章 数据类型 36

视频讲解:42分钟

3.1 关键字 36

3.2 标识符 37

3.3 数据类型 38

3.4 常量 39

3.4.1 整型常量 39

3.4.2 实型常量 40

3.4.3 字符型常量 41

3.4.4 转义字符 43

3.4.5 符号常量 43

3.5 变量 44

3.5.1 整型变量 44

3.5.2 实型变量 47

3.5.3 字符型变量 48

3.6 混合运算 50

3.7 实践与练习 51

第4章 运算符与表达式 52

视频讲解:50分钟

4.1 表达式 52

4.2 赋值运算符与赋值表达式 53

4.2.1 变量赋初值 53

4.2.2 自动类型转换 54

4.2.3 强制类型转换 55

4.3 算术运算符与算术表达式 56

4.3.1 算术运算符 56

4.3.2 算术表达式 57

4.3.3 优先级与结合性 57

4.3.4 自增/自减运算符 58

4.4 关系运算符与关系表达式 60

4.4.1 关系运算符 60

4.4.2 关系表达式 60

4.4.3 优先级与结合性 61

4.5 逻辑运算符与逻辑表达式 62

4.5.1 逻辑运算符 62

4.5.2 逻辑表达式 63

4.5.3 优先级与结合性 63

4.6 逗号运算符与逗号表达式 64

4.7 复合赋值运算符 65

4.8 sizeof运算符 66

4.9 运算符的优先级总结 68

4.10 实践与练习 69

第5章 数据输入/输出 70

视频讲解:32分钟

5.1 字符的输入/输出 70

5.1.1 字符输出 70

5.1.2 字符输入 71

5.2 字符串的输入/输出 73

5.2.1 字符串输出 73

5.2.2 字符串输入 74

5.3 格式化输出 76

5.4 格式化输入 78

5.5 顺序程序设计 82

5.6 实践与练习 83

第6章 选择结构 85

视频讲解:36分钟

6.1 if语句 85

6.2 if语句的基本形式 85

6.2.1 简单if语句 86

6.2.2 if…else语句 88

6.2.3 else if语句 89

6.3 if语句的嵌套应用 92

6.4 条件运算符 95

6.5 switch语句 96

6.5.1 switch语句的基本形式 96

6.5.2 多路开关模式的switch语句 99

6.6 if…else语句和switch语句的区别 101

6.7 实践与练习 101

第7章 循环控制 104

视频讲解:47分钟

7.1 循环语句 104

7.2 while语句 104

7.3 do…while语句 107

7.4 for语句 108

7.4.1 for循环语句 109

7.4.2 for循环的变体 111

7.4.3 for循环中的逗号应用 112

7.5 3种循环语句的比较 114

7.6 循环嵌套 114

7.6.1 循环嵌套结构 114

7.6.2 循环嵌套实例 115

7.7 转移语句 117

7.7.1 goto语句 117

7.7.2 break语句 118

7.7.3 continue语句 119

7.8 实践与练习 120

第2篇 基础进阶

第8章 数组 124

视频讲解:71分钟

8.1 一维数组 124

8.1.1 一维数组的定义和引用 124

8.1.2 一维数组的初始化 126

8.1.3 一维数组的应用 127

8.2 二维数组 128

8.2.1 二维数组的定义和引用 128

8.2.2 二维数组的初始化 129

8.2.3 二维数组的应用 130

8.3 字符数组 132

8.3.1 字符数组的定义和引用 132

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 折半排序 142

8.5.6 排序算法的比较 144

8.6 数组应用 145

8.6.1 反转输出字符串 146

8.6.2 输出系统日期和时间 146

8.6.3 字符串的加密和解密 148

8.7 实践与练习 149

第9章 函数 151

视频讲解:91分钟

9.1 函数概述 151

9.2 函数的定义和声明 153

9.2.1 函数的定义 153

9.2.2 函数的声明 154

9.3 函数参数 155

9.3.1 形式参数与实际参数 155

9.3.2 数组作函数参数 156

9.4 函数的调用和返回 159

9.4.1 函数的调用 159

9.4.2 函数的返回值 160

9.4.3 函数的嵌套调用 161

9.4.4 函数的递归调用 162

9.5 内部函数和外部函数 165

9.5.1 内部函数 165

9.5.2 外部函数 166

9.6 局部变量和全局变量 167

9.6.1 局部变量 167

9.6.2 全局变量 169

9.7 常用标准库函数 171

9.7.1 数学函数 171

9.7.2 字符判别函数 172

9.7.3 字符串处理函数 174

9.8 实践与练习 179

第10章 指针 181

视频讲解:64分钟

10.1 指针的相关概念 181

10.1.1 地址与指针 181

10.1.2 变量与指针 182

10.1.3 指针变量 182

10.1.4 指针的自增、自减运算 185

10.2 数组与指针 186

10.2.1 一维数组与指针 187

10.2.2 二维数组与指针 189

10.2.3 字符串与指针 191

10.2.4 指针数组 193

10.3 指向指针的指针 194

10.4 指针变量作函数参数 197

10.5 返回指针值的函数 204

10.6 指针数组作main函数的参数 205

10.7 实践与练习 207

第3篇 高级编程

第11章 结构体和共用体 210

视频讲解:68分钟

11.1 结构体 210

11.1.1 结构体类型的声明 211

11.1.2 结构体变量的定义 211

11.1.3 结构体变量的引用 213

11.1.4 结构体类型的初始化 214

11.2 结构体数组 215

11.2.1 定义结构体数组 216

11.2.2 初始化结构体数组 217

11.3 结构体指针 218

11.3.1 指向结构体变量的指针 218

11.3.2 指向结构体数组的指针 220

11.4 结构体在函数中的使用 222

11.4.1 结构体作为函数参数 222

11.4.2 使用函数返回结构体指针 224

11.5 嵌套的结构体 225

11.6 链表 227

11.6.1 链表概述 227

11.6.2 创建动态链表 228

11.6.3 输出链表 229

11.7 链表的相关操作 232

11.7.1 插入结点 232

11.7.2 删除结点 233

11.8 共用体 237

11.8.1 共用体的概念 237

11.8.2 共用体变量的引用 238

11.8.3 共用体变量的初始化 238

11.8.4 共用体类型的数据特点 239

11.9 枚举类型 239

11.10 typedef关键字 241

11.11 实践与练习 242

第12章 位运算 245

视频讲解:28分钟

12.1 位与字节 245

12.2 位运算操作符 245

12.2.1 按位与运算符 246

12.2.2 按位或运算符 247

12.2.3 按位取反运算符 248

12.2.4 按位异或运算符 249

12.2.5 左移运算符 250

12.2.6 右移运算符 251

12.3 循环移位 252

12.4 位段 254

12.4.1 位段的概念与定义 254

12.4.2 位段相关说明 255

12.5 实践与练习 256

第13章 预处理命令 258

视频讲解:25分钟

13.1 宏定义 258

13.1.1 不带参数的#define命令 258

13.1.2 带参数的#define命令 260

13.1.3 宏定义的删除 261

13.1.4 预定义宏简介 261

13.2 文件包含 262

13.3 条件编译 263

13.3.1 #if、#else、#elif、#endif命令 263

13.3.2 #ifdef、#ifndef命令 264

13.4 其他预处理命令 266

13.4.1 #line命令 266

13.4.2 #error命令 266

13.4.3 #pragma命令 267

13.5 实践与练习 267

第14章 文件 270

视频讲解:67分钟

14.1 文件概述 270

14.2 文件基本操作 271

14.2.1 文件指针 271

14.2.2 打开文件(fopen函数) 272

14.2.3 关闭文件(fclose函数) 272

14.3 文件的读写 273

14.3.1 写入字符(fputc函数) 273

14.3.2 读取字符(fgetc函数) 274

14.3.3 写入字符串(fputs函数) 274

14.3.4 读取字符串(fgets函数) 275

14.3.5 fprintf函数 276

14.3.6 fscanf函数 277

14.3.7 读写数据块(fread和fwrite函数) 278

14.4 文件的定位 280

14.4.1 fseek函数 280

14.4.2 rewind函数 282

14.4.3 ftell函数 283

14.5 文件管理 285

14.5.1 删除文件(remove函数) 285

14.5.2 重命名文件(rename函数) 286

14.5.3 复制文件 287

14.6 文件状态检测 288

14.6.1 文件读取结束检测(feof函数) 288

14.6.2 文件读写出错检测(ferror函数) 289

14.6.3 清除状态标志(clearerr函数) 289

14.7 实践与练习 290

第15章 内存管理 293

视频讲解:18分钟

15.1 内存组织方式 293

15.1.1 数据的存放方式 293

15.1.2 堆与栈 294

15.2 动态管理 295

15.2.1 malloc函数 295

15.2.2 calloc函数 296

15.2.3 realloc函数 296

15.2.4 free函数 297

15.3 内存泄露与内存丢失 298

15.4 实践与练习 299

第16章 网络套接字编程 301

视频讲解:33分钟

16.1 计算机网络基础 301

16.1.1 IP地址 301

16.1.2 OSI七层参考模型 302

16.1.3 地址解析 302

16.1.4 域名解析 303

16.1.5 TCP/IP协议 304

16.1.6 端口 305

16.1.7 套接字的引入 305

16.1.8 网络字节顺序 306

16.2 套接字基础 306

16.2.1 套接字概述 306

16.2.2 基于TCP的socket编程 306

16.2.3 基于UDP的socket编程 307

16.3 套接字函数 308

16.3.1 套接字常用函数介绍 308

16.3.2 基于TCP的网络聊天程序 313

16.4 实践与练习 318

第4篇 项目实战

第17章 单词背记闯关游戏 324

视频讲解:7分钟

17.1 项目概述 324

17.2 系统设计 325

17.2.1 系统功能结构 325

17.2.2 业务流程图 326

17.3 开发准备 326

17.4 预处理模块设计 327

17.4.1 模块概述 327

17.4.2 代码实现 327

17.5 游戏开始界面显示 328

17.5.1 模块概述 328

17.5.2 代码实现 328

17.6 积分规则界面显示 330

17.6.1 模块概述 330

17.6.2 代码实现 330

17.7 单词背记游戏主功能实现 331

17.7.1 模块概述 331

17.7.2 代码实现 331

17.8 读取和存储游戏最高分 334

17.8.1 模块概述 334

17.8.2 代码实现 334

17.9 游戏结束界面显示 334

17.9.1 模块概述 334

17.9.2 代码实现 335

第18章 学生信息管理系统 337

视频讲解:8分钟

18.1 项目概述 337

18.2 系统设计 337

18.2.1 系统功能结构设计 337

18.2.2 系统界面预览 338

18.3 预处理模块设计 340

18.3.1 模块概述 340

18.3.2 功能实现 340

18.4 主函数设计 341

18.4.1 功能概述 341

18.4.2 功能实现 342

18.5 录入学生信息模块 343

18.5.1 模块概述 343

18.5.2 录入时文件中无内容 344

18.5.3 录入时文件中有内容 344

18.6 查询学生信息模块 345

18.6.1 模块概述 345

18.6.2 功能实现 346

18.7 删除学生信息模块 347

18.7.1 模块概述 347

18.7.2 功能实现 347

18.8 修改学生信息模块 348

18.8.1 模块概述 348

18.8.2 功能实现 349

18.9 插入学生信息模块 350

18.9.1 模块概述 350

18.9.2 功能实现 351

18.10 学生成绩排序模块 352

18.10.1 模块概述 352

18.10.2 功能实现 352

18.11 显示所有学生信息 353

18.11.1 模块概述 353

18.11.2 功能实现 354

第19章 单片机基础 355

视频讲解:41分钟

19.1 认识单片机 355

19.1.1 单片机概述 356

19.1.2 单片机组成部分 356

19.1.3 单片机内部结构分析 357

19.1.4 单片机与外部电路 362

19.2 单片机的应用 363

19.2.1 使用Altium Designer工具设计电路 364

19.2.2 使用Keil工具编译单片机程序 367

19.2.3 使用STC-ISP烧录工具将程序烧录到单片机中 372

第20章 GSM短信控制家庭防盗报警系统 375

视频讲解:6分钟

20.1 项目概述 375

20.2 系统设计 376

20.2.1 系统功能结构 376

20.2.2 系统业务流程 376

20.3 系统开发准备 377

20.3.1 开发工具 377

20.3.2 电路原理图 377

20.3.2 元件列表 378

20.4 LED声光报警设计 379

20.4.1 LED灯报警设计 379

20.4.2 蜂鸣器报警设计 382

20.5 手机短信报警设计 385

20.5.1 液晶屏显示设计 385

20.5.2 GSM模块接收手机短信 389

20.6 独立按键设计 392

20.7 其他主要功能代码 395

附录 ASCII码对照表 396