明明白白学通C语言 二维码版

综合评级:
★★★★★

定价:
¥69.80

作者:
唐峻 等编著

出版社:
清华大学出版社

出版日期:
2015年6月

页数:
514

字数:
835000

ISBN:
9787302395744

书籍介绍

  《明明白白学通C语言(二维码版)》是一本与众不同的C语言图书,全书以全新的模式来分析和讲解C语言,以期带给读者不同的编程学习体验。本书基于全新的C11标准讲解,采用当前最流行的Visual Studio 2010编程环境。本书创造性地将智能手机巧妙地应用到了C语言的学习中,而且还以二维码的方式提供了书中的示例代码和习题答案,便于读者可以随时随地拿出手机进行C语言的学习和编程训练。另外,本书遵循记忆曲线,每节都安排了练习题,读者可以随学随练,从而以最少的时间快速掌握所学的内容。

  《明明白白学通C语言(二维码版)》共15章,分为3篇。第1篇为程序的基石——数据,介绍了C语言的概况及其处理的数据的种类,包括整型、实型和字符型等;第2篇为程序的本质——处理数据,介绍了C语言提供的处理数据的各种方法,包括运算符、表达式、语句及其结构等;第3篇为处理大量数据,介绍了C语言提供的对于大量数据的高级处理方法,包括数组、指针、结构和文件操作等。

  本书非常适合年轻的群体阅读,书中每个知识点的讲解都是非常简单明了,读者只要认真阅读,定能明白编程的种种奥秘。本书也适合忘性大的读者阅读,因为每节都安排了练习题,当读者动手操作完这些练习题后,也肯定就记住了该节的知识点。另外,本书也是一本不需要死记硬背的C语言图书,书中将每个知识点为什么出现,解决什么问题,如何解决,都清晰地展现了出来。综上所述,本书的确可以让读者明明白白学通C语言。

目录

第1篇 程序的基石——数据

第1章 C语言概述

1.0 写在最前面的——如何使用本书

1.1 语言

1.1.1 “语言”的定义

1.1.2 计算机语言发展历程

1.1.3 C语言

1.2 编程方法

1.2.1 数据处理示例

1.2.2 第一步:分析问题

1.2.3 第二步:设想实现方法

1.2.4 第三步:编写程序代码

1.3 开发环境

1.3.1 电脑上的开发环境

1.3.2 手机上的开发环境

1.4 编写第一个C语言的程序

1.4.1 在电脑上编写第一个程序

1.4.2 在手机上编写第一个程序

1.5 EGE——简易图形库

1.6 如何学习C语言

1.6.1 技巧一:多看、多想、多练习7

1.6.2 技巧二:多沟通、多扩展视野

1.7 小结

第2章 数据的表示

2.1 计算机中的数据表示

2.1.1 二进制

2.1.2 整数

2.1.3 小数

2.1.4 文本

2.1.5 练习

2.2 程序中的数据表示

2.2.1 整数

2.2.2 小数

2.2.3 文本

2.2.4 练习

2.3 数据的分类——数据类型

2.3.1 整数类型

2.3.2 浮点类型

2.3.3 字符类型

2.4 小结

2.5 习题

第3章 指代数据

3.1 为什么要指代数据

3.1.1 变化的数据

3.1.2 未知的数据

3.2 指代的名称

3.2.1 名称的命名规范

3.2.2 不能使用的名称——关键字

3.3 让名称更有效——见名知意

3.3.1 不使用拼音命名

3.3.2 英文命名方式

3.4 指代数据需要考虑的问题

3.4.1 范围

3.4.2 精度

3.5 程序中的指代

3.5.1 从问题中找到需要指代的数据

3.5.2 如何在程序中指代

3.6 特殊的指代——不变的量

3.6.1 为什么要指代不变的量

3.6.2 常数

3.6.3 常量

3.7 小结

3.8 习题

 

