第1章 C语言概述 2
1.1 程序设计和C语言 2
1.1.1 程序的概念 2
1.1.2 程序设计的一般过程 2
1.1.3 程序设计的方法 3
1.1.4 C语言的历史和发展 3
1.2 历史上的第一个C语言程序 4
1.3 计算圆柱体底面积和体积 5
1.4 C语言的特点 6
1.5 计算1+2+3+…+100 7
1.6 算法 8
1.6.1 算法概述 8
1.6.2 算法的表示 9
1.7 C语言编程环境 10
1.7.1 Visual C++6.0编程环境 10
1.7.2 Turbo C 2.0编程环境 13
1.7.3 调试程序和错误处理 15
1.8 计算思维 19
1.8.1 关于计算思维 19
1.8.2 C语言和计算思维 20
本章小结 20
习题1 21
第2章 数据类型、运算符和表达式 21
2.1 数据类型 23
2.1.1 数据类型概述 23
2.1.2 整型及整型常量 24
2.1.3 实型及实型常量 25
2.1.4 字符型及字符型常量 27
2.2 标识符、符号常量与变量 29
2.2.1 标识符 29
2.2.2 符号常量 29
2.2.3 变量 30
2.3 运算符与表达式 34
2.3.1 算术运算符与算术表达式 36
2.3.2 算术表达式的书写 39
2.3.3 赋值运算符与赋值表达式 40
2.3.4 逗号运算符与逗号表达式 41
2.4 数据类型转换 42
2.4.1 类型转换概述 42
2.4.2 自动类型转换 44
2.4.3 赋值类型转换 44
2.4.4 强制类型转换 45
2.5 数据的溢出与误差 46
2.5.1 数据的溢出 46
2.5.2 实型数据的误差 48
2.6 一样的′A′,不一样的输出方式 49
2.7 代数式和C语言表达式 49
2.8 时间的换算 50
本章小结 51
习题2 52
第3章 简单程序设计 55
3.1 C语言语句 55
3.2 程序结构 56
3.2.1 程序结构简介 56
3.2.2 顺序结构 58
3.3 赋值语句 58
3.3.1 基本赋值语句 58
3.3.2 复合赋值语句 59
3.4 数据的输入与输出 60
3.4.1 格式化输出函数printf 60
3.4.2 格式化输入函数scanf 63
3.4.3 字符数据的输入与输出 67
3.5 简单的数据交换算法 68
3.6 大小写字母的转换 70
3.7 计算三角形的面积 70
3.8 求一元二次方程的根 71
3.9 相同的++运算,不一样的结果 72
本章小结 73
习题3 74
第4章 选择结构程序设计 79
4.1 红绿灯 79
4.2 关系运算符与关系表达式 80
4.2.1 关系运算符 80
4.2.2 关系表达式 81
4.3 逻辑运算符与逻辑表达式 81
4.3.1 逻辑运算符 81
4.3.2 逻辑表达式 82
4.4 逻辑运算符的短路现象 83
4.5 if语句 84
4.5.1 单分支if语句 84
4.5.2 双分支if语句 84
4.5.3 多分支选择结构 86
4.6 打车费用的计算 87
4.7 if语句的嵌套 88
4.8 闰年的判断 89
4.9 条件运算符和条件表达式 90
4.9.1 条件运算符 90
4.9.2 条件表达式 91
4.1 0 switch语句 92
4.1 1 判断输入的整数是否含有特征数字 95
4.1 2三个数的排序 95
4.1 3分数等级的划分 97
本章小结 99
习题4 99
第5章 循环结构程序设计 106
5.1 一次有趣的投币游戏 106
5.1.1 游戏规则 106
5.1.2 问题的解决 106
5.2 while循环 107
5.3 do-whlle循环 110
5.4 for循环 112
5.5 倒数的求和 114
5.6 循环的嵌套 116
5.7 break语句、continue语句和goto语句 118
5.7.1 break语句 118
5.7.2 continue语句 118
5.7.3 goto语句 119
5.8 阶乘的计算 120
5.9 输出星号组成的图形 120
5.1 0计算100以内的素数之和 123
5.1 1计算Fibonacci数列前20项的和 125
5.1 2循环的阅读和技巧 126
5.1 3 日历的打印 128
本章小结 129
习题5 130
第6章 数 组 139
6.1 数组的基本概念 139
6.2 一维数组 139
6.3 求10个数中的最大值、最小值、平均值 141
6.4 二维数组和多维数组 142
6.5 输入学生成绩,计算每门课程的平均分 144
6.6 字符数组与字符串 145
6.7 逆序输出字符串 146
6.8 字符串函数 147
6.9 查找最大字符串 148
6.10 冒泡排序算法 149
6.11 字符串的连接、插入和删除 152
6.12 转置矩阵 155
6.13 杨辉三角形 156
6.14 日历的打印 158
6.15 *统计汽车违规罚分 159
本章小结 160
习题6 161
第7章 函数 166
7.1 计算(1)+(1+2)+(1+2+3)+(1+2+3+4)+(1+2+3+4+5) 166
7.2 函数的定义和调用 167
7.2.1 函数定义 167
7.2.2 函数调用 168
7.3 参数传递 168
7.4 函数声明 170
7.5 作用域 171
7.6 存储类型 173
7.6.1 自动类型 174
7.6.2 寄存器类型 174
7.6.3 静态类型 174
7.6.4 外部类型 175
7.7 递归计算s=1+2+3+…+100 176
7.8 递归函数 177
7.9 函数参数处理次序的案例 178
7.10 9999符合“哥德巴赫猜想”吗 179
7.11 星号图形的打印 180
7.12 演示数组和函数的关系 181
7.13 科室排班 182
7.14 *汉诺塔游戏 185
本章小结 187
习题7 187
第8章 指 针 193
8.1 借钱的故事 193
8.2 指针的概念 193
8.3 指针变量的定义和初始化 194
8.4 指针运算 195
8.4.1 *运算符和取地址运算符& 195
8.4.2 指针变量的引用 195
8.4.3 指针的算术运算和关系运算 197
8.5 指针与数组 198
8.5.1 指针与字符数组 199
8.5.2 指针与其他类型数组 200
8.5.3 指针与二维数组 200
8.6 指针与函数 204
8.6.1 指针作为函数的参数 204
8.6.2 函数指针 205
8.6.3 返回指针的函数 208
8.7 字符的查找 210
8.8 统计字符的个数 211
8.9 *计算药品使用的频次 215
本章小结 217
习题8 218
第9章 结构体、共用体与枚举 222
9.1 结构体 222
9.1.1 结构体类型的定义 222
9.1.2 结构体变量的定义和初始化 223
9.1.3 结构体变量的引用 226
9.1.4 结构体数组 228
9.1.5 结构体指针 233
9.1.6 结构体与函数 236
9.2 共用体 241
9.2.1 共用体类型的定义 241
9.2.2 共用体变量的说明和引用 242
9.3 枚举类型 247
9.3.1 枚举类型的定义 247
9.3.2 枚举变量的定义和引用 248
9.4 用户定义类型 250
9.5 *动态内存分配与链表 251
9.6 求两个复数之和 256
9.7 已知今天,明天为何? 257
9.8 *统计汽车违规罚分 259
本章小结 261
习题9 262
第10章 位运算 270
10.1 位、字节与编码 270
10.1.1 字节与位 270
10.1.2 原码 270
10.1.3 反码 271
10.1.4 补码 271
10.2 位运算符和位运算 271
10.2.1 按位取反 272
10.2.2 按位与 272
10.2.3 按位或 272
10.2.4 按位异或 273
10.2.5 左位移 273
10.2.6 右位移 273
10.3 程序举例 274
本章小结 276
习题10 276
第11章 文 件 281
11.1 文件概述 281
11.1.1 文件的概念 281
11.1.2 文件的分类 281
11.2 文件操作 283
11.2.1 FILE文件类型指针 283
11.2.2 文件的打开操作 284
11.2.3 文件的关闭操作 285
11.2.4 文件的读写操作 286
11.3 文件的定位 294
11.3.1 置文件位置指针于文件开头位置的函数rewind 294
11.3.2 改变文件位置指针位置的函数fseek 295
11.3.3 取得文件当前位置的函数ftell 296
11.3.4 文件的错误检测 296
11.4 编译预处理 297
11.4.1 宏定义 297
11.4.2 文件包含 299
11.4.3 条件编译 300
11.5 文件中的字母转换 302
11.6 文件的合并 303
11.7 带参数宏的困惑 304
本章小结 304
习题11 305
第12章 面向对象程序设计及C++、C#、Java简介 305
12.1 面向对象程序设计方法 309
12.1.1 概述 309
12.1.2 面向对象程序设计的基本概念 309
12.1.3 面向对象程序设计的特点 310
12.2 C++语言 311
12.2.1 概述 311
12.2.2 C++语言的特点 312
12.2.3 几个简单的C++程序 313
12.2.4 C++程序的基本组成 315
12.2.5 数据的输入和输出 316
12.3 *C#语言 318
12.3.1 概述 318
12.3.2 C#如何与.NET Framework相关 321
本章小结 322
习题12 322
附录A 常用字符与ASCII码对照表 324
附录B Turbo C 2.0常用库函数 325
附录C Turbo C 2.0和Visual C++在编辑C程序时的区别 332
参考文献 333