账号: 密码:
首页  |  宏观指导  |  出版社天地  |  图书代办站  |  教材图书信息 |  教材图书评论 |  在线订购 |  教材征订
  图书分类 - 中图法分类  专业分类  用途分类  自分类  制品类型  读者对象  版别索引 
搜索 新闻 图书 ISBN 作者 音像 出版社 代办站 教材征订
购书 请登录 免费注册 客服电话:010-62510665 62510769
图书查询索引 版别索引 分类索引 中图法分类 专业分类 用途分类 制品类型 读者对象 自分类 最新 畅销 推荐 特价 教材征订
综合查询
说C解C - 中国高校教材图书网
相关类别图书
作 者:耿楠 聂艳明 李建良 冯妍
出版社:西安电子科技大学出版社
用 途:大学本科教材
中 图: 自动化技术、计算机技术
专 业:计算机/网络>软件工程/软件技术
制 品:图书
读 者:
最新可供书目

战争与文明:从路易十四到拿破仑

中国人民大学出版社


一本书读懂30部管理学经典

清华大学出版社


算法传播十讲

苏州大学出版社


人文职场英语(第2版)学生用书

上海外语教育出版社


数字时代的银龄行动——亚太地区老年人数字素养与技能现状调研

国家开放大学出版社

书名: 说C解C
ISBN:9787560655789 条码:
作者: 耿楠 聂艳明 李建良 冯妍  相关图书 装订:0
印次:1-1 开本:16开
定价: ¥46.00  折扣价:¥43.70
折扣:0.95 节省了2.3元
字数: 459千字
出版社: 西安电子科技大学出版社 页数: 316页
发行编号: 每包册数: 9
出版日期: 2021-04-02
小团购 订购 咨询 推荐 打印 放入存书架 相关评论

内容简介:
本书针对目前国内高校在C 语言程序设计教学中对部分重要语法细节的关注不足、对综合应用的分析不够深入、缺少工程化意识和忽略程序DEBUG 等问题,提出了程序设计“三观”的概念,即内存观、代码观和调试观,选取25 个实用性强的专题如DEBUG 的概念及使用、scanf() 函数及键盘缓冲区、数据类型的本质、浮点数及其使用、函数参数的单向值传递、泛型排序程序设计和第三方库的安装与使用等,以科技论文的撰写方式对所列专题进行了较为深入细致的讨论。本书图文并茂,实例丰富,语言活泼,以期为深入学习和掌握C 语言程序设计的读者提供指导和帮助,为承担C 语言教学的教师提供参考和启发。

作者简介:
 
章节目录:
第1 章 C 语言的“三观”和提问的智慧 1







1.1 C 语言的“三观” 1







1.1.1 内存观 1







1.1.2 代码观 2







1.1.3 调试观 2







1.2 提问的智慧 3







1.2.1 提问之前应该做的事情 3







1.2.2 提问模板 4







1.2.3 提问时的建议 5







1.2.4 提问者要谨记 6







1.3 小结 6







第2 章 开发环境安装与配置 7







2.1 安装MinGW 7







2.1.1 在线安装MinGW-w64 7







2.1.2 离线安装MinGW-w64 10







2.1.3 测试MinGW-w64 11







2.1.4 配置Windows 的Path 环境变量 12







2.1.5 命令行开发C 语言程序 14







2.1.6 “Makefile”编译/链接C 语言程序 18







2.2 开发IDE——Code::Blocks 21







2.2.1 下载Code::Blocks 21







2.2.2 安装Code::Blocks 22







2.2.3 配置Code::Blocks 24







2.2.4 测试Code::Blocks 26







2.3 小结 27







第3 章 Code::Blocks 的工程及其应用28







3.1 Code::Blocks 中的工程 28







3.1.1 创建工程 28







3.1.2 “cbp”工程文件 31







3.1.3 工程设置的变更 31







3.1.4 构建工程 33







3.1.5 其它相关文件 34







3.2 在工程中添加/删除文件 35







3.2.1 为工程新建文件 35







3.2.2 为工程添加文件 36







3.2.3 为工程删除文件 38







3.3 工作区39







3.4 小结40







第4 章 DEBUG 的概念及其使用 41







4.1 DEBUG 的概念 41







4.2 在Code::Blocks 中进行DEBUG 42







4.2.1 配置Debugger 42







4.2.2 DEBUG 菜单与工具栏 43







4.2.3 添加程序运行断点 44







