首页 > 图书中心 > C语言从入门到精通(第5版)

目录

第1篇 基础知识

第1章 C语言概述 2

视频讲解:69分钟

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语言程序的格式 11

1.6 C语言开发环境 12

1.6.1 Visual C++ 6.0 12

1.6.2 Visual Studio 2019 19

1.7 实践与练习 24

第2章 算法 27

视频讲解:17分钟

2.1 算法的基本概念 27

2.1.1 算法的特性 27

2.1.2 算法的优劣 29

2.2 算法描述 29

2.2.1 自然语言 29

2.2.2 流程图 30

2.2.3 N-S流程图 33

2.3 实践与练习 35

第3章 数据类型 37

视频讲解:52分钟

3.1 编程规范 37

3.2 关键字 38

3.3 标识符 39

3.4 数据类型 40

3.5 常量 41

3.5.1 整型常量 41

3.5.2 实型常量 42

3.5.3 字符型常量 43

3.5.4 转义字符 45

3.5.5 符号常量 46

3.6 变量 46

3.6.1 整型变量 47

3.6.2 实型变量 49

3.6.3 字符型变量 51

3.7 变量的存储类别 53

3.7.1 auto变量 53

3.7.2 static变量 53

3.7.3 register变量 54

3.7.4 extern变量 55

3.8 混合运算 56

3.9 实践与练习 57

第4章 运算符与表达式 59

视频讲解:40分钟

4.1 表达式 59

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

4.2.1 变量赋初值 61

4.2.2 自动类型转换 62

4.2.3 强制类型转换 63

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

4.3.1 算术运算符 64

4.3.2 算术表达式 65

4.3.3 优先级与结合性 66

4.3.4 自增/自减运算符 66

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

4.4.1 关系运算符 68

4.4.2 关系表达式 68

4.4.3 优先级与结合性 69

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

4.5.1 逻辑运算符 71

4.5.2 逻辑表达式 71

4.5.3 优先级与结合性 72

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

4.7 复合赋值运算符 74

4.8 运算符的优先级总结 76

4.9 实践与练习 77

第5章 常用的数据输入/输出函数 79

视频讲解:24分钟

5.1 语句 79

5.2 字符数据的输入/输出 79

5.2.1 字符输出函数 80

5.2.2 字符输入函数 80

5.3 字符串输入/输出 82

5.3.1 字符串输出函数 82

5.3.2 字符串输入函数 84

5.4 格式输出函数 85

5.5 格式输入函数 88

5.6 顺序程序设计应用 92

5.7 实践与练习 94

第6章 选择结构程序设计 96

视频讲解:37分钟

6.1 if语句 96

6.2 if语句的基本形式 97

6.2.1 if语句形式 97

6.2.2 if…else语句形式 100

6.2.3 else if语句形式 103

6.3 if的嵌套形式 107

6.4 条件运算符 110

6.5 switch语句 111

6.5.1 switch语句的基本形式 111

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

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

6.7 实践与练习 120

第7章 循环控制 122

视频讲解:45分钟

7.1 循环语句 122

7.2 while语句 123

7.3 do…while语句 125

7.4 for语句 127

7.4.1 for语句使用 127

7.4.2 for循环的变体 130

7.4.3 for语句中的逗号应用 132

7.5 3种循环语句的比较 134

7.6 循环嵌套 134

7.6.1 循环嵌套的结构 134

7.6.2 循环嵌套实例 135

7.7 转移语句 137

7.7.1 goto语句 137

7.7.2 break语句 139

7.7.3 continue语句 140

7.8 实践与练习 142

第2篇 核心技术

第8章 数组 146

视频讲解:87分钟

8.1 一维数组 146

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

8.1.2 一维数组的初始化 148

8.1.3 一维数组的应用 150

8.2 二维数组 151

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

8.2.2 二维数组的初始化 152

8.2.3 二维数组的应用 153

8.3 字符数组 155

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

8.3.2 字符数组的初始化 156

8.3.3 字符数组的结束标志 157

8.3.4 字符数组的输入和输出 158

8.3.5 字符数组的应用 159

8.4 多维数组 160

