第1章 绪论 1
1.1 C语言的发展和特点 1
1.1.1 C语言的发展 1
1.1.2 C语言的特点 2
1.2 C语言程序的基本结构及书写格式 2
1.2.1 C语言程序的基本结构 2
1.2.2 C语言程序的书写格式 4
1.3 C语言程序的开发过程 5
1.3.1 编辑源程序 5
1.3.2 编译源文件 5
1.3.3 连接目标文件及库文件 5
1.3.4 运行程序 6
1.4 C语言程序的开发环境 6
习题 10
第2章 数据类型、运算符和表达式 12
2.1 C语言的词法约定 12
2.1.1 字符集 12
2.1.2 关键字 12
2.1.3 标识符 13
2.2 数据类型 13
2.2.1 C语言的数据类型 13
2.2.2 基本数据类型及其长度 14
2.2.3 类型修饰符 15
2.3 常量 15
2.3.1 数值常量 15
2.3.2 字符常量 16
2.3.3 字符串常量 17
2.3.4 符号常量 18
2.4 变量 18
2.4.1 变量的含义 18
2.4.2 整型变量 19
2.4.3 实型变量 21
2.4.4 字符变量 22
2.5 运算符和表达式 22
2.5.1 算术运算符与算术表达式 23
2.5.2 赋值运算符与赋值表达式 24
2.5.3 关系运算与逻辑运算 25
2.5.4 其他运算符与表达式 28
2.5.5 运算符优先级 28
2.5.6 类型转换 29
习题 30
第3章 程序设计基础 32
3.1 程序设计概述 32
3.2 结构化程序设计 32
3.2.1 结构化程序设计原理 32
3.2.2 结构化流程图 34
3.3 基本输入与输出语句 35
3.3.1 字符输入/输出函数 36
3.3.2 格式化输入/输出函数 37
习题 40
第4章 程序控制结构 42
4.1 顺序结构 42
4.2 选择结构 44
4.2.1 if语句 44
4.2.2 switch语句 47
4.3 循环结构 49
4.3.1 while循环 49
4.3.2 do...while循环 51
4.3.3 for循环 53
4.3.4 三种循环语句的异同 58
4.4 break语句与continue语句 59
4.4.1 break语句 59
4.4.2 continue语句 60
4.5 双层循环 60
4.6 循环程序设计方法 61
4.7 goto语句 65
习题 67
第5章 函数 71
5.1 一般函数 71
5.1.1 函数的说明和定义 71
5.1.2 函数的调用 72
5.1.3 函数的返回语句 73
5.2 函数的递归调用 76
5.3 变量的作用域规则及存储类别 78
5.3.1 局部变量和全局变量 78
5.3.2 变量的存储类别 80
习题 83
第6章 编译预处理指令 86
6.1 宏定义指令#define 86
6.1.1 宏定义 86
6.1.2 宏定义的嵌套 87
6.1.3 带参数的宏定义 88
6.1.4 取消宏定义命令#undef 89
6.2 文件包含命令#include 90
6.2.1 包含标题文件 90
6.2.2 包含用户文件 90
6.3 条件编译指令 90
6.3.1 #if形式 91
6.3.2 #ifdef、#ifndef形式 91
习题 94
第7章 数组 96
7.1 一维数组 96
7.1.1 一维数组的定义 96
7.1.2 一维数组的引用 97
7.1.3 一维数组的初始化 98
7.1.4 一维数组程序举例 98
7.2 二维数组 100
7.2.1 二维数组的定义 100
7.2.2 二维数组的初始化 101
7.2.3 二维数组程序举例 102
7.3 字符数组 104
7.3.1 一维字符数组的定义 104
7.3.2 一维字符数组的初始化 104
7.3.3 二维字符数组 105
7.3.4 字符数组的输入/输出 105
7.3.5 字符串处理函数 106
习题 109
第8章 指针 112
8.1 指针的说明及初始化 112
8.1.1 指针与地址 112
8.1.2 指针运算符 113
8.1.3 指针的说明 114
8.1.4 指针的初始化 114
8.2 指针的运算 116
8.2.1 指针的赋值 116
8.2.2 指针的算术运算 116
8.2.3 指针的关系运算 118
8.3 指针与数组 119
8.3.1 指针与数组的关系 119
8.3.2 字符型指针与字符串 120
8.3.3 指针数组 121
8.3.4 动态分配函数 124
8.4 指针与函数 125
8.4.1 指针与函数参数 125
8.4.2 指针型函数 129
8.4.3 指向函数的指针 130
8.5 多级指针 132
8.6 命令行参数 133
习题 134
第9章 结构、联合、枚举和自定义类型 137
9.1 结构 137
9.1.1 结构类型的定义 137
9.1.2 结构变量的说明 138
9.1.3 结构变量的初始化 140
9.1.4 结构成员变量的引用 141
9.2 结构数组 143
9.2.1 结构数组说明 143
9.2.2 结构数组的应用 144
9.3 结构指针 149
9.3.1 结构指针说明 149
9.3.2 结构指针目标成员的访问 149
9.4 将结构传递给函数 151
9.4.1 将结构成员传递给函数 151
9.4.2 将整个结构传递给函数 152
9.5 结构内部的数组和结构 153
9.5.1 结构成员数组 153
9.5.2 结构的嵌套 153
9.6 结构与链表 155
9.6.1 链表的定义 156
9.6.2 单向链表 157
9.7 联合 161
9.7.1 联合的定义及使用 161
9.7.2 结构与联合的异同 163
9.8 枚举 163
9.9 位域 163
9.10 用户自定义类型 164
习题 164
第10章 文件及I/O函数 167
10.1 流和文件 167
10.1.1 流的概念 167
10.1.2 文件 168
10.2 文件操作函数 168
10.2.1 fopen()和fclose()函数 168
10.2.2 字符读写函数fgetc()和fputc() 169
10.2.3 fgetw()和fputw()函数 170
10.2.4 整行读写函数fgets()和fputs() 170
10.2.5 按格式读写函数fprintf()和fscanf() 171
10.2.6 读写数据块函数fread()和fwrite() 172
10.2.7 fseek()函数和随机访问I/O 173
10.2.8 ftell()函数 174
10.2.9 ferror()和rewind()函数 174
10.2.10 删除文件函数remove() 175
习题 175
附录A 模拟测试卷及参考答案 177
附录B ASCIl码表 196
参考文献 198