目录 1
第1章 程序设计基础 1
1.1 计算机系统组成 1
1.1.1 硬件系统 1
1.1.2 软件系统 2
1.1.3 软、硬件系统的接口 4
1.2 操作系统 4
1.2.1 基本概念 4
1.2.2 发展历程 5
1.2.3 基本特征 6
1.2.4 基本功能 7
1.2.5 分类 10
1.2.6 Windows XP操作系统 13
1.3 程序设计语言 14
1.3.1 基本介绍 14
1.3.2 基于DOS的程序设计 15
1.3.3 基于Windows的程序设计 16
习题1 18
第2章 算法 19
2.1 基本概念 19
2.2 算法描述 19
2.2.1 伪代码 20
2.2.2 流程图 20
2.2.3 N-S图 23
2.3 算法效率的度量 24
2.3.1 时间复杂度 25
2.3.2 空间复杂度 26
习题2 27
第3章 程序语言基础 28
3.1 C语言概述 28
3.1.1 C语言的特点 28
3.1.2 简单的C程序介绍 29
3.2 基本数据类型 32
3.2.1 常量与变量 32
3.2.2 标识符和关键字 33
3.2.3 数据类型 33
3.2.4 整型 34
3.2.5 实型 35
3.2.6 字符型 36
3.2.7 空类型 38
3.2.8 不同类型数据间的转换 38
3.2.9 变量的赋值和初始化 39
3.3 运算符和表达式 40
3.3.1 算术运算符 40
3.3.2 赋值运算符 42
3.3.3 关系运算符 43
3.3.4 逻辑运算符 43
3.3.5 条件运算符 44
3.3.6 逗号运算符 45
3.3.7 位运算符 45
3.4.1 putchar(字符输出函数) 48
3.4 输入输出 48
3.4.2 getchar(字符输入函数) 49
3.4.3 printf(格式输出函数) 49
3.4.4 scanf(格式输入函数) 51
3.5 简单程序举例 52
习题3 53
第4章 程序控制结构 55
4.1 程序的三种基本结构 55
4.2 顺序结构 56
4.3 选择结构 57
4.3.1 if语句 58
4.3.2 switch语句 60
4.4.1 while语句 64
4.4 循环结构 64
4.4.2 do-while语句 66
4.4.3 for语句 67
4.4.4 循环嵌套 68
4.4.5 循环辅助语句 69
4.4.6 goto语句 70
习题4 71
第5章 数组 73
5.1 一维数组 73
5.1.1 一维数组的定义 73
5.1.2 一维数组元素的引用 74
5.1.3 一维数组的初始化 74
5.1.4 一维数组程序举例 76
5.2 二维数组 83
5.2.2 二维数组的引用 84
5.2.1 二维数组的定义 84
5.2.3 二维数组的初始化 85
5.2.4 二维数组程序举例 86
5.3 字符数组 89
5.3.1 一维字符数组的定义 89
5.3.2 一维字符数组的初始化 90
5.3.3 一维字符数组的引用 90
5.3.4 字符串的输入输出 90
5.3.5 字符串处理函数 93
5.3.6 二维字符数组 98
习题5 100
6.1.1 结构体类型定义 103
第6章 结构体与共用体 103
6.1 结构体 103
6.1.2 结构体变量 104
6.1.3 结构体变量的引用及初始化 106
6.1.4 结构体数组 107
6.2 共用体 109
习题6 112
第7章 指针 114
7.1 指针的概念 114
7.2 指针变量的定义和引用 115
7.2.1 指针变量的定义 115
7.2.2 指针变量的引用 116
7.3.1 指向一维数组的指针变量 117
7.3 指针与数组 117
7.3.2 指向二维数组的指针变量 119
7.3.3 指针与字符串 121
7.4 指针与结构体 123
7.4.1 指向结构体变量的指针 123
7.4.2 指向结构体数组的指针 125
习题7 126
第8章 函数与文件 128
8.1 函数的定义与函数声明 128
8.1.1 函数定义的一般形式 128
8.1.2 函数声明 129
8.2 函数的参数和返回值 131
8.2.1 函数的形参和实参 131
8.1.3 函数的调用 131
8.2.2 函数的返回值 133
8.2.3 函数示例 133
8.3 函数参数的传递方式 134
8.3.1 变量作为函数参数 135
8.3.2 数组作为函数参数 135
8.3.3 结构作为函数参数 141
8.3.4 指针作为函数参数 144
8.4 函数的嵌套调用和递归调用 149
8.4.1 函数的嵌套调用 149
8.4.2 函数的递归调用 150
8.5 局部变量和全局变量 154
8.5.1 局部变量 154
8.5.2 全局变量 156
8.6 变量的存储属性 158
8.6.1 变量的存储方式 158
8.6.2 auto自动变量 158
8.6.3 extern外部变量 160
8.6.4 static静态变量 161
8.6.5 register寄存器变量 162
8.7 库函数 163
8.8 文件 164
8.8.1 C语言文件的概述 164
8.8.2 缓冲文件系统 165
习题8 176
9.1 基本概念 181
第9章 数据结构 181
9.2 线性表 183
9.2.1 逻辑结构 183
9.2.2 存储结构 183
9.2.3 基本运算 184
9.3 栈 186
9.3.1 逻辑结构 186
9.3.2 顺序栈 186
9.3.3 链栈 188
9.3.4 栈的应用 190
9.4 队列 191
9.4.1 逻辑结构 191
9.4.2 顺序队 191
9.4.3 循环队 192
9.5 链表 195
9.5.1 基本概念 195
9.5.2 用于处理动态链表的函数 196
9.5.3 链表的建立和输出 198
9.5.4 链表的删除和插入 202
9.5.5 双向链表 206
9.5.6 循环链表 207
9.5.7 顺序表与链表之间的区别 208
9.6 树和二叉树 208
9.6.1 树 208
9.6.2 二叉树的逻辑结构 209
9.6.3 二叉树的存储结构 209
9.6.4 二叉树的遍历 210
9.7 排序 211
9.7.1 交换排序 212
9.7.2 插入排序 215
9.7.3 选择排序 217
9.7.4 小结 217
9.8 查找 217
9.8.1 顺序查找 218
9.8.2 折半查找 218
习题9 220
第10章 C语言的图形开发技术 222
10.1 图形模式的初始化 222
10.2 设置屏幕颜色 224
10.3.2 画线 226
10.3 基本图形函数 226
10.3.1 画点 226
10.3.3 画面 229
10.4 屏幕操作函数 232
10.5 图形模式下的文本输出 234
习题10 237
第11章 软件工程 238
11.1 基本框架 238
11.2 软件生存周期 240
11.2.1 可行性研究 240
11.2.2 需求分析 241
11.2.3 程序设计 241
11.2.4 编码 242
11.2.5 测试 243
11.2.6 维护 244
11.3 软件开发模型 245
11.4 面向对象的软件开发 248
习题11 250
第12章 数据库设计 251
12.1 计算机数据管理的发展 251
12.2 数据库系统 252
12.3 数据模型 253
12.4 数据库设计 255
习题12 256
参考文献 257