第1章 数制间的相互转换及不同类型数的表示范围 1
1.1 数的十进制、二进制、八进制和十六进制表示 1
1.1.1 如何将十进制数转换为二进制数 2
1.1.2 将十进制数转换为八进制数或十六进制数 3
1.2 数的取值范围 5
1.2.1 无符号数的表示范围 5
1.2.2 有符号数的表示范围 6
1.2.3 补码的概念 7
1.2.4 计算机中补码的表示方法 8
1.2.5 C语言中的数据类型 11
1.2.6 类型的自动转换 11
练习题1 12
第2章 C语言程序调试方法和基础知识 13
2.1 从一个完整的程序开始 13
2.2 程序的编辑、编译、连接和运行 13
2.3 printf语句和格式符% 17
2.4 转义符\ 19
2.5 printf语句用法举例 23
2.6 变量名的命名约定和定义变量 26
2.7 赋值语句 27
2.8 scanf语句和格式符% 28
2.9 常用数学内部函数列表 31
2.10 运算符和C表达式 33
2.11 程序例 40
2.12 常量 49
2.13 十进制、八进制和十六进制整型数的表示方法 49
2.14 实型数的表示方法 51
2.15 字符串常量 51
2.16 字符串常量与字符常量的区别 52
2.17 变量的种类 53
2.18 逗号运算符 55
练习题2 56
第3章 条件语句 60
3.1 逻辑运算符 60
3.2 无条件转移语句goto 64
3.3 if-else语句 64
3.4 else if语句 69
3.5 if语句中的一个等号(=)和两个等号(==) 72
3.6 逻辑与运算符(&&)和逻辑或运算符(‖)的特点 73
3.6.1 逻辑与运算符(&&)的运算特点 73
3.6.2 逻辑或运算符(‖)的运算特点 74
3.7 switch语句 75
练习题3 77
第4章 循环 78
4.1 goto语句以及用goto语句构成的循环 78
4.2 while循环语句 79
4.3 do-while循环语句 79
4.4 while和do-while的比较 80
4.5 for循环语句 82
4.6 二重循环 84
4.6.1 一重循环的嵌套 84
4.6.2 二重循环的注意点 85
4.7 break和continue语句 86
4.8 小结 89
4.9 综合程序例 89
练习题4 99
第5章 数组 100
5.1 一维数组的定义和应用 100
5.2 二维数组的定义和应用 109
5.3 字符数组 117
5.4 三维数组的定义和应用 122
5.5 三维字符数组的定义和应用 125
练习题5 126
第6章 指针 127
6.1 内存地址的概念 127
6.2 指针变量的定义 127
6.2.1 普通变量与指针变量比对 128
6.2.2 普通变量与指针变量使用比对 128
6.2.3 不能向没有指向具体变量的指针赋值 130
6.3 为什么要定义不同类型的指针变量 131
6.4 指针在一维数组中的应用 132
6.5 指针应用例 133
6.6 二维数组的指针表示 134
6.7 三维数组的指针表示 136
6.8 n列数组指针变量 138
6.9 一维指针数组和二级指针 140
6.10 二维指针数组 142
6.11 有形式参数的主函数main(argc,argv) 143
6.12 字符串和单个字符处理函数 144
练习题6 157
第7章 函数 159
7.1 为什么要引入函数 159
7.2 主函数与函数、函数与函数之间的关系 160
7.3 函数的定义 161
7.4 对被调用函数的声明 162
7.5 使用函数时的注意事项 163
7.6 函数的嵌套调用 165
7.7 函数的参数传递 165
7.8 函数的递归调用 171
7.9 返回地址的函数 177
7.10 函数综合程序例 179
7.11 常量、动态变量、外部变量、静态变量、局部变量和寄存器变量 188
7.11.1 外部变量程序例 195
7.11.2 局部变量程序例 200
7.11.3 静态变量程序例 202
7.12 函数指针 206
7.13 字符数组与字符指针 208
7.14 字符串指针数组 211
7.15 工程文件的使用方法 215
练习题7 218
第8章 结构体和共用体 219
8.1 结构体的定义 219
8.2 结构体变量的定义 220
8.3 结构体变量的引用 222
8.4 结构体变量的初始化 222
8.5 结构体数组变量 223
8.6 结构体数组的初始化 224
8.7 结构体指针变量 224
8.8 共用体 226
8.9 综合应用程序例 229
8.10 链表 241
8.11 用typedef定义新类型 252
练习题8 253
第9章 文件 254
9.1 C语言文件概述 254
9.2 文件的打开与关闭fopen()/fclose() 255
9.3 读/写文件中的一个字符fgetc()/fputc() 257
9.4 读/写文件中的一个字符串fputs()/fgets() 260
9.5 读/写文件中的一个数据块fread()/fwrite() 261
9.6 按格式符读/写文件fscanf()/fprintf() 266
9.7 读/写函数的选用原则 272
9.8 文件位置指针和文件定位 272
9.9 文件管理中的几个其他函数 273
9.10 文件管理程序例 274
练习题9 276
第10章 位运算 278
10.1 位运算和运算符 278
10.2 位运算赋值运算符 280
10.3 程序例 281
10.4 位段 282
练习题10 283
附录 284
附录A 各章练习题答案 284
附录B ASCII码表 294
参考文献 295