第1章 概述 1
1.1引例 1
1.2 C语言程序的基本结构 2
1.3程序设计基本概念 3
1.3.1程序 3
1.3.2程序设计 3
1.3.3程序设计语言 3
1.4 C语言的发展与特点 4
1.4.1 C语言的发展 4
1.4.2 C语言的特点 4
1.5 C语言的字符集 5
1.6 C语言的词法符号 5
1.7运行C程序的步骤和开发环境 7
1.7.1运行C程序的步骤 7
1.7.2集成开发环境 8
本章小结 12
习题1 12
第2章 用C语言编写简单程序 13
2.1引例 13
2.2数据类型 14
2.2.1 C语言的数据类型 14
2.2.2常量和变量 14
2.2.3整型数据 15
2.2.4实型数据 16
2.2.5字符型数据 16
2.2.6变量赋初值 18
2.3运算符与表达式 18
2.3.1 C语言运算符简介 18
2.3.2算术运算符与算术表达式 18
2.3.3赋值运算符与赋值表达式 19
2.3.4逗号运算符与逗号表达式 20
2.4各类数值型数据间的混合运算 20
2.4.1自动类型转换 20
2.4.2强制类型转换 21
2.5数据的输入输出 21
2.5.1标准字符输入输出函数 22
2.5.2格式输出函数printf() 22
2.5.3数据输入函数scanf() 23
2.6顺序结构程序设计 25
2.6.1 C语言的语句 25
2.6.2顺序结构程序设计举例 26
本章小结 27
习题2 27
第3章 分支结构程序设计 29
3.1引例 29
3.2关系运算和逻辑运算 30
3.2.1关系运算 30
3.2.2逻辑运算 31
3.3 if语句 31
3.3.1 if-else形式 31
3.3.2 if形式 33
3.3.3 if语句的嵌套 34
3.3.4 if-else if形式 37
3.3.5条件运算符及条件表达式 39
3.4 switch语句 40
本章小结 42
习题3 43
第4章 循环结构程序设计 45
4.1引例 45
4.2 while语句 46
4.3 do-while语句 48
4.4 for语句 50
4.4.1 for语句格式 50
4.4.2 for语句实例 52
4.4.3三种循环语句的比较 53
4.5循环嵌套 54
4.6 break和continue语句 56
4.6.1 break语句 56
4.6.2 continue语句 58
4.7 goto语句 59
4.8循环应用 60
本章小结 64
习题4 65
第5章 数组 67
5.1引例 67
5.2一维数组 68
5.2.1数组的概念 68
5.2.2一维数组的定义 69
5.2.3一维数组的引用 69
5.2.4一维数组的初始化 70
5.2.5一维数组的应用 71
5.3二维数组 74
5.3.1二维数组的定义 74
5.3.2二维数组的引用和初始化 74
5.3.3二维数组的应用 76
5.4字符数组 78
5.4.1字符数组的定义 78
5.4.2字符数组的初始化和引用 79
5.4.3字符数组和字符串 80
5.4.4字符串处理函数 82
5.5用文件处理数据 85
5.6综合应用实例 86
本章小结 88
习题5 88
第6章 函数 92
6.1引例 92
6.2函数的定义及调用 93
6.2.1函数的定义 93
6.2.2函数的调用 94
6.2.3函数声明 96
6.2.4两种特殊的函数 97
6.3函数的递归调用 98
6.4数组作为函数的参数 101
6.4.1一维数组作为函数的参数 101
6.4.2函数间的参数传递 102
6.4.3二维数组作为函数的参数 104
6.4.4字符数组作为函数的参数 105
6.5程序的多文件组织 106
6.6作用域和存储类型 107
6.6.1变量的作用域 107
6.6.2变量的存储类型 110
6.6.3函数的存储类型 114
6.7函数的应用 114
6.7.1函数应用实例 114
6.7.2函数的通用性 116
本章小结 117
习题6 118
第7章 指针 120
7.1引例 120
7.2指针变量的定义和引用 121
7.2.1指针变量的定义 121
7.2.2指针变量的引用 122
7.2.3指针变量的应用 123
7.3指针与数组 124
7.3.1指向数组元素的指针 124
7.3.2指针与字符串 126
7.3.3指针与二维数组的关系 127
7.4指针与函数 130
7.4.1指针作为函数的参数 130
7.4.2返回值为指针的函数 131
7.4.3函数指针 132
7.5指针数组和指向指针的指针 133
7.5.1指针数组 133
7.5.2指向指针的指针 135
7.5.3命令行参数与字符指针数组 136
本章小结 137
习题7 137
第8章 结构体与共用体 140
8.1引例 140
8.2结构体类型的声明和结构体类型变量的定义 141
8.2.1结构体类型的声明 141
8.2.2结构体类型变量的定义 142
8.2.3结构体变量的引用 144
8.2.4结构体变量的初始化 145
8.3结构体数组 146
8.3.1定义结构体数组 146
8.3.2结构体数组的初始化 146
8.3.3结构体数组的引用 147
8.4结构体指针 148
8.4.1结构体指针变量的定义与引用 148
8.4.2指向结构体数组的指针 150
8.4.3结构体变量和指向结构体的指针作为函数参数 151
8.5动态存储分配 152
8.6链表 153
8.6.1链表的概念 153
8.6.2动态链表 155
8.6.3单向链表中的插入与删除 156
8.7共用体 159
8.7.1共用体的概念 159
8.7.2共用体变量的引用 160
8.8枚举类型 161
8.8.1枚举类型的定义 161
8.8.2枚举变量的定义 161
8.8.3枚举变量的赋值和使用 162
8.9用typedef命名类型 162
本章小结 163
习题8 164
第9章 文件 168
9.1文件概述 168
9.1.1文件的概念 168
9.1.2缓冲文件系统 169
9.1.3文件结构和文件类型指针 169
9.2文件的打开和关闭 170
9.2.1文件打开函数fopen 170
9.2.2文件关闭函数fclose 171
9.3文件的读写 171
9.3.1文件的字符输入输出函数 172
9.3.2文件的字符串输入输出函数 173
9.3.3文件的格式化输入输出函数 174
9.3.4文件的数据块输入输出函数 176
9.4其他文件函数 178
9.5应用举例 179
本章小结 182
习题9 182
附录A ASCII码表 183
附录B 运算符的优先级和结合性 184
附录C 常用库函数 186
附录D 预处理命令 191
D.1宏定义 191
D.2文件包含 193
D.3条件编译 193
附录E 各章习题解析与提示 195
参考文献 204