第1章 程序设计基础知识 1
1.1 程序与程序语言 1
1.1.1 计算机程序 1
1.1.2 计算机语言 1
1.2 算法和算法描述 3
1.2.1 算法的概念 4
1.2.2 算法设计的要求 4
1.2.3 算法的描述 5
1.3 结构化程序设计方法 10
1.3.1 结构化程序设计的产生和发展 10
1.3.2 程序设计的基本过程 10
1.3.3 结构化程序设计 11
1.3.4 程序调试 13
习题一 14
第2章 C语言概述 15
2.1 最简单C程序 15
2.1.1 入门程序 15
2.1.2 求乘积 17
2.1.3 判断闰年 18
2.2 C语言的上机执行过程 20
2.2.1 C程序的上机执行过程 20
2.2.2 Visual C++6.0的使用 21
2.3 C语言的基本组成 25
2.3.1 C语言字符集 25
2.3.2 C语言的词 26
2.3.3 语句 28
2.3.4 C程序的结构 28
2.3.5 C程序的书写风格 29
2.4 C语言的主要特性 31
2.5 学好C语言的关键 32
2.6 C语言的发展史 33
习题二 34
第3章 顺序结构程序设计 35
3.1 体重指数计算器 35
3.2 常量与变量 36
3.2.1 整型常量与整型变量 38
3.2.2 实型常量与实型变量 42
3.2.3 字符常量与字符变量 44
3.3 运算符和表达式 47
3.3.1 算术运算符 48
3.3.2 赋值运算符和赋值表达式 50
3.3.3 逗号运算符和逗号表达式 52
3.3.4 数据类型转换 53
3.4 基本数据输入输出 56
3.4.1 字符数据的输入输出 56
3.4.2 格式化输出函数printf 58
3.4.3 格式化输入函数scanf 62
3.5 顺序结构程序设计举例 69
习题三 70
第4章 分支结构程序设计 72
4.1 智能体重指数计算器 72
4.1.1 关系运算符和关系表达式 74
4.1.2 逻辑运算符及逻辑表达式 75
4.1.3 if语句 77
4.1.4 条件运算符和条件表达式 82
4.2 成绩评定问题 84
4.2.1 switch语句 85
4.2.2 break语句 86
4.3 分支结构程序举例 87
习题四 91
第5章 循环结构程序设计 95
5.1 班级体重指数计算器 95
5.1.1 while循环 97
5.1.2 do-while循环 100
5.1.3 for循环 101
5.1.4 循环的嵌套 103
5.1.5 goto语句和标号 104
5.1.6 几种循环语句的比较 105
5.2 break和continue语句 105
5.2.1 循环中的break语句 105
5.2.2 continue语句 109
5.3 程序举例 111
习题五 113
第6章 数组 118
6.1 班级英语成绩排名 118
6.1.1 一维数组的定义 119
6.1.2 一维数组元素的引用 121
6.1.3 一维数组的初始化 122
6.1.4 一维数组程序举例 123
6.2 班级总成绩排名 126
6.2.1 二维数组的定义和引用 127
6.2.2 二维数组的初始化 128
6.2.3 二维数组程序举例 130
6.3 搜索好友 132
6.3.1 字符数组的定义和引用 133
6.3.2 字符串和字符串结束标志 135
6.3.3 字符数组的输入输出 135
6.3.4 字符串处理函数 137
6.4 程序举例 140
6.5 旅客的航空逾重行李费用计算及查询 143
习题六 146
第7章 函数 148
7.1 求素数 148
7.1.1 函数定义 150
7.1.2 函数的参数和函数的值 152
7.1.3 函数说明与函数调用 155
7.2 俄罗斯方块的旋转 158
7.2.1 局部变量和全局变量 162
7.2.2 变量的存储类别 166
7.3 汉诺塔 168
7.4 明文与密文 175
7.5 内部函数和外部函数 178
习题七 181
第8章 预处理命令 182
8.1 宏 182
8.2 文件包含 186
8.3 条件编译 187
习题八 189
第9章 指针 190
9.1 动态数组 190
9.1.1 指针的概念 191
9.1.2 指针变量的定义 193
9.1.3 指针变量的赋值 194
9.1.4 指针变量的引用 196
9.1.5 指针变量作为函数参数 198
9.1.6 动态存储管理 201
9.2 单科成绩状元 203
9.2.1 数组指针 204
9.2.2 指针和地址运算 205
9.2.3 通过指针引用数组元素 206
9.2.4 数组指针作函数参数 209
9.3 班级综评第一名 213
9.3.1 多维数组的地址 214
9.3.2 指向多维数组的指针变量 217
9.4 演讲稿的保存 218
9.4.1 字符串指针 219
9.4.2 指针数组 221
9.4.3 main函数的参数 223
9.4.4 指向指针的指针 224
9.5 函数指针和指针函数 226
9.5.1 函数指针 226
9.5.2 指针函数 228
习题九 229
第10章 结构体与共用体 231
10.1 学生成绩管理 231
10.2 结构体类型及其变量 232
10.2.1 结构体类型的定义 232
10.2.2 结构体变量的定义 234
10.2.3 结构体变量的初始化 236
10.2.4 结构体变量的引用 236
10.2.5 结构体指针变量 239
10.2.6 结构体数组 241
10.3 用链表管理学生成绩 243
10.3.1 链表的概念 243
10.3.2 基于线性链表的学生成绩管理 244
10.4 共同体类型 248
10.4.1 共同体类型及共用体变量的定义 248
10.4.2 学生与教师通用的表格管理 251
10.5 枚举类型 253
10.5.1 枚举类型和枚举变量的定义 253
10.5.2 枚举类型变量的赋值和使用 254
10.6 类型定义符typedef 255
习题十 256
第11章 位运算 262
11.1 位运算案例 262
11.2 位运算符 263
11.2.1 按位与运算 264
11.2.2 按位或运算 265
11.2.3 按位异或运算 266
11.2.4 按位取反运算 267
11.2.5 左移运算 268
11.2.6 右移运算 268
11.3 位段 268
11.3.1 位段的定义和位段变量的说明 269
11.3.2 位段的应用 270
习题十一 271
第12章 文件 273
12.1 将字符串写入文件 273
12.2 C文件概述 274
12.2.1 文件的分类 274
12.2.2 文件的操作 275
12.2.3 文件系统 275
12.2.4 文件指针 276
12.3 文件的打开与关闭 277
12.3.1 文件打开函数 277
12.3.2 文件关闭函数 279
12.4 文件的读写 279
12.4.1 字符读写函数 279
12.4.2 字符串读写函数 282
12.4.3 数据块读写函数 284
12.4.4 格式化读写函数 286
12.5 文件的随机读写 288
12.5.1 函数rewind 288
12.5.2 函数fseek 290
12.5.3 函数ftell 290
12.5.4 文件的随机读写 291
12.6 文件出错检测 293
12.6.1 文件结束检测函数 293
12.6.2 读写文件出错检测函数 293
12.6.3 清除文件出错标志和文件结束标志置零函数 294
12.7 图书管理系统的设计 294
习题十二 299
附录Ⅰ ASCII标准字符表 302
附录Ⅱ C语言中的关键字 306
附录Ⅲ 运算符和结合性 308
附录Ⅳ C语言常用语法提要 309
附录Ⅴ C库函数 314
参考文献 318