第1章 程序设计和C语言概述 1
1.1程序设计基本概念 1
1.1.1什么叫程序设计 1
1.1.2什么叫程序设计语言 1
1.1.3数据的机内表示和存储 3
1.2 C语言特点和应用 5
1.2.1 C语言特点 5
1.2.2 C与C++、Java、C# 5
1.3简单C程序入门 5
1.4 C程序的运行环境 8
1.4.1 Visual Studio 2008集成开发环境下执行C程序 8
1.4.2 Visual C++6.0集成开发环境下执行C程序 13
1.5本章小结 15
习题 15
第2章 顺序结构程序设计 16
2.1 C程序结构 16
2.1.1字符集 17
2.1.2词法记号 17
2.2基本数据类型、变量与常量 18
2.2.1基本数据类型 18
2.2.2常量 19
2.2.3变量 21
2.2.4符号常量 22
2.2.5指针与指针变量 23
2.3算术运算符与算术表达式 27
2.4赋值运算符与赋值表达式 30
2.5逗号运算符与逗号表达式 31
2.6运算符的优先级与结合性 31
2.7混合运算时数据类型的转换 32
2.8语句和块 34
2.9数据的输入与输出 34
2.9.1用printf函数输出数据 34
2.9.2用scanf函数输入数据 36
2.9.3用getchar和putchar函数输入/输出单个字符 38
2.10顺序结构程序设计综合举例 39
2.11本章小结 41
习题 42
第3章 选择结构程序设计 44
3.1算法的基本概念和表示方法 44
3.1.1算法的基本概念 44
3.1.2算法的表示 44
3.1.3结构化程序设计 46
3.2关系运算符与关系表达式 47
3.3逻辑运算符与逻辑表达式 48
3.4用if语句实现选择结构 50
3.4.1实现单分支的if语句 50
3.4.2实现双分支的if语句 51
3.4.3实现多分支的if语句嵌套 51
3.4.4条件运算符与条件表达式 53
3.5用switch语句实现选择结构 53
3.6选择结构程序设计综合举例 56
3.7本章小结 58
习题 58
第4章 循环结构程序设计 61
4.1用while语句实现循环 61
4.2用do-while语句实现循环 63
4.3用for语句实现循环 65
4.4循环的嵌套 67
4.5跳转语句:break语句和continue语句 70
4.5.1 continue语句 70
4.5.2 break语句 71
4.6循环结构程序设计综合举例 71
4.7本章小结 79
习题 79
第5章 函数 84
5.1函数的定义与调用 84
5.1.1函数的定义 84
5.1.2函数的调用 86
5.2函数的参数传递 89
5.2.1按值传递 89
5.2.2按地址传递 90
5.2.3按引用传递 92
5.3函数的重载 93
5.4函数嵌套与递归 94
5.5返回指针类型的函数 97
5.6指向函数的指针 98
5.7变量的作用域与可见性 99
5.7.1变量的作用域 99
5.7.2变量的可见性 101
5.8变量的存储类型和生存期 102
5.8.1变量的生存期 102
5.8.2变量的存储类型 102
5.9 C程序的多文件结构 104
5.10编译预处理 105
5.10.1宏定义指令 105
5.10.2文件包含指令 106
5.11本章小结 106
习题 107
第6章 数组、字符串与动态内存分配 111
6.1数组概念 111
6.2一维数组 111
6.2.1一维数组的声明 111
6.2.2一维数组的初始化 112
6.2.3一维数组元素的表示方法 113
6.2.4通过指针引用一维数组元素 114
6.2.5一维数组综合程序设计举例 116
6.3多维数组 120
6.3.1二维数组的声明 120
6.3.2二维数组的初始化 120
6.3.3二维数组元素的表示方法 121
6.3.4通过指针引用二维数组 124
6.3.5二维数组综合程序设计举例 127
6.4字符数组 128
6.4.1字符数组的定义 128
6.4.2字符数组的初始化 128
6.4.3字符数组元素的表示方法 129
6.4.4字符数组的输入与输出 129
6.4.5使用字符串函数处理字符串 131
6.4.6通过指针引用字符串 135
6.4.7字符串的综合程序设计举例 137
6.5指针数组与main函数的参数 140
6.5.1指针数组的定义 140
6.5.2 main函数的参数 141
6.6内存的动态分配与释放 143
6.6.1 void指针类型 144
6.6.2动态内存的申请 144
6.6.3动态内存的释放 145
6.7本章小结 145
习题 146
第7章 用户自定义类型 150
7.1结构体类型 150
7.1.1定义结构体类型 150
7.1.2定义结构体变量 151
7.1.3结构体变量的使用 152
7.1.4结构体变量的初始化 153
7.2结构体数组的使用 154
7.3结构体指针变量的使用 156
7.4用typedef声明新类型名 158
7.5单向链表的建立与基本操作 160
7.5.1链表的定义 160
7.5.2如何定义结点的数据类型 160
7.5.3创建动态链表 162
7.6联合体类型 165
7.6.1定义联合体类型 165
7.6.2定义联合体变量 165
7.6.3联合体变量的使用 166
7.7枚举类型 168
7.8本章小结 171
习题 171
第8章 位操作程序设计 174
8.1位运算符 174
8.2位域 176
8.3位操作程序设计综合举例 178
8.4本章小结 179
习题 179
第9章 文件的输入和输出处理 181
9.1文件的基本概念 181
9.1.1文件的分类 181
9.1.2文件名 182
9.1.3文件类型指针 182
9.2文件的打开与关闭 182
9.2.1文件的打开 182
9.2.2文件的关闭 184
9.3文件的顺序读写 184
9.3.1向文件读写字符 184
9.3.2向文件读写字符串 187
9.3.3以二进制方式向文件读写数据块 188
9.3.4向文件格式化读写数据 191
9.4文件的随机读写 193
9.4.1文件的定位 193
9.4.2随机的读写 194
9.5本章小结 197
习题 197
附录A常用字符与ASCII代码对照表 200
附录B C语言常用的库函数 202
参考文献 206