关于我们
书单推荐
新书推荐
|
C语言开发手册:基础·案例·应用 读者对象:本书不仅适合初学者、零基础的编程自学者,也可供计算机相关专业师生、程序开发人员等阅读参考。
《C语言开发手册:基础·案例·应用》是“计算机科学与技术手册系列”图书之一,该系列图书内容全面,以理论联系实际、能学到并做到为宗旨,以技术为核心,以案例为辅助,引领读者全面学习基础技术、代码编写方法和具体应用项目,旨在为想要进入相应领域的技术人员提供新而全的技术性内容及案例。
本书是一本侧重编程基础+实践的C语言图书,从基础、案例、应用三个层次循序渐进地介绍了C语言从入门到实战所需知识,使读者在打好基础的同时快速提升实践能力。本书内容充实,给读者提供了较为丰富全面的技术支持和案例强化,通过各种示例将学习与应用相结合,打造轻松学习、零压力学习的环境,通过案例对所学知识进行综合应用,通过开发实际项目将C语言的各个知识点应用到实际工作中,帮助读者实现学以致用,快速掌握C语言开发的各项技能。 本书提供丰富的资源,包含120个实例、12个案例、2个项目,力求为读者打造一本基础+案例+应用一体化的、精彩的C语言图书。 本书不仅适合初学者、零基础的编程自学者,也可供计算机相关专业师生、程序开发人员等阅读参考。
基础篇
第1章 走进C语言的世界 1.1 计算机语言与C语言 3 1.1.1 计算机语言 3 1.1.2 C语言 3 1.2 C语言的特点 4 1.3 C语言的应用 5 1.3.1 单片机系统 5 1.3.2 应用软件 5 1.3.3 数据处理 5 1.3.4 嵌入式系统 5 1.3.5 游戏方面 5 1.4 本书约定 6 1.4.1 选择操作系统 6 1.4.2 选择开发环境 6 第2章 第一个C程序 2.1 安装C语言开发环境 8 2.1.1 下载Visual Studio 2019 8 2.1.2 安装Visual Studio 2019 9 2.2 熟悉C语言开发环境 11 2.2.1 编写第一个C程序 11 2.2.2 熟悉开发环境 14 2.3 第一个C程序 16 2.3.1 #include指令 16 2.3.2 main()函数 17 2.3.3 函数体 18 2.3.4 执行语句 18 2.3.5 return语句 18 2.3.6 注释 18 2.4 实战练习 20 第3章 C语言必备知识 3.1 关键字与标识符 22 3.1.1 关键字 22 3.1.2 标识符 23 3.2 常量和变量 24 3.2.1 常量 24 3.2.2 变量 24 3.3 算术运算符与算术表达式 25 3.3.1 算术运算符 25 3.3.2 算术表达式 26 3.3.3 自增、自减运算符 26 3.4 赋值运算符与赋值表达式 27 3.4.1 赋值运算符 27 3.4.2 赋值表达式 27 3.5 基本数据类型概述 27 3.6 整型 28 3.6.1 声明整型 28 3.6.2 初始化整型 28 3.6.3 其他整型 29 3.6.4 输出其他整型数据 29 【实例3.1】输出不同整型数据 30 3.6.5 整型常量 30 3.7 浮点型 30 3.7.1 声明浮点型 31 3.7.2 初始化浮点型 32 3.7.3 输出浮点型数据 32 3.7.4 浮点型常量 33 3.8 字符型 33 3.8.1 声明字符型 33 3.8.2 初始化字符型 34 3.8.3 输出字符型数据 34 3.8.4 字符型常量 35 3.8.5 转义字符 39 3.9 类型转换 39 3.9.1 自动类型转换 40 3.9.2 强制类型转换 40 【实例3.2】换季买鞋 40 3.10 格式化字符输出、输入函数 41 3.10.1 格式化输出函数:printf() 41 【实例3.3】printf()按照格式输出不同类型数据 42 【实例3.4】printf()附加格式输出数据 42 3.10.2 格式化输入函数:scanf() 43 【实例3.5】计算圆的周长和球的体积 43 3.11 综合案例——计算无人机往返A、B两地的次数 45 3.12 实战练习 45 第4章 位运算符 4.1 位与字节 48 4.2 位运算操作符 48 4.2.1 “与”运算符 48 【实例4.1】编写程序,把两个人的年龄做一个“与”运算 49 4.2.2 “或”运算符 49 【实例4.2】将数字0xEFCA与本身进行“或”运算 50 4.2.3 “取反”运算符 51 【实例4.3】自己年龄的取反输出 51 4.2.4 “异或”运算符 51 【实例4.4】计算a^b的值 52 4.2.5 “左移”运算符 53 【实例4.5】将15进行“左移”运算 53 4.2.6 “右移”运算符 54 【实例4.6】将15进行“右移”运算 55 4.3 循环移位 56 【实例4.7】编程实现循环左移 56 【实例4.8】编程实现循环右移 57 4.4 综合案例——密码二次加密 58 4.5 实战练习 58 第5章 条件判断语句 5.1 if相关语句 60 5.1.1 单个if语句 60 5.1.2 关系运算符与逻辑运算符 61 5.1.3 if…else语句 62 5.1.4 else if语句 63 5.2 if语句的嵌套 65 【实例5.1】日程安排 65 5.3 条件运算符 66 【实例5.2】模拟美团送餐 67 5.4 switch语 句 67 5.4.1 switch语句的基本形式 67 5.4.2 多路开关模式的switch语句 69 【实例5.3】每个月有多少天 70 5.5 综合案例——模拟高考填报志愿 70 5.6 实战练习 72 第6章 循环控制语句 6.1 什么是循环 74 6.2 while语句 74 6.3 do…while语句 75 【实例6.1】用do…while语句计算1~20之和 76 【实例6.2】用while语句计算1~20之和 77 6.4 for语 句 77 6.4.1 for语句使用 77 【实例6.3】用for语句计算1~20之和 78 6.4.2 for语句的变体 79 6.4.3 for语句中的逗号应用 80 6.5 循环嵌套 80 【实例6.4】输出金字塔形状 81 6.6 转移语句 82 6.6.1 break语句 82 【实例6.5】从0开始查数,遇到5就停止 84 6.6.2 continue语句 84 【实例6.6】从0开始查数,遇到5停顿 85 6.6.3 goto语句 86 【实例6.7】从1开始查数,遇到5输出字母a 86 6.7 综合案例——请小心!冻结账户 87 6.8 实战练习 88 第7章 数组 7.1 一维数组 90 7.1.1 一维数组的定义 90 7.1.2 一维数组初始化 91 7.1.3 一维数组的引用 92 【实例7.1】输出成绩 92 7.2 二维数组 93 7.2.1 二维数组的定义 93 7.2.2 二维数组初始化 93 7.2.3 二维数组的引用 95 【实例7.2】计算各科的平均成绩 95 7.3 字符数组 96 7.3.1 字符数组的定义和引用 96 7.3.2 字符数组初始化 97 【实例7.3】输出字符串“Park” 97 【实例7.4】输出一个钻石形状 98 7.3.3 字符数组的结束标志 98 7.3.4 字符数组的输入和输出 99 【实例7.5】输出“MingRi KeJi” 99 7.3.5 字符数组的应用 100 【实例7.6】统计字符串中单词的个数 100 7.4 多维数组 101 7.5 综合案例——十二生肖 101 7.6 实战练习 102 第8章 字a符串处理函数 8.1 字符串复制 104 【实例8.1】更新招牌 104 8.2 字符串连接 105 【实例8.2】制作课程表 105 8.3 字符串比较 106 【实例8.3】模拟登录明日学院的账号 106 8.4 字符串大小写转换 107 【实例8.4】验证码大小写转换 107 8.5 获得字符串长度 108 【实例8.5】模拟注册明日学院账号 108 8.6 综合案例——谁被@啦 109 8.7 实战练习 110 第9章 函数 9.1 函数概述 112 9.2 函数的定义 112 9.2.1 函数定义的形式 112 9.2.2 定义与声明 113 9.3 返回语句 113 9.3.1 有返回值函数 114 9.3.2 无返回值函数 114 9.4 函数参数 115 9.4.1 形参与实参 115 9.4.2 数组作为函数参数 116 【实例9.1】求素数 116 9.4.3 main()函数的参数 117 9.5 函数的调用 117 9.5.1 函数的调用方式 117 【实例9.2】《论语》一则 118 【实例9.3】用欧姆定律求电阻值 118 【实例9.4】判断体温是否正常 119 9.5.2 嵌套调用 119 【实例9.5】CEO安排工作任务 120 9.5.3 递归调用 121 【实例9.6】递归求年龄 122 9.6 内部函数和外部函数 122 9.6.1 内部函数 122 【实例9.7】输出“Hello MingRi!” 123 9.6.2 外部函数 123 9.7 局部变量和全局变量 124 9.7.1 局部变量 124 9.7.2 全局变量 124 9.8 其他函数库 125 9.9 综合案例——随机抽奖 127 9.10 实战练习 127 第10章 指针 10.1 指针相关概念 130 10.1.1 地址与指针 130 10.1.2 变量的指针 131 10.1.3 指针变量 131 【实例10.1】输出变量地址 132 【实例10.2】利用指针编写程序实现两个数互换 133 【实例10.3】输出i、j、c的地址 134 【实例10.4】*&的使用 134 10.1.4 指针的运算 135 【实例10.5】指针自增,地址变化了 135 10.2 数组与指针 137 10.2.1 一维数组与指针 137 【实例10.6】输出数组中的元素 137 10.2.2 二维数组与指针 139 【实例10.7】将输入的数以二维数组的形式显示 140 【实例10.8】输出第3行元素 141 【实例10.9】输出第2行的停车号 142 10.2.3 字符串与指针 142 【实例10.10】输出“hello mingri” 142 【实例10.11】利用指针实现字符串复制 143 10.2.4 指针数组 144 【实例10.12】输出英文的12个月 144 10.3 指向指针的指针 145 10.3.1 定义指向指针的指针 145 10.3.2 引用指向指针的指针 145 10.3.3 应用指向指针的指针 146 【实例10.13】输出化学周期表中前20个元素中的金属元素 146 10.4 指针与函数 146 10.4.1 指针变量作函数参数 146 【实例10.14】交换两个变量值 147 10.4.2 指针变量作函数参数的嵌套 148 【实例10.15】将输入的数从大到小输出 148 10.4.3 指针作函数参数与一维数组 149 【实例10.16】使用指针实现冒泡排序 149 10.4.4 指针作函数参数与二维数组 151 【实例10.17】找出二维数组每行中最大的数并求和 151 10.4.5 字符指针作函数参数 152 【实例10.18】按字母顺序排序 152 10.4.6 返回指针的函数 153 【实例10.19】输入长和宽,求长方形的周长 153 10.4.7 函数指针 154 10.5 带参数的main()函数 155 【实例10.20】输出main()函数的参数内容 156 10.6 综合案例——谁的成绩不及格? 157 10.7 实战练习 158 第11章 结构体和链表 11.1 结构体 160 11.1.1 结构体类型的概念 160 11.1.2 结构体变量的定义 160 11.1.3 结构体类型的初始化 162 11.1.4 结构体变量的引用 162 【实例11.1】输出vivo NEX(手机型号)的基本信息 162 11.2 结构体数组 163 11.2.1 定义结构体数组 163 11.2.2 初始化结构体数组 164 11.3 结构体指针 165 11.3.1 指向结构体变量的指针 165 11.3.2 指向结构体数组的指针 166 11.3.3 结构体作为函数参数 166 11.4 包含结构体的结构体 167 【实例11.2】显示学生的个人信息(包含生日) 167 11.5 链表 168 11.5.1 链表概述 168 11.5.2 创建动态链表 168 11.5.3 输出链表 170 11.6 链表相关操作 171 11.6.1 链表的插入操作 171 11.6.2 链表的删除操作 172 11.7 综合案例——查找手机通讯录 173 11.8 实战练习 175 第12章 共用体和枚举类型 12.1 共用体 177 12.1.1 声明共用体 177 12.1.2 定义共用体变量 177 12.1.3 共用体变量成员的引用 178 【实例12.1】设计一个玻璃罐头,一次只能装一种水果 179 【实例12.2】输出“现在是夏季” 180 12.1.4 共用体类型的数据特点 180 12.2 枚举类型 181 12.2.1 枚举类型的声明 181 12.2.2 枚举类型变量的定义 181 12.2.3 枚举类型变量的赋值和使用 182 【实例12.3】选择自己喜欢的颜色 182 12.3 综合案例——改答案放大招 183 12.4 实战练习 184 第13章 文件操作 13.1 文件概述 186 13.2 文件的基本操作 186 13.2.1 文件指针 186 13.2.2 文件的打开 187 13.2.3 文件的关闭 187 13.3 文件的读写 188 13.3.1 fputc()函数 188 【实例13.1】向文件中写入内容 188 13.3.2 fgetc()函数 189 【实例13.2】在屏幕中显示出文件内容 189 13.3.3 fputs()函数 189 【实例13.3】向文件中写入“gone with the wind” 190 13.3.4 fgets()函数 190 【实例13.4】读取任意磁盘文件中的内容 190 13.3.5 fprintf()函数 191 【实例13.5】将数字88以字符的形式写到磁盘文件中 191 13.3.6 fscanf()函数 192 【实例13.6】输出标准答案 192 13.3.7 fread()和fwrite()函数 193 【实例13.7】将所录入的信息全部显示出来 193 13.4 文件的定位 194 13.4.1 fseek()函数 194 【实例13.8】快递员送快递 195 13.4.2 rewind()函数 196 【实例13.9】老板,来一屉包子 196 13.4.3 ftell()函数 197 【实例13.10】保存手机号 197 13.5 综合案例——文件加密 198 13.6 实战练习 199 第14章 内存管理 14.1 内存组织方式 202 14.1.1 内存的组织方式 202 14.1.2 堆与栈 202 【实例14.1】利用malloc()函数分配内存空间 202 14.2 动态管理 203 14.2.1 malloc()函数 203 【实例14.2】衣服进货啦! 203 14.2.2 calloc()函数 204 【实例14.3】输出“Mingrisoft” 204 14.2.3 realloc()函数 205 【实例14.4】重新分配内存 205 14.2.4 free()函数 206 【实例14.5】释放内存空间 206 14.3 内存丢失 206 14.4 综合案例——用栈及递归计算多项式 207 14.5 实战练习 208 案例篇 第15章 让音乐响起来(C+媒体播放函数) 15.1 案例效果预览 210 15.2 案例准备 211 15.3 业务流程图 211 15.4 实现过程 211 15.4.1 创建新项目 211 15.4.2 下载mp3文件 213 15.4.3 引用函数库 213 15.4.4 导入媒体静态库 213 15.4.5 使用媒体播放 213 15.5 关键技术 214 第16章 抢红包(数组+随机函数) 16.1 案例效果预览 217 16.2 案例准备 218 16.3 业务流程图 218 16.4 实现过程 218 16.4.1 创建新项目 218 16.4.2 引用函数库 219 16.4.3 存储红包不同金额 219 16.4.4 随机生成红包金额 219 16.4.5 输出随机红包金额 220 16.5 关键技术 220 第17章 汉诺塔游戏(C+递归思想) 17.1 案例效果预览 224 17.2 案例准备 224 17.3 业务流程图 225 17.4 实现过程 225 17.4.1 分析移动汉诺塔过程 225 17.4.2 创建新项目 227 17.4.3 引用函数库 228 17.4.4 定义移动过程函数 228 17.4.5 main()函数 228 17.5 关键技术 228 第18章 单词背记游戏(文件操作+数组) 18.1 案例效果预览 232 18.2 案例准备 232 18.3 业务流程图 233 18.4 实现过程 233 18.4.1 存储练习的单词 233 18.4.2 创建新项目 233 18.4.3 导入函数库 234 18.4.4 定义宏 234 18.4.5 定义全局变量 235 18.4.6 显示选项 235 18.4.7 生成选项并返回正确下标 235 18.4.8 读取单词 235 18.4.9 判断选择情况以及得分情况 236 18.4.10 main()函数 237 18.5 关键技术 237 第19章 情商测试(条件控制+输入函数) 19.1 案例效果预览 239 19.2 案例准备 239 19.3 业务流程图 239 19.4 实现过程 240 19.4.1 创建新项目 240 19.4.2 导入函数库 241 19.4.3 函数声明及全局变量 241 19.4.4 定义10道测试题 242 19.4.5 计算题目得分及分析情商 248 19.4.6 main()函数 249 19.5 关键技术 249 第20章 头像挂件(IMAGE+图像处理函数) 20.1 案例效果预览 251 20.2 案例准备 252 20.3 业务流程图 252 20.4 实现过程 252 20.4.1 下载并安装EasyX图形库插件 252 20.4.2 创建新项目 254 20.4.3 导入函数库 255 20.4.4 初始化窗口 256 20.4.5 打印头像加挂件 256 20.4.6 冻结屏幕以及关闭绘制窗口 257 20.5 关键技术 257 第21章 猜拳游戏(Windows API+随机数+文件操作) 21.1 案例效果预览 260 21.2 案例准备 261 21.3 业务流程图 261 21.4 实现过程 261 21.4.1 创建新项目 261 21.4.2 预处理模块设计 262 21.4.3 游戏欢迎界面设计 263 21.4.4 游戏说明界面设计 264 21.4.5 游戏逻辑设计 266 21.4.6 显示游戏结束界面设计 267 21.5 关键技术 271 第22章 抖音表白小程序(MessageBox+判断语句) 22.1 案例效果预览 273 22.2 案例准备 273 22.3 业务流程图 274 22.4 实现过程 274 22.4.1 创建新项目 274 22.4.2 导入函数库 275 22.4.3 设置表白对话框 275 22.4.4 按钮“是”对话框 275 22.4.5 按钮“否”对话框 275 22.5 关键技术 276 第23章 弹幕来喽(文件+windows.h函数库+自定义函数) 23.1 案例效果预览 278 23.2 案例准备 279 23.3 业务流程图 279 23.4 实现过程 279 23.4.1 创建新项目 279 23.4.2 创建弹幕内容 280 23.4.3 导入函数库 280 23.4.4 将指定内容拷贝到剪贴板上 281 23.4.5 实现发弹幕 281 23.4.6 main()函数 282 23.5 关键技术 282 第24章 控制红绿灯(条件判断+图像处理+Sleep()函数) 24.1 案例效果预览 286 24.2 案例准备 287 24.3 业务流程图 287 24.4 实现过程 287 24.4.1 创建新项目 287 24.4.2 导入函数库 288 24.4.3 定义变量及初始化窗口 289 24.4.4 显示红绿灯初始状态 289 24.4.5 根据输入显示红绿灯状态 289 24.4.6 冻结屏幕以及关闭绘制窗口 290 24.5 关键技术 290 第25章 射a箭机器人(条件判断+自定义函数) 25.1 案例效果预览 293 25.2 案例准备 293 25.3 业务流程图 293 25.4 实现过程 293 25.4.1 创建新项目 293 25.4.2 导入函数库 294 25.4.3 中靶等级划分 295 25.4.4 输入射中环数 295 第26章 倒计时软件(循环嵌套+windows.h) 26.1 案例效果预览 296 26.2 案例准备 296 26.3 业务流程图 297 26.4 实现过程 297 26.4.1 创建新项目 297 26.4.2 导入函数库 298 26.4.3 自定义颜色函数 298 26.4.4 输入倒计时开始时间 298 26.4.5 实现倒计时功能 299 26.5 关键技术 299 应用篇 第27章 智能共享汽车管理系统 27.1 系统需求分析 304 27.1.1 系统概述 304 27.1.2 系统可行性分析 304 27.1.3 功能性需求分析 304 27.2 系统功能设计 304 27.2.1 系统功能结构 304 27.2.2 系统业务流程 304 27.2.3 系统预览 305 27.3 系统开发必备 306 27.3.1 系统开发环境 306 27.3.2 项目文件组织结构 306 27.4 技术准备 306 27.4.1 连接数据库准备工作 306 27.4.2 非ODBC方式操作数据库 308 27.5 数据库设计 313 27.6 显示主菜单模块设计 313 27.6.1 模块概述 313 27.6.2 实现显示主菜单模块 314 27.7 认证租车模块设计 314 27.7.1 模块概述 314 27.7.2 实现认证租车模块 315 27.8 信息查询模块设计 318 27.8.1 模块概述 318 27.8.2 实现信息查询模块 319 27.9 一键转让模块设计 320 27.9.1 模块概述 320 27.9.2 实现一键转让模块 321 27.10 确认还车模块设计 322 27.10.1 模块概述 322 27.10.2 实现确认还车模块 323 27.11 连接与关闭数据库 324 第28章 GSM短信控制家庭防盗报警系统 28.1 系统需求分析 327 28.1.1 系统概述 327 28.1.2 系统可行性分析 327 28.1.3 功能性需求分析 327 28.2 系统功能设计 327 28.2.1 系统功能结构 327 28.2.2 系统业务流程 327 28.2.3 系统预览 328 28.3 系统开发必备 328 28.3.1 系统开发工具 328 28.3.2 电路图 328 28.3.3 元件列表 329 28.4 LED声光报警设计 329 28.4.1 LED灯报警设计 329 28.4.2 蜂鸣器报警设计 332 28.4.3 LED声光报警设计实物图 334 28.5 手机短信报警设计 334 28.5.1 液晶屏显示状态 334 28.5.2 GSM模块接收短信 339 28.5.3 手机短信报警设计实物图 342 28.6 按键设计 342 28.6.1 按键概述 342 28.6.2 按键的使用 342 28.7 其他关键代码 344 附录 附录1:运算符优先级和结合性 352 附录2:ASCII码表 352
你还可能感兴趣
我要评论
|