4.2.4 DEBUG 窗口 46







4.2.5 查看程序运行状态 48







4.2.6 单步执行程序 48







4.2.7 修改并继续调试程序 49







4.2.8 结束程序调试 51







4.2.9 调试操作失效的处理 51







4.3 在命令行DEBUG 程序 52







4.3.1 在命令行编译链接程序 52







4.3.2 在命令行启动gdb 调试器调试程序 53







4.4 小结57







第5 章 scanf() 函数及键盘缓冲区 58







5.1 输入流和输入缓冲区的概念 58







5.2 数据输入实例分析 59







5.2.1 读入整型数据存入字符型变量 59







5.2.2 读入字符型数据存入整型变量 62







5.2.3 读入字符型数据存入字符型变量 63







5.2.4 格式串中的空格 64







5.2.5 scanf()与其它输入函数混合使用 67







5.3 删除scanf() 函数留下的'\n' 68







5.3.1 使用循环删除 68







5.3.2 使用正则表达式删除 68







5.4 小结69







第6 章 数据类型的本质 70







6.1 数据存储方式 70







6.1.1 整型数据 70







6.1.2 浮点型数据 70







6.2 基本数据类型 71







6.2.1 字符型char 71







6.2.2 整型int 73







6.2.3 浮点型float 74







6.2.4 空类型void 74







6.3 类型修饰符 75







6.3.1 修饰内存大小 75







6.3.2 修饰符号位 76







6.3.3 内存访问限制 77







6.4 sizeof() 运算符 77







6.5 衍生数据类型 78







6.6 类型转换 81







6.6.1 类型级别 82







6.6.2 隐式类型转换 82







6.6.3 强制类型转换 83







6.7 小结83







第7 章 类型错误引起的内存紊乱 84







7.1 内存非法访问 84







7.1.1 scanf() 函数格式串不匹配问题 84







7.1.2 内存状态分析 85







7.2 内存合法访问 86







7.2.1 调整变量声明顺序 87







7.2.2 合法内存的不合理使用 87







7.3 意外改写指针值 89







7.3.1 使用指针读入数据 89







7.3.2 指针值的变化 90







7.4 小结 92







第8 章 浮点数及其使用 93







8.1 浮点数 93







8.2 IEEE754 标准浮点数 93







8.2.1 规格化数 94







8.2.2 非规格化数 94







8.2.3 特殊数 94







8.3 IEEE754 标准浮点存储格式 94







8.3.1 单精度格式 95







8.3.2 双精度格式 95







8.3.3 双精度扩展格式(SPARC结构) 96







8.3.4 双精度扩展格式(x86) 96







8.4 使用浮点数时的注意事项 97







8.4.1 交换定律不适用浮点数 97







8.4.2 计算顺序影响结果 97







8.4.3 避免对两个实数做是否相等的判断 98







8.4.4 慎用浮点数作为循环变量 99







8.4.5 避免数量级相差很大的数直接加减 100







8.4.6 浮点数的乘除运算 100







8.4.7 尽量使用double 型以提高精度 100







8.4.8 浮点数的特殊数 101







8.5 小结 102







第9 章 “自顶向下,逐步求精”的程序设计方法 103







9.1 结构化程序设计 103







9.2 计数控制循环 103







9.3 哨兵控制循环 105







9.4 结构嵌套 108







9.5 算法的伪代码描述 111







9.6 小结 112







第10 章函数及其注意事项 113







10.1 函数概述 113







10.1.1 函数声明 113







10.1.2 函数定义 114







10.1.3 函数调用 117







10.1.4 函数的使用步骤和方法 117







10.2 常见问题 117







10.2.1 嵌套定义 118







10.2.2 “return”语句不完整 118







10.2.3 参数重复声明 119







10.2.4 函数头后有“;” 119







10.2.5 形参声明格式错误 119







10.2.6 返回值与返回类型不一致 120







10.2.7 期望函数返回多个值 120







10.2.8 期望函数参数双向传递 120







10.2.9 实参与形参不一致 121







10.2.10 函数定义代替函数声明 121







10.3 小结 122







第11 章 函数参数的单向值传递 123







11.1 值传递概述 123







11.2 交换两个变量的值 123







11.2.1 直接交换 123







11.2.2 使用普通形参变量通过函数实现交换 124







11.2.3 使用指针形参变量通过函数实现交换 125







11.2.4 使用指针形参变量通过交换地址实现交换 126







