目 录
基础篇
第1章 C语言概况\t1
1.1 程序设计的基本概念\t1
1.1.1 程序和程序设计语言\t1
1.1.2 程序设计的一般过程\t2
1.1.3 结构化程序设计方法\t2
1.2 C语言的初步知识\t4
1.2.1 C语言的起源与特点\t4
1.2.2 初识C语言程序\t6
1.2.3 C语言字符集与标识符\t7
1.2.4 C语言程序的基本构成\t8
1.2.5 简单的屏幕输出\t9
1.2.6 C语言程序的上机调试过程\t10
本章小结\t11
习题1\t12
第2章 C语言基础\t13
2.1 数据类型\t13
2.1.1 数据类型\t13
2.1.2 基本数据类型标识符\t13
2.2 常量和变量\t14
2.2.1 常量\t15
2.2.2 变量\t18
2.3 算术运算\t20
2.3.1 算术运算符\t21
2.3.2 算术表达式\t21
2.4 3个特殊的运算符\t25
2.4.1 sizeof运算符\t25
2.4.2 逗号运算符\t25
2.4.3 取地址运算符&\t25
本章小结\t26
习题2\t26
第3章 顺序结构\t28
3.1 C语言程序的语句\t28
3.1.1 说明语句\t28
3.1.2 执行语句\t28
3.2 赋值运算\t29
3.2.1 赋值运算符和赋值表达式\t29
3.2.2 赋值语句\t30
3.2.3 自增、自减运算符\t32
3.3 数据的输入和输出\t33
3.3.1 单个字符的输入和输出函数\t33
3.3.2 格式化输入和输出函数\t35
3.4 程序举例\t39
本章小结\t42
习题3\t42
第4章 选择结构\t45
4.1 关系运算\t45
4.1.1 关系运算符\t45
4.1.2 关系表达式\t45
4.2 逻辑运算\t46
4.2.1 逻辑运算符\t47
4.2.2 逻辑运算的值\t47
4.2.3 逻辑表达式\t48
4.3 if语句\t49
4.3.1 if语句的3种形式\t49
4.3.2 if语句的嵌套\t54
4.3.3 条件运算符和条件表达式\t55
4.4 switch语句\t56
4.5 程序举例\t58
本章小结\t62
习题4\t62
第5章 循环结构\t67
5.1 while语句\t67
5.2 do-while语句\t70
5.3 for语句\t71
5.4 转移语句\t75
5.4.1 break语句\t76
5.4.2 continue语句\t76
5.5 程序举例\t77
本章小结\t81
习题5\t82
第6章 编译预处理\t88
6.1 宏定义\t88
6.1.1 不带参数的宏定义\t88
6.1.2 带参数的宏定义\t90
6.2 文件包含\t92
6.3 条件编译\t93
本章小结\t93
习题6\t94
提高篇
第7章 数组\t97
7.1 一维数组\t97
7.1.1 一维数组的定义\t97
7.1.2 一维数组的初始化\t98
7.1.3 一维数组元素的引用\t99
7.1.4 一维数组的应用\t100
7.2 二维数组\t104
7.2.1 二维数组的定义\t104
7.2.2 二维数组的初始化\t105
7.2.3 二维数组元素的引用\t105
7.2.4 二维数组应用举例\t106
7.3 字符数组\t110
7.3.1 字符数组的定义\t110
7.3.2 字符串与字符数组\t110
7.3.3 字符数组的初始化\t111
7.3.4 字符数组的输入/输出\t111
7.3.5 字符串(字符数组)处理
函数\t113
7.3.6 字符数组的应用\t116
本章小结\t119
习题7\t119
第8章 函数\t125
8.1 自定义函数\t125
8.1.1 自定义函数的定义\t125
8.1.2 自定义函数的返回值\t126
8.1.3 自定义函数的调用\t127
8.1.4 自定义函数的声明\t128
8.2 简单变量作为函数形参\t129
8.3 函数的嵌套调用和递归调用\t131
8.3.1 函数的嵌套调用\t131
8.3.2 函数的递归调用\t133
8.4 变量的存储类别\t136
8.4.1 局部变量及其存储类别\t137
8.4.2 全局变量及其存储类别\t140
8.4.3 函数的作用域和存储类别\t143
8.5 程序举例\t144
本章小结\t147
习题8\t148
第9章 指针\t153
9.1 指针变量\t153
9.1.1 变量的指针和指针变量\t153
9.1.2 指针变量的定义和初始化\t154
9.1.3 指针变量的引用\t155
9.2 数组指针变量\t158
9.2.1 数组指针变量的定义和引用\t158
9.2.2 二维数组的指针\t162
9.2.3 指针与字符串\t165
9.3 指针数组和二级指针变量\t169
9.3.1 指针数组\t169
9.3.2 二级指针变量\t171
本章小结\t171
习题9\t173
第10章 函数参数传递进阶\t177
10.1 指针变量作为函数参数\t177
10.2 数组名和数组指针变量作为
函数参数\t178
10.3 行数组指针变量作为函数参数\t180
10.4 字符型指针变量作为函数参数\t181
10.5 指向函数的指针变量作为函数
参数\t183
10.6 main( )函数的形参\t186
本章小结\t187
习题10\t188
第11章 结构体与共用体\t193
11.1 自定义类型标识符\t193
11.2 结构体的定义与引用\t194
11.2.1 结构体类型的定义\t194
11.2.2 结构体类型变量、数组和指针
变量的定义\t195
11.2.3 结构体类型变量、数组和指针
变量的初始化\t198
11.2.4 结构体类型变量、数组和指针
变量的引用\t198
11.2.5 函数之间结构体类型数据的
传递\t203
11.2.6 用指针处理链表\t205
11.3 共用体的定义与引用\t210
11.3.1 共用体类型的定义\t211
11.3.2 共用体类型变量的定义\t211
11.3.3 共用体变量的引用\t212
11.4 枚举类型\t213
本章小结\t215
习题11\t216
第12章 位运算\t219
12.1 位运算符\t219
12.2 位运算符的功能\t219
12.2.1 按位与运算(&)\t219
12.2.2 按位或运算(|)\t220
12.2.3 按位异或运算(^)\t220
12.2.4 按位取反运算(~)\t220
12.2.5 按位左移(<<)\t221
12.2.6 按位右移(>>)\t221
12.2.7 复合位赋值运算符\t221
本章小结\t222
习题12\t222
第13章 数据文件\t224
13.1 C语言文件\t224
13.2 定义、打开和关闭文件\t225
13.2.1 文件指针\t225
13.2.2 打开文件(fopen( )函数)\t225
13.2.3 关闭文件(fclose( )函数)\t227
13.3 文件的输入/输出\t227
13.3.1 fputc( )函数和fgetc( )函数\t227
13.3.2 fgets( )函数和fputs( )函数\t229
13.3.3 fprintf( )函数和fscanf( )函数\t230
13.3.4 fread( )函数和fwrite( )函数\t232
13.4 文件的定位\t233
13.4.1 rewind( )函数\t234
13.4.2 fseek( )函数和随机读/写\t234
13.4.3 ftell( )函数\t235
本章小结\t235
习题13\t235
实验篇
第14章 实验\t238
实验一 初识C语言编程\t238
实验二 算术运算与标准函数使用\t241
实验三 顺序结构的程序设计\t243
实验四 选择结构程序设计\t245
实验五 循环结构程序设计\t248
实验六 数组类型程序设计\t251
实验七 指针程序设计\t254
实验八 函数程序设计\t256
实验九 结构体和共用体程序设计\t260
实验十 数据文件\t262
附录A 运算符的优先级和结合性\t264
附录B 标准函数\t265
附录C ASCII字符编码表\t268
附录D 程序调试中常见错误信息一览\t269
参考文献\t276