8.5 数组的排序算法 160

8.5.1 选择法排序 161

8.5.2 冒泡法排序 162

8.5.3 交换法排序 164

8.5.4 插入法排序 166

8.5.5 折半法排序 168

8.5.6 排序算法的比较 170

8.6 数组应用 171

8.6.1 反转输出字符串 171

8.6.2 输出系统日期和时间 172

8.6.3 字符串的加密和解密 173

8.7 实践与练习 176

第9章 函数 178

视频讲解:80分钟

9.1 函数概述 178

9.2 函数的定义和声明 180

9.2.1 函数的定义 180

9.2.2 函数的声明 182

9.3 函数参数 183

9.3.1 形式参数与实际参数 183

9.3.2 数组作函数参数 184

9.4 函数的调用和返回 187

9.4.1 函数的调用 187

9.4.2 函数的返回 189

9.4.3 函数的嵌套调用 190

9.4.4 函数的递归调用 191

9.5 内部函数和外部函数 194

9.5.1 内部函数 194

9.5.2 外部函数 195

9.6 局部变量和全局变量 197

9.6.1 局部变量 197

9.6.2 全局变量 199

9.7 函数应用 201

9.7.1 数学函数 201

9.7.2 字符判别与转换函数 204

9.7.3 字符串处理函数 206

9.8 实践与练习 212

第10章 指针 214

视频讲解:65分钟

10.1 指针的相关概念 214

10.1.1 地址与指针 214

10.1.2 变量与指针 215

10.1.3 指针变量 216

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

10.2 数组与指针 220

10.2.1 一维数组与指针 220

10.2.2 二维数组与指针 223

10.2.3 字符串与指针 226

10.2.4 指针数组 228

10.3 指向指针的指针 229

10.4 指针变量作函数参数 232

10.5 返回指针值的函数 240

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

10.7 实践与练习 243

第3篇 高级应用

第11章 结构体和共用体 246

视频讲解:62分钟

11.1 结构体 246

11.1.1 结构体类型的声明 247

11.1.2 结构体变量的定义 247

11.1.3 结构体变量的引用 249

11.1.4 结构体类型的初始化 251

11.2 结构体数组 252

11.2.1 定义结构体数组 252

11.2.2 初始化结构体数组 254

11.3 结构体指针 256

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

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

11.3.3 结构体作为函数参数 260

11.4 嵌套的结构体 262

11.5 链表 264

11.5.1 链表概述 264

11.5.2 创建动态链表 265

11.5.3 输出链表 267

11.6 链表的相关操作 270

11.6.1 插入结点 271

11.6.2 删除结点 272

11.7 共用体 276

11.7.1 共用体的概念 276

11.7.2 共用体变量的引用 277

11.7.3 共用体变量的初始化 278

11.7.4 共用体类型的数据特点 279

11.8 枚举类型 279

11.9 实践与练习 281

第12章 位运算 284

视频讲解:28分钟

12.1 位与字节 284

12.2 位运算操作符 284

12.2.1 按位与运算符 285

12.2.2 按位或运算符 286

12.2.3 按位取反运算符 287

12.2.4 按位异或运算符 288

12.2.5 左移运算符 289

12.2.6 右移运算符 290

12.3 循环移位 292

12.4 位段 294

12.4.1 位段的概念与定义 294

12.4.2 位段相关说明 295

12.5 实践与练习 297

第13章 预处理 299

视频讲解:24分钟

13.1 宏定义 299

13.1.1 不带参数的宏定义 300

13.1.2 带参数的宏定义 301

13.2 #include命令 302

13.3 条件编译 304

13.3.1 #if命令 304

13.3.2 #ifdef及#ifndef命令 306

13.3.3 #undef命令 307

13.3.4 #line命令 307

13.3.5 #pragma命令 308

13.4 实践与练习 309

第14章 文件 311

视频讲解:44分钟

14.1 文件概述 311

14.2 文件基本操作 312

14.2.1 文件指针 312

14.2.2 文件的打开 312

14.2.3 文件的关闭 313

14.3 文件的读写 314

14.3.1 fputc函数 314