11.3 DEBUG 及代码剖析 127







11.3.1 普通变量作为形参 127







11.3.2 指针变量作为形参 129







11.3.3 指针变量作为形参但交换地址 132







11.4 小结 133







第12 章 递归函数 134







12.1 递归的概念 134







12.2 递归范式 134







12.3 数学函数 135







12.3.1 阶乘函数 135







12.3.2 求幂函数 136







12.3.3 求最大公约数函数 137







12.3.4 求斐波那契数列 138







12.4 递归跳跃的信任 138







12.5 其它递归示例 139







12.5.1 探测回文 139







12.5.2 折半查找 140







12.6 避免递归中常见的错误 141







12.7 小结 142







第13 章 一维数组的本质 143







13.1 一维数组的概念 143







13.2 数组的声明 143







13.3 数组名的内涵 145







13.4 “[]”运算符和数组下标引用 146







13.5 “&a”“a”和“&a[0]” 147







13.6 数组惯用法 148







13.6.1 确定数组元素的长度 148







13.6.2 直接操作数组内存 149







13.6.3 数组作为函数的形参 149







13.6.4 字符串常量——另类数组 152







13.7 小结 153







第14 章 多维数组的本质 154







14.1 多维数组的声明 154







14.2 多维数组数组名的层级关系 155







14.3 多维数组数组名的内涵 156







14.4 数组类型 157







14.5 “a”“&a”“a[0]”“&a[0]” 和“&a[0][0]” 158







14.6 指向数组的指针 159







14.7 多维数组惯用法 161







14.7.1 二维数组的一维数组操作模式 161







14.7.2 直接操作数组内存 163







14.7.3 作为函数的形参 163







14.8 小结 166







第15 章 二级指针和二维数组 167







15.1 概述 167







15.2 二级指针指向二维数组 167







15.3 通过二级指针操作二维数组 170







15.4 小A9900706E4结 172







第16 章指针 173







16.1 指针声明 173







16.2 指针的内涵 174







16.2.1 指针的类型 174







16.2.2 指针所指向的对象的类型 175







16.2.3 指针的值 176







16.2.4 指针本身所占据的内存区 176







16.3 指针的运算 176







16.3.1 指针加上或减去一个整数 176







16.3.2 两个指针相减 179







16.3.3 指针的比较 179







16.4 & 和* 运算符 180







16.5 指针和const 180







16.6 函数指针 181







16.7 小结 188







第17 章 结构体类型 189







17.1 结构体类型概述 189







17.1.1 结构体类型的定义 189







17.1.2 声明结构体类型的变量 190







17.1.3 结构体成员的基本操作 191







17.1.4 结构体类型变量的整体赋值 191







17.1.5 结构体类型的综合应用实例 194







17.1.6 结构体常量(C99) 196







17.1.7 结构体类型的其它使用方式 197







17.1.8 使用“typedef”为结构体类型定义别名 197







17.2 包含自身结构体地址类型的指针成员 198







17.3 小结 202







第18 章 结构体变量的浅拷贝和深拷贝 203







18.1 指针成员 203







18.2 动态内存分配 204







18.3 结构体变量的销毁 205







18.4 浅拷贝 205







18.4.1 直接赋值 205







18.4.2 悬空指针 207







18.5 深拷贝 208







18.5.1 重新分配内存空间 208







18.5.2 内存的独立销毁 209







18.5.3 深拷贝的调用时机 210







18.6 小结 210







第19 章 在结构体中使用函数指针 211







19.1 函数指针的概念 211







19.2 在结构体中使用函数指针 212







19.3 小结 220







第20 章动态内存分配与管理 221







20.1 野指针 221







20.2 void *——万能指针 221







20.3 数据段、代码段、栈和堆 222







20.4 内存分配与管理函数 223







20.5 动态数组 224







20.5.1 动态一维数组 224







20.5.2 动态二维数组 226







20.5.3 柔性数组(C99) 230







20.6 内存使用的常见错误及对策 231







20.6.1 结构体指针成员未初始化 231







20.6.2 未能分配足够内存 233







20.6.3 分配的内存太小 233







20.6.4 内存分配成功但未初始化 234







20.6.5 对函数的入口进行校验 234







20.7 小结 236







第21 章 用“void *”指针实现泛型和多态编程 237







21.1 多态性的概念 237







21.2 结构体和单向链表 237







21.3 函数指针 238







21.4 泛型链表 240







21.5 异质链表 242







