图书目录

第1章  C语言概述 1

1.1  C语言的发展 2

1.1.1  C语言的历史 2

1.1.2  C语言的特点 3

1.2  C语言的开发环境 4

1.2.1  Turbo C 2.0集成开发环境 4

1.2.2  Visual C++ 6.0开发环境 7

1.3  简单C程序的组成和格式 10

1.4  思考与练习 12

第2章  数据类型、运算符与表达式 15

2.1  C语言的数据类型 16

2.1.1  数据类型的分类 16

2.1.2  数据类型的取值范围 17

2.2  常量 17

2.2.1  整型常量 17

2.2.2  实型常量 18

2.2.3  字符型常量 18

2.2.4  字符串型常量 19

2.2.5  符号型常量 19

2.3  变量 20

2.3.1  变量的定义与初始化 21

2.3.2  整型变量 21

2.3.3  实型变量 22

2.3.4  字符型变量 23

2.3.5  定义不可变变量 24

2.4  标识符与关键字 24

2.4.1  标识符 24

2.4.2  关键字 25

2.4.3  预定义标识符与用户标识符 25

2.4.4  ASCII码字符集 25

2.5  运算符与表达式 26

2.5.1  C语言的运算符 26

2.5.2  运算符的优先级 27

2.5.3  算术运算与算术表达式 28

2.5.4  赋值运算符与赋值表达式 31

2.5.5  逗号运算符与逗号表达式 32

2.6  思考与练习 33

第3章  顺序结构程序设计 39

3.1  结构化程序设计思想 40

3.1.1  程序化设计的三种基本结构 40

3.1.2  语句 41

3.2  常用的数据输入输出函数 42

3.2.1  格式输出函数printf( ) 42

3.2.2  格式输入函数scanf( ) 48

3.2.3  字符输出函数putchar( ) 51

3.2.4  字符输入函数getchar( ) 51

3.3  程序设计举例 52

3.4  思考与练习 54

第4章  选择结构程序设计 57

4.1  关系运算与逻辑运算 58

4.1.1  关系运算符和表达式 58

4.1.2  逻辑运算符和表达式 59

4.2  if语句 60

4.2.1  单分支if语句 60

4.2.2  双分支if语句 60

4.2.3  多分支if语句 62

4.3  条件运算符 67

4.4  switch语句 68

4.5  程序设计举例 70

4.6  思考与练习 73

第5章  循环结构程序设计 77

5.1  while语句 78

5.2  do while语句 80

5.3  for语句 81

5.4  三种循环语句的比较 82

5.5  循环语句的嵌套 83

5.6  循环结构中的其他语句 85

5.6.1  break语句 85

5.6.2  continue语句 86

5.6.3  goto语句与语句标号 86

5.7  程序设计举例 87

5.8  思考与练习 91

第6章  地址与指针 95

6.1  地址与指针的定义 96

6.1.1  指针介绍 96

6.1.2  存放指针的变量 97

6.2  指针变量的定义与使用 97

6.2.1  指针变量的定义 97

6.2.2  给指针变量赋初值 98

6.2.3  与指针有关的两个运算符 99

6.2.4  对指针变量的引用 100

6.3  程序设计举例 103

6.4  思考与练习 104

第7章  一维数组 109

7.1  数组的概念 110

7.2  一维数组的定义和引用 110

7.2.1  一维数组的定义 111

7.2.2  一维数组元素的引用 111

7.2.3  一维数组的初始化 113

7.3  程序设计举例一 114

7.4  一维数组与指针 118

7.4.1  指向数组元素的指针 118

7.4.2  通过指针引用数组元素 119

7.5  指针数组和指向指针的指针 122

7.5.1  指针数组的概念 122

7.5.2  指向指针的指针 123

7.5.3  利用指针数组访问数组 123

7.6  程序设计举例二 124

7.7  思考与练习 128

第8章  二维数组 133

8.1  二维数组的定义和引用 134

8.1.1  二维数组的定义 134

8.1.2  二维数组元素的引用 134

8.1.3  二维数组的初始化 137

8.1.4  二维数组与一维数组的关系 138

8.2  二维数组程序举例一 138

8.3  二维数组与指针 141

8.3.1  二维数组与指针 141

