第1章 程序设计及C语言概述 1
本章学习目标 1
1.1程序设计的基本概念 1
1.1.1程序和程序文件 1
1.1.2程序设计和程序设计语言 1
1.2算法 2
1.2.1算法及其特性 2
1.2.2算法设计的要求 3
1.2.3算法的组成要素 3
1.2.4算法的描述 3
1.3 C语言的特点 5
1.4简单的C语言程序 5
1.5 C语言程序的开发 7
本章小结 8
习题一 8
第2章 数据描述与基本操作 10
本章学习目标 10
2.1基本标识符 10
2.1.1关键字 10
2.1.2预定义标识符 10
2.1.3用户定义标识符 11
2.2基本数据类型 11
2.3常量和变量 13
2.3.1变量 13
2.3.2.常量 15
2.4运算符与表达式 18
2.4.1运算符与表达式简介 18
2.4.2算术运算符与算术表达式 19
2.4.3赋值运算符与赋值表达式 21
2.4.4关系运算符与关系表达式 22
2.4.5逻辑运算符与逻辑表达式 23
2.4.6条件运算符与条件表达式 25
2.4.7逗号运算符与逗号表达式 27
2.5数据的类型转换 27
2.5.1自动类型转换 28
2.5.2强制类型转换 28
2.6数据的输入和输出 29
2.6.1字符输入输出函数 29
2.6.2格式输入输出函数 30
2.7应用举例 33
本章小结 35
习题二 36
第3章C语言程序的流程控制 39
本章学习目标 39
3.1 C语言程序的3种基本结构 39
3.1.1顺序结构 39
3.1.2选择结构 39
3.1.3循环结构 40
3.2 C语言语句概述 41
3.2.1基本语句 41
3.2.2控制语句 41
3.2.3复合语句 42
3.3选择结构程序设计 42
3.3.1 if语句(条件语句) 42
3.3.2 switch语句 46
3.4循环结构的程序设计 48
3.4.1 for语句 48
3.4.2 while语句 50
3.4.3 do-while语句 51
3.4.4 3种循环语句的比较 52
3.4.5循环语句的嵌套 52
3.5流程转向语句 54
3.5.1 break语句和continue语句 54
3.5.2 return语句 56
3.6典型应用算法 56
3.6.1穷举算法 56
3.6.2迭代算法 57
本章小结 59
习题三 59
第4章 数组 67
本章学习目标 67
4.1一维数组 67
4.1.1一维数组的定义 67
4.1.2一维数组元素的引用 68
4.1.3一维数组的初始化 69
4.1.4一维数组应用举例 70
4.2二维数组 74
4.2.1二维数组的定义 74
4.2.2二维数组元素的引用 75
4.2.3二维数组的初始化 75
4.2.4二维数组应用举例 76
4.3字符数组与字符串 77
4.3.1字符数组的定义和初始化 77
4.3.2字符串的存储及字符串结束标志 79
4.3.3字符串的输入和输出 79
4.3.4字符串处理函数 81
4.3.5字符数组应用举例 84
本章小结 86
习题四 86
第5章 函数 90
本章学习目标 90
5.1概述 90
5.2函数的定义与调用 92
5.2.1函数的定义 92
5.2.2函数的调用 93
5.2.3被调函数的原型说明 94
5.2.4函数的返回值 96
5.3函数的嵌套调用 97
5.4递归函数及其调用 98
5.5主调函数和被调函数的数据传递 100
5.6变量的存储类别 103
5.6.1局部变量 103
5.6.2全局变量 106
5.7内部函数和外部函数 109
5.7.1内部函数 109
5.7.2外部函数 110
5.8 函数应用举例 110
本章小结 114
习题五 115
第6章 编译预处理 122
本章学习目标 122
6.1概述 122
6.2宏定义 123
6.2.1不带参数的宏定义 123
6.2.2带参数的宏定义 124
6.3文件包含 127
6.4条件编译 128
6.4.1 #ifdef命令 128
6.4.2 #ifndef命令 129
6.4.3 #if命令 130
本章小结 131
习题六 131
第7章 指针 135
本章学习目标 135
7.1指针概述 135
7.1.1变量的地址和指针变量的概念 135
7.1.2指针变量的定义及初始化 136
7.1.3指向指针的指针 138
7.2指针变量的赋值与引用 138
7.2.1指针变量的赋值 138
7.2.2指针变量的引用 140
7.3指针变量的运算 141
7.3.1指针变量的算术运算 141
7.3.2指针变量的关系运算 143
7.4指针与数组 143
7.4.1一维数组元素的指针访问方式 143
7.4.2二维数组元素的指针访问方式 146
7.4.3字符指针与字符串 149
7.4.4指向一维数组的指针 152
7.4.5指针数组 154
7.5指针与函数 156
7.5.1指针作为函数参数 156
7.5.2指针函数 158
7.5.3指向函数的指针 159
7.6带参数的main()函数及其应用 163
7.6.1命令行参数 163
7.6.2带参数的main()函数 163
7.7指针应用举例 164
本章小结 166
习题七 166
第8章 结构体、共用体和枚举 172
本章学习目标 172
8.1结构体 172
8.1.1结构体类型的定义 172
8.1.2结构体类型变量的定义和初始化 173
8.1.3结构体成员的引用 176
8.2结构体和函数 178
8.2.1结构体类型的变量作为函数参数 178
8.2.2结构体类型的变量作为函数的返回值 179
8.3链表 180
8.3.1链表的定义及基本结构 181
8.3.2动态存储分配函数 181
8.3.3链表的基本操作 182
8.4共用体 187
8.4.1共用体类型的定义 187
8.4.2共用体变量的定义 187
8.4.3共用体成员的引用 188
8.5枚举 190
8.5.1枚举类型和枚举型变量的定义 190
8.5.2枚举型变量的使用 192
8.6 typedef类型定义 193
8.6.1类型定义的基本格式 193
8.6.2类型定义的使用说明 194
8.7综合应用实例 194
本章小结 198
习题八 198
第9章 位运算 203
本章学习目标 203
9.1概述 203
9.2位运算 204
9.2.1按位取反运算符 204
9.2.2按位与运算符 204
9.2.3按位或运算符 205
9.2.4按位异或运算符 206
9.2.5左移运算符 207
9.2.6右移运算符 208
9.3位运算应用举例 208
9.4位段 210
本章小结 212
习题九 212
第10章 文件 215
本章学习目标 215
10.1文件概述 215
10.1.1基本概念 215
10.1.2缓冲文件系统 216
10.2文件指针和文件读写指针 217
10.2.1文件指针 217
10.2.2文件读写指针 217
10.3文件的打开与关闭 217
10.3.1打开文件 217
10.3.2关闭文件 219
10.4文件的读写 219
10.4.1格式读写函数 219
10.4.2字符读写函数(fgetc和fputc) 223
10.4.3字符串读写函数 227
10.4.4数据块读写函数 229
10.5文件的定位 232
10.5.1 rewind()函数 232
10.5.2 fseek()函数 233
10.5.3 ftell()函数 233
10.6出错的检测 235
10.6.1 ferror()函数 235
10.6.2 clearerr()函数 235
10.7文件应用举例 235
本章小结 238
习题十 238
第11章 软件开发综合实例 242
11.1软件开发步骤 242
11.1.1软件计划 242
11.1.2需求分析 242
11.1.3软件概要设计 243
11.1.4软件详细设计 247
11.1.5编码 248
11.1.6测试 248
11.2用C语言开发软件实例 249
11.2.1需求分析 249
11.2.2总体设计 250
11.2.3详细设计 252
11.2.4编码 254
11.2.5测试 274
附录1常用字符与ASCII码对照表 275
附录2运算符的优先级和结合方向 276
附录3库函数 277
参考文献 287