第1章 程序设计基本概念 1
1.1 C程序和程序设计 3
1.2 算法 4
1.3 结构化程序设计和模块化结构 5
综合测试题一 7
第2章 C程序设计的初步知识 9
2.1 简单C语言程序的构成和格式 11
2.2 常量、变量和标识符 12
2.3 整型数据 15
2.4 实型数据 17
2.5 算术表达式 18
2.6 赋值表达式 19
2.7 自加、自减运算符和逗号运算符 20
综合测试题二 25
第3章 顺序结构 27
3.1 赋值语句 29
3.2 数据输出 29
3.3 数据输入 34
3.4 复合语句和空语句 36
综合测试题三 37
第4章 选择结构 41
4.1 关系运算和逻辑运算 43
4.2 if语句和用if语句构成的选择结构 44
4.3 条件表达式构成的选择结构 49
4.4 switch语句及用switch语句和break语句构成的选择结构 50
4.5 语句标号和goto语句 51
综合测试题四 52
第5章 循环结构 57
5.1 while语句和用while语句构成的循环结构 59
5.2 do-while语句和用do-while语句构成的循环结构 61
5.3 for语句和用for语句构成的循环结构 62
5.4 循环结构的嵌套 65
5.5 break和continue语句在循环体中的作用 65
综合测试题五 69
第6章 字符型数据 75
6.1 字符型常量 77
6.2 字符变量 79
6.3 字符的输入和输出 80
综合测试题六 81
第7章 函数 83
7.1 库函数 85
7.2 函数的定义和返回值 86
7.3 函数的调用 90
7.4 函数的说明 95
7.5 调用函数和被调用函数之间的数据传递 96
综合测试题七 100
第8章 指针 105
8.1 变量的地址和指针 107
8.2 指针变量的定义和指针变量的基类型 108
8.3 给指针变量赋值 110
8.4 对指针变量的操作 111
8.5 函数之间地址值的传递 113
综合测试题八 118
第9章 数组 123
9.1 一维数组的定义和一维数组元素的引用 125
9.2 一维数组和指针 127
9.3 函数之间对一维数组和数组元素的引用 130
9.4 二维数组的定义和二维数组元素的引用 133
9.5 二维数组和指针 136
9.6 二维数组名和指针数组作为实参 139
综合测试题九 140
第10章 字符串 147
10.1 用一个一维字符数组来存放字符串 149
10.2 使指针指向一个字符串 151
10.3 字符串的输入和输出 154
10.4 字符串数组 155
10.5 用于字符串处理的函数 157
综合测试题十 160
第11章 对函数的进一步说明 161
11.1 传给main函数的参数 163
11.2 通过实参向函数传递函数名或指向函数的指针变量 167
11.3 函数的递归调用 168
综合测试题十一 173
第12章 C语言中用户标识符的作用域和存储类 175
12.1 局部变量、全局变量和存储分类 177
12.2 局部变量及其作用域和生存期 178
12.3 全局变量及其作用域和生存期 181
12.4 函数的存储分类 182
综合测试题十二 183
第13章 编译预处理和动态存储分配 185
13.1 编译预处理 187
13.2 动态存储分配 190
综合测试题十三 192
第14章 结构体、共用体和用户定类型 195
14.1 用typedef说明一种新类型名 197
14.2 结构体类型 198
14.3 共用体 205
综合测试题十四 209
第15章 位运算 213
15.1 位运算 215
15.2 位运算符的运算功能 216
综合测试题十五 218
第16章 文件 219
16.1 C语言文件的概念 221
16.2 文件指针 222
16.3 打开文件 223
16.4 关闭文件 224
16.5 调用getc(fgetc)和putc(fputc)函数进行输入输出 226
16.6 判断文件结束函数feof 227
16.7 fscanf函数和fprintf函数 228
16.8 fgets函数和fputs函数 229
16.9 fread函数和fwrite函数 231
16.10 文件定位函数 232
综合测试题十六 234
附录 238
附录A 教程配套习题精解 238
附录B 综合测试题答案 286