目录
第1章C语言概述1
1.1程序设计语言与C语言1
1.1.1程序设计语言1
1.1.2C语言的发展与特点3
1.1.3C程序的上机调试步骤和方法4
1.1.4任务11C程序的编程环境14
1.2算法及其描述15
1.2.1算法与结构化程序设计15
1.2.2算法的描述17
1.2.3任务12算法的描述22
1.3项目实践程序结构分析23
小结24
习题25
第2章基本数据类型及运算27
2.1C语言的语法特征与程序结构27
2.1.1C程序的结构28
2.1.2C语言的字符集与词汇29
2.1.3任务21理解C语言的结构30
2.2C语言的数据31
2.2.1C语言的数据类型31
2.2.2常量和变量32
2.2.3整型数据34
2.2.4实型数据36
2.2.5字符型数据39
2.2.6变量赋初值42
2.2.7测试数据长度43
2.2.8各类数值型数据之间的混合运算43
2.2.9任务22理解数据在计算机中的表示与存储45
2.3运算符与表达式47
2.3.1运算符的分类47
2.3.2算术运算符与表达式48
2.3.3赋值运算符和赋值表达式49
2.3.4自增、自减运算符51
2.3.5逗号运算符和逗号表达式53
2.3.6任务23理解C语言的算术运算53
2.4项目实践描述学生信息54
小结55
习题56
第3章顺序程序设计61
3.1数据的输入与输出61
3.1.1字符数据的输入与输出62
3.1.2格式化输入与输出63
3.1.3输入/输出流68
3.1.4顺序程序设计71
3.1.5任务31考试成绩绩点的计算73
3.2宏与预定义74
3.2.1宏定义74
3.2.2文件包含80
3.2.3条件编译81
3.2.4#pragma预处理指令83
3.2.5任务32提高程序的可读性与易修改性84
3.3项目实践功能菜单设计85
小结86
习题87
第4章分支程序设计92
4.1分支和条件逻辑92
4.1.1关系运算符和表达式93
4.1.2逻辑运算符和表达式94
4.1.3条件运算符和条件表达式95
4.1.4任务41获得奖学金的条件逻辑97
4.2简单分支程序设计98
4.2.1单分支结构的程序设计98
4.2.2双分支结构的程序设计99
4.2.3任务42判断考试成绩是否合格101
4.3多分支程序设计102
4.3.1if语句的多重选择程序设计102
4.3.2switch语句的多重选择程序设计105
4.3.3任务43求解分段函数107
4.4项目实践判定考试成绩等级109
小结112
习题113
第5章循环程序设计118
5.1循环语句118
5.1.1用while语句处理循环119
5.1.2用dowhile语句处理循环121
5.1.3用for语句处理循环122
5.1.4循环嵌套的使用127
5.1.5任务51统计某门课程的平均成绩128
5.2控制转移语句130
5.2.1break语句130
5.2.2continue语句131
5.2.3goto语句132
5.2.4任务52强制中断循环134
5.3循环程序设计的应用135
5.3.1穷举135
5.3.2迭代137
5.3.3任务53穷举与迭代139
5.4项目实践考试成绩统计141
小结142
习题143
第6章模块化程序设计149
6.1函数149
6.1.1函数的概念150
6.1.2函数的声明与定义151
6.1.3函数的调用153
6.1.4函数间的数据传递155
6.1.5任务61学生成绩统计的模块化编程159
6.2变量的作用域与生存周期162
6.2.1变量的作用域与可见性162
6.2.2变量的生存周期168
6.2.3内部函数和外部函数172
6.2.4任务62多人协作完成一个任务174
6.3嵌套与递归175
6.3.1嵌套176
6.3.2递归177
6.3.3任务63币额数量的计算179
6.4项目实践自动出题181
小结184
习题185
第7章简单构造类型189
7.1一维数组189
7.1.1一维数组的定义与初始化190
7.1.2一维数组元素的引用192
7.1.3一维数组作为函数参数195
7.1.4任务71统计分析学生的考试成绩198
7.2一维数组的应用200
7.2.1数据元素的复制与选择200
7.2.2数据元素的移动204
7.2.3数据元素的查找与统计205
7.2.4数据元素的修改、删除与插入210
7.2.5数据的排序212
7.2.6任务72创建学生成绩表214
7.3二维数组及其应用217
7.3.1二维数组的定义与初始化218
7.3.2二维数组元素的引用219
7.3.3二维数组作为函数参数222
7.3.4任务73统计分析多门课程的成绩223
7.4字符数组与字符串227
7.4.1字符数组的定义、初始化及引用227
7.4.2字符串与字符数组227
7.4.3字符串的处理228
7.4.4任务74查找学生信息232
7.5项目实践考试成绩管理236
小结239
习题239
第8章复杂构造类型245
8.1结构体245
8.1.1结构体与结构体变量的定义246
8.1.2结构体成员的初始化251
8.1.3结构体成员的访问252
8.1.4结构体与函数254
8.1.5结构体数组255
8.1.6任务81建立学生基本信息表256
8.2枚举260
8.2.1枚举类型的定义260
8.2.2枚举变量260
8.2.3任务82创建学生成绩表262
8.3共用体264
8.3.1共用体概述264
8.3.2共用体变量的引用265
8.3.3任务83创建学生成绩表267
8.4自定义类型与数据的分层270
8.4.1自定义类型270
8.4.2自定义类型的应用271
8.4.3任务84学生基本信息的分层处理272
8.5项目实践再谈学生成绩管理274
小结280
习题281
第9章指针285
9.1指针与指针变量285
9.1.1指针的概念286
9.1.2指针变量的定义286
9.1.3指针运算符287
9.1.4指针表达式289
9.1.5存储空间的动态分配292
9.1.6任务91利用指针访问数据294
9.2指针与函数295
9.2.1指针变量作为函数的参数295
9.2.2函数main的参数297
9.2.3指针函数298
9.2.4函数指针300
9.2.5任务92创建静态成绩表303
9.3指针与数组304
9.3.1指针与一维数组305
9.3.2指针与多维数组309
9.3.3数组指针用作函数参数312
9.3.4字符串和指针317
9.3.5任务93创建动态成绩表319
9.4指针与结构体322
9.4.1结构体指针322
9.4.2结构体数组指针324
9.4.3结构体指针变量用作函数参数325
9.4.4结构体的自引用326
9.4.5任务94创建链表330
9.5指针数组与指向指针的指针332
9.5.1指针数组332
9.5.2指向指针的指针333
9.5.3任务95再谈排序334
9.6项目实践成绩管理优化336
小结340
习题340
第10章文件组织与使用346
10.1文件的顺序读/写346
10.1.1文件的相关概念346
10.1.2文件的打开与关闭349
10.1.3文件的读/写350
10.1.4文件检测函数357
10.1.5任务101创建一个文件359
10.2文件的随机读/写363
10.2.1文件定位363
10.2.2随机读/写365
10.2.3任务102随机存取学生信息366
10.3项目实践数据存储369
小结377
习题377
第11章C语言的高级应用381
11.1位运算及应用381
11.1.1位运算381
11.1.2位域(位段)387
11.1.3任务111文件的加密与解密389
11.2高级语言与汇编语言的混合编程391
11.2.1Visual C++汇编程序环境设置392
11.2.2在C程序中嵌入汇编语句397
11.2.3采用模块调用的方法399
11.2.4任务112C语言与汇编语言混合编程的应用401
11.3C51程序设计404
11.3.1C51编程基础404
11.3.2Keil C51集成开发环境简介408
11.3.3任务113用89S51单片机控制8个LED发光管发光411
小结413
习题414
参考文献415
附录AC语言中的运算符416附录BASCII表418附录CC语言常见库函数419