当前位置:当前位置:主页 > 计算机电子书 > C++ > C语言 pdf电子书
C语言编程思想与方法

C语言编程思想与方法 PDF 高清完整版

  • 更新:2022-04-10
  • 大小:39.5 MB
  • 类别:C语言
  • 作者:尹宝林
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 学习心得
  • 相关内容

C语言编程思想与方法》是由机械工业出版社出版的一本关于C语言方面的书籍,作者是尹宝林,主要介绍了关于C语言、编程思想方面的知识内容,目前在C语言类书籍综合评分为:7.5分。

书籍介绍

内容简介

本书是一本讲授使用C语言进行程序设计的实用参考书。它以C语言为工具,讲授程序设计的过程和方法。从C语言和C程序的基本要素以及程序设计的基本方法开始,循序渐进地引入对程序设计专业化的要求和相关的知识。从增强读者的感性认识入手,通过多角度对例题的分析,示范对关键知识和技术的运用,通过对关键内容在不同层次上的适当重复,深化读者对概念的理解和掌握。

作者简介

尹宝林,1973年毕业于北京航空学院(现更名为北京航空航天大学)计算机专业,1984年获英国爱丁堡大学博士学位。曾任北京航空航天大学计算机系教授、博士生导师。从事计算机专业教学和科研工作多年,主讲过“C语言程序设计”“高级语言程序设计”“UNIX程序设计环境”“计算机图形学”“图像处理”等课程,其中“高级语言程序设计”被评为北京市精品课程。主编过《离散数学》《C程序设计导引》等教材。参加全国信息学奥林匹克(NOI)活动的组织与指导工作,曾任NOI科学委员会副主席。

