第一篇 基础篇 1
第1章 C语言概述 1
1.1 C语言发展史 2
1.2 C语言的特点 2
1.3 C语言编译器 3
1.4安装Turbo C 3.0 3
1.5 Turbo C/C++ 3.0集成开发环境介绍 6
1.5.1文件菜单(File) 7
1.5.2编辑菜单(Edit) 7
1.5.3运行菜单(Run) 7
1.5.4编译菜单(Compile) 8
1.5.5项目菜单(Project) 8
1.5.6调试菜单(Debug) 9
1.6进行C语言程序开发的步骤 9
1.6.1编辑源代码 10
1.6.2编译 10
1.6.3链接 10
1.6.4运行 10
1.7一个简单的C语言程序 11
1.8 C语言程序的结构 12
1.8.1 C程序组成部分 12
1.8.2 C程序格式总结 15
1.9疑难问题解析 16
职场点拨——C语言的地位 17
第2章 算法和数据类型 18
2.1算法基础 19
2.1.1算法的概念 19
2.1.2流程图表示算法 20
2.1.3 C语言表示算法 21
2.2 C语言的数据类型 22
2.3常量和变量 23
2.3.1常量 23
2.3.2变量 24
2.4整型数据 27
2.4.1整型常量 27
2.4.2整型变量 28
2.5实型数据 30
2.5.1实型常量 30
2.5.2实型变量 31
2.5.3实型常量的类型 33
2.6字符型数据 34
2.6.1字符常量 34
2.6.2字符串常量 35
2.6.3字符变量 36
2.7初始化变量 38
2.8整型、实型、字符型数据间的运算 39
2.8.1自动转换 39
2.8.2强制转换 40
2.9疑难问题解析 40
职场点拨——毕业生的选择 41
第3章 运算符和表达式 43
3.1运算符和表达式基础 43
3.1.1运算符的种类 44
3.1.2运算符的优先级 45
3.2算术运算符和算术表达式 46
3.2.1单目运算符 46
3.2.2双目运算符 47
3.3赋值运算符和赋值表达式 49
3.3.1基本赋值运算符 49
3.3.2复合赋值运算符 51
3.3.3赋值表达式 52
3.4关系运算符和关系表达式 53
3.5逻辑运算符和逻辑表达式 55
3.6逗号运算符和逗号表达式 57
3.7求字节数运算符 59
3.8疑难问题解析 61
职场点拨——养成良好的编程习惯 62
第4章 C语句和数据的输入/输出 64
4.1 C语句初步 64
4.1.1 C语句简介 65
4.1.2空白的作用 66
4.1.3赋值语句 67
4.2数据的输入/输出 68
4.2.1字符输出函数putchar() 69
4.2.2字符输入函数getchar() 70
4.2.3格式输出函数printf() 72
4.2.4格式输入函数scanf() 75
4.2.5字符串输出函数puts() 79
4.2.6字符串输入函数gets() 80
4.3疑难问题解析 81
职场点拨——面试的准备 83
第5章 流程控制 84
5.1顺序结构 85
5.2选择结构 86
5.2.1单分支结构语句 86
5.2.2双分支结构语句 88
5.2.3多分支结构语句 92
5.2.4条件运算符和条件表达式 95
5.3循环结构 96
5.3.1 for语句 97
5.3.2 while语句 100
5.3.3 do-while语句 102
5.3.4循环语句的总结和效率 104
5.3.5 goto语句 105
5.3.6 break语句 106
5.3.7 continue语句 107
5.3.8死循环和退出程序 107
5.4疑难问题解析 109
职场点拨——程序员的发展方向 111
第6章 数组和字符串 113
6.1一维数组 113
6.1.1定义一维数组 114
6.1.2初始化一维数组 114
6.1.3引用一维数组元素 117
6.2多维数组 119
6.2.1二维数组 119
6.2.2多维数组 123
6.3字符数组与字符串 126
6.3.1字符数组 126
6.3.2字符串与字符数组 127
6.3.3字符数组的输入/输出 128
6.4字符串处理函数 130
6.4.1测试字符串长度函数 130
6.4.2字符串大小写转换函数 131
6.4.3字符串复制函数 132
6.4.4字符串比较函数 133
6.4.5字符串连接函数 135
6.4.6其他字符串函数 136
6.4.7将字符串转换成数值的函数 136
6.5字符处理函数 137
6.5.1字符检测函数 138
6.5.2字符大小写转换函数 139
6.6疑难问题解析 141
职场点拨——和客户的沟通技巧 143
第7章 函数 144
7.1 C语言函数基础 145
7.1.1 C语言函数的种类 145
7.1.2定义函数 146
7.2函数的声明和函数原型 148
7.3参数 149
7.3.1形参和实参 149
7.3.2数组名作为函数参数 151
7.3.3数组作为函数参数 154
7.4返回值 156
7.5函数的调用 159
7.5.1函数调用格式 159
7.5.2函数调用的方式 160
7.5.3对被调函数的声明 162
7.5.4调用函数方式的深入分析 162
7.6函数的嵌套调用和递归调用 164
7.6.1嵌套调用 164
7.6.2递归调用 170
7.7变量的作用域和生存期 173
7.7.1变量作用域 173
7.7.2静态存储变量和动态存储变量 177
7.8内部函数和外部函数 184
7.8.1内部函数 184
7.8.2外部函数 185
7.9库函数基础 187
7.9.1 C库函数介绍 187
7.9.2 C库函数分类 187
7.10项目文件 188
7.11疑难问题解析 190
职场点拨——谈模块化设计 191
第8章 指针 193
8.1指针的基本概念 194
8.2变量的指针和指向变量的指针变量 194
8.2.1声明 194
8.2.2初始化 195
8.2.3引用 196
8.2.4几个说明 197
8.2.5指针变量运算 199
8.2.6指针变量作为函数参数 200
8.2.7 void类型的指针 203
8.3指针和数组 205
8.3.1数组元素的指针 205
8.3.2指向一维数组元素的指针变量 206
8.3.3通过指针引用数组元素 207
8.3.4使用指针变量应该注意的问题 211
8.3.5数组名作函数参数 214
8.4指针和多维数组 217
8.4.1多维数组的地址 217
8.4.2指向多维数组的指针变量 219
8.5指针和字符串 222
8.5.1指针访问字符串 222
8.5.2字符串指针作为函数参数 224
8.5.3使用字符串指针变量与字符数组的区别 225
8.6指针数组和多级指针 226
8.6.1指针数组 226
8.6.2多级指针的定义和应用 227
8.6.3指向指针的指针 230
8.6.4 main函数的参数 230
8.7指针函数和函数指针 232
8.8疑难问题解析 236
职场点拨——与客户相处之道 237
第二篇 核心技术篇 239
第9章 结构体、共用体和枚举 239
9.1结构体 240
9.1.1定义结构体类型 240
9.1.2结构体类型变量的定义 241
9.1.3结构体变量的引用 243
9.1.4结构体变量的初始化 245
9.2结构体数组 246
9.2.1结构体数组定义 247
9.2.2结构体数组的初始化 249
9.2.3结构体数组的引用 250
9.3结构体指针 252
9.3.1结构体指针变量的定义 252
9.3.2结构体指针变量的初始化 252
9.3.3结构体指针变量的引用 253
9.3.4指向结构体变量的指针 254
9.3.5指向结构体数组的指针 255
9.4结构体和函数 256
9.4.1结构体变量和结构体指针作为函数参数 256
9.4.2返回结构体类型值的函数 257
9.5共用体 259
9.5.1共用体和共用体变量的定义 259
9.5.2共用体变量的引用与初始化 261
9.5.3结构和共用体的区别 263
9.6枚举 264
9.6.1定义枚举类型 264
9.6.2定义枚举变量 265
9.6.3枚举变量的引用 265
9.7用typedef定义类型 267
9.8疑难问题解析 269
职场点拨——寻找兼职 270
第10章 链表 272
10.1动态内存分配 272
10.1.1为什么用动态内存分配 272
10.1.2如何实现动态内存分配及其管理 273
10.2链表 276
10.2.1链表概述 276
10.2.2单向链表 277
10.2.3创建链表 280
10.2.4删除整个链表 280
10.2.5在链表中插入节点 280
10.2.6在链表中删除节点 281
10.2.7双向链表 282
10.2.8循环链表 285
10.3疑难问题解析 285
职场点拨——兼职可靠吗? 286
第11章 位运算 287
11.1位运算符和位运算 287
11.1.1按位与运算 288
11.1.2按位或运算 289
11.1.3按位异或运算 289
11.1.4取反运算 290
11.1.5左移运算 291
11.1.6右移运算 291
11.1.7位运算应用实例 292
11.2位域 293
11.3疑难问题解析 295
职场点拨——确定要寻找更好的工作吗? 297
第12章 预编译处理 298
12.1预编译概述 298
12.2宏定义 299
12.2.1不带参数的宏定义 299
12.2.2带参数的宏定义 302
12.2.3字符串化运算符 304
12.2.4并接运算符 304
12.3文件包含 304
12.4条件编译 306
12.4.1 #ifdef…#else…#endif命令 307
12.4.2 #ifdefined…#else…#endif 308
12.4.3 #ifndef…#else…#endif 308
12.4.4 #if!defined…#else…#endif 309
12.4.5 #ifdef…#elif…#elif…#else…#endif 309
12.5疑难问题解析 312
职场点拨——从沟通谈职业素养 315
第三篇 提高篇 317
第13章 文件操作处理 317
13.1文件基础 318
13.1.1文件分类 318
13.1.2文件指针 319
13.2文件的打开与关闭 319
13.2.1打开文件 320
13.2.2关闭文件 322
13.3文件的读/写操作 324
13.3.1字符读/写函数 324
13.3.2字符串读/写函数 327
13.3.3格式化读/写函数 330
13.3.4数据块读/写函数 331
13.3.5其他读/写函数 333
13.4文件的随机读/写 334
13.4.1 fseek()函数 334
13.4.2 rewind()函数 337
13.4.3 ftell()函数 337
13.5文件管理函数 339
13.5.1删除文件 339
13.5.2重命名文件 339
13.5.3复制文件 340
13.6文件状态检测函数 342
13.6.1 feof()函数 343
13.6.2 ferror()函数 343
13.6.3 clearerr()函数 343
13.7疑难问题解析 346
职场点拨——团队精神 347
第14章 错误和程序调试 349
14.1常见错误分析 349
14.2错误的检出与分离 355
14.3程序调试 357
14.4疑难问题解析 360
职场点拨——与上级相处之道 361
第15章 C语言高级编程技术 363
15.1高级编程技术概述 364
15.2文本的屏幕输出和键盘输入 364
15.2.1文本的屏幕输出 364
15.2.2键盘输入 370
15.2.3应用实例 372
15.3图形显示方式和鼠标输入 374
15.3.1图形模式的初始化 375
15.3.2清屏和恢复显示方式的函数 377
15.3.3独立图形运行程序的建立 378
15.3.4基本绘图函数 378
15.3.5画线的线性函数 383
15.3.6颜色控制函数 386
15.3.7封闭图形的填色函数及有关画图函数 390
15.3.8图形窗口函数 394
15.3.9图形方式下的文本输出函数 395
15.4菜单设计 398
15.4.1实现下拉式菜单 399
15.4.2实现弹出式菜单 402
15.5网络编程基础 408
15.5.1常用协议报头 408
15.5.2 Winsock基础 412
15.6疑难问题解析 414
职场点拨——升职经验谈 415
第四篇 综合实战篇 417
第16章 俄罗斯方块游戏 417
16.1游戏功能描述 417
16.2游戏总体设计 417
16.2.1功能模块设计 418
16.2.2构成函数介绍 420
16.2.3数据结构设计 421
16.3游戏具体实现 423
16.3.1预处理 423
16.3.2主函数 426
16.3.3初始化界面处理 429
16.3.4时钟中断处理 430
16.3.5成绩、速度和帮助处理 431
16.3.6满行处理 432
16.3.7方块显示和消除处理 434
16.3.8游戏方块操作判断处理 436
第17章 Ping网络项目设计 441
17.1系统功能描述 441
17.2系统总体设计 441
17.2.1功能模块设计 441
17.2.2数据结构设计 444
17.2.3构成函数介绍 445
17.3系统具体实现 446
17.3.1预处理 446
17.3.2初始化处理 448
17.3.3控制模块 449
17.3.4数据报解读处理 452
17.3.5 Ping测试处理 454
17.3.6主函数 457
第18章 学生成绩管理系统 459
18.1系统总体描述 459
18.1.1项目开发的目标 459
18.1.2系统功能描述 459
18.2系统总体设计 461
18.2.1功能模块设计 461
18.2.2数据结构设计 462
18.2.3构成函数介绍 463
18.3系统具体实现 465
18.3.1预处理 465
18.3.2主函数main() 466
18.3.3系统主菜单函数 468
18.3.4表格显示信息 468
18.3.5信息查找定位 469
18.3.6格式化输入数据 470
18.3.7增加学生记录 471
18.3.8查询学生记录 472
18.3.9删除学生记录 474
18.3.10修改学生记录 475
18.3.11插入学生记录 476
18.3.12统计学生记录 478
18.3.13排序处理 479
18.3.14存储学生信息 480
参考文献 486