图书目录

目录

第1章  绪论 1

1.1  C语言的历史 2

1.1.1  计算机语言的发展 2

1.1.2  C语言的发展 2

1.2  C语言的特点 3

1.3  C程序的结构 3

1.3.1  简单的C程序 3

1.3.2  C程序的基本结构 6

1.3.3  C程序的代码规范 6

1.4  输入输出库函数的使用 6

1.4.1  printf()函数 6

1.4.2  scanf()函数 9

1.5  C程序的开发过程 11

习题1 11

第2章  基本数据类型 15

2.1  C语言的数据类型 16

2.2  常量数据的表示 16

2.3  变量的定义 18

2.4  变量的赋值 20

2.5  C语言的类型修饰符 22

2.6  表达式的数据类型转换 24

2.6.1  自动类型转换 24

2.6.2  强制类型转换 25

2.7  C运算符和表达式 25

2.7.1  算术运算符和算术表达式 26

2.7.2  关系运算符和关系表达式 27

2.7.3  逻辑运算符和逻辑表达式 28

2.7.4  赋值运算符和赋值表达式 30

2.7.5  逗号运算符和逗号表达式 32

2.7.6  条件运算符和条件表达式 32

习题2 34

第3章  选择结构 35

3.1  程序设计的一般方法 36

3.2  结构化程序设计 37

3.3  顺序结构 38

3.4  选择结构——if条件语句 39

3.5  选择结构——switch语句 48

习题3 52

第4章  循环结构 63

4.1  while语句 64

4.2  do-while语句 68

4.3  for语句 71

4.4  break语句和continue语句 77

4.4.1  break语句 77

4.4.2  continue语句 79

4.5  循环语句的嵌套 82

习题4 88

第5章  数组 99

5.1  一维数组的定义和引用 100

5.1.1  一维数组的定义 100

5.1.2  一维数组元素的引用 101

5.1.3  一维数组的初始化 102

5.2  二维数组的定义和引用 103

5.2.1  二维数组的定义 103

5.2.2  二维数组元素的引用 106

5.2.3  二维数组的初始化 107

5.3  字符数组 108

5.4  字符串 109

5.4.1  字符串的定义和赋值 109

5.4.2  字符串的输入和输出函数 111

5.4.3  字符串操作函数 113

5.4.4  二维字符串数组 117

习题5 118

第6章  函数 125

6.1  模块化编程思想 126

6.1.1  程序的模块化组成结构 126

6.1.2  程序的模块化设计方法 127

6.2  函数的定义和调用 127

6.2.1  函数的定义 128

6.2.2  函数的调用 132

6.2.3  函数的声明 134

6.3  函数的参数和返回值 135

6.3.1  函数的参数 135

6.3.2  函数的返回值 137

6.4  函数的嵌套和递归调用 138

6.4.1  嵌套调用 138

6.4.2  递归调用 139

6.5  数组作为函数参数 144

6.5.1  数组元素作函数参数 144

6.5.2  数组名作函数参数 145

6.6  变量的存储属性 149

6.6.1  变量的生存周期和作用域 149

6.6.2  自动变量 153

6.6.3  外部变量 153

6.6.4  静态变量 154

6.6.5  变量的存储类别 156

6.7  函数的分类 156

习题6 158

第7章  编译预处理 169

7.1  预处理的概念 170

7.2  宏定义命令 170

7.2.1  无参数宏定义命令 170

7.2.2  带参数宏定义命令 173

7.3  文件包含命令 176

7.4  条件编译命令 177

习题7 179

第8章  指针 181

8.1  地址与变量 182

8.1.1  内存地址 182

8.1.2  变量存储 183

8.1.3  变量访问 183

8.2  指针变量 184

8.2.1  指针变量的声明 184

8.2.2  指针变量运算符“*”及其使用 186

8.2.3  指针变量的初始化 189

8.3  指针运算 190

8.3.1  指针的算术运算 190

8.3.2  指针的关系运算 191

8.3.3  指针的赋值运算 192

8.4  指针与一维数组和字符串 192

8.4.1  指针与一维数组 192

8.4.2  指针与字符串 195

8.5  指针与二维数组 199

8.5.1  指向二维数组元素*p的使用 201

8.5.2  指向二维数组中一维数组(*p)[N]的使用 202

8.5.3  指针数组*p[ ]的使用 203

8.5.4  复合指针**p的使用 205

8.6  指针与函数 206

8.6.1  指针变量作为函数参数 206

8.6.2  指向数组的指针作为函数参数 209

8.6.3  指针类型函数 212

8.6.4  指向函数的指针 214

8.6.5  main函数中的参数 215

习题8 217

第9章  结构体、共用体和枚举类型 231

9.1  结构体类型的定义 232

9.2  结构体类型变量 233

9.2.1  结构体变量的定义 233

9.2.2  结构体变量中成员的引用 235

9.2.3  结构体变量的赋值 236

9.2.4  结构体变量的初始化 237

9.3  结构体数组 237

9.4  共用体 240

9.4.1  共用体类型的定义 240

9.4.2  共用体变量的定义 240

9.4.3  共用体变量的引用 241

9.5  枚举类型 242

9.5.1  枚举类型的定义 242

9.5.2  枚举变量的说明 243

9.6  类型定义符typedef 244

9.7  位运算符 245

9.7.1  按位与运算 246

9.7.2  按位或运算 246

9.7.3  按位异或运算 247

9.7.4  取反运算 247

9.7.5  左移运算 247

9.7.6  右移运算 247

习题9 248

第10章  指向结构体的指针与链表 253

10.1  结构体指针变量的说明和使用 254

10.1.1  指向结构体变量的指针 254

10.1.2  指向结构体数组的指针 256

10.1.3  结构体指针变量作函数 参数 257

10.2  动态存储分配 259

10.3  链表的概念 261

10.4  链表的基本操作 262

习题10 266

第11章  文件 271

11.1  C文件概述 272

11.2  文件指针 273

11.3  文件的打开与关闭 273

11.3.1  文件的打开函数 (fopen函数) 273

11.3.2  文件关闭函数 (fclose函数) 275

11.4  文件的读写 275

11.4.1  字符读写函数fgetc 和fputc 275

11.4.2  字符串读写函数fgets 和fputs 279

11.4.3  数据块读写函数fread 和fwrite 281

11.4.4  格式化读写函数fscanf 和fprintf 282

11.5  文件的随机读写 284

11.5.1  文件定位 284

11.5.2  文件的随机读写 285

11.6  文件检测函数 286

11.6.1  文件结束检测函数feof() 286

11.6.2  读写文件出错检测函数 ferror() 286

11.6.3  文件出错标志和文件结束 标志置0函数clearerr() 286

11.7  C库文件 286

习题11 288

附录A  Microsoft Visual C++ 6.0使用手册 295

附录B  ASCII码对照表 300

附录C  运算符的优先级及结合性 302

附录D  常用库函数 304

参考文献 307