目录
第1章C语言基础1
1.1计算机语言概述1
1.1.1机器语言1
1.1.2汇编语言1
1.1.3高级语言2
1.2C语言概述2
1.2.1C语言的起源与发展2
1.2.2C语言的标准2
1.2.3C语言的优点3
1.2.4C语言程序设计过程4
1.3C语言程序开发5
1.3.1主流开发环境5
1.3.2编译机制5
1.3.3编写C语言程序6
1.4本章小结7
1.5习题8
第2章数据类型9
2.1关键字与标识符9
2.1.1关键字9
2.1.2标识符的使用9
2.2数据类型概述10
2.2.1数据类型的由来10
2.2.2数据类型简介10
2.3常量11
2.3.1整型常量12
2.3.2实型常量13
2.3.3字符型常量13
2.3.4转义字符15
2.3.5枚举型常量15
2.4变量的通用原则16
2.4.1变量的声明16
2.4.2变量的命名16
2.4.3变量的定义17
2.4.4变量的赋值与初始化17
2.4.5变量在内存中的排列17
2.5变量18
2.5.1整型变量18
2.5.2实型变量19
2.5.3字符型变量21
2.6类型转换21
2.7本章小结22
2.8习题22
第3章运算符与表达式24
3.1表达式24
3.2表达式语句25
3.3运算符26
3.4赋值运算符26
3.5算术运算符与表达式27
3.5.1算术运算符27
3.5.2算术表达式28
3.5.3算术运算符的优先级与结合性29
3.6自增、自减运算符29
3.7关系运算符与表达式31
3.7.1关系运算符31
3.7.2关系表达式32
3.7.3关系运算符的优先级与结合性32
3.8复合赋值运算符与表达式32
3.8.1复合赋值运算符32
3.8.2复合赋值表达式33
3.9逻辑运算符与表达式35
3.9.1逻辑运算符35
3.9.2逻辑表达式35
3.9.3逻辑运算符的优先级与结合性35
3.10位逻辑运算符与表达式36
3.10.1位逻辑运算符36
3.10.2位逻辑表达式37
3.11运算符的优先级37
3.12本章小结39
3.13习题39
第4章选择条件语句41
4.1if语句41
4.1.1if语句的基本形式41
4.1.2else关键字43
4.1.3多重选择else if语句45
4.1.4级联式if语句46
4.1.5if与else的配对48
4.1.6布尔值49
4.2switch语句50
4.2.1switch语句的基本形式50
4.2.2break语句的作用52
4.2.3default子句53
4.3本章小结54
4.4习题54
第5章循环控制语句55
5.1while循环语句55
5.1.1while循环的基本形式55
5.1.2do…while语句56
5.2for循环语句58
5.2.1for循环的基本形式58
5.2.2多循环变量的for循环59
5.2.3for循环的变体60
5.2.4for循环的嵌套62
5.3转移语句63
5.3.1break语句63
5.3.2continue语句64
5.3.3goto语句65
5.4三种循环的对比66
5.5本章小结66
5.6习题67
第6章函数68
6.1函数的定义68
6.1.1函数定义的形式68
6.1.2函数的声明与定义70
6.1.3函数的返回71
6.1.4函数参数72
6.2函数的调用73
6.2.1函数调用的方式73
6.2.2函数嵌套75
6.2.3递归调用76
6.2.4内联函数77
6.3局部变量与全局变量78
6.3.1局部变量78
6.3.2全局变量79
6.3.3作用域80
6.4内外部函数81
6.4.1内部函数81
6.4.2外部函数82
6.5格式输入输出函数82
6.5.1格式输出函数82
6.5.2格式输入函数83
6.6字符输入输出函数85
6.6.1字符输出函数85
6.6.2字符输入函数85
6.7字符串输入输出函数86
6.7.1字符串输出函数86
6.7.2字符串输入函数87
6.8本章小结88
6.9习题88
第7章数组90
7.1一维数组90
7.1.1一维数组的定义90
7.1.2数组元素91
7.1.3一维数组的初始化92
7.1.4数组的存储方式94
7.1.5数组的应用95
7.2二维数组96
7.2.1二维数组的定义96
7.2.2数组元素97
7.2.3二维数组的初始化98
7.2.4数组的应用100
7.3数组的排序算法102
7.3.1冒泡排序102
7.3.2快速排序105
7.3.3直接插入排序108
7.3.4直接选择排序112
7.4字符数组115
7.4.1字符数组的定义115
7.4.2数组元素115
7.4.3字符数组的初始化116
7.4.4数组的应用118
7.5字符串处理119
7.5.1字符串的长度119
7.5.2字符串复制120
7.5.3字符串连接122
7.5.4字符串比较123
7.5.5字符串大小写转换124
7.5.6字符查找125
7.6多维数组125
7.7本章小结127
7.8习题127
第8章指针129
8.1指针概述129
8.1.1内存地址与指针129
8.1.2指针变量的赋值130
8.1.3指针变量的引用131
8.1.4空指针132
8.1.5指针读写133
8.1.6指针自身的地址135
8.2指针运算135
8.2.1指针的加减运算136
8.2.2指针的相减运算137
8.2.3指针的比较运算138
8.3指针与数组139
8.3.1一维数组与指针139
8.3.2二维数组与指针143
8.4指针与字符串149
8.4.1字符指针149
8.4.2字符指针的应用150
8.4.3指针数组151
8.5多级指针152
8.6指针与函数153
8.6.1指针函数153
8.6.2函数指针154
8.6.3函数指针数组155
8.6.4指针变量作函数参数156
8.7const指针159
8.7.1常量化指针变量159
8.7.2常量化指针目标表达式159
8.7.3常量化指针变量及其目标表达式160
8.8void指针161
8.9本章小结162
8.10习题163
第9章高级数据结构165
9.1结构体165
9.1.1定义结构体类型165
9.1.2定义结构体变量166
9.1.3结构体的初始化167
9.1.4结构体变量的引用168
9.2结构体数组169
9.2.1定义结构体数组169
9.2.2初始化结构体数组170
9.3结构体指针171
9.4结构体嵌套173
9.5线性表175
9.5.1线性表概述175
9.5.2顺序表175
9.5.3链表181
9.6共用体189
9.7本章小结191
9.8习题192
第10章位运算194
10.1位运算符194
10.2按位与运算符194
10.2.1运算符的使用194
10.2.2补码表示负数195
10.2.3按位与运算符的应用196
10.3按位或运算196
10.3.1运算符的使用196
10.3.2按位或运算符的应用197
10.4按位异或运算198
10.4.1运算符的使用198
10.4.2按位异或运算符的应用198
10.5取反运算199
10.6左移运算200
10.7右移运算201
10.8位字段201
10.9本章小结203
10.10习题203
第11章C语言内存管理205
11.1内存组织方式205
11.1.1程序在内存中的数据205
11.1.2动态管理206
11.2存储模型210
11.2.1auto存储类210
11.2.2register存储类210
11.2.3static存储类211
11.2.4extern存储类212
11.3其他存储类关键字213
11.3.1restrict关键字213
11.3.2volatile关键字213
11.4本章小结214
11.5习题214
第12章预处理216
12.1宏定义216
12.1.1define与undef216
12.1.2不带参数的宏定义217
12.1.3带参数的宏定义218
12.2文件包含220
12.2.1源文件与头文件220
12.2.2引入头文件220
12.3条件编译221
12.3.1#if#else#endif221
12.3.2#elif222
12.3.3#ifdef223
12.3.4#ifndef224
12.4其他指令226
12.4.1#undef指令226
12.4.2#line指令226
12.4.3#error指令227
12.4.4#pragma指令228
12.4.5预定义宏228
12.5本章小结228
12.6习题228
第13章文件操作230
13.1文件概述230
13.1.1文件230
13.1.2文本文件与二进制文件230
13.1.3流231
13.2文件操作概述233
13.2.1文件指针233
13.2.2文件操作简介234
13.2.3打开文件234
13.2.4关闭文件235
13.2.5读写文件235
13.3文件的高级操作242
13.3.1读写位置偏移242
13.3.2读写位置定位243
13.4本章小结244
13.5习题244
第14章综合案例246
14.1超市管理系统246
14.1.1需求分析246
14.1.2数据结构设计246
14.1.3系统功能模块247
14.2代码实现247
14.2.1登录界面与主界面247
14.2.2录入商品信息248
14.2.3商品信息查询251
14.2.4商品信息列表253
14.2.5删除商品信息254
14.2.6修改商品信息257
14.2.7商品信息排序258
14.2.8主函数261
14.3系统运行展示268
14.4本章小结270
14.5习题271