第1章C语言概述 1
1.1 C语言的发展及特点 1
1.1.1 C语言的发展简介 1
1.1.2 C语言的主要特点 2
1.2第一个C语言程序 3
1.3变量与表达式 5
1.4利用scanf输入变量的值 7
1.5自定义函数及使用 8
1.6开发C语言程序的步骤与方法 9
习题 11
第2章 数据类型、运算符与表达式 14
2.1标识符 14
2.2基本数据类型 14
2.3常量与变量 15
2.3.1整型常量 16
2.3.2实型常量 16
2.3.3字符常量 17
2.3.4字符串常量 19
2.3.5变量定义与初始化 19
2.4算术运算符 20
2.5赋值运算符 21
2.6关系运算符 22
2.7逻辑运算符 23
2.8自增与自减运算符 24
2.9类型转换 25
2.10按位运算符 26
2.11运算符的优先级与结合性 28
习题 30
第3章 程序流程控制 34
3.1表达式语句、空语句与复合语句 34
3.2 if-else语句 35
3.3 switch语句 39
3.4 while语句 42
3.5 do-while语句 43
3.6 for语句 44
3.7 break与continue语句 46
3.8 goto语句 48
习题 49
第4章 数组 56
4.1一维数组 56
4.1.1一维数组元素 56
4.1.2一维数组的初始化 57
4.1.3一维数组应用举例 58
4.2二维数组 62
4.2.1二维数组元素 62
4.2.2二维数组的初始化 63
4.2.3二维数组应用举例 64
4.3字符数组 67
4.4字符串标准库函数简介 69
习题 73
第5章 函数与程序结构 79
5.1 C语言程序的结构 79
5.2函数的定义与调用 79
5.3函数的声明 81
5.4返回值为非整型值的函数 83
5.5数组作为函数的参数 84
5.6函数的嵌套调用 86
5.7函数的递归调用 87
5.8变量的存储类别、作用域与生存期 90
5.8.1变量的存储类别 90
5.8.2变量的作用域与生存期 90
5.8.3变量的初始化 92
5.9预处理器 92
5.9.1文件包含 93
5.9.2宏替换 93
5.9.3条件编译 95
习题 96
第6章 指针 104
6.1地址与指针 104
6.2指针与函数参数 107
6.3指针与一维数组 109
6.3.1用指针访问一维数组元素 110
6.3.2一维数组元素的指针作为函数参数 111
6.4字符指针与函数 113
6.4.1指向字符的指针 113
6.4.2指向字符的指针作为函数的参数 114
6.5指针数组和指向指针的指针 116
6.5.1指针数组 116
6.5.2指向指针的指针 118
6.6指针与多维数组 119
6.6.1二维数组与指向一维数组的指针 119
6.6.2指向数组的指针作为函数的参数 121
6.7指向函数的指针 122
6.7.1指向函数的指针的定义 122
6.7.2指向函数的指针变量作为函数参数 123
6.8返回指针值的函数 125
6.9命令行参数 126
习题 127
第7章 结构 134
7.1结构的基础知识 134
7.1.1结构类型的声明 134
7.1.2结构变量的定义与使用 135
7.2结构数组 136
7.3指向结构的指针 138
7.3.1指向结构数组的指针 139
7.3.2指向结构的指针作为函数参数 140
7.4自引用结构 141
7.5 typedef简介 144
7.6联合类型 145
7.7枚举类型 148
7.8位字段 149
习题 151
第8章 输入与输出 156
8.1字符输入/输出标准函数 156
8.2格式化输出函数printf 158
8.3格式化输入函数scanf 160
8.4文件存取 162
8.4.1文件的打开与关闭 162
8.4.2字符读写 164
8.4.3行输入/输出 167
8.4.4格式化读写 168
8.4.5数据块读写函数 169
8.5文件的随机存取 171
8.5.1 rewind函数 171
8.5.2 fseek函数 172
8.6其他函数 173
8.6.1字符串处理函数 173
8.6.2字符类测试与转换函数 174
8.6.3数学函数 175
8.6.4随机数发生器函数 176
习题 178
第9章 综合应用举例 184
9.1万年历程序 184
9.1.1求某年元旦是星期几 184
9.1.2自定义函数功能说明 184
9.1.3万年历程序清单 185
9.2单链表操作 187
9.2.1单链表操作函数列表 187
9.2.2函数InsertLinkList的实现方法说明 188
9.2.3函数 DeleteLinkList的实现方法说明 189
9.2.4单链表操作程序清单 190
9.3迷宫问题 194
9.3.1数据结构分析 194
9.3.2探索算法分析 195
9.3.3迷宫求解程序清单 195
9.4学生成绩管理程序 199
9.4.1学生成绩管理功能分析 199
9.4.2学生成绩管理模块划分 199
9.4.3学生成绩管理程序清单 199
9.5 OpenGL图形编程 210
9.5.1 OpenGL的命名规范 210
9.5.2一个简单的OpenGL程序 210
9.5.3程序及语句简要说明 212
9.5.4 OpenGL核心库函数简介 213
9.5.5 OpenGL动画示例程序 214
习题 217
附录A用Visual C++开发C程序 219
A.1创建C++工作环境 219
A.2编译、运行C源程序 219
附录B用Eclipse开发C程序 223
B.1 Eclipse与 MinGW的下载安装 223
B.2利用Eclipse开发C程序 223
附录C ASCII表 228
附录D C语言关键字 229
D.1数据类型关键字 229
D.2流程控制关键字 230
附录E标准库简介 231
参考文献 232