目录

  • 作者自序
  • 第0章引言1
  • 第1章程序设计的基本方法7
  • 1.1程序设计的基本过程7
  • 1.2问题分析9
  • 1.2.1对程序功能的要求9
  • 1.2.2对程序性能的要求10
  • 1.2.3程序的使用方式和环境11
  • 1.2.4程序的错误处理12
  • 1.2.5程序的测试13
  • 1.2.6问题分析的结果13
  • 1.3方案设计18
  • 1.3.1求解思路18
  • 1.3.2计算模型21
  • 1.3.3算法分类24
  • 1.3.4算法和数据结构的选择26
  • 1.3.5算法的检验33
  • 1.4编码:从算法到代码34
  • 1.4.1代码的结构34
  • 1.4.2编码的质量37
  • 1.4.3代码的可维护性39
  • 1.4.4代码中的注释39
  • 1.4.5代码的检查40
  • 1.4.6代码中常见的错误40
  • 1.5测试和调试42
  • 1.5.1调试的基本方法43
  • 1.5.2故障的检查、确认和修改44
  • 1.5.3常见的故障类型和调试方法46
  • 1.5.4调试数据的设计和使用48
  • 1.5.5调试数据和标准输入/输出的重新定向48
  • 1.5.6调试工具50
  • 1.5.7测试和调试中常见的问题50
  • 1.6手册的使用52
  • 第2章数值的表示和计算53
  • 2.1整型数据类型53
  • 2.1.1有符号数和无符号数54
  • 2.1.2无符号数和标志位56
  • 2.1.3整型的截断与扩展56
  • 2.1.4整型计算的溢出和判断58
  • 2.1.5整除所引起的误差60
  • 2.1.6整型数据的字节序和尾端62
  • 2.2浮点数据类型65
  • 2.2.1浮点数据的表示方法65
  • 2.2.2有效数字和位当量67
  • 2.2.3浮点数的比较70
  • 2.2.4浮点数值计算中的上溢和下溢72
  • 2.3数值计算中的类型转换75
  • 2.3.1基本类型转换和数据宽度75
  • 2.3.2强制类型转换77
  • 2.3.3char的符号类型79
  • 2.3.4变量符号类型的判断80
  • 2.4按位操作80
  • 2.4.1移位操作81
  • 2.4.2标志位的设置、检测和清除82
  • 2.4.3常用的位操作模式84
  • 2.4.4位操作应用举例85
  • 2.5数值计算的速度88
  • 第3章指针、数组、结构和类型90
  • 3.1指针变量91
  • 3.1.1指针变量的定义91
  • 3.1.2指针的类型93
  • 3.1.3指针运算94
  • 3.1.4指针的强制类型转换95
  • 3.1.5不合法的指针运算97
  • 3.1.6指针与整数98
  • 3.1.7指针的增量运算和减量运算99
  • 3.1.8作为函数参数的指针100
  • 3.2指针和一维数组100
  • 3.2.1指针和数组的互换100
  • 3.2.2动态一维数组103
  • 3.2.3数组复制与指针赋值106
  • 3.2.4变量限制符const108
  • 3.2.5数组的负数下标109
  • 3.3二维数组和一维指针数组110
  • 3.3.1作为参数的二维数组110
  • 3.3.2二维数组和指针111
  • 3.3.3二维数组和一维指针数组的对比113
  • 3.3.4指针数组和命令行参数116
  • 3.3.5二维数组的动态分配118
  • 3.4函数指针121
  • 3.4.1函数指针变量的定义122
  • 3.4.2函数指针变量的使用123
  • 3.4.3函数指针数组的使用128
  • 3.5结构129
  • 3.5.1结构类型的定义129
  • 3.5.2结构成员的访问131
  • 3.5.3结构类型的嵌套定义133
  • 3.5.4结构的自引用134
  • 3.5.5结构类型与函数的参数和返回值134
  • 3.6复杂类型的解读135
  • 3.6.1变量定义中的复杂类型说明136
  • 3.6.2强制类型转换中的复杂类型139
  • 3.6.3类型定义语句和复杂类型的定义139
  • 第4章程序中的递归142
  • 4.1递归的定义142
  • 4.2递归函数的执行149
  • 4.3递归函数的设计150
  • 4.4递归的优点和缺点155
  • 4.5递归函数的效率158
  • 4.6递归函数的使用161
  • 4.6.1适宜使用递归的情况161
  • 4.6.2不适宜使用递归的情况169
  • 4.7递归函数效率的改进170
  • 4.7.1尾递归函数的非递归化170
  • 4.7.2带存储机制的递归171
  • 4.7.3一般递归函数的非递归化172
  • 第5章搜索176
  • 5.1搜索的目标和基本过程176
  • 5.2深度优先搜索178
  • 5.2.1深度优先搜索的基本算法179
  • 5.2.2回溯搜索182
  • 5.3广度优先搜索185
  • 5.4重复节点的判断188
  • 5.5带深度控制的广度优先搜索195
  • 5.6节点的编码和搜索效率199
  • 第6章常用函数和函数库209
  • 6.1静态链接和动态链接209
  • 6.1.1静态链接209
  • 6.1.2动态链接210
  • 6.2库函数的使用211
  • 6.2.1标准库函数的头文件212
  • 6.2.2标准函数库文件的使用212
  • 6.2.3错误信息函数和变量213
  • 6.3数据输入输出函数214
  • 6.3.1文件描述字和字符流215
  • 6.3.2文件的打开、创建和关闭217
  • 6.3.3文件数据的二进制格式读写220
  • 6.3.4读写操作中的定位223
  • 6.3.5基础读写与字符流读写的效率比较225
  • 6.3.6字符流的冲刷227
  • 6.3.7文件的属性227
  • 6.4字符类型函数和字符串操作函数230
  • 6.4.1字符类型函数230
  • 6.4.2字符串操作函数231
  • 6.5时间函数233
  • 6.5.1日历时间233
  • 6.5.2程序运行时间235
  • 6.6随机数函数235
  • 6.6.1基本随机数函数235
  • 6.6.2均匀分布随机数的生成236
  • 6.6.3非均匀连续分布随机数的生成237
  • 6.6.4离散分布随机数的生成238
  • 第7章程序的优化241
  • 7.1优化的作用和意义241
  • 7.2优化的基本过程242
  • 7.2.1运算时间和存储空间242
  • 7.2.2优化可能性的判断243
  • 7.2.3程序运行的整体计时244
  • 7.2.4程序运行的分析计时和程序运行剖面246
  • 7.3运行效率的改进策略和方法249
  • 7.3.1调整代码249
  • 7.3.2改进算法254
  • 7.3.3空间换时间258

资源获取

相关资源

网友留言