第一章C语言基础 1
1.1计算机组成 1
1.2数据表示和数制 4
1.2.1数据表示 4
1.2.2数制 5
1.2.3数制之间的转换 6
1.2.4数的补码表示 8
1.2.5字符编码 9
1.3算法 10
1.4编程语言和编译 13
1.4.1什么是程序 13
1.4.2什么是编程 13
1.4.3编程语言的分类 15
1.5 C语言的发展简史与优点 18
1.6 C语言的定义 20
1.7 C语言的使用 20
1.8 C程序举例 25
1.8.1举例1:Hello World 25
1.8.2举例2:两个数相加 27
习题 29
第二章C语言的基本数据类型及运算 31
2.1标识符与关键字 31
2.1.1标识符 31
2.1.2关键字 31
2.2数据类型 32
2.2.1基本数据类型 32
2.2.2构造数据类型 34
2.2.3指针类型 34
2.3常量 34
2.3.1数值常量 34
2.3.2字符常量 36
2.3.3字符串常量 36
2.4变量 37
2.4.1变量的定义 37
2.4.2 C语言中各种类型的变量 38
2.4.3变量的初始化 40
2.5运算符 40
2.5.1算术运算符和赋值运算符 41
2.5.2关系运算符和逻辑运算符 42
2.5.3位运算符 44
2.5.4条件运算符和逗号运算符 46
2.5.5其它运算符 47
2.5.6运算符的优先级和结合方向 47
2.6表达式 49
2.6.1 C语言的各种表达式 49
2.6.2表达式中的类型转换 50
2.6.3空格和圆括号 52
2.7数据类型、运算符与表达式举例 52
习题 54
第三章C程序设计初步 56
3.1结构化程序设计思想 56
3.1.1程序的质量标准 56
3.1.2结构化程序设计方法 56
3.1.3结构化程序的标准 57
3.1.4三种基本模块 57
3.2 C语句概述 59
3.3赋值语句 60
3.4数据输出 61
3.4.1 putchar()函数(单个字符输出函数) 61
3.4.2 printf()函数(格式化输出函数) 61
3.4.3 puts()函数(字符串输出函数) 64
3.5数据输入 65
3.5.1 getche()函数与getchar()和getch()函数 65
3.5.2 scanf()函数(格式输入函数) 66
3.5.3 gets()函数(字符串输入函数) 68
3.6程序设计举例 69
习题 71
第四章 分支结构的C程序设计 72
4.1分支结构中的表达式 72
4.1.1 C语言中的逻辑值 72
4.1.2关系表达式 72
4.1.3逻辑表达式 73
4.1.4其它形式的表达式 74
4.2 if语句 74
4.2.1 if语句的简单形式 74
4.2.2 if~else结构 75
4.2.3 else if结构 79
4.3 switch语句 81
4.4程序设计举例 84
习题 87
第五章 循环结构的C程序设计 89
5.1 while循环语句 89
5.2 do-while循环语句 92
5.3 for循环语句 94
5.4循环的嵌套 96
5.5 break语句和continue语句 97
5.5.1 break语句 97
5.5.2 continue语句 99
5.6 goto语句和标号 99
5.7程序设计举例 100
习题 106
第六章 数组 108
6.1数组的概念 108
6.2一维数组 109
6.2.1一维数组的定义和引用 109
6.2.2一维数组的初始化 111
6.3二维数组 112
6.3.1二维数组的定义和引用 112
6.3.2二维数组的初始化 113
6.4字符数组与字符串 114
6.4.1字符数组的定义和初始化 115
6.4.2字符串 115
6.4.3字符数组的输入和输出 116
6.4.4常用字符串处理函数 117
6.5程序设计举例 119
习题 125
第七章 函数及变量存储类型 127
7.1函数基础与C程序结构 127
7.1.1 C程序的结构化设计思想 127
7.1.2函数概述 128
7.2函数的定义和声明 130
7.2.1函数的定义 130
7.2.2函数的声明(函数原型) 133
7.3函数的调用 134
7.3.1函数调用的方式和条件 134
7.3.2形参与实参的数值传递 135
7.3.3函数的返回值 136
7.4函数的嵌套与递归 138
7.4.1函数的嵌套调用 138
7.4.2函数的递归及条件 139
7.5变量的存储类别 140
7.5.1变量的作用域和生存期 140
7.5.2动态存储和静态存储 142
7.5.3局部变量 142
7.5.4局部静态变量的使用 143
7.5.5全局变量 145
7.5.6寄存器变量 146
7.6编译预处理 147
7.6.1宏定义 147
7.6.2文件包含处理 149
7.6.3条件编译 151
7.7程序设计举例 152
习题 155
第八章 指针 157
8.1指针的概念与定义 157
8.1.1指针的概念 157
8.1.2指针的定义及使用 159
8.2指针作函数参数 163
8.3指针与数组 168
8.3.1指向一维数组的指针 168
8.3.2数组作函数参数 169
8.3.3指针和字符串 171
8.3.4指向多维数组的指针 173
8.3.5指针数组 178
8.4指针与函数 180
8.4.1指向函数的指针 180
8.4.2返回指针的函数 181
8.5复杂指针 182
8.5.1指向指针的指针 182
8.5.2命令行参数 184
8.5.3复杂指针的理解 186
8.6程序设计举例 187
习题 192
第九章 结构体和共用体 194
9.1结构体 194
9.1.1结构体类型 194
9.1.2结构体类型的定义 194
9.1.3结构体型变量的定义 195
9.1.4结构体型变量及其成员的引用 197
9.1.5结构体型变量的初始化 198
9.1.6应用举例 199
9.2嵌套结构 200
9.3结构体型数组 202
9.3.1结构体型数组的定义 203
9.3.2结构体型数组的初始化 203
9.4结构体型指针 204
9.4.1指向结构体型变量的指针 204
9.4.2指向结构体型数组的指针 206
9.5结构体与函数 208
9.5.1结构体作为函数参数 208
9.5.2结构体作为函数的返回值 211
9.6内存的动态分配 212
9.6.1动态分配内存的意义 212
9.6.2开辟和释放内存区的函数 212
9.6.3链表概述 214
9.6.4建立链表 215
9.6.5链表的其它操作 221
9.7共用体(联合) 223
9.7.1共用体类型 223
9.7.2共用体型变量的引用方式 223
9.7.3共用体型变量的特点 224
9.7.4应用举例 224
9.8位段 225
9.9类型定义 226
9.9.1类型定义的形式 227
9.9.2类型定义的使用 227
9.9.3关于类型定义的几点说明 228
9.10程序设计举例 229
习题 231
第十章 文件 233
10.1文件概述 233
10.1.1文件的概念 233
10.1.2数据流 234
10.1.3 C的文件系统及其与流的关系 235
10.1.4文件指针 236
10.2文件的打开与关闭 237
10.2.1文件的打开(fopen()函数) 237
10.2.2文件的关闭(fclose()函数) 239
10.3文件的读/写 239
10.3.1 fputc()函数和fgetc()函数 239
10.3.2 fgets()函数和fputs()函数 241
10.3.3 fprintf()函数和fscanf()函数 241
10.3.4 fread ()函数和fwrite()函数 242
10.4文件的定位 244
10.4.1 rewind()函数 244
10.4.2 fseek()函数 245
10.4.3 ftell()函数 246
10.5程序设计举例 246
习题 249
附录一ASCII码表 250
附录二ANSI C常用库函数表 251
附录三C语言各种数据类型所占字节数与取值范围 257
附录四新的C语言标准——C99简介 258
参考文献 259