21.6 小结 248







第22 章 泛型排序程序设计 249







22.1 泛型程序设计 249







22.1.1 泛型数据交换函数 249







22.1.2 泛型数据比较函数 250







22.2 泛型排序 251







22.2.1 qsort 函数 251







22.2.2 泛型冒泡排序 253







22.3 用指针数组实现字符串排序 254







22.3.1 基本原理 254







22.3.2 比较函数设计 254







22.3.3 实现字符串排序 255







22.4 小结 258







第23 章 变长形参列表函数的设计与使用 259







23.1 变长形参列表函数 259







23.2 头文件 259







23.2.1 va_list 变量类型 260







23.2.2 va_start() 宏 260







23.2.3 va_arg() 宏 260







23.2.4 va_end() 宏 260







23.2.5 变长形参列表函数的基本框架 261







23.3 实例分析 262







23.3.1 求平均值 262







23.3.2 按指定格式输出数据 263







23.3.3 类型格式串 264







23.4 小结 266







第24 章 PCRE2 正则表达式第三方库267







24.1 简介 267







24.2 第三方库概述 267







24.2.1 第三方库的构成 267







24.2.2 第三方库的使用配置 268







24.3 构建第三方库 268







24.3.1 下载PCRE2 第三方库 268







24.3.2 构建PCRE2 第三方库 269







24.4 在Code::Blocks 中使用静态PCRE2 第三方库 273







24.5 在Code::Blocks 中使用动态第三方库 281







24.5.1 构建动态PCRE2 第三方库282







24.5.2 使用动态PCRE2 第三方库282







24.6 通过Code::Blocks 的环境变量使用第三方库 285







24.7 通过命令行使用第三方库 286







24.8 利用“Makefile”使用第三方库288







24.9 第三方库调用方式总结 289







24.10 小结 290







第25 章CGraph2D 图形库 291







25.1 图形库概述 291







25.1.1 功能与结构 292







25.1.2 坐标系统与函数命名 292







25.2 图形库的配置与使用 293







25.2.1 配置环境变量 293







25.2.2 为Code::Blocks 配置构建参数 295







25.2.3 样例代码 298







25.2.4 运行机制 299







25.3 函数使用说明 300







25.4 小结 300







后记302
精彩片段:
 
书  评:
 
其  它:
 

专业分类
经济学  公共课与文化课  政治法律  教育学  文学艺术  历史学  理学  工学  农学  医学  计算机/网络  管理学  其他  外语  哲学
用途分类
大学本科教材 大学本科以上教材 大学教学参考书 考研用书 自学考试教材 高职高专教材 中职、中专类教材 中小学教材、教辅
电大用书 学术专著 考试辅导类图书 工具书 培训教材 其他
中图法分类
医药、卫生  语言、文字  工业技术  交通运输  航空、航天  环境科学、安全科学  综合性图书  文学  艺术  历史、地理  自然科学总论  数理科学和化学  天文学、地球科学  生物科学  哲学、宗教  社会科学总论  政治、法律  军事  经济  马克思主义、列宁主义、毛泽东思想、邓小平理论  文化、科学、教育、体育  农业科学
版别索引
北京大学出版社 北京师范大学出版社 清华大学出版社 中国人民大学出版社
北京工业大学出版社 北京大学医学出版社 北京航空航天大学出版社 北京交通大学出版社
北京理工大学出版社 北京体育大学出版社 北京邮电大学出版社 中央音乐学院出版社
北京语言大学出版社 对外经济贸易大学出版社 国家开放大学出版社 首都经济贸易大学出版社
首都师范大学出版社 外语教学与研究出版社
更多...
网上购书指南
一、我的账户
用户注册
用户登录
修改用户密码
修改个人资料
二、查询图书
快速查询
分类查询
综合查询
三、订购图书
第一步点击“订购”按钮
第二步确定收货人信息
第三步提交订单
存书架
四、邮购方式
普通邮寄
特快专递
五、付款方式
支付宝
邮局汇款
六、我的订单
查询订单
修改或取消订单
联系我们

| 我的帐户 | 我的订单 | 购书指南| 关于我们 | 联系我们 | 敬告 | 友情链接 | 广告服务 |

版权所有 © 2000-2002 中国高校教材图书网    京ICP备10054422号-7    京公网安备110108002480号    出版物经营许可证:新出发京批字第版0234号
经营许可证编号:京ICP证130369号    技术支持:云因信息