第2篇 程序的本质——处理数据

第4章 运算符和表达式

4.1 关联变量和数据

4.1.1 引入“=”

4.1.2 变量的初始化

4.1.3 表达式

4.1.4 类型匹配

4.1.5 练习

4.2 运算符一览

4.3 算术运算符

4.3.1 概述

4.3.2 除法“/”

4.3.3 取余“%”

4.3.4 练习

4.4 复合运算符

4.4.1 概述

4.4.2 复合运算符出现的意义

4.4.3 优先级

4.4.4 练习

4.5 自增自减运算符

4.5.1 概述

4.5.2 自增自减运算符出现的意义

4.5.3 优先级

4.5.4 练习

4.6 小结

4.7 习题

第5章 语句

5.1 输入输出I/O

5.1.1 格式化输入scanf()

5.1.2 scanf()的使用说明

5.1.3 其他输入方式

5.1.4 格式化输出printf()

5.1.5 printf()的使用说明

5.1.6 其他输出方式

5.1.7 练习

5.2 常见语句

5.2.1 赋值语句

5.2.2 空语句

5.2.3 复合语句

5.3 变量的作用域

5.3.1 局部变量

5.3.2 全局变量

5.3.3 练习

5.4 语句执行顺序

5.4.1 代码手段

5.4.2 工具手段

5.4.3 流程图

5.5 小结

5.6 习题

第6章 选择结构

6.1 顺序执行遇到的麻烦

6.1.1 顺序执行的程序

6.1.2 无法顺序执行

6.1.3 设想解决方案

6.2 条件判断依据

6.3 构建单一条件

6.3.1 关系运算 98

6.3.2 左右操作数类型不一致

6.3.3 关系运算符优先级

6.3.4 练习

6.4 构建多个条件

6.4.1 逻辑运算

6.4.2 逻辑运算符优先级

6.4.3 短路的逻辑运算符

6.4.4 练习

6.5 构建选择路径之if

6.5.1 流程图

6.5.2 if结构

6.5.3 if-else结构

6.5.4 if嵌套结构

6.5.5 练习

6.6 构建选择路径之switch

6.6.1 switch结构

6.6.2 比较if结构和switch结构

6.6.3 练习

6.7 小结

6.8 习题

第7章 循环结构

7.1 重复执行的语句

7.1.1 什么是重复执行

7.1.2 执行2~3次

7.1.3 执行有限次

7.1.4 执行不确定次

7.2 for循环

7.2.1 概述

7.2.2 逗号表达式

7.2.3 循环执行相同的语句

7.2.4 循环执行类似的语句

7.2.5 练习

7.3 其他循环

7.3.1 while循环

7.3.2 do-while循环

7.3.3 不同循环机制间的比较

7.3.4 练习

7.4 跳出循环

7.4.1 continue语句

7.4.2 break语句

7.4.3 goto语句

7.4.4 练习

7.5 循环中的循环——嵌套

7.5.1 嵌套实例一

7.5.2 嵌套实例二

7.5.3 嵌套实例三

7.5.4 练习

7.6 小结

7.7 习题

第8章 函数

8.1 循环无法解决的重复

8.1.1 循环的经典应用和局限

8.1.2 循环结构无法解决的重复问题

8.1.3 练习

8.2 完全重复——无参函数

8.2.1 定义无参函数

8.2.2 函数的返回值

8.2.3 使用无参函数

8.2.4 返回值的类型转换

8.2.5 函数多return语句处理

8.2.6 声明无参函数

8.2.7 函数体中的变量

8.2.8 练习

8.3 不完全重复——有参函数

8.3.1 定义有参函数

8.3.2 声明有参函数

8.3.3 练习

8.4 函数体中有函数

8.4.1 调用其他函数——嵌套函数

8.4.2 调用函数本身——递归函数

8.4.3 练习

8.5 库函数

8.5.1 如何使用库函数

8.5.2 文件包含的扩展应用

