第1章 初识C语言 1
1.1 C语言概述 1
1.1.1 计算机语言 1
1.1.2 什么是C语言 2
1.1.3 为什么要学习C语言 3
1.2 开发环境搭建 3
1.2.1 主流开发工具介绍 3
1.2.2 Visual Studio安装 4
1.2.3 Visual Studio主界面 8
1.3 编写HelloWorld程序 9
1.4 注释 14
1.5 本章小结 15
1.6 习题 15
第2章 数据类型与运算符 17
2.1 进制 17
2.1.1 什么是二进制 17
2.1.2 八进制与十六进制 18
2.1.3 进制转换 19
2.1.4 ASCII码表 21
2.2 关键字和标识符 23
2.2.1 关键字 23
2.2.2 标识符 23
2.3 常量与变量 24
2.3.1 常量 24
2.3.2 变量 24
2.3.3 变量的数据类型 25
2.3.4 类型转换 31
2.4 运算符 33
2.4.1 运算符与表达式 33
2.4.2 算术运算符 33
2.4.3 赋值运算符 35
2.4.4 比较运算符 36
2.4.5 逻辑运算符 36
2.4.6 位运算符 37
2.4.7 sizeof运算符 39
2.4.8 运算符的优先级 40
2.5 本章小结 41
2.6 习题 41
第3章 流程控制 43
3.1 程序的运行流程图 43
3.2 顺序结构语句 44
3.3 选择结构语句 45
3.3.1 if条件语句 45
3.3.2 switch条件语句 51
3.4 循环结构语句 54
3.4.1 while循环语句 54
3.4.2 do-while循环语句 55
3.4.3 for循环语句 56
3.4.4 循环嵌套 57
3.4.5 跳转语句(break、goto、continue) 59
3.5 本章小结 61
3.6 习题 61
第4章 函数 64
4.1 初识函数 64
4.1.1 函数的定义 64
4.1.2 函数的返回值 67
4.1.3 printf()函数和scanf()函数 68
4.2 函数调用 71
4.2.1 函数的调用方式 71
4.2.2 嵌套调用 71
4.2.3 递归调用 73
4.3 外部函数与内部函数 74
4.3.1 外部函数 74
4.3.2 内部函数 76
4.4 局部变量与全局变量 77
4.4.1 局部变量 77
4.4.2 全局变量 78
4.4.3 变量的作用域 79
4.5 本章小结 80
4.6 习题 80
第5章 数组 82
5.1 什么是数组 82
5.2 一维数组 83
5.2.1 一维数组的定义与初始化 83
5.2.2 一维数组的引用 83
5.2.3 一维数组的常见操作 84
5.3 二维数组 88
5.3.1 二维数组的定义与初始化 88
5.3.2 二维数组的引用 89
5.3.3 二维数组的应用 90
5.4 多维数组 92
5.5 本章小结 93
5.6 习题 93
第6章 指针 95
6.1 指针的概念 95
6.2 指针运算 96
6.2.1 取址运算符 96
6.2.2 取值运算符 97
6.2.3 指针的常用运算 98
6.3 指向变量的指针 100
6.3.1 指针变量的使用 100
6.3.2 指针变量作为函数参数 101
6.4 指向数组的指针 102
6.4.1 指向一维数组元素的指针 102
6.4.2 指向二维数组元素的指针 104
6.5 指向函数的指针 106
6.5.1 定义一个指向函数的指针 106
6.5.2 使用函数指针作为函数参数 107
6.6 指针数组和二级指针 108
6.6.1 指针数组的概念 108
6.6.2 指针数组作为main()函数的形参 109
6.6.3 二级指针 110
6.7 指针与const限定符 112
6.8 本章小结 113
6.9 习题 113
第7章 字符串 115
7.1 字符串和字符数组 115
7.1.1 字符数组 115
7.1.2 字符串 116
7.1.3 字符串与指针 119
7.2 字符串的输入输出 120
7.2.1 gets()函数 121
7.2.2 puts()函数 121
7.3 操作字符串函数 122
7.3.1 字符串比较 122
7.3.2 字符串查找 124
7.3.3 字符串连接 127
7.3.4 字符串复制 129
7.3.5 数字与字符串的转换 130
7.4 本章小结 132
7.5 习题 132
第8章 预处理 134
8.1 宏定义 134
8.1.1 不带参数的宏定义 134
8.1.2 带参数的宏定义 136
8.2 文件包含 138
8.2.1 文件包含命令的形式 138
8.2.2 文件包含的实例 138
8.3 条件编译 140
8.3.1 #if/#else/#endif指令 140
8.3.2 #ifdef指令 141
8.3.3 #ifndef指令 142
8.4 本章小结 145
8.5 习题 145
第9章 结构体和共用体 148
9.1 结构体类型和结构体变量 148
9.1.1 结构体类型定义 148
9.1.2 结构体变量的定义 149
9.1.3 结构体变量的初始化 151
9.1.4 结构体变量的引用 151
9.2 结构体数组 152
9.2.1 结构体数组的定义 152
9.2.2 结构体数组的初始化 153
9.2.3 结构体数组的引用 154
9.3 结构体指针变量 155
9.3.1 结构体指针变量 155
9.3.2 结构体数组指针 156
9.4 结构体类型数据在函数间的传递 157
9.4.1 结构体变量作为函数参数 157
9.4.2 结构体数组作为函数参数 158
9.4.3 结构体指针作为函数参数 159
9.5 union共用体 159
9.5.1 共用体类型的定义 160
9.5.2 共用体变量的定义 160
9.5.3 共用体变量的引用和初始化 161
9.6 本章小结 162
9.7 习题 163
第10章 基本数据结构 165
10.1 链表 165
10.1.1 什么是链表 165
10.1.2 定义与初始化链表 166
10.1.3 链表的常用操作 167
10.1.4 综合案例 170
10.2 栈 174
10.2.1 什么是栈 175
10.2.2 定义与初始化栈 175
10.2.3 栈的常用操作 176
10.2.4 综合案例 178
10.3 队列 181
10.3.1 什么是队列 181
10.3.2 定义与初始化队列 182
10.3.3 队列的常见操作 183
10.3.4 综合案例 184
10.4 本章小结 187
10.5 习题 187
第11章 文件操作 189
11.1 文件概述 189
11.1.1 文件 189
11.1.2 文件指针 190
11.1.3 文件位置指针 191
11.1.4 流 191
11.2 文件的打开与关闭 192
11.3 文件的读写 194
11.3.1 单字符读写文件 194
11.3.2 单行读写文件 198
11.3.3 二进制读写文件 199
11.4 文件的随机读写 201
11.4.1 文件位置指针的定位 201
11.4.2 对文件进行随机读写 203
11.5 本章小结 204
11.6 习题 204
第12章 综合项目——学生成绩管理系统 206
12.1 项目分析 206
12.1.1 需求分析 206
12.1.2 效果展示 208
12.1.3 数据设计 211
12.2 项目实现 212
12.2.1 创建项目 212
12.2.2 预处理实现 212
12.2.3 功能函数实现 213
12.2.4 主函数实现 219
12.3 程序调试 220
12.3.1 设置断点 220
12.3.2 单步调试 221
12.3.3 观察变量 222
12.3.4 条件断点 224
12.3.5 项目调试 225
12.4 本章小结 227