第1章 C语言概述 1
1.1 程序与程序设计语言 1
1.1.1 程序 1
1.1.2 程序设计语言 2
1.2 C语言发展概述和主要特点 3
1.2.1 C语言的发展历史 3
1.2.2 C语言的主要特点 3
1.3 C程序的基本结构 4
1.4 程序的调试 7
1.4.1 调试步骤 7
1.4.2 Visual C++6.0集成开发环境 8
本章小结 10
习题1 11
第2章 C语言的基本知识 12
2.1 C语言的数据类型 12
2.2 变量与常量 13
2.2.1 变量 13
2.2.2 常量 15
2.3 整型数据 16
2.3.1 整型变量 16
2.3.2 整型常量 19
2.3.3 用printf()输出整型数据 20
2.3.4 用scanf()输入整型数据 24
2.4 浮点数 27
2.4.1 浮点变量 27
2.4.2 浮点常量 29
2.4.3 用printf()输出浮点数据 29
2.4.4 用scanf()输入浮点数据 31
2.5 字符型数据 32
2.5.1 字符变量 32
2.5.2 字符常量 33
2.5.3 用printf()输出字符 34
2.5.4 用scanf()输入字符 35
2.5.5 用getchar()输入字符和用putchar()输出字符 36
2.5.6 字符串常量 37
本章小结 38
习题2 39
第3章 运算符和表达式 41
3.1 表达式 41
3.2 算术运算符 43
3.3 赋值运算符 44
3.3.1 普通赋值运算符 44
3.3.2 复合赋值运算符 45
3.4 不同数据类型的数据间的混合运算 46
3.4.1 自动类型转换 46
3.4.2 强制类型转换 48
3.4.3 赋值表达式的类型转换 48
3.5 自增、自减运算符 50
3.6 逗号运算符 52
3.7 其他运算符 53
本章小结 54
习题3 55
第4章 顺序和选择结构程序设计 57
4.1 C语句概述 57
4.2 算法基本知识 59
4.2.1 算法的特性和要素 59
4.2.2 算法的描述 59
4.3 顺序结构程序设计 62
4.4 关系运算与逻辑运算 63
4.4.1 关系运算 63
4.4.2 逻辑运算 64
4.4.3 程序中对条件的描述 66
4.5 if语句 67
4.5.1 if语句的基本形式 67
4.5.2 缺省else结构的if语句 69
4.6 if语句的嵌套 71
4.7 条件运算符 75
4.8 switch语句 76
4.9 选择结构程序设计举例 80
本章小结 83
习题4 84
第5章 循环结构程序设计 85
5.1 while语句 85
5.2 do…while语句 89
5.3 for语句 91
5.4 break语句与continue语句 94
5.4.1 break语句 94
5.4.2 continue语句 96
5.5 循环的嵌套 97
5.6 用if和goto语句构成的循环结构 101
5.7 程序举例 102
本章小结 105
习题5 106
第6章 数组 107
6.1 一维数组 107
6.1.1 一维数组的说明 107
6.1.2 一维数组的引用 108
6.1.3 一维数组的初始化 110
6.1.4 一维数组的程序举例 111
6.2 二维数组 116
6.2.1 二维数组的说明 116
6.2.2 二维数组的引用 117
6.2.3 二维数组的初始化 118
6.2.4 二维数组的程序举例 119
6.3 字符数组与字符串 122
6.3.1 字符数组 122
6.3.2 用字符数组存储字符串 124
6.3.3 字符串输入输出 125
6.3.4 字符串处理函数 127
6.3.5 字符串应用举例 130
本章小结 133
习题6 134
第7章 函数 136
7.1 函数概述 136
7.2 函数的定义和调用 137
7.2.1 函数定义 137
7.2.2 函数调用 139
7.2.3 形参和实参 140
7.2.4 函数的值 143
7.3 函数的嵌套调用 144
7.4 函数的递归调用 147
7.5 局部变量和全局变量 148
7.5.1 局部变量 149
7.5.2 全局变量 149
7.6 数据的存储类别 151
7.6.1 动态存储与静态存储 151
7.6.2 auto变量 152
7.6.3 register变量 152
7.6.4 static变量 152
7.6.5 extern变量 153
7.7 内部函数与外部函数 155
本章小结 156
习题7 157
第8章 指针 159
8.1 地址与指针 159
8.2 指针变量 161
8.2.1 指针的定义 161
8.2.2 指针变量的引用 161
8.2.3 指针变量的使用 162
8.3 指针与数组 165
8.3.1 通过指针访问一维数组 165
8.3.2 通过指针访问二维数组 167
8.3.3 指针的基本运算 170
8.4 指针与字符串 172
8.4.1 字符数组与字符指针 172
8.4.2 字符指针举例 173
8.5 指针与函数 175
8.5.1 指针作函数的参数 175
8.5.2 数组名作函数的参数 178
8.5.3 函数返回值是指针 183
8.5.4 指向函数的指针 184
8.6 指针数组 185
8.6.1 指针数组 185
8.6.2 main()函数的参数 186
8.7 多级指针 187
本章小结 189
习题8 189
第9章 结构体与其他数据类型 192
9.1 结构体类型 192
9.1.1 声明结构体类型 193
9.1.2 结构体变量的定义 194
9.1.3 结构体变量的引用 196
9.1.4 结构体变量的初始化 198
9.2 结构体数组 199
9.3 指向结构体类型数据的指针 200
9.4 链表 202
9.4.1 链表概述 203
9.4.2 链表的基本操作 205
9.4.3 链表操作应用 210
9.5 共用体 214
9.5.1 共用体概念 214
9.5.2 共用体类型的应用 216
9.6 枚举类型 217
9.7 用typedef定义类型 220
本章小结 221
习题9 222
第10章 文件 223
10.1 文件概述 223
10.2 文件指针 224
10.3 文件的打开与关闭 224
10.3.1 文件的打开 224
10.3.2 文件的关闭 226
10.4 文件的读写 226
10.4.1 fputc()函数和fgetc()函数 226
10.4.2 fputs()函数和fgets()函数 228
10.4.3 fprintf()函数和fscanf()函数 229
10.4.4 fread()函数和fwrite()函数 230
10.5 文件的定位 231
本章小结 233
习题10 234
第11章 预处理命令 235
11.1 宏定义 235
11.1.1 无参数的宏定义 235
11.1.2 带参数的宏定义 237
11.2 文件包含 238
11.3 条件编译 240
本章小结 242
习题11 243
第12章 位运算 244
12.1 位运算符和位运算 244
12.1.1 按位与运算符 244
12.1.2 按位或运算符 246
12.1.3 异或运算符 247
12.1.4 取反运算符 248
12.1.5 左移运算符 248
12.1.6 右移运算符 249
12.1.7 位运算赋值运算符 250
12.1.8 不同长度的数据进行位运算 250
12.2 位运算举例 250
12.3 位段 252
本章小结 253
习题12 253
附录A ASCⅡ代码与字符对照表 254
附录B 运算符的优先级和结合性 255
附录C C语言库函数 256
附录D C语言中的关键字 261
附录E 学生成绩管理系统参考程序 262
参考文献 270