目录 1
1 概述 1
1.1 程序设计语言介绍 1
1.2 C语言特点 3
1.3 本书学习主要内容及方法 4
习题 4
2 简单程序设计 5
2.1 一个简单的程序例子 5
2.2 上机调试过程介绍 6
2.2.1 Turbo C界面介绍 6
2.2.2 Turbo C环境中运行C语言源程序的步骤 9
2.3 算法的概念 11
2.3.1 算法的概念 11
2.3.2 简单算法举例 12
2.3.3 算法的特性 13
2.3.4 算法的表示形式 14
习题 16
3 简单数据类型、表达式、变量 17
3.1 C语言的数据类型 17
3.2 整型数据 18
3.2.1 整型常量的表示方法 18
3.2.2 整型变量 18
3.2.3 整型常量的类型 20
3.3 实型数据 20
3.3.1 实型常量的表示方法 20
3.3.2 实型变量 21
3.4.1 字符型常量的表示方法 22
3.4 字符型数据 22
3.4.2 字符型变量 23
3.4.3 字符串常量 24
3.5 赋值语句与表达式 25
3.5.1 变量赋初值 25
3.5.2 各种数值型数据间的混合运算 25
3.5.3 算术运算符 27
3.5.4 算术表达式 28
3.5.5 赋值运算符和赋值表达式 28
习题 30
4 输入输出语句 32
4.1 什么是输入、输出 32
4.2.1 格式输出函数——printf()函数 33
4.2 格式输入输出函数 33
4.2.2 格式输入函数——scanf()函数 36
4.3 字符输入输出函数 39
4.3.1 字符输出函数——putchar()函数 39
4.3.2 字符输入函数——getchar()函数 40
4.4 顺序结构程序设计 41
习题 44
5 分支结构 45
5.1 分支结构概述 45
5.2 if语句结构 46
5.2.1 if-else语句形式 46
5.2.2 if语句形式 47
5.2.3 else-if语句形式 49
5.3.1 关系运算符 50
5.3 关系表达式与逻辑表达式 50
5.3.2 关系表达式 51
5.3.3 逻辑运算符 51
5.3.4 逻辑表达式 52
5.4 if语句的嵌套 53
5.5 程序举例 55
5.6 switch语句 58
习题 61
6 循环结构 62
6.1 循环结构概述 62
6.2 do…while语句 63
6.3 while语句 64
6.4 for语句 65
6.5 程序举例 67
6.6 循环嵌套 70
6.7 break与continue命令 70
习题 73
7 数组 75
7.1 数组概述 75
7.2 一维数组 76
7.2.1 一维数组的定义 77
7.2.2 一维数组的引用 78
7.2.3 一维数组的初始化 78
7.2.4 一维数组的输出 79
7.2.5 一维数组应用举例 80
7.3 二维数组 85
7.3.1 二维数组的定义 85
7.3.2 二维数组的引用 86
7.3.4 二维数组应用举例 87
7.3.3 二维数组的初始化 87
7.4 字符数组 89
7.4.1 字符数组的定义 89
7.4.2 字符数组的引用 90
7.4.3 字符数组的初始化 90
7.4.4 字符串 91
7.4.5 二维字符数组 95
7.4.6 字符数组应用举例 96
习题 100
8 函数与变量作用域 101
8.1 函数概述 101
8.2.1 函数的定义 103
8.2 函数定义和调用 103
8.2.2 函数的调用 104
8.3 函数参数与返回值 107
8.3.1 函数调用时的参数传递 107
8.3.2 函数的返回值 109
8.4 数组作为函数参数应用 110
8.5 函数嵌套 112
8.6 函数的递归调用 113
8.7 内部变量与外部变量 116
8.7.1 内部变量 116
8.7.2 外部变量 117
8.8 变量的动态存储与静态存储 118
8.8.1 动态变量 119
8.8.2 全局变量 122
8.9 内部函数和外部函数 124
8.9.1 内部函数 124
8.9.2 外部函数 124
习题 126
9 指针 127
9.1 指针数据类型概述 127
9.2 指针应用 129
9.2.1 指针的定义与应用 129
9.2.2 指针变量的引用 130
9.3 数组指针和指向数组的指针变量 134
9.3.1 数组指针的应用 134
9.3.2 指向数组的指针应用 135
9.3.3 多维数组与指针 139
9.4 字符串的指针和指向字符串的指针变量 142
9.4.1 字符串的表示与引用 142
9.4.2 字符串指针作函数参数 143
9.5 返回指针值的函数 145
9.6 指针数组 146
9.6.1 指针数组 146
9.6.2 函数main()的形参 150
9.6.3 指向指针的指针变量简介 151
9.7 函数的指针和指向函数的指针变量简介 152
习题 157
10 结构与链表 158
10.1 构造数据类型概述 158
10.2.1 结构体类型的定义 159
10.2 结构体定义与应用 159
10.2.2 结构体变量的定义和引用 161
10.2.3 结构体变量的初始化 162
10.3 结构体数组 163
10.4 指向结构体类型数据的指针 165
10.4.1 指向结构体变量的指针 165
10.4.2 指向结构体数组的指针 168
10.5 链表应用 169
10.5.1 链表概念 169
10.5.2 用于动态存储分配的函数 170
10.5.3 链表的创建、输出、插入与删除 172
10.6 共用型数据结构 179
10.7 枚举型数据结构 181
10.8 用typedef定义类型 183
习题 185
11 数据文件 186
11.1 数据文件应用概述 186
11.1.1 文件分类 187
11.1.2 文件的访问方式 188
11.2 格式化数据文件操作 188
11.2.1 打开文件函数fopen() 188
11.2.2 关闭文件函数fclose() 190
11.2.3 从文件中格式化输入数据函数fscanf() 191
11.2.4 向文件中格式化输出数据函数fprintf() 191
11.2.5 文件建立 192
11.2.6 文件访问 193
11.2.7 文件修改 194
11.3.1 fgetc()函数——从指定文件中输入一个字符 196
11.3 字符数据文件操作 196
11.3.2 fputc()函数——向指定文件中输出一个字符 197
11.3.3 fgets()函数——从文件中读一个字符串 198
11.3.4 fputs()函数——向指定文件输出一个字符串 198
11.3.5 feof()函数——文件操作是否到文件尾的检测函数 199
11.4 fread()与fwrite()函数 200
11.5 文件位置定位与错误处理函数 202
11.5.1 rewind()函数——将文件读写指针定位于文件头 202
11.5.2 fseek()函数——重新定位文件位置指针 203
11.5.3 ftell()函数——测试当前读写指针位置 203
11.5.4 ferror()函数——检测文件流操作中的错误 204
11.5.5 clearer()函数——清除出错标志 205
习题 206
12 编译预处理 207
12.1 宏定义与符号变量 208
12.1.1 无参数宏定义 208
12.1.2 符号常量 211
12.1.3 带参数宏定义 211
12.2 文件包含 216
12.3 条件编译 217
12.3.1 #ifdef…#else…#endif条件编译形式 217
12.3.2 #ifndef…#else…#endif条件编译形式 218
12.3.3 #if…#else…#endif条件编译格式 218
习题 220
13 位操作 221
13.1 数值在计算机中的表示 221
13.2.1 按位与运算 223
13.2 位运算及位运算符 223
13.2.2 按位或运算 224
13.2.3 按位异或运算 224
13.2.4 求反运算 225
13.2.5 左移运算 225
13.2.6 右移运算 226
13.2.7 位运算符与赋值运算符结合组成的赋值运算符 226
13.3 位运算综合应用举例 227
习题 231
14 综合应用 232
14.1 软件工程基本概念 233
14.1.1 软件工程概念 233
14.1.2 软件生命周期 234
14.1.3 软件项目管理 236
14.1.4 软件质量管理 238
14.1.5 软件测试 241
14.2 学生成绩管理系统 244
14.2.1 学生成绩管理系统分析与设计 244
14.2.2 各模块程序代码 247
14.3 魔方 258
14.4 万年历问题 261
附录 272
附录1 ASCⅡ码表 272
附录2 编辑中常用快捷键 275
附录3 标准库函数 276
附录4 常见错误分析 282
附录5 Furbo C 2.0安装与集成调试器使用 289
参考文献 291