第1章 C语言概述 1
1.1 C语言的发展历史 1
1.2 C语言的语法 1
1.2.1 C语言的字符集 2
1.2.2 C语言的标识符 2
1.2.3 C语言的保留字 2
1.2.4 C语言的词类 3
1.2.5 C语言的语句 3
1.3 C语言开发环境 4
1.3.1 Visual C编辑环境 4
1.3.2 运行C程序的步骤 4
1.4 用C语言求解问题的过程 8
1.4.1 源程序 8
1.4.2 目标程序 8
1.4.3 程序设计基本步骤 8
1.4.4 算法及描述 9
1.4.5 用结构化流程图表示算法 12
习题 13
第2章 C程序设计初步 14
2.1 系统函数 14
2.1.1 格式输出函数printf() 14
2.1.2 系统函数和头文件 17
2.1.3 主函数的构成 17
2.2 简单密码验证程序 18
2.2.1 常量、变量和基本数据类型 18
2.2.2 算术运算符和算术表达式 23
2.2.3 赋值运算符和赋值表达式 24
2.2.4 关系运算符和关系表达式 24
2.2.5 选择结构 25
2.2.6 格式输入函数scanf() 26
2.2.7 程序解析 28
2.3 特色运算符和表达式 28
2.3.1 逗号运算符和逗号表达式 28
2.3.2 条件运算符和条件表达式 29
2.3.3 位运算符 29
2.3.4 自增、自减运算符 31
2.4 类型转换 32
2.4.1 自动类型转换 32
2.4.2 强制类型转换 33
2.5 C程序编码风格 34
2.6 本章小结 34
习题 34
第3章 选择结构程序设计 37
3.1 分类统计字符数量 37
3.1.1 字符类型 37
3.1.2 字符型数据的输入函数getchar()和输出函数putchar() 41
3.1.3 逻辑运算符和逻辑表达式 43
3.1.4 多路决策判断if-else语句 45
3.1.5 程序解析 48
3.2 简单计算器 50
3.2.1 switch语句 50
3.2.2 程序解析 53
3.3 收入所得税计算器 55
3.3.1 多分支结构与嵌套的if语句 55
3.3.2 程序解析 57
3.4 综合应用——生日是周几的判断 59
3.5 本章小结 61
习题 62
第4章 循环结构程序设计 66
4.1 求圆周率的近似值 66
4.1.1 while循环语句 66
4.1.2 程序解析 67
4.2 体育彩票开奖 68
4.2.1 do-while循环语句 68
4.2.2 程序解析 69
4.3 统计学生最低分 70
4.3.1 for循环语句 70
4.3.2 程序解析 71
4.3.3 break语句和continue语句 72
4.4 循环结构程序设计 74
4.4.1 几种循环的比较 74
4.4.2 嵌套循环 74
4.4.3 穷举法编程 75
4.5 综合应用——猜数字游戏 76
4.6 本章小结 77
习题 78
第5章 函数及其应用 80
5.1 圆的面积计算 80
5.1.1 函数的定义 81
5.1.2 函数的调用 82
5.1.3 函数的原型声明 82
5.1.4 程序解析 83
5.2 使用函数编写程序 83
5.2.1 函数的应用举例 83
5.2.2 程序解析 84
5.3 变量与函数 84
5.3.1 局部变量与全局变量 85
5.3.2 变量作用域与生存期 86
5.3.3 静态局部变量,寄存器变量及全局变量 87
5.3.4 程序解析 88
5.4 递归方法在函数中的应用 88
5.4.1 递归法 89
5.4.2 递归函数 90
5.4.3 汉诺塔问题 90
5.4.4 程序解析 91
5.5 编译预处理 91
5.5.1 文件包含命令 92
5.5.2 宏定义 92
5.5.3 条件编译 94
5.6 综合应用——四则运算测试系统 95
5.7 本章小结 97
习题 98
第6章 数组及其应用 101
6.1 冒泡排序 101
6.1.1 一维数组的定义和引用 101
6.1.2 一维数组的初始化 102
6.1.3 程序解析 102
6.1.4 使用一维数组编程 104
6.2 二维矩阵的转置 105
6.2.1 二维数组的定义和引用 105
6.2.2 二维数组的初始化 106
6.2.3 程序解析 106
6.2.4 使用二维数组编程 107
6.3 统计单词量 109
6.3.1 一维字符数组的定义、初始化和引用 109
6.3.2 字符串 109
6.3.3 字符串处理函数 110
6.3.4 程序解析 110
6.4 综合应用——学生成绩统计与分析 111
6.5 本章小结 114
习题 115
第7章 指针 118
7.1 通过传达室寻找某位同学 118
7.1.1 地址和指针 118
7.1.2 指针变量的定义和初始化 119
7.1.3 指针的间接引用 120
7.1.4 指针的基本运算 122
7.1.5 程序解析 125
7.2 指针与函数参数 126
7.3 选择排序 128
7.3.1 指向数组元素的指针 128
7.3.2 通过指针引用数组元素 129
7.3.3 数组名作函数参数 132
7.3.4 程序解析 134
7.4 指针与二维数组 135
7.5 加密变换 136
7.5.1 字符串的表示形式 137
7.5.2 字符指针作函数参数 139
7.5.3 程序解析 140
7.6 字符串排序 141
7.6.1 指针数组的概念 141
7.6.2 指向指针的指针 142
7.6.3 程序解析 143
7.7 函数与指针 144
7.7.1 指针作为函数的返回值 144
7.7.2 指向函数的指针 145
7.7.3 函数指针作为函数的参数 147
7.8 本章小结 147
习题 148
第8章 自定义数据类型 151
8.1 结构体类型 151
8.1.1 结构体的概念及定义 151
8.1.2 结构体的嵌套定义 153
8.1.3 结构体变量 153
8.1.4 结构体数组 158
8.2 票数统计 159
8.2.1 结构体指针的概念 160
8.2.2 结构体指针作为函数参数 162
8.3 学生成绩管理的单向链表实现 164
8.3.1 链表的概念 164
8.3.2 单向动态链表的建立 166
8.3.3 插入结点 167
8.3.4 删除结点 168
8.3.5 遍历链表 169
8.3.6 程序解析 170
8.4 共用体及枚举类型 175
8.4.1 共用体类型、共用体变量的定义及使用 175
8.4.2 混合计分制成绩管理的实现 177
8.4.3 枚举类型、枚举变量的定义及使用 180
8.5 综合应用——通讯录管理 182
8.5.1 需求分析 182
8.5.2 功能描述 182
8.5.3 总体设计 183
8.5.4 程序实现 185
8.6 本章小结 192
习题 193
第9章 文件 197
9.1 文件概述 197
9.1.1 文件的概念 197
9.1.2 文本文件和二进制文件 197
9.1.3 文件结构和文件类型指针 198
9.1.4 文件的打开与关闭 199
9.1.5 格式化文件写函数fprint() 201
9.1.6 程序解析 201
9.2 读取学生基本信息文件 202
9.2.1 格式化文件读函数fscanf() 202
9.2.2 程序解析 202
9.3 复制文件 203
9.3.1 程序解析 203
9.3.2 字符方式文件读/写函数fgetc()和f[utc() 204
9.3.3 字符串方式文件读/写函数fgets()和fputs() 206
9.3.4 数据块读/写函数fread()和fwrite() 207
9.3.5 其他相关函数 209
9.4 综合应用——个人收支记账本的实现 210
9.5 本章小结 213
习题 213
第10章 MFC 214
10.1 MFC基础知识 214
10.1.1 MFC概述 214
10.1.2 MFC类的组织结构及主要的类简介 216
10.1.3 MFC中的全局函数与全局变量 217
10.1.4 应用程序向导 219
10.2 Windows标准控件在可视化编程中的应用 225
10.2.1 按钮控件(Button Contro1) 226
10.2.2 静态控件(Static Contro1)和编辑框(Edit Box) 231
10.2.3 列表框(List Box) 235
10.2.4 组合框(Combo Box) 239
10.2.5 滚动条(Scroll Bar) 241
10.2.6 对话框通用控件 242
10.3 在MFC中创建应用程序的资源 248
10.3.1 获取资源的样例 248
10.3.2 资源的应用 250
10.4 本章小结 256
习题 256
附录 257
附录Ⅰ ASCII码表 257
附录Ⅱ C语言关键字表 258
附录Ⅲ 运算符的优先级和结合性 259
附录Ⅳ 常用库函数 260
参考文献 265