第1章 为什么要学习C语言?1
1.1 C的起源和发展1
1.1.1 计算机语言发展的三个阶段1
1.1.2 语言运行速度的比较3
1.1.3 C语言的演变过程3
1.2 C的特点5
1.2.1 C语言的优点5
1.2.2 C语言的缺点6
1.3 C的应用领域7
1.4 C的重要性8
1.5 本章总结9
第2章 怎样学习C语言?10
2.1 学习C语言的心得10
2.2 学习C语言的目标12
2.3 常见问题答疑13
2.3.1 学习Java为什么建议先学C语言?13
2.3.2 没学过计算机专业课程能够学懂C语言吗?14
2.3.3 英语和数学不好能学好C语言吗?14
2.4 本章总结16
第3章 Microsoft Visual C++ 6.0的使用17
3.1 为什么要学习VC++6.0?17
3.2 如何创建编程文件?17
3.3 写一个最简单的程序22
3.4 要养成时刻按Ctrl+S保存的习惯25
3.5 编译-链接-执行25
3.6 怎样运行第二个程序?28
3.7 点编译-链接-执行时保存路径下的文件夹有什么变化?30
3.8 如何编写多文件程序?31
3.9 如何用VC++6.0调试程序?38
3.10 本章总结40
第4章 C语言认知,先给大家写一个程序42
第5章 预备知识47
5.1 CPU、内存条、硬盘、显卡、主板、显示器之间的关系47
5.1.1 电影是如何运行起来的?47
5.1.2 CPU为什么不能直接操作硬盘却能直接操作内存?47
5.1.3 内存条的速度为什么比硬盘的速度快?47
5.1.4 为什么不把内存条造的跟硬盘一样大?48
5.1.5 CPU是如何操作内存的?48
5.1.6 主板的作用49
5.2 HelloWorld程序是如何运行起来的?49
5.3 字节50
5.3.1 什么是字节?50
5.3.2 字节换算50
5.3.3 字节总结51
5.4 进制51
5.4.1 什么是进制?51
5.4.2 进制转换口算法53
5.4.3 进制转换公式法54
5.4.4 人类为什么最习惯用十进制?57
5.4.5 计算机为什么用的是二进制?58
5.4.6 进制总结58
5.5 数据类型59
5.5.1 数据类型的分类59
5.5.2 基本数据类型及其所占的字节数61
5.6 常量63
5.6.1 整型常量64
5.6.2 浮点型常量64
5.6.3 字符型常量66
5.7 常量是以什么样的二进制代码存储在计算机中的?67
5.8 补码67
5.8.1 原码和反码68
5.8.2 补码的两个核心内容68
5.8.3 int型变量所能存储的范围70
5.8.4 int型变量和char型变量是如何进行相互赋值的?72
5.9 什么是ASCII码?73
5.10 变量74
5.10.1 如何定义变量?74
5.10.2 变量的本质77
5.10.3 为什么要使用变量?78
5.10.4 变量的命名规则78
5.10.5 变量为什么必须要初始化?80
5.10.6 变量总结83
5.11 各类型数据之间的混合运算84
5.12 代码规范化86
5.12.1 代码如何写才能写规范?86
5.12.2 代码规范化的好处86
5.12.3 代码规范化的七大原则87
5.12.4 代码规范化总结91
5.13 本章总结91
第6章 printf的用法92
6.1 printf的格式93
6.2 输出控制符95
6.3 %x、%X、%#x、%#X的区别95
6.4 如何输出“%d”、“\”和“双引号”?96
6.5 本章总结97
第7章 scanf的用法98
7.1 scanf的用法98
7.2 使用scanf注意事项101
7.2.1 参数的个数一定要对应101
7.2.2 输入的数据类型一定要和所需要的数据类型一致102
7.2.3 使用scanf之前使用printf提示输入105
7.3 本章总结105
第8章 运算符和表达式107
8.1 算术运算符107
8.2 关系运算符109
8.3 逻辑运算符109
8.4 赋值运算符113
8.5 运算符的优先级114
8.6 本章总结115
第9章 选择结构程序设计117
9.1 流程控制117
9.1.1 什么是流程控制?117
9.1.2 流程控制的分类117
9.2 选择的定义和分类118
9.3 if语句118
9.3.1 if最简单的用法118
9.3.2 if的范围问题120
9.3.3 if...else...的用法122
9.3.4 if...else if...else...的用法124
9.3.5 if 举例--求分数的等级125
9.3.6 if 举例--三个整数从小到大排序130
9.3.7 if的常见问题解析132
9.4 switch语句136
9.5 本章总结138
第10章 循环控制140
10.1 循环的定义和分类140
10.2 for循环140
10.2.1 for语句的格式140
10.2.2 自增和自减144
10.2.3 练习:编程输出1!+2!+3!+……+n!的和145
10.2.4 for和if的嵌套使用146
10.2.5 强制类型转换149
10.2.6 浮点数的存储所带来的问题155
10.2.7 多个for循环的嵌套使用159
10.2.8 for循环嵌套编程练习162
10.3 while循环173
10.3.1 while的执行顺序173
10.3.2 while和for的比较174
10.3.3 如何看懂一个程序——“试数”176
10.3.4 do...while180
10.3.5 break和continue185
10.4 清空输入缓冲区187
10.4.1 输入缓冲区187
10.4.2 %d和%c读取缓冲区的差别189
10.4.3 用scanf吸收回车191
10.4.4 getchar()192
10.4.5 fflush(stdin)196
10.5 本章总结198
第11章 数组200
11.1 一维数组的使用200
11.1.1一维数组的定义200
11.1.2 一维数组的初始化201
11.1.3 一维数组元素的引用204
11.1.4 如何将数组a赋给数组b?205
11.1.5 如何编程获取数组的长度?206
11.1.6 练习208
11.1.7 宏定义:#define211
11.1.8 一维数组总结214
11.2 数组倒置算法214
11.3 数组查找算法217
11.3.1 顺序查找217
11.3.2 折半查找218
11.4 数组插入、删除算法221
11.4.1 插入算法221
11.4.2 删除算法222
11.5 数组