C语言程式设计案例课堂


C语言程式设计案例课堂

文章插图
C语言程式设计案例课堂【C语言程式设计案例课堂】《C语言程式设计案例课堂》是2018年6月出版的图书 , 作者是刘春茂、李琪 。
基本介绍书名:C语言程式设计案例课堂
作者:刘春茂、李琪
ISBN:9787302495420
出版社:清华大学出版社 
出版时间:2018.06.01
印次:1-1
C语言程式设计案例课堂作者:刘春茂、李琪 定价:78元印次:1-1ISBN:9787302495420出版日期:2018.06.01印刷日期:2018.06.08《C语言程式设计案例课堂》以零基础讲解为宗旨 , 用实例引导读者深入学习 , 採取“基础入门→核心技术→高级套用→项目开发实战”的讲解模式 , 深入浅出地讲解C语言的各项技术及实战技能 。《C语言程式设计案例课堂》第Ⅰ篇“基础入门”主要讲解走进C语言的世界、常量与变数、数据类型、输入和输出、运算符和表达式、程式流程控制结构等;第Ⅱ篇“核心技术”主要讲解数组、算法与流程图、函式与函式中变数、指针、操作档案、编译与预处理指令、使用库函式等;第Ⅲ篇“高级套用”主要讲解位运算 , 结构体、共用体和枚举 , 动态数据结构 , 数据结构进阶 , 排序等;第Ⅳ篇“项目开发实战”主要讲解开发日曆查阅系统、开发员工信息管理系统、开发迷宫小游戏 。作者刘春茂 , 本科毕业于上海复旦大学 , 硕士毕业于清华大学 。曾在美国IBM公司移动产品开发组从事Android平台套用的开发 。擅长的核心技术媒体和教育领域个性化信息推荐 , 网站用户行为数据挖掘 , 健康领域非结构化数据处理 。擅长的其他技术熟悉各种网站和手机(Andorid和iOS)app的开发等 , 精通Java, C/C++, PHP, Python等流行语言并对Hadoop ,  MapReduce等大数据框架有深入研究 。目 录第I篇 基础入门第1章 初识庐山真面目—— 走进C语言的世界 31.1 C语言概述 41.1.1 C语言的发展史 41.1.2 C语言的特点 51.1.3 C语言的套用 61.2 C语言的常用开发环境 61.2.1 Visual C++ 6.0开发环境 71.2.2 Turbo C 2.0开发环境 111.3 编写第一个C语言程式 131.3.1 C语言编译机制 131.3.2 在Visual C++ 6.0中开发C程式 131.3.3 在Turbo C中开发C程式 171.4 C语言程式的组成 191.4.1 C语言程式整体风貌 191.4.2 #include的秘密 191.4.3 程式的出入口——main函式 201.4.4 数据货柜——常量和变数 211.4.5 如何输出程式结果——输出函式 211.4.6 注释 211.4.7 代码书写规範 221.5 大神解惑 231.6 跟我学上机 23第2章 程式中的变与不变——常量与变数 252.1 标识符和关键字 262.1.1 标识符 262.1.2 关键字 262.2 常量 272.2.1 整数常量 272.2.2 浮点常量 282.2.3 字元常量 282.2.4 字元串常量 302.2.5 符号常量 302.3 变数 312.3.1 变数的定义 322.3.2变数的声明 322.3.3变数的初始化与赋值 332.3.4变数的分类 342.4综合案例——处理学生的期末成绩 382.5大神解惑 402.6跟我学上机 40第3章程式中的数据种类——数据类型 413.1数制 423.1.1二进制 423.1.2八进制 423.1.3十六进制 423.1.4数制间的转换 423.2整型数据 453.2.1整型数据的存放形式 463.2.2整型变数的溢出 473.3浮点型数据 483.3.1浮点型数据的存放形式 483.3.2有效数字 493.4字元型数据 503.5数据类型的转换 503.5.1隐式转换 503.5.2显式转换 523.6综合案例——各种进制的转换 533.7大神解惑 553.8跟我学上机 55第4章用户与计算机的互动——输入和输出 574.1标準输入输出 584.2格式化输入输出 584.2.1格式化输出函式 594.2.2格式化输入函式 624.3字元输入输出 654.3.1字元的输出函式 654.3.2字元的输入函式 664.4字元串的输入输出 674.4.1字元串的输出函式 674.4.2字元串的输入函式 684.5综合案例——输入和输出的综合套用 694.6大神解惑 704.7跟我学上机 70第5章谁来运算元据——运算符和表达式 715.1运算符 725.1.1运算符的分类 725.1.2运算符的优先权和结合性 725.2表达式 735.3运算符与表达式 745.3.1算术运算符与算术表达式 745.3.2赋值运算符与赋值表达式 775.3.3关係运算符与关係表达式 795.3.4逻辑运算符与逻辑表达式 815.3.5位运算符与位运算表达式 835.3.6条件运算符与条件表达式 855.3.7逗号运算符与逗号表达式 865.4语句 875.4.1表达式语句 875.4.2函式调用语句 875.4.3控制语句 885.4.4複合语句 885.4.5空语句 885.5综合案例——关係运算符的套用 895.6大神解惑 89 5.7跟我学上机 90第6章程式的执行方向——程式流程控制结构 916.1顺序结构 926.2选择结构 936.2.1if语句 936.2.2if…else语句 946.2.3选择嵌套语句 956.2.4switch分支结构语句 996.3循环结构 1016.3.1while语句 1016.3.2do…while语句 1026.3.3for语句 1036.3.4循环语句的嵌套 1056.4跳转语句 1066.4.1break语句 1066.4.2continue语句 1076.4.3goto语句 1086.5综合案例——製作简易计算器 1096.6大神解惑 1116.7跟我学上机 112第Ⅱ篇核心技术第7章特殊的元素集合——数组 1157.1数组概述 1167.2一维数组 1167.2.1一维数组的定义 1167.2.2一维数组的引用 1187.2.3一维数组的初始化 1197.2.4程式实例 1217.3二维数组 1237.3.1二维数组的定义 1237.3.2二维数组的引用 1247.3.3二维数组的初始化 1257.3.4多维数组 1277.3.5程式实例 1287.4字元数组 1317.4.1字元数组的定义和初始化 1317.4.2字元串和字元数组 1337.4.3字元数组的输出与输入 1347.4.4字元串处理函式 1377.5综合案例——矩阵的乘法 1417.6大神解惑 1437.7跟我学上机 143第8章程式描述——算法与流程图 1458.1算法概述 1468.1.1算法的概念 1468.1.2算法的特性 1468.1.3算法的优劣 1478.2流程图简介 1488.2.1传统流程图 1488.2.2N-S流程图 1508.3算法的表示 1508.3.1自然语言表示法 1508.3.2流程图表示法 1528.3.3N-S流程图表示法 1568.3.4伪代码表示法 1598.3.5计算机语言表示法 1628.4结构化程式设计方法 1638.5综合案例——求解一元二次方程的根 1638.6大神解惑 1668.7跟我学上机 166第9章C语言灵魂——函式与函式中变数 1679.1函式概述 1689.1.1函式的概念 1689.1.2函式的分类 1699.1.3函式的声明与定义 1719.2函式的返回语句 1749.2.1函式的返回值 1759.2.2函式的结束标誌 1769.2.3函式的返回值类型 1779.3函式的参数 178 9.3.1形式参数与实际参数 1789.3.2参数的传递方式 1799.4函式的调用 1829.4.1函式调用的方式 1829.4.2函式的嵌套调用 1859.4.3函式的递归调用 1889.5内部函式与外部函式 1929.5.1内部函式 1929.5.2外部函式 1939.6main()函式的参数 1959.7局部变数和全局变数 1969.7.1局部变数 1969.7.2全局变数 1989.8变数的存储类别 2029.8.1动态存储与静态存储 2039.8.2自动变数 2039.8.3静态变数 2059.8.4暂存器变数 2099.8.5外部变数 2109.9综合案例——求解非线性方程 2129.10大神解惑 2159.11跟我学上机 217第10章灵活调用记忆体地址——指针 21910.1指针概述 22010.1.1地址与指针 22010.1.2指针变数 22110.1.3指针变数的引用 22310.2指针与函式 22610.2.1指针变数作为函式参数 22610.2.2函式返回指针 22910.2.3指向函式的指针 23110.3指针与数组 23310.3.1数组元素的指针 23410.3.2指针的运算 23410.3.3通过指针引用数组元素 23510.3.4指向数组的指针变数作为函式参数 23810.3.5通过指针对多维数组进行引用 24410.4指针与字元串 25010.4.1字元指针 25010.4.2使用字元指针作函式参数 25310.4.3字元数组与字元指针变数的区别 25610.5指针数组和多重指针 25810.5.1指针数组 25810.5.2指向指针的指针 26210.6综合案例——使用指针运算元组 26710.7大神解惑 27210.8跟我学上机 275第11章数据存储——操作档案 27711.1档案概述 27811.1.1档案类型 27811.1.2档案指针 27911.1.3档案的缓冲区 28011.2档案的打开与关闭 28111.2.1档案的打开 28111.2.2档案的关闭 28211.3档案的读写 28311.3.1字元的读写 28311.3.2字元串的读写 28711.3.3数据块的读写 29111.3.4格式化读写函式 29511.4档案定位与档案的随机读写 29811.4.1档案头定位函式rewind() 29911.4.2当前读写位置函式ftell() 30011.4.3随机定位函式fseek() 30111.5档案检测函式 30411.5.1档案结束判断函式feof() 304 11.5.2档案读写错误检测函式ferror() 30511.5.3档案错误标誌清除函式clearerr() 30711.6综合案例——档案的综合操作 30811.7大神解惑 31611.8跟我学上机 316第12章未雨绸缪——编译与预处理指令 31712.1预处理指令 31812.2宏定义 31812.2.1变数式宏定义 31812.2.2宏定义的嵌套 32112.2.3宏定义的作用範围 32212.2.4带参数的宏定义 32312.2.5宏定义的多行表示 32712.3档案包含 32712.4条件编译 32912.4.1条件编译命令 32912.4.2调试中使用DEBUG宏 33212.4.3档案的嵌套包含与条件编译 33312.5综合案例——求解圆、矩形以及三角形的面积 33412.6大神解惑 33512.7跟我学上机 335第13章提高开发效率——使用库函式 33713.1标準C库函式 33813.2数学函式“math.h” 33813.2.1求幂函式与开平方函式 33813.2.2指数函式与对数函式 33913.2.3三角函式 34013.2.4绝对值函式 34113.2.5取整函式与取余函式 34213.3字元串函式“string.h” 34313.3.1字元串长度函式 34313.3.2字元串连线函式 34413.3.3字元串複製函式 34513.3.4字元串大小写转换函式 34613.3.5字元串查找函式 34713.3.6字元串比较函式 34813.4字元函式“ctype.h” 34913.4.1字元的类型判断函式 34913.4.2字元大小写转换函式 35113.5其他函式 35213.5.1随机函式 35213.5.2日期时间函式 35313.5.3结束程式函式 35413.6综合案例——创建报数游戏 35513.7大神解惑 35613.8跟我学上机 357第III篇高级套用第14章内部数据操作——位运算 36114.1位(bit)与位元组(byte)的关係 36214.2位运算符 36214.2.1按位与运算符(&) 36214.2.2按位或运算符(|) 36314.2.3按位异或运算符(^) 36414.2.4按位取反运算符(~) 36514.2.5左移运算符(<<) 366 14.2.6右移运算符(>>) 36714.2.7位複合赋值运算符 36814.3循环移位 36814.3.1循环左移 36914.3.2循环右移 37014.4位段 37114.4.1位段的定义 37114.4.2位段中数据的引用 37114.5综合案例——将十进制数转换为二进制数 37314.6大神解惑 37414.7跟我学上机 375第15章灵活定义数据类型——结构体、共用体和枚举 37715.1结构体概述 37815.1.1结构体类型 37815.1.2定义结构体变数 37915.1.3初始化结构体变数 38115.1.4结构体变数的引用 38115.2结构体数组 38315.2.1定义结构体数组 38315.2.2结构体数组的初始化 38415.2.3结构体数组元素的引用 38515.2.4结构体数组套用实例 38615.3结构体指针 38815.3.1指向结构体变数的指针 38815.3.2指向结构体数组的指针 39015.3.3结构体变数作为函式参数 39115.3.4指向结构体变数的指针作为函式参数 39315.3.5结构体作为函式的返回值 39415.4共用体 39515.4.1共用体的定义 39515.4.2共用体变数的定义 39615.4.3共用体变数的初始化以及引用 39715.5枚举 39915.5.1定义枚举类型 40015.5.2定义枚举类型变数 40015.6综合案例——创建学生信息结构体 40215.7大神解惑 40315.8跟我学上机 404第16章动态存储分配——动态数据结构 40516.1动态存储分配概述 40616.1.1malloc()函式 40616.1.2calloc()函式 40716.1.3realloc()函式 40816.1.4free()函式 40916.2鍊表概述 41016.2.1鍊表结点的定义 41116.2.2鍊表的建立 41116.2.3鍊表的遍历 41216.2.4鍊表结点的插入 41316.2.5鍊表结点的删除 41716.3综合案例——综合套用鍊表 42016.4大神解惑 42116.5跟我学上机 422第17章逻辑结构——数据结构进阶 42317.1数据结构概述 42417.2线性表 42517.3栈 42617.3.1栈的基本操作 42717.3.2顺序栈 42717.3.3链式栈 42917.4伫列 431 17.4.1伫列的基本运算 43217.4.2顺序伫列 43217.4.3链式伫列 43617.5二叉树 44117.5.1二叉树的定义 44117.5.2二叉树的遍历 44217.6查找 44217.6.1顺序查找 44217.6.2折半查找 44417.7综合案例——使用栈转换数据的进制 44617.8大神解惑 44717.9跟我学上机 448第18章整理数据的妙招——排序 44918.1排序概述 45018.2插入排序 45018.2.1直接插入排序 45018.2.2希尔排序 45218.3选择排序 45318.3.1简单选择排序 45318.3.2堆排序 45518.4交换排序 45718.4.1冒泡排序 45718.4.2快速排序 45818.5归併排序 46018.6基数排序 46218.7大神解惑 46418.8跟我学上机 465第IV篇项目开发实战第19章项目实训1——开发日曆查阅系统 46919.1需求分析 47019.2功能分析 47019.3开发前準备工作 47219.4系统代码编写 47619.4.1查询年曆函式showCalendarOfYear() 47619.4.2查询月曆函式showCalendarOfMonth() 47719.4.3日期查询模组 47819.5系统运行 48519.6项目总结 486第20章项目实训2——开发员工信息管理系统 48720.1需求分析 48820.2功能分析 48920.3开发前準备工作 49020.4系统代码编写 49120.4.1main.c档案 49120.4.2employee.c档案 49520.5系统运行 49920.6项目总结 500第21章项目实训3——开发迷宫小游戏 50121.1需求分析 50221.2功能分析 50221.3开发前準备工作 50421.4系统代码编写 50521.4.1main.c档案 50521.4.2mazeGame.c档案 50721.5系统运行 51321.6项目总结 514