目    录 

第1章  C语言概述   1
1.1  计算机编程语言   1
1.1.1  机器语言   1
1.1.2  汇编语言   2
1.1.3  高级语言   3
1.2  第一个C程序   5
1.3  C程序的上机步骤   7
1.3.1  CodeBlocks的安装   7
1.3.2  新建工程   9
1.3.3  多工程切换   13
1.3.4  单步调试程序   14
课后习题1   19
第2章  数制、基本数据类型   20
2.1  整数数制   20
2.1.1  十进制数   20
2.1.2  二进制数   20
2.1.3  八进制数   22
2.1.4  十六进制数   22
2.2  C程序常见符号分类   24
2.3  数据类型   25
2.3.1  数据类型的引入   25
2.3.2  类型修饰符   26
*2.3.3  C99标准中的新增类型   28
2.4  常量   28
2.4.1  整型常量   29
2.4.2  实型常量   29
2.4.3  字符常量   30
2.4.4  字符串常量   31
2.4.5  符号常量   32
2.4.6  枚举常量   32
2.5  变量   33
2.5.1  变量的声明与初始化   33
2.5.2  const类型修饰符   34
2.5.3  变量的类型   34
课后习题2   38
第3章  运算符和表达式、输入输出   40
3.1  算术运算符   40
3.2  赋值运算符   42
3.3  增1、减1运算符   43
3.4  关系运算符   44
3.5  逻辑运算符   45
3.6  条件运算符   46
3.7  强制类型转换运算符   47
3.8  逗号运算符   47
3.9  位运算符   48
3.10  sizeof运算符   50
3.11  类型转换   51
3.12  运算符的优先级和结合性   53
3.13  基本输入输出函数   54
3.13.1  字符输入输出函数   54
3.13.2  格式化输入输出函数   56
课后习题3   67
第4章  控制结构   71
4.1  算法及其描述方法   71
4.1.1  算法的概念   71
4.1.2  算法的描述方法   72
4.2  顺序结构   74
4.3  选择结构   76
4.3.1  if语句   76
4.3.2  switch语句   86
4.4  循环结构   93
4.4.1  while语句   94
4.4.2  do…while语句   97
4.4.3  for语句   99
4.4.4  三种循环控制语句的应用举例   102
4.4.5  循环的嵌套   107
4.4.6  提前结束循环   110
4.5  综合应用举例   113
课后习题4   120
第5章  数组   125
5.1  一维数组   125
5.1.1  一维数组的定义   125
5.1.2  一维数组的引用   126
5.1.3  一维数组的初始化   126
5.1.4  一维数组程序举例   127
5.2  二维数组   136
5.2.1  二维数组的定义   136
5.2.2  二维数组的引用   137
5.2.3  二维数组的初始化   138
5.2.4  二维数组程序举例   138
5.3  字符数组与字符串   142
5.3.1  字符数组的初始化   142
5.3.2  字符数组的输入/输出   144
5.3.3  字符串处理函数   145
5.3.4  字符数组和字符串程序举例   148
课后习题5   154
第6章  函数   158
6.1  函数的分类和定义   161
6.1.1  函数的分类   161
6.1.2  函数的定义   162
6.2  函数的调用、参数和返回值   163
6.3  函数的声明   164
6.4  函数的嵌套调用   168
*6.5  函数的递归调用   169
6.5.1  递归问题的提出   169
6.5.2  递归函数   171
6.6  数组作为函数参数   174
6.6.1  一维数组作为函数参数   174
6.6.2  二维数组作为函数参数   176
6.7  变量的作用域与生存期   178
6.7.1  局部变量   178
6.7.2  全局变量   179
6.7.3  变量的存储类别   180
6.7.4  小结   184
6.8  内部函数和外部函数   185
6.8.1  内部函数   185
6.8.2  外部函数   186
6.9  预处理命令   188
6.9.1  宏定义   188
6.9.2  文件包含   192
6.9.3  条件编译   193
6.10  综合应用举例   194
课后习题6   201
第7章  指针   206
7.1  内存、地址和内容   206
7.2  指针与指针变量   207
7.2.1  指针变量的定义   207
7.2.2  指针变量的引用   208
7.2.3  指针变量作为函数参数   210
7.3  指针与数组   213
7.3.1  指向一维数组的指针   213
7.3.2  有关指针的运算   216
7.3.3  一维数组的指针作为函数参数   217
7.3.4  指向二维数组的指针   222
7.3.5  二维数组的指针作为函数参数   225
7.4  指针与字符串   227
7.4.1  指向字符串的指针变量   227
7.4.2  指向字符串的指针作为函数参数   228
7.4.3  字符数组与字符串指针变量的区别   231
7.5  指针与函数   231
7.5.1  返回指针值的函数   232
*7.5.2  指向函数的指针   233
7.6  指针数组   234
*7.7  指向指针的指针   237
*7.8  带参数的函数main()   239
7.9  动态内存分配   241
7.9.1  动态内存分配函数   241
*7.9.2  动态内存分配与变长数组   244
*7.10  ANSI C的类型限定词const   245
课后习题7   247
第8章  结构体与共用体   253
8.1  结构体问题的引出   253
8.2  结构体类型和结构体类型变量   255
8.2.1  结构体类型的声明   255
8.2.2  结构体类型变量的定义   255
8.2.3  结构体的嵌套   257
8.3  结构体类型变量的引用和初始化   258
8.4  结构体数组   260
8.5  结构体指针   263
8.5.1  指向结构体类型变量的指针   263
8.5.2  指向结构体数组的指针   264
8.6  结构体与函数   266
8.7  结构体综合应用实例   269
8.8  共用体   278
8.8.1  问题的引出   278
8.8.2  声明共用体类型和定义共用体类型的变量   279
8.8.3  共用体成员的引用   280
8.9  枚举类型   281
8.10  typedef   283
*8.11  链表   284
8.11.1  问题的引出   284
8.11.2  链表的定义和特点   285
8.11.3  链表的创建   286
8.11.4  链表的删除操作   290
8.11.5  链表的插入操作   292
课后习题8   296
第9章  文件   304
9.1  文件概述   304
9.1.1  什么是文件   304
9.1.2  文件名   305
9.1.3  文件的分类   305
9.1.4  文件缓冲区   306
9.1.5  文件指针   306
9.2  文件的打开与关闭   307
9.2.1  用fopen()函数打开文件   307
9.2.2  用fclose()函数关闭文件   309
9.3  文件的读写   309
9.3.1  读/写字符函数   309
9.3.2  读/写字符串函数   311
9.3.3  格式化读/写函数   313
9.3.4  读/写数据块函数   315
9.4  文件的定位   322
9.4.1  移动文件指针   322
9.4.2  获取文件读写位置   324
9.5  出错检测   324
课后习题9   325
第10章  综合应用案例——学生学籍管理系统   328
10.1  需求分析   328
10.2  总体设计   329
10.2.1  系统总体设计   329
10.2.2  数据结构   329
10.3  详细设计   330
10.3.1  系统包含的函数   330
10.3.2  各个功能模块的软件功能   330
10.3.3  各个功能模块的程序流程图和算法描述   331
10.4  编码实现   336
10.5  运行结果   343
课后习题10   346
参考文献   349
附录A  C关键字   350
附录B  C运算符的优先级和结合性   351
附录C  ASCII码字符表   352
附录D  常用的ANSI C标准库函数   356
D.1 数学函数   356
D.2 字符处理函数   357
D.3 字符串处理函数   357
D.4 动态内存分配函数   359
D.5 缓冲文件系统的输入/输出函数   359
D.6 其他常用函数   361