目录 第1章C语言概述1 1.1程序设计语言与C语言1 1.1.1程序设计语言1 1.1.2C语言的发展与特点3 1.1.3C程序的上机调试步骤和方法4 1.1.4任务11C程序的编程环境14 1.2算法及其描述15 1.2.1算法与结构化程序设计15 1.2.2算法的描述17 1.2.3任务12算法的描述22 1.3项目实践程序结构分析23 小结24 习题25 第2章基本数据类型及运算27 2.1C语言的语法特征与程序结构27 2.1.1C程序的结构28 2.1.2C语言的字符集与词汇29 2.1.3任务21理解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任务22理解数据在计算机中的表示与存储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任务23理解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任务31考试成绩绩点的计算73 3.2宏与预定义74 3.2.1宏定义74 3.2.2文件包含80 3.2.3条件编译81 3.2.4#pragma预处理指令83 3.2.5任务32提高程序的可读性与易修改性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任务41获得奖学金的条件逻辑97 4.2简单分支程序设计98 4.2.1单分支结构的程序设计98 4.2.2双分支结构的程序设计99 4.2.3任务42判断考试成绩是否合格101 4.3多分支程序设计102 4.3.1if语句的多重选择程序设计102 4.3.2switch语句的多重选择程序设计105 4.3.3任务43求解分段函数107 4.4项目实践判定考试成绩等级109 小结112 习题113 第5章循环程序设计118 5.1循环语句118 5.1.1用while语句处理循环119 5.1.2用dowhile语句处理循环121 5.1.3用for语句处理循环122 5.1.4循环嵌套的使用127 5.1.5任务51统计某门课程的平均成绩128 5.2控制转移语句130 5.2.1break语句130 5.2.2continue语句131 5.2.3goto语句132 5.2.4任务52强制中断循环134 5.3循环程序设计的应用135 5.3.1穷举135 5.3.2迭代137 5.3.3任务53穷举与迭代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任务61学生成绩统计的模块化编程159 6.2变量的作用域与生存周期162 6.2.1变量的作用域与可见性162 6.2.2变量的生存周期168 6.2.3内部函数和外部函数172 6.2.4任务62多人协作完成一个任务174 6.3嵌套与递归175 6.3.1嵌套176 6.3.2递归177 6.3.3任务63币额数量的计算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任务71统计分析学生的考试成绩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任务72创建学生成绩表214 7.3二维数组及其应用217 7.3.1二维数组的定义与初始化218 7.3.2二维数组元素的引用219 7.3.3二维数组作为函数参数222 7.3.4任务73统计分析多门课程的成绩223 7.4字符数组与字符串227 7.4.1字符数组的定义、初始化及引用227 7.4.2字符串与字符数组227 7.4.3字符串的处理228 7.4.4任务74查找学生信息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任务81建立学生基本信息表256 8.2枚举260 8.2.1枚举类型的定义260 8.2.2枚举变量260 8.2.3任务82创建学生成绩表262 8.3共用体264 8.3.1共用体概述264 8.3.2共用体变量的引用265 8.3.3任务83创建学生成绩表267 8.4自定义类型与数据的分层270 8.4.1自定义类型270 8.4.2自定义类型的应用271 8.4.3任务84学生基本信息的分层处理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任务91利用指针访问数据294 9.2指针与函数295 9.2.1指针变量作为函数的参数295 9.2.2函数main的参数297 9.2.3指针函数298 9.2.4函数指针300 9.2.5任务92创建静态成绩表303 9.3指针与数组304 9.3.1指针与一维数组305 9.3.2指针与多维数组309 9.3.3数组指针用作函数参数312 9.3.4字符串和指针317 9.3.5任务93创建动态成绩表319 9.4指针与结构体322 9.4.1结构体指针322 9.4.2结构体数组指针324 9.4.3结构体指针变量用作函数参数325 9.4.4结构体的自引用326 9.4.5任务94创建链表330 9.5指针数组与指向指针的指针332 9.5.1指针数组332 9.5.2指向指针的指针333 9.5.3任务95再谈排序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任务101创建一个文件359 10.2文件的随机读/写363 10.2.1文件定位363 10.2.2随机读/写365 10.2.3任务102随机存取学生信息366 10.3项目实践数据存储369 小结377 习题377 第11章C语言的高级应用381 11.1位运算及应用381 11.1.1位运算381 11.1.2位域(位段)387 11.1.3任务111文件的加密与解密389 11.2高级语言与汇编语言的混合编程391 11.2.1Visual C++汇编程序环境设置392 11.2.2在C程序中嵌入汇编语句397 11.2.3采用模块调用的方法399 11.2.4任务112C语言与汇编语言混合编程的应用401 11.3C51程序设计404 11.3.1C51编程基础404 11.3.2Keil C51集成开发环境简介408 11.3.3任务113用89S51单片机控制8个LED发光管发光411 小结413 习题414 参考文献415 附录AC语言中的运算符416附录BASCII表418附录CC语言常见库函数419