第1章 Linux下C语言编程简介 1
1.1 Linux的发展和特点 1
1.2 Linux下C语言简介 5
1.3 C语言简介及其特点 5
1.4 Linux程序设计基础知识 6
头文件 6
函数库 7
系统调用 9
帮助文档 9
1.5 Linux下C语言编程环境 11
vi编辑器的使用 11
GCC编译器简介 18
GNU make简介 19
GDB调试工具简介 19
1.6 Linux程序设计的特点 19
1.7 Linux下C语言编程风格 20
基于GNU的编程风格 21
Linux内核编程风格 21
小结 22
习题一 22
一、选择题 22
二、填空题 24
三、思考题 24
第2章 Linux程序设计C语言基础知识 25
2.1 C语言概述 25
C语言的风格特点 26
C程序的基本结构 26
C程序的符号系统 29
2.2基本数据类型及变量 30
整型数据 31
实型数据 32
字符型数据 33
常量与变量 35
数据类型之间的转换与运算 38
2.3运算符与表达式 39
算术运算符与算术表达式 39
赋值运算符与赋值表达式 42
关系运算符与关系表达式 43
逻辑运算符与逻辑表达式 44
其他运算符 45
运算符、运算优先级和结合性 46
2.4 C语言的语句类型 47
表达式语句 47
函数调用语句 47
控制语句 47
复合语句 48
空语句 48
2.5数据的输入输出设计 49
数据输入输出的概念及在C语言中的实现 49
数据输出 49
数据输入 53
小结 56
习题二 57
一、选择题 57
二、填空题 59
三、思考题 59
四、编程题 60
第3章 Linux环境下程序调试基础 61
3.1 GCC编译器 61
如何使用GCC 62
GCC警告提示功能 64
库依赖 65
GCC代码优化 66
加速 67
GCC常用选项 68
GCC的错误类型及对策 70
3.2 GDB调试器 71
GDB概述 71
使用GDB 72
GDB常用命令 75
3.3使用Make 77
Makefile文件概述 77
Makefile实例文件分析 78
Makefile文件的书写规则 80
make命令的使用 86
小结 86
习题三 87
一、选择题 87
二、填空题 88
三、思考题 88
四、编程题 88
第4章 选择结构程序设计 90
4.1 if语句 90
用if语句实现选择结构 90
用if…else语句实现选择结构 91
用if…else if…else语句实现选择结构 92
4.2选择结构的嵌套 94
4.3 switch语句 96
switch语句的一般形式 96
用switch语句实现多分支选择结构 97
小结 99
习题四 99
一、选择题 99
二、填空题 102
三、思考题 102
四、编程题 103
第5章 循环结构程序设计 104
5.1 while循环结构while语句 104
5.2 do-while循环结构do-while语句 106
5.3 for循环结构 108
5.4 continue和break语句 112
continue语句 112
break语句 113
5.5循环的嵌套 115
小结 116
习题五 117
一、选择题 117
二、填空题 119
三、思考题 119
四、编程题 120
第6章 数组初步 122
6.1一维数组 122
一维数组的定义 123
一维数组的引用 124
一维数组的初始化 124
6.2多维数组 127
多维数组的定义 127
二维数组的引用 130
二维数组的初始化 131
6.3字符数组与字符串 132
基本概念 132
字符数组初始化 132
字符数组的引用 133
字符串处理函数 137
小结 139
习题六 140
一、选择题 140
二、填空题 141
三、思考题 142
四、编程题 143
第7章 函数的应用 144
7.1函数概述 144
7.2函数的定义与调用 146
函数的定义 146
函数的调用 148
7.3函数间的信息传递 149
实参-形参之间的信息传递 149
函数调用结果的返回 152
7.4函数的嵌套调用和递归调用 153
函数的嵌套调用 153
函数的递归调用 154
7.5局部和全局变量及其作用域 156
变量的作用域 156
局部变量及其作用域 156
全局变量及其作用域 158
7.6变量的存储类别及变量的生存期 159
变量的生存期与存储分类 159
变量的存储类别 160
7.7函数的存储分类 163
外部函数 163
内部函数 164
小结 164
习题七 165
一、选择题 165
二、填空题 167
三、思考题 167
四、编程题 168
第8章 库文件包含及多文件系统的编译 170
8.1宏定义的概念 170
8.2带参数的宏定义 171
带参宏定义的一般格式 171
带参宏的宏展开和调用 171
带参宏定义说明 172
8.3不带参数的宏定义 173
无参宏定义的一般格式 173
符号常量 174
无参宏定义的说明 174
8.4函数库的链接 175
8.5库文件包含 175
文件包含的概念 175
文件包含处理命令的格式 175
库文件包含的作用 176
库文件包含的几点说明 177
8.6头文件和系统帮助 177
条件编译 177
条件编译的形式 177
小结 179
习题八 180
一、选择题 180
二、填空题 181
三、思考题 182
四、编程题 183
第9章 指针初步 184
9.1指针与指针变量 184
指针与指针变量的概念 184
指针变量的定义 185
指针变量的运算 186
指针变量的应用 186
9.2数组的指针表示 188
数组中地址的概念 188
一维数组的指针表示 188
二维数组的指针表示 191
9.3指针与函数 194
指向函数的指针变量 194
指向函数的指针作函数参数 195
9.4返回指针值的函数 196
9.5指向字符串的指针 198
9.6指针数组与指向指针的指针 200
指针数组 200
指向指针的指针 201
9.7主函数main()的形参 202
小结 203
习题九 204
一、选择题 204
二、填空题 205
三、思考题 205
四、编程题 206
第10章 结构体与共用体 207
10.1结构体的基本概念 207
结构体类型及变量的定义 207
结构体变量初始化及引用 210
10.2结构体数组 212
结构体数组定义 212
结构体数组的初始化 212
结构体数组的应用 213
10.3结构体指针 214
指向结构体变量的指针 214
指向结构体数组的指针 215
用结构体变量作为函数参数 216
10.4利用结构体和指针处理动态链表 218
链表的概念 218
用于动态分配的函数 219
链表的创建 219
链表的插入 220
链表的删除 222
10.5共用体 223
共用体的定义 223
共用体的引用 224
共用体类型的特点 224
10.6枚举类型 226
枚举类型变量的定义 226
枚举类型变量的说明 226
10.7 typedef类型定义 227
小结 228
习题十 229
一、选择题 229
二、填空题 231
三、思考题 231
四、编程题 233
第11章 位运算 234
11.1位运算符及位运算 234
按位与运算符& 234
按位或运算符| 236
按位异或运算符∧ 236
按位取反运算符~ 237
按位左移运算符<< 238
按位右移运算符>> 238
复合位赋值运算符 240
11.2位段 240
位段的定义与引用 240
位段的应用 242
小结 242
习题十一 243
一、选择题 243
二、填空题 244
三、思考题 244
四、编程题 245
第12章 文件 246
12.1文件概述 246
文件的分类 246
流式文件 247
文件缓冲区 247
12.2文件类型指针 248
12.3文件的打开与关闭 248
文件的打开 249
文件的关闭 250
12.4文件读/写函数 250
字符读/写函数fgetc和fputc 250
字符串读/写函数fgets和fputs 252
数据块读/写函数fread和fwrite 253
格式化读/写函数fscanf和fprintf 255
12.5文件的定位与出错检测 256
文件的定位 256
文件的检测 257
小结 258
习题十二 258
一、选择题 258
二、填空题 260
三、思考题 260
四、编程题 261
第13章 模拟试题 263
模拟试题一 263
一、填空题 263
二、选择题 263
三、程序题 265
四、思考题 266
五、编程题 267
模拟试题二 267
一、填空题 267
二、选择题 267
三、程序题 270
四、思考题 270
五、编程题 271
第14章 上机实训 273
实训1 Linux下常用命令和vi的使用 273
实训2 Linux程序设计C语言基础知识 274
实训3 Linux下C/C++语言的编译与调试 275
实训4选择结构程序设计 278
实训5循环结构程序设计 279
实训6数组初步 280
实训7函数的应用 282
实训8库文件包含及多文件系统的编译 283
实训9指针 284
实训10结构体与共用体 286
实训11位运算 289
实训12文件 291
参考文献 294
内容简介 295