前言第1 章 概述11.1 程序示例21.1.1 C 语言程序的结构31.1.2 C 语言程序的发展史31.1.3 C 语言程序的特点31.2 C 语言的基本符号与关键字41.2.1 字符集41.2.2 关键字41.2.3 用户标识符51.2.4 ASCII 字符集61.3 算法及其表示61.3.1 算法的概念和特征61.3.2 三种基本程序结构61.3.3 算法的表示7习题9第2 章 数据类型、运算符与表达式 122.1 问题提出与程序示例 132.2 数据类型 142.3 常量与变量 142.3.1 常量 142.3.2 变量 162.4 运算符与表达式 192.4.1 算术运算符与算术表达式 192.4.2 关系运算符和关系表达式 212.4.3 逻辑运算符和逻辑表达式 222.4.4 赋值运算符和赋值表达式 222.4.5 条件运算符和条件表达式 232.4.6 逗号运算符和逗号表达式 242.4.7 位运算符 24习题 25第3 章 顺序结构程序设计 293.1 问题提出与程序示例 303.2 C 语言的基本语句 313.3 字符数据的输入输出 323.3.1 字符输出函数putchar( ) 323.3.2 字符输入函数getchar( ) 323.4 格式输入与输出 333.4.1 格式输出函数printf( ) 333.4.2 格式输入函数scanf( ) 373.5 顺序结构程序设计举例 39习题 40第4 章 选择结构程序设计 454.1 问题提出与程序示例 464.2 if 语句 474.2.1 if 语句 474.2.2 if 语句的嵌套 504.3 switch 语句 514.4 选择结构程序应用举例 53习题 56第5 章 循环结构程序设计 645.1 问题提出与程序示例 655.2 goto 语句 665.3 while 语句 665.4 do…while 语句 685.5 for 语句 695.6 循环的嵌套 715.7 转移控制语句 725.7.1 break 语句 725.7.2 continue 语句 725.8 循环结构程序应用举例 73习题 78第6 章 数组 856.1 问题提出与程序示例 866.2 一维数组 876.2.1 一维数组的定义 876.2.2 一维数组的初始化 876.2.3 一维数组的引用 886.3 二维数组 916.3.1 二维数组的定义 916.3.2 二维数组的初始化 926.3.3 二维数组的引用 926.4 字符数组 956.4.1 字符数组的定义和初始化 956.4.2 字符数组的输入/输出 966.4.3 字符串处理函数 97习题101第7 章 函数1087.1 问题提出与程序示例1097.2 函数的定义与调用 1107.2.1 函数的定义 1107.2.2 函数的返回值 1117.2.3 函数的说明 1117.2.4 函数的调用 1127.3 函数的嵌套调用和递归调用 1137.3.1 函数的嵌套调用 1137.3.2 函数的递归调用 1157.4 变量的作用域与存储类型 1167.4.1 局部变量的作用域 1177.4.2 全局变量的作用域 1187.4.3 变量的存储类型 119习题121第8 章 编译预处理1288.1 问题提出与程序示例1298.2 宏定义1298.2.1 无参宏定义1298.2.2 带参宏定义1308.3 文件包含1318.4 条件编译132习题134第9 章 指针1379.1 问题提出与程序示例1389.2 指针与指针变量1399.2.1 指针的定义1399.2.2 指针变量的定义1399.2.3 指针变量的使用1409.3 指针和数组1419.3.1 指针与一维数组1419.3.2 指针与二维数组1459.4 指针和字符串1479.5 指针与函数1489.5.1 指针作为函数的返回值1489.5.2 指向函数的指针变量1499.6 指针数组与指向指针的指针变量1509.6.1 指针数组1509.6.2 指向指针的指针变量1509.6.3 主函数main( )的形参151习题152第10 章 结构体与共用体15810.1 问题提出与程序示例15910.2 结构体16010.2.1 结构体类型与结构体变量的定义16010.2.2 结构体变量的初始化与引用16110.2.3 结构体数组16310.2.4 结构体类型指针变量16410.3 链表16510.4 共用体17110.4.1 共用体类型与变量的定义17110.4.2 共用体变量的引用17210.5 枚举类型17310.5.1 枚举类型与变量的定义17310.5.2 枚举类型变量的使用17410.6 自定义数据类型175习题175第11 章 文件18011.1 问题提出与程序示例18111.2 文件概述18211.3 文件的打开与关闭18311.3.1 文件打开函数fopen( ) 18311.3.2 文件关闭函数fclose( ) 18411.4 文件的读/写18411.4.1 读/写字符函数fgetc( )和fputc( ) 18411.4.2 读/写字符串函数fgets( )和fputs( )18611.4.3 数据块读/写函数fread( )和fwrite( ) 18811.4.4 格式化读/写函数fscanf( )和fprintf( )18911.5 文件的定位19011.5.1 rewind( )函数19011.5.2 fseek( )函数19111.5.3 ftell( )函数19211.6 文件的出错检测19211.6.1 ferror( )函数19211.6.2 clearerr( )函数192习题193附录A 常用字符与ASCII 代码对照表197附录B 运算符的优先级及其结合性198附录C 常用的C 库函数199参考文献202