第1章 死记硬背 1
1.1 引子 1
1.2 死记硬背 3
1.2.1 编程基本步骤 3
1.2.2 记死 5
1.3 初学者方法 7
第2章 数据类型 9
2.1 从A+B说起 9
2.2 A+B继续 10
2.3 基本数据类型 12
2.3.1 数据类型与“模子” 13
2.3.2 常量 14
2.3.3 变量 22
2.3.4 强制类型转换 29
2.4 变量的命名规则 33
2.5 拓展训练 35
第3章 数据的控制台输入与输出 37
3.1 printf()函数和scanf()函数 37
3.1.1 printf()函数 37
3.1.2 scanf()函数 41
3.2 getchar()函数与putchar()函数 47
3.2.1 字符输入函数getchar() 47
3.2.2 字符输出函数:putchar() 48
3.3 标准程序解读 50
3.3.1 头文件 51
3.3.2 函数 51
第4章 控制结构 53
4.1 从+1开始 53
4.2 灌汤包 56
4.3 顺序结构 57
4.4 分支结构 58
4.4.1 if语句 58
4.4.2 switch语句 63
4.5 循环结构 66
4.5.1 while语句 66
4.5.2 do-while语句 69
4.5.3 for语句 70
4.6 continue语句和break语句 74
4.6.1 continue语句 74
4.6.2 break语句 75
4.7 实例分析 76
第5章 运算符和表达式 78
5.1 算术运算符 78
5.2 逻辑运算符 81
5.2.1 逻辑代数基础 81
5.2.2 逻辑运算符 83
5.3 关系运算符 86
5.4 位运算 87
5.4.1 按位与运算 88
5.4.2 按位或运算 88
5.4.3 按位异或运算 89
5.4.4 求反运算 90
5.4.5 左移运算 90
5.4.6 右移运算 91
5.5 表达式 92
5.5.1 (算术)运算符的优先级与结合性 92
5.5.2 赋值运算符 93
5.5.3 逗号运算符和逗号表达式 94
5.5.4 运算符优先级总结 95
5.6 实例分析 97
第6章 基本输入与输出 103
6.1 OJ系统简介 103
6.2 OJ系统使用说明 104
6.2.1 OJ系统注册 104
6.2.2 常见评判结果 107
6.2.3 简单题 108
6.3 基本输入与输出 108
6.3.1 基本输入类型 109
6.3.2 基本输出 113
6.4 解题报告 116
第7章 数组 118
7.1 一维数组 118
7.1.1 一维数组的定义 118
7.1.2 一维数组元素的引用 119
7.1.3 一维数组的初始化赋值 120
7.1.4 实例分析 121
7.2 二维数组 133
7.2.1 二维数组的定义 133
7.2.2 二维数组元素的引用 133
7.2.3 二维数组的初始化赋值 136
7.2.4 实例分析 138
7.3 字符数组 143
7.3.1 字符数组的定义 143
7.3.2 字符数组的初始化 143
7.3.3 字符数组的引用 144
7.3.4 字符串和字符串结束标志 144
7.3.5 字符数组的输入与输出 145
7.4 动态数组 147
7.4.1 为什么引进动态数组 147
7.4.2 动态数组的创建 149
7.5 测试程序运行时间 151
7.6 拓展训练 152
第8章 自定义函数 155
8.1 为什么要引入函数 155
8.1.1 模块化程序设计思想 155
8.1.2 函数分类 156
8.1.3 实例分析 157
8.2 函数定义 158
8.2.1 函数定义形式 158
8.2.2 函数参数 160
8.2.3 函数的返回值 162
8.3 函数调用 164
8.3.1 函数调用形式 164
8.3.2 函数声明 165
8.3.3 函数声明和函数定义的区别 167
第9章 结构体 168
9.1 引子 168
9.2 结构体基本概念 169
9.2.1 结构体类型的定义 169
9.2.2 结构体变量的定义 170
9.2.3 结构体变量占据的内存空间 171
9.2.4 结构体变量对结构体成员的引用 171
9.2.5 结构体变量的赋值 172
9.3 结构体类型的数组 175
9.3.1 结构体数组变量的定义 176
9.3.2 结构体数组的引用 176
9.3.3 结构体数组的初始化 176
附录A Dev C++安装说明 183
附录B DEV C++使用说明 187
附录C 常见错误信息中英语句索引 199
附录D 常用头文件及包含的函数 203
附录E C语言32个关键字和9种控制语句 207
参考文献 209