8.5.3 两种包含方式的不同

8.5.4 分类

8.5.5 库函数应用示例——猜大小

8.5.6 练习

8.6 小结

8.7 习题

 

第3篇 处理大量数据

第9章 同类型数据的集合——数组

9.1 大量数据的处理

9.2 基本数组

9.2.1 定义数组

9.2.2 使用数组

9.2.3 初始化数组

9.2.4 为数组赋值

9.2.5 数组的简单应用

9.3 数组排序

9.3.1 冒泡排序

9.3.2 选择排序

9.3.3 练习

9.4 二维数组

9.4.1 二维数组的本质——嵌套的数组

9.4.2 定义二维数组

9.4.3 使用二维数组

9.4.4 初始化二维数组

9.4.5 特殊的初始化方式

9.4.6 为二维数组赋值

9.4.7 二维数组的应用

9.4.8 练习

9.5 多维数组

9.6 小结

9.7 习题

第10章 指针

10.1 指针及其使用

10.1.1 指针是什么

10.1.2 定义指针变量

10.1.3 为指针变量赋值

10.1.4 通过指针访问数据

10.1.5 使用scanf()给指针赋值

10.1.6 练习

10.2 处理所指向的数据

10.2.1 四则运算

10.2.2 自增自减运算

10.2.3 指向常量的指针

10.2.4 定义指针为常量

10.3 指向一维数组的指针

10.3.1 为指针赋数组数据的地址

10.3.2 使用数组名为指针赋值

10.3.3 指向数组的指针的加减运算

10.3.4 指向同一数组的指针

10.3.5 指向二维数组的指针

10.4 保存指针的数组

10.4.1 定义指针数组

10.4.2 二维数组的特性

10.4.3 练习

10.5 指针在函数中的应用

10.5.1 指针作为函数参数

10.5.2 指针作为函数返回值

10.5.3 指向函数的指针

10.5.4 练习

10.6 二级指针

10.6.1 概述

10.6.2 在二维数组中的应用

10.6.3 练习

10.7 小结

10.8 习题

第11章 结构

11.1 结构概述

11.1.1 为什么要有结构

11.1.2 结构的构造及其变量的赋值

11.1.3 使用typedef简化结构类型名

11.1.4 练习

11.2 结构的使用

11.2.1 结构与指针

11.2.2 结构与数组

11.2.3 结构与函数

11.2.4 练习

11.3 结构的应用——链表

11.3.1 结构的成员是指向本结构的指针

11.3.2 数组与链表

11.3.3 链表概述

11.3.4 创建动态链表

11.3.5 练习

11.4 链表操作

11.4.1 插入结点到链表

11.4.2 删除链表中的结点

11.4.3 链表操作综合应用

11.4.4 练习

11.5 小结

11.6 习题

第12章 联合与枚举

12.1 结构遇到的困扰

12.1.1 引起困惑的小示例

12.1.2 困惑什么

12.1.3 设想的解决方案

12.2 联合概述

12.2.1 构造联合类型

12.2.2 定义联合类型的变量

12.2.3 引用联合类型变量成员

12.2.4 联合类型变量的赋值

12.2.5 练习

12.3 联合类型变量的特殊性

12.3.1 通过示例来发现

12.3.2 数据去哪儿了

12.3.3 看似不相干的成员变量

12.3.4 总结:联合类型变量的特殊性

12.3.5 解决结构遇到的困惑

12.3.6 练习

12.4 联合类型变量的简单使用

12.4.1 使用于函数的联合类型变量

12.4.2 指向联合类型变量的指针

12.5 枚举

12.5.1 枚举概述

12.5.2 枚举类型的使用

12.5.3 枚举类型应用

12.5.4 练习

12.6 小结

12.7 习题

第13章 字符串

13.1 概述

13.1.1 了解字符串

13.1.2 字符串数据的存储

13.1.3 字符串的赋值