14.3.2 fgetc函数 315

14.3.3 fputs函数 316

14.3.4 fgets函数 316

14.3.5 fprintf函数 317

14.3.6 fscanf函数 318

14.3.7 fread和fwrite函数 319

14.4 文件的定位 322

14.4.1 fseek函数 322

14.4.2 rewind函数 323

14.4.3 ftell函数 325

14.5 实践与练习 327

第15章 存储管理 330

视频讲解:18分钟

15.1 内存组织方式 330

15.1.1 数据的存放方式 330

15.1.2 堆与栈 331

15.2 动态管理 333

15.2.1 malloc函数 333

15.2.2 calloc函数 334

15.2.3 realloc函数 335

15.2.4 free函数 336

15.3 内存泄露与内存丢失 337

15.4 实践与练习 338

第16章 网络套接字编程 340

视频讲解:33分钟

16.1 计算机网络基础 340

16.1.1 IP地址 340

16.1.2 OSI七层参考模型 341

16.1.3 地址解析 342

16.1.4 域名解析 342

16.1.5 TCP/IP协议 343

16.1.6 端口 345

16.1.7 套接字的引入 345

16.1.8 网络字节顺序 345

16.2 套接字基础 345

16.2.1 套接字概述 346

16.2.2 TCP套接字的socket编程 346

16.2.3 UDP套接字的socket编程 347

16.3 套接字函数 347

16.3.1 套接字常用函数介绍 347

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

16.4 实践与练习 359

第4篇 项目实战

第17章 单词背记闯关 364

视频讲解:41分钟

17.1 需求分析 364

17.2 系统设计 364

17.2.1 系统目标 364

17.2.2 构建开发环境 365

17.2.3 系统功能结构 365

17.2.4 业务流程图 366

17.2.5 系统预览 366

17.3 技术准备 367

17.3.1 文件的基本操作 367

17.3.2 文件的读写操作 369

17.4 公共类设计 370

17.5 预处理模块设计 370

17.5.1 模块概述 370

17.5.2 代码实现 370

17.6 欢迎界面设计 371

17.6.1 模块概述 371

17.6.2 代码实现 372

17.7 积分规则界面设计 373

17.7.1 模块概述 373

17.7.2 代码实现 374

17.8 显示游戏最高分设计 375

17.8.1 模块概述 375

17.8.2 代码实现 375

17.9 系统逻辑设计 376

17.9.1 模块概述 376

17.9.2 代码实现 376

17.10 显示结果界面设计 379

17.10.1 模块概述 379

17.10.2 代码实现 379

第18章 防空大战游戏 382

视频讲解:29分钟

18.1 需求分析 382

18.2 系统设计 383

18.2.1 系统目标 383

18.2.2 构建开发环境 383

18.2.3 系统功能结构 383

18.2.4 业务流程图 383

18.2.5 系统预览 384

18.3 技术准备 385

18.3.1 EasyX图形库的下载与安装 385

18.3.2 EasyX库的主要函数 387

18.4 公共类设计 388

18.4.1 创建graphics.h头文件 388

18.4.2 源文件公设计 391

18.5 游戏主窗体设计 392

18.5.1 模块概述 392

18.5.2 创建防空导弹 392

18.5.3 创建炸弹 393

18.5.4 创建飞机 394

18.5.5 加载图片 394

18.5.6 绘图设计 395

18.6 碰撞检测设计 396

18.6.1 模块概述 396

18.6.2 代码实现 396

18.7 开始游戏设计 396

18.7.1 模块概述 396

18.7.2 加载音乐 397

18.7.3 飞机随机出现 398

18.7.4 按键设计 401

18.7.5 生命值和得分统计 401

18.7.6 游戏结束界面 402

18.7.7 重新开始游戏 402

18.8 为游戏应用添加图标 403

18.8.1 添加图标概述 403

18.8.2 实现步骤 403

附录 ASCII表 405

版权所有(C)2023 清华大学出版社有限公司 京ICP备10035462号 京公网安备11010802042911号

联系我们 | 网站地图 | 法律声明 | 友情链接 | 盗版举报 | 人才招聘