第1章 C语言概述 1
1.1 C语言产生的背景 1
1.2 C语言的特点 2
1.3 C语言的程序结构 3
1.3.1 C程序的基本结构 3
1.3.2 C函数的格式 3
1.3.3 关键字 5
1.3.4 小结 5
1.4 C程序上机步骤 6
1.4.1 运行一个C语言程序的一般过程 6
1.4.2 常用的操作命令 7
实训1 认识C语言程序 13
习题1 14
第2章 数据类型、运算符与表达式 16
2.1 C语言的数据类型 16
2.2 常量与变量 17
2.2.1 直接常量和符号常量 17
2.2.2 变量 19
2.3 整型数据 20
2.3.1 整型常量 20
2.3.2 整型变量 20
实训2 使用整型数据 23
2.4 实型数据 25
2.4.1 实型常量的表示方法 25
2.4.2 实型变量 25
实训3 使用实型数据 27
2.5 字符型数据 27
2.5.1 字符常量 27
2.5.2 字符变量 29
2.5.3 字符串常量 31
实训4 使用字符型数据 31
2.6 算术运算符和算术表达式 32
2.7 赋值运算符和赋值表达式 35
2.8 逗号运算符和逗号表达式 39
2.9 位运算 40
2.9.1 位逻辑运算符 41
2.9.2 移位运算符 43
2.9.3 位赋值运算符 44
2.9.4 不同长度的数据进行位运算 45
实训5 使用运算符和表达式 45
2.10 变量的地址和指向变量的指针 47
2.10.1 变量的地址 47
2.10.2 变量的指针和指向变量的指针变量 48
2.10.3 指针运算符和取地址运算符 48
实训6 指针的初步应用 49
本章小结 50
习题2 51
第3章 基本程序结构 54
3.1 程序的3种基本结构 54
3.1.1 结构化程序设计 54
3.1.2 C语言的语句 56
3.2 赋值语句 57
3.3 数据的输入和输出 57
3.3.1 字符数据的输入/输出函数——putchar()函数和getchar()函数 58
3.3.2 格式输入/输出函数:printf函数和scanf函数 59
实训7 使用输入/输出函数 66
3.4 顺序结构程序设计 69
3.5 选择结构程序设计 70
3.5.1 关系运算符和关系表达式 70
3.5.2 逻辑运算符与逻辑表达式 71
3.5.3 if语句和switch语句 73
实训8 if语句和switch语句的使用 80
3.6 循环结构程序设计 85
3.6.1 goto语句及goto语句构成的循环 85
3.6.2 while语句/do-while语句/for语句 86
实训9 while语句、do-while语句和for语句的使用 93
课程设计1 猜数字游戏 101
本章小结 104
习题3 104
第4章 数组 110
4.1 一维数组 110
4.1.1 一维数组的定义、引用和初始化 111
4.1.2 数组与指针 114
实训10 一维数组的应用 117
4.2 二维数组 120
4.2.1 二维数组的定义 121
4.2.2 二维数组元素的引用 121
4.2.3 二维数组的初始化 123
4.2.4 二维数组与指针 123
实训11 二维数组的应用 125
4.3 字符数组 127
4.3.1 字符数组的定义、引用和初始化 128
4.3.2 字符串的使用 129
4.3.3 字符串处理函数 130
实训12英文打字练习程序 133
4.4 指针数组和指向指针的指针 136
4.4.1 指针数组的概念 137
4.4.2 指向指针的指针 138
4.4.3 指针数组作为main函数的形参 139
实训13 指针的应用 140
课程设计2 用高斯消去法解线性方程组 141
本章小结 144
习题4 144
第5章 函数 146
5.1 函数定义 146
实训14 建立和使用函数 149
5.2 函数参数与返回值 150
5.2.1 形式参数与实际参数 150
5.2.2 参数的值传递方式和指针(地址)传递方式 151
实训15 参数的值传递方式和地址传递方式 153
5.2.3 参数类型 155
实训16 函数参数传递的形式 157
5.2.4 函数的返回值 158
实训17 函数的返回值 159
5.3 函数调用 160
5.3.1 函数调用的基本问题 160
5.3.2 函数嵌套调用 163
5.3.3 函数递归调用 164
实训18 嵌套与递归调用的实现 166
5.4 函数与指针 168
5.4.1 返回指针值的函数 168
5.4.2 指向函数的指针 169
5.5 变量作用域和存储类别 171
5.5.1 局部变量 172
5.5.2 全局变量 173
5.5.3 变量存储类别 174
实训19 局部变量和全局变量的使用 177
5.6 外部函数和内部函数 179
本章小结 180
习题5 181
第6章 编译预处理 184
6.1 预处理命令概述 184
6.2 宏定义 185
6.2.1 不带参数的宏定义 185
6.2.2 带参数的宏定义 187
6.3 文件包含处理 190
6.4 条件编译 192
实训20 定义宏和使用宏 194
本章小结 196
习题6 196
第7章 结构体和链表 200
7.1 结构体 200
7.1.1 结构体定义、引用和初始化 201
7.1.2 结构体数组和结构体指针 206
7.1.3 结构体与函数 209
实训21 结构体的应用 212
7.2 链表 213
7.2.1 链表的概念 213
7.2.2 链表的实现 214
7.2.3 链表的操作 218
7.3 共用体和枚举类型 221
7.3.1 共用体定义、使用和初始化 221
7.3.2 枚举类型定义、使用和初始化 223
7.4 类型定义 225
课程设计3 简单学生管理程序 226
本章小结 226
习题7 231
第8章 文件 234
8.1 文件类型指针 236
8.2 文件的打开与关闭 237
8.3 文件的读/写操作 239
实训22 文件加密程序的实现及文件的读/写操作 242
8.4 文件定位与出错检测 247
8.4.1 文件定位函数——fseek()函数 247
8.4.2 出错检测函数——ferror()函数 247
实训23 加/解密数据库程序及文件定位操作 248
8.5 其他文件函数 251
课程设计4 给程序加上行号 252
本章小结 254
习题8 255
第9章 C++概述 256
9.1 C++的特点及输入/输出 256
9.1.1 C++的特点 256
9.1.2 C++的输入/输出 258
实训24 熟练使用cin和cout 262
9.2 面向对象概述 266
9.2.1 面向对象的基本概念 266
9.2.2 面向对象的三大特征 267
9.3 类和对象的定义及使用 268
9.3.1 类的定义 268
9.3.2 对象的创建及使用 270
9.3.3 构造函数与析构函数 271
实训25 类和对象的使用 273
本章小结 274
习题9 275
第10章 项目实践——学生信息管理系统 277
10.1 系统基本需求 277
10.2 结构设计 280
10.3 功能函数的实现 282
10.4 项目总结 286
附录A 常用字符与标准ASCII码对照表 288
附录B 运算符和结合性 290