13.1.4 练习

13.2 字符串的输出和输入

13.2.1 字符串的输出

13.2.2 字符串的输入

13.2.3 练习

13.3 指向字符串的指针

13.3.1 指针操作

13.3.2 二维字符数组与字符指针数组

13.3.3 main()的参数

13.3.4 练习

13.4 常见的字符串操作

13.4.1 “赋值”

13.4.2 “加法”

13.4.3 修改

13.4.4 “比较”

13.4.5 其他操作

13.4.6 练习

13.5 小结

13.6 习题

第14章 文件

14.1 两个亟待解决的问题

14.1.1 不得不再次运行程序

14.1.2 不得不重新输入数据

14.2 文件概述

14.2.1 文件

14.2.2 存储为文件的数据形式

14.2.3 程序读写文件数据的过程

14.3 文件的打开和关闭

14.3.1 操作文件前的准备

14.3.2 打开文件

14.3.3 关闭文件

14.3.4 练习

14.4 文件读写操作

14.4.1 必备基础知识

14.4.2 写入数据

14.4.3 读取数据

14.4.4 解决问题一:避免再次运行程序

14.4.5 练习

14.5 辅助功能

14.5.1 位置指针重定位

14.5.2 检测文件操作状态

14.5.3 解决问题二:避免重新输入数据

14.5.4 练习

14.6 二进制文件的位操作

14.6.1 位操作需求

14.6.2 实现位操作的方法——位运算

14.6.3 位运算符的使用方法

14.6.4 位操作实现

14.6.5 练习

14.7 小结

14.8 习题

第15章 预编译

15.1 概述

15.1.1 预编译指令

15.1.2 练习

15.2 宏

15.2.1 为什么需要宏

15.2.2 不带参数的宏

15.2.3 带参数的宏

15.2.4 取消宏

15.2.5 标准宏对象

15.2.6 练习

15.3 条件编译

15.3.1 为什么需要条件编译

15.3.2 #if指令

15.3.3 #ifdef指令

15.3.4 #ifndef指令

15.3.5 练习

15.4 文件包含

15.4.1 概述

15.4.2 定义自己的库函数

15.4.3 总结

15.5 小结

15.6 习题

.....

前言

  互联网的普及和深入应用,使得所有人都认识到了IT技术的实用性和重要性。越来越多的人开始学习IT技术。编程技术由于其独特的创造性,至今仍然保持着很大的吸引力。其中,C语言作为编程领域的基础语言,成为了大部分人的首选入门语言。

  如今,学习C语言的人不仅仅是大中专院校的学生,而且还有初中生和高中学生,甚至还有不少小学生。有很多人学习的时候不一定有电脑,但他们大多都有智能手机,这给读者的学习提供了便利,因为如今在手机上也可以学习编程了。基于这些实际情况,笔者重新研究了C语言的特点和读者的学习方式,并从中找到了两者的契合点而编写了本书。

  本书不同于已经出版的C语言图书。本书在教学方式上有一个重大变化是将智能手机巧妙地应用到了C语言的学习中,而且也将书中的示例代码和习题答案以二维码的方式提供。这样读者不但可以在电脑上学习C语言编程,还可以随时随地拿出手机进行C语言的学习和编程训练。这在已经出版的C语言图书中是首创,是绝无仅有的。本书在内容编排上遵循简单明了、循序渐进的原则,而且遵循记忆曲线,每节都安排了练习题,便于读者随学随练,从而以最少的时间快速掌握所学的内容。这些特点使得本书非常适合年轻的读者群体,尤其是九零后和零零后的青少年。

  通过阅读本书,读者将不再被抽象的理论和繁复的逻辑所困扰,可以愉快而轻松地掌握C语言编程。同时,读者也不用非要守在电脑跟前学习,也可以利用智能手机随时随地地学习。这无疑将大大提升读者的阅读体验。

课课家教育

未登录