第1章 初识C概述 1
1.1 初识C语言 1
1.1.1 C语言的由来 1
1.1.2 C语言的特点 1
1.2 C语言程序设计 2
1.2.1 程序设计的基本概念 2
1.2.2 C语言程序的构成 3
1.2.3 C程序书写格式的要点 3
1.3 C程序的开发过程 4
1.4 算法 4
1.4.1 算法的概念 4
1.4.2 算法的特性 5
1.4.3 流程图 5
1.5 结构化程序设计 5
本章小结 7
真题演练 7
巩固练习 8
第2章 数据类型、运算符与表达式 10
2.1 标识符 10
2.1.1 标识符的概念 10
2.1.2 标识符的分类 11
2.2 常量和变量 11
2.2.1 常量 11
2.2.2 变量 12
2.3 基本数据类型 13
2.3.1 整型数据 14
2.3.2 实型数据 17
2.3.3 字符型数据 18
2.3.4 类型的混合运算 20
2.4 运算符与表达式 22
2.4.1 赋值运算符与赋值表达式 23
2.4.2 算术运算符与算术表达式 26
2.4.3 逻辑运算符与逻辑表达式 27
2.4.4 关系运算符与关系表达式 27
2.4.5 其他运算符 28
本章小结 31
真题演练 32
巩固练习 32
第3章 顺序程序设计 34
3.1 语句 34
3.2 数据的输入与输出 37
3.2.1 格式化输入/输出函数 37
3.2.2 字符的输入/输出函数 48
3.3 顺序结构程序设计 49
本章小结 51
真题演练 52
巩固练习 54
第4章 选择程序设计 55
4.1 概述 55
4.2 条件选择语句——if结构 55
4.2.1 if语句的第1种形式——if结构 55
4.2.2 if语句的第2种形式——if-else结构 56
4.2.3 if语句的第3种形式——if-else if-else结构 57
4.3 if语句的嵌套使用 59
4.3.1 在if语句中嵌套具有else子句的if语句 60
4.3.2 在if语句中嵌套没有else子句的if语句 61
4.3.3 在else子句语中嵌套if语句 62
4.4 多分支选择语句——switch结构 63
4.4.1 switch结构的基本形式 63
4.4.2 带break语句的switch语句 65
4.4.3 switch语句的嵌套 66
4.4.4 if语句和switch语句的相互转换 67
本章小结 67
真题演练 67
巩固练习 69
第5章 循环程序设计 71
5.1 概述 71
5.2 while和do-while循环 71
5.2.1 while循环 71
5.2.2 do-while循环 73
5.2.3 while循环和do-while循环 74
5.3 for循环 74
5.3.1 for循环的一般形式 74
5.3.2 for循环的特殊形式 75
5.4 循环的嵌套 77
5.5 for循环与while循环的转换 79
5.6 break语句与continue语句 80
5.6.1 break语句 80
5.6.2 continue语句 81
5.6.3 break和continue的区别 82
本章小结 83
真题演练 83
巩固练习 85
第6章 函数 87
6.1 概述 87
6.2 函数的定义 89
6.2.1 无参函数的定义 90
6.2.2 有参函数的定义 90
6.3 函数的参数和返回值 91
6.3.1 函数的参数 92
6.3.2 函数的返回值 94
6.4 函数的调用 95
6.4.1 函数调用的一般形式 95
6.4.2 函数调用的方式 97
6.4.3 函数的声明 97
6.5 变量的作用范围 99
6.5.1 局部变量 99
6.5.2 全局变量 100
6.6 变量的存储类别 101
6.6.1 自动变量auto 102
6.6.2 静态局部变量static 103
6.6.3 寄存器变量register 103
6.6.4 全局变量extern 104
本章小结 105
真题演练 106
巩固练习 109
第7章 数组 112
7.1 概述 112
7.2 一维数组 113
7.2.1 一维数组的定义 113
7.2.2 一维数组元素的引用 114
7.2.3 一维数组中元素的地址 115
7.2.4 一维数组的初始化 116
7.2.5 一维数组应用举例 118
7.3 二维数组 121
7.3.1 二维数组概述 121
7.3.2 二维数组的定义 122
7.3.3 二维数组元素的引用 123
7.3.4 二维数组元素的地址 123
7.3.5 二维数组的初始化 124
7.4 数组在程序中的应用 125
7.5 字符数组 127
7.5.1 字符数组的定义 127
7.5.2 字符数组元素的引用 128
7.5.3 字符数组的初始化 128
7.5.4 字符数组的输入/输出 130
7.6 字符串 132
7.6.1 字符串的输入函数scanf、gets 132
7.6.2 字符串的输出函数printf、puts 133
7.6.3 求字符串长度的函数strlen 134
7.6.4 字符串复制函数strcpy 134
7.6.5 字符串比较函数strcmp 135
7.6.6 字符函数的综合应用 136
本章小结 138
真题演练 138
巩固练习 140
第8章 指针 142
8.1 概述 142
8.2 指针的定义 142
8.2.1 地址的概念 143
8.2.2 指针的定义 145
8.2.3 指针变量的操作 145
8.2.4 指针的运算 149
8.3 指针在数组中的应用 150
8.3.1 指针与一维数组 150
8.3.2 指向二维数组元素的指针变量 153
8.4 指针函数与函数指针 153
8.4.1 指针作为函数参数 154
8.4.2 函数指针的定义 156
8.5 指针的其他用法 156
本章小结 160
真题演练 161
巩固练习 163
第9章 编译预处理、结构体和共用体 166
9.1 概述 166
9.2 编译预处理 166
9.2.1 宏定义 167
9.2.2 文件包含与条件编译 170
9.3 结构体 172
9.3.1 结构体的含义 173
9.3.2 定义结构体变量 174
9.3.3 结构体变量初始化 176
9.3.4 结构体变量成员的访问 177
9.4 共用体 179
9.5 位运算符与位运算 181
本章小结 183
真题演练 184
巩固练习 187
第10章 文件 190
10.1 文件概述 190
10.2 文件指针 191
10.3 文件的打开 191
10.4 文件的关闭 192
10.5 文件的读写 193
10.6 其他一些函数 195
本章小结 197
真题演练 198
巩固练习 199
附录一 C语言的关键字 200
附录二 C语言运算符的优先级和结合性 201
附录三 C常用函数库 202
附录四 常用字符与ASCII码对照 206
附录五 巩固练习参考答案 207