8.3.2  通过地址来引用二维数组元素 142

8.3.3  通过指针数组来引用二维数组元素 143

8.3.4  通过指针数组和一维数组来构造二维数组 144

8.4  程序设计举例二 146

8.5  思考与练习 149

第9章  字符数组与字符串 155

9.1  字符数组 156

9.1.1  字符数组的定义 156

9.1.2  字符数组的初始化 156

9.1.3  字符数组的引用 157

9.2  字符串 157

9.2.1  字符串常量 158

9.2.2  用字符串给字符数组赋初值 158

9.2.3  字符串的输入输出 159

9.2.4  字符串与指针 161

9.2.5  字符串数组 162

9.3  字符串处理函数 165

9.3.1  字符串输出函数puts() 165

9.3.2  字符串输入函数gets() 166

9.3.3  字符串连接函数strcat() 167

9.3.4  字符串拷贝函数strcpy() 168

9.3.5  字符串比较函数strcmp() 168

9.3.6  测字符串长度函数strlen() 169

9.3.7  查找字符位置函数strchr() 170

9.3.8  查找子串位置函数strstr() 170

9.3.9  转字符串为小写strlwr() 171

9.3.10  转字符串为大写函数strupr() 172

9.4  程序设计举例 172

9.5  思考与练习 176

第10章  函数 181

10.1  函数概述 182

10.1.1  函数的概念 182

10.1.2  函数的参数 186

10.1.3  函数的返回值 187

10.1.4  函数的调用 189

10.1.5  函数的嵌套调用 191

10.1.6  函数的递归调用 192

10.2  指针与函数 195

10.2.1  指针变量作为函数参数 195

10.2.2  数组可以作为函数参数 198

10.3  局部变量和全局变量 201

10.3.1  局部变量 201

10.3.2  全局变量 202

10.4  变量的存储类别 204

10.4.1  动态存储方式与静态存储方式 205

10.4.2  auto变量 205

10.4.3  static变量 205

10.4.4  register变量 207

10.4.5  extern变量 208

10.4.6  存储类型小结 209

10.4.7  内部函数与外部函数 209

10.5  思考与练习 209

第11章  结构体与共用体 215

11.1  结构体 216

11.1.1  结构体的定义 216

11.1.2  定义结构体类型的变量 217

11.1.3  结构体变量成员的表示方法 219

11.1.4  结构体变量的引用 219

11.1.5  结构变量的初始化 220

11.1.6  结构型数组 221

11.1.7  结构指针变量 224

11.2  动态存储分配 228

11.3  链表 230

11.3.1  链表概念 231

11.3.2  单向链表 232

11.3.3  动态单向链表 233

11.4  共用体 242

11.4.1  共用体的定义 242

11.4.2  共用体类型变量的引用方式 243

11.4.3  共用体类型变量的特点 244

11.5  枚举类型 245

11.5.1  枚举类型的定义 245

11.5.2  枚举变量的定义与赋值 245

11.6  类型定义符typedef 247

11.7  思考与练习 250

第12章  位运算 255

12.1  位运算符 256

12.1.1  位运算符 256

12.1.2  按位与运算 257

12.1.3  按位或运算 258

12.1.4  按位异或运算 259

12.1.5  取反运算 260

12.1.6  左移运算 260

12.1.7  右移运算 260

12.1.8  位数不同的运算数之间的运算规则 261

12.2  位域 262

12.2.1  位域 262

12.2.2  位域的定义 262

12.2.3  位域的使用 263

12.3  程序设计举例 264

12.4  思考与练习 267

第13章  文件 269

13.1  文件概述 270

13.1.1  文件的存储 270

13.1.2  文件指针 271

13.2  文件的打开与关闭 272

13.2.1  文件的打开 272

13.2.2  文件的关闭 274

13.3  文件的读写 274

13.3.1  字符读写函数fgetc()和fputc() 275

13.3.2  字符串读写函数fgets()和fputs() 278

13.3.3  数据块读写函数fread()和fwtrite() 280

13.3.4  格式化读写函数fscanf和fprintf 283

13.3.5  文件定位与随机读写 285

13.3.6  文件检测函数 287

13.4  思考与练习 288

附录 289

习题答案 299

参考文献 322