第1章 C语言概述 1
1.1 程序设计及程序设计语言 1
1.1.1 程序设计 1
1.1.2 程序设计语言及其发展 2
1.1.3 结构化程序设计与面向对象的程序设计 3
1.2 C语言出现的历史背景 4
1.3 C语言的特点 4
1.4 简单的C程序结构 5
1.5 C语言程序基本结构与书写规则 8
1.6 C语言程序的上机步骤 8
习题一 9
第2章 算法 10
2.1 算法的概念 10
2.2 算法的特性与评价标准 11
2.2.1 算法的特性 11
2.2.2 算法的评价标准 11
2.3 算法的表示 12
2.3.1 自然语言表示法 12
2.3.2 传统流程图 12
2.3.3 结构化流程图 13
2.3.4 N-S流程图 15
习题二 16
第3章 数据类型、运算符与表达式 17
3.1 常量与变量 17
3.1.1 常量 17
3.1.2 变量 18
3.2 整型数据 18
3.2.1 整型常量的表示方法 18
3.2.2 整型变量 19
3.3 实型数据 22
3.3.1 实型常量的表示方法 22
3.3.2 实型变量 23
3.4 字符型数据 24
3.4.1 字符常量 24
3.4.2 转义字符 25
3.4.3 字符变量 26
3.4.4 字符数据在内存中的存储形式及使用方法 26
3.4.5 字符串常量 27
3.5 变量赋初值 27
3.6 各种数据类型间的混合运算 28
3.6.1 自动转换 28
3.6.2 强制类型转换 29
3.7 算术运算符和算术表达式 30
3.7.1 C运算符简介 30
3.7.2 算术运算符和算术表达式 31
3.8 赋值运算符和赋值表达式 33
3.9 逗号运算符和逗号表达式 34
习题三 35
第4章 顺序结构程序设计 37
4.1 C语句 37
4.1.1 C程序的结构 37
4.1.2 C程序中的语句 37
4.2 数据的输出 39
4.3 数据的输入 44
4.4 应用举例 46
习题四 48
第5章 选择结构程序设计 49
5.1 关系运算符和关系表达式 49
5.1.1 关系运算符及其优先次序 49
5.1.2 关系表达式 49
5.1.3 关系表达式的值 50
5.2 逻辑运算符和逻辑表达式 51
5.2.1 逻辑运算符及其优先次序 51
5.2.2 逻辑表达式 51
5.2.3 逻辑表达式的值 51
5.3 if语句 53
5.3.1 if语句的三种形式 53
5.3.2 if语句的嵌套 56
5.3.3 条件运算符和条件表达式 58
5.4 switch语句 59
5.5 应用举例 60
习题五 61
第6章 循环结构程序设计 63
6.1 while语句 63
6.2 do...while语句 64
6.3 for语句 65
6.4 break语句和continue语句 67
6.4.1 break语句 68
6.4.2 continue语句 69
6.5 循环嵌套 69
6.6 应用举例 71
习题六 72
第7章 数组 74
7.1 数组及其特点 74
7.2 一维数组的定义和引用 74
7.2.1 一维数组的定义 74
7.2.2 一维数组元素的引用 75
7.2.3 一维数组的初始化 76
7.2.4 一维数组程序举例 76
7.3 多维数组的定义和引用 81
7.3.1 二维数组的定义 81
7.3.2 二维数组的存储 82
7.3.3 二维数组元素的引用 82
7.3.4 二维数组的初始化 82
7.3.5 二维数组程序举例 83
7.3.6 多维数组的定义及引用 88
7.4 字符串与字符数组 89
7.4.1 字符数组的定义 89
7.4.2 字符数组的初始化 89
7.4.3 字符串 89
7.4.4 字符数组的输入/输出 90
7.4.5 字符串处理函数 93
7.4.6 字符数组应用举例 95
习题七 96
第8章 函数 98
8.1 函数的定义 98
8.1.1 无参函数 98
8.1.2 有参函数 99
8.2 函数的调用 100
8.2.1 函数调用的一般形式 100
8.2.2 函数调用的常用方式 100
8.2.3 对被调函数的声明 101
8.3 函数的参数和函数的值 103
8.3.1 实际参数与形式参数 103
8.3.2 函数参数的传递方式 103
8.3.3 函数的返回值 105
8.4 数组作为函数参数 105
8.4.1 数组名作为函数参数 105
8.4.2 多维数组作函数参数 108
8.5 函数的嵌套调用和递归调用 109
8.5.1 函数的嵌套调用 109
8.5.2 函数的递归调用 111
8.6 局部变量和全局变量 113
8.6.1 局部变量 114
8.6.2 全局变量 115
8.6.3 同名的全局变量和局部变量 116
8.7 变量的存储类别 117
8.7.1 静态存储与动态存储 118
8.7.2 局部变量的存储 118
8.7.3 全局(外部)变量的存储 120
8.8 外部函数和内部函数 123
8.8.1 外部函数 123
8.8.2 内部函数 123
习题八 124
第9章 预处理命令 125
9.1 预处理命令的定义及功能 125
9.2 宏定义 125
9.2.1 无参宏定义 125
9.2.2 带参宏定义 128
9.3 文件包含 130
习题九 131
第10章 指针 133
10.1 指针与地址的概念 133
10.2 指向变量的指针 134
10.2.1 指针变量的定义 134
10.2.2 指针变量的引用 135
10.2.3 指针变量作为函数参数 137
10.3 指向数组的指针 142
10.3.1 指向数组元素的指针 142
10.3.2 通过指针引用数组元素 143
10.3.3 数组的指针和指向数组的指针变量的应用 146
10.3.4 指向多维数组的指针和指针变量 150
10.4 指向字符串的指针 153
10.4.1 字符串的指针 153
10.4.2 字符串指针变量作函数参数 154
10.4.3 使用字符串指针变量与字符数组的区别 155
10.5 指向函数的指针 155
10.5.1 函数的指针 156
10.5.2 返回值为指针类型的函数 156
10.6 指针数组和指向指针的指针 158
10.6.1 指针数组的概念 158
10.6.2 指针数组作函数参数 160
10.6.3 指向指针的指针 162
10.7 指针的数据类型及其运算 165
10.7.1 指针的数据类型 165
10.7.2 指针运算 166
10.7.3 常见错误 166
习题十 167
第11章 结构体与共用体 168
11.1 概述 168
11.2 结构体与结构体类型变量 168
11.2.1 结构体类型定义 169
11.2.2 结构体类型变量的定义 169
11.3 结构体变量的引用 171
11.3.1 结构体变量成员的引用 171
11.3.2 结构体变量的整体引用 172
11.4 结构体数组 173
11.4.1 结构体数组的定义 173
11.4.2 结构体数组应用举例 173
11.5 结构体的初始化 174
11.5.1 结构体类型变量的初始化 174
11.5.2 结构体数组的初始化 175
11.6 指向结构体类型数据的指针 176
11.6.1 指向结构体类型变量的指针 176
11.6.2 指向结构体数组的指针 177
11.6.3 结构体在函数间的传递 178
11.7 用指针处理链表 181
11.7.1 什么是链表 182
11.7.2 动态链表的基本操作 185
11.8 共用体 191
11.8.1 共用体类型定义的一般格式 192
11.8.2 共用体变量的说明 192
11.8.3 共用体变量的引用 194
习题十一 196
第12章 位运算 198
12.1 位运算符和位运算 198
12.1.1 按位与运算符 198
12.1.2 按位或运算符 199
12.1.3 按位异或运算符 200
12.1.4 取反运算符 201
12.1.5 左移运算符 202
12.1.6 右移运算符 202
12.2 位运算应用举例 203
12.3 位段 204
习题十二 207
第13章 文件 208
13.1 文件概述 208
13.1.1 文件输入/输出的基本概念 208
13.1.2 C文件的分类 209
13.2 文件类型指针 210
13.3 文件的各种操作 211
13.3.1 建立数据文件 211
13.3.2 文件指针变量说明 211
13.3.3 文件的打开 211
13.3.4 文件的关闭 213
13.3.5 文件的读写 213
13.3.6 C语言文件操作步骤 220
13.4 文件的随机读写 221
13.5 出错的检测 223
13.6 常用的文件处理函数 224
习题十三 225
参考文献 226