C程序设计思想与方法
作者 : 尹宝林
出版日期 : 2009-01-01
ISBN : 7-111-25495-9
定价 : 36.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 335
开本 : 16开
原书名 : Programming in C
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

本书主要特色
  本书围绕程序设计的思想和方法组织教学内容,把C语言作为讲解程序设计的工具,把教学的重点从C语言本身转移到程序设计的思路和方法以及使用C语言编程上来,把讲授语言的概念转变为讲授语言的运用,把对概念的讲授由抽象的分析和讲解转变为通过实例和经验的学习和运用。
  本书作者根据学生对新知识学习、认知的规律,从C语言和C程序的基本要素以及程序设计的基本方法开始,循序渐进地引入对程序设计专业化的要求和相关的知识;从增强学生的感性认识入手,通过多角度的对例题的分析,示范对关键知识和技术的运用,通过对关键内容在不同层次上的适当重复,深化学生对概念的理解和掌握。本书精选的例题和练习题,在功能、知识和技术上覆盖了从语言入门到实用工具多个层面,有助于学生掌握专业化的编程技能,养成专业化的编程习惯。
  本书作者专门设计和实现了基于Web的C程序练习/评测系统,为学生提供具有及时监控和反馈环节的实践环境,为本书的练习题提供联网的实时评测。

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

图书特色

封底文字

本书主要特色 本书围绕程序设计的思想和方法组织教学内容,把C语言作为讲解程序设计的工具,把教学的重点从C语言本身转移到程序设计的思路和方法以及使用C语言编程上来,把讲授语言的概念转变为讲授语言的运用,把对概念的讲授由抽象的分析和讲解转变为通过实例和经验的学习和运用。 本书作者根据学生对新知识学习、认知的规律,从C语言和C程序的基本要素以及程序设计的基本方法开始,循序渐进地引入对程序设计专业化的要求和相关的知识;从增强学生的感性认识入手,通过多角度的对例题的分析,示范对关键知识和技术的运用,通过对关键内容在不同层次上的适当重复,深化学生对概念的理解和掌握。本书精选的例题和练习题,在功能、知识和技术上覆盖了从语言入门到实用工具多个层面,有助于学生掌握专业化的编程技能,养成专业化的编程习惯。 本书作者专门设计和实现了基于Web的C程序练习/评测系统,为学生提供具有及时监控和反馈环节的实践环境,为本书的练习题提供联网的实时评测。 作者简介 尹宝林 1973年毕业于北京航空学院计算机专业,1984年获英国爱丁堡大学博士学位。现任北京航空航天大学计算机系教授、博士生导师。从事计算机专业教学和科研工作多年,曾主讲“C语言程序设计”、“高级语言程序设计”、“UNIX程序设计环境”、“计算机图形学”、“图像处理”等课程,其中“高级语言程序设计”被评为北京市精品课程。主编过《离散数学》等教材。参加全国信息学奥林匹克(NOI)活动的组织与指导工作,任全国信息学奥林匹克科学委员会副主席。

图书序言

近20年里,计算机学科有了很大的发展,人们普遍认为,“计算机科学”这个名字已经难以涵盖该学科的内容,因此,改称其为计算学科(Computing Discipline)。在我国本科教育中,1996年以前曾经有计算机软件专业和计算机及应用专业,之后被合并为计算机科学与技术专业。2004年以来,教育部计算机科学与技术专业教学指导分委员会根据我国计算机专业教育和计算学科的现状,为更好地满足社会对计算机专业人才的需求,发布了《高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》(以下简称《规范》),提出在计算机科学与技术专业名称之下,构建计算机科学、计算机工程、软件工程和信息技术四大专业方向。《规范》中四大专业方向的分类,在于鼓励办学单位根据自己的情况设定不同的培养方案,以培养更具针对性和特色的计算机专业人才。
  为配合《规范》的实施,落实中央“提高高等教育质量”的精神,我们规划了“面向计算机科学与技术专业规范系列教材”。本系列教材面向全新的计算学科,针对我国高等院校逐步向新的计算机科学与技术专业课程体系过渡的趋势编写,在知识选择、内容组织和教学方法等方面满足《规范》的要求,并与国际接轨。本套教材具有以下几个特点:
  (1) 体现《规范》的基本思想,满足其课程要求。为使教材符合我国高等院校的教学实际,编委会根据《规范》的要求规划本套教材,广泛征集在国内知名高校中从事一线教学和科研工作、经验丰富的优秀教师承担编写任务。
  (2) 围绕“提高教育质量”的宗旨开发教材。为了确保“精品”,本系列教材的出版不走盲目扩大的路子,每本教材的选题都将由编委会集体论证,并由一名编委担任责任编委,最大程度地保证这套教材的编写水准和出版质量。
  (3) 教材内容的组织科学、合理,体系得当。本套教材的编写注重研究学科的新发展和新成果,能够根据不同类型人才培养需求,合理地进行内容取舍、组织和叙述,还精心设计了配套的实验体系和练习体系。
  (4) 教材风格鲜明。本套教材按4个专业方向统一规划,分批组织,陆续出版。教材的编写体现了现代教育理念,探讨先进的教学方法。
  (5) 开展教材立体化建设。根据需要配合主教材的建设适时开发实验教材、教师参考书、学生参考书、电子参考资料等教辅资源,为教学实现多方位服务。
我们衷心希望本系列教材能够为我国高等院校计算机科学与技术等专业的教学作出贡献,欢迎广大读者广为选用。
  “面向计算机科学与技术专业规范系列教材”编委会

作者简介

尹宝林:暂无

图书目录

出版者的话
序言
作者自序
教学建议
例题索引


第0章引言1
第1章C语言和C程序的基本
要素5
11C语言概述5
12C程序的开发过程6
13C程序的基本结构8
14调试初步——语法错误的定位10
15算术运算和表达式11
16常量和变量11
161数字常量12
162字符常量13
163字符串常量13
164符号常量14
165枚举常量15
166变量15
167变量的赋值和初始化17
168一维数组18
169字符数组和字符串19
1610二维数组20
17分支和条件语句20
171关系运算符和逻辑
运算符20
172运算符的优先级22
173从自然语言到逻辑
表达式23
174条件语句24
175条件表达式的类型25
176条件语句的嵌套和级联25
177使用条件语句时的注意
事项26
178多路选择和switch语句27
18循环和循环语句30
181while语句30
182for语句31
183do while语句33
184循环语句中的跳转34
19函数37
191函数的结构37
192函数的调用38
193函数的参数传递39
194代码的封装40
110输入和输出41
1101文件41
1102标准输入/输出文件41
1103常用的输入/输出函数42
111C语言的书写格式46
1111换行和空行47
1112缩进47
1113空格48
1114注释48
习题49
第2章程序设计的基本方法51
21程序设计的基本过程51
22问题分析53
221对程序功能的要求53
222对程序性能的要求53
223程序的使用方式和环境54
224程序的错误处理55
225程序的测试55
226问题分析的结果56
23方案设计60
231解题思路60
232计算模型62
233算法分类64
234算法和数据结构的选择66
235算法的检验72
24编码:从算法到代码72
241代码的结构73
242编码的质量75
243代码的可维护性77
244代码中的注释77
245代码的检查77
246代码中常见的错误78
25测试和调试80
251调试的基本方法80
252故障的检查、确认和
修改81
253常见的故障类型和调试
方法82
254调试数据的设计和
使用84
255调试数据和标准输入/
输出的重新定向84
256调试工具85
257测试和调试中常见的问题…86
26手册的使用87
习题88
第3章数值的表示和计算90
31整型数据类型90
311有符号数和无符号数91
312无符号数和标志位92
313整型的截断与扩展93
314整型计算的溢出和判断94
315整除所引起的误差95
316整型数据的字节序和
尾端97
32浮点数据类型100
321浮点数据的表示方法100
322有效数字和最低位当量101
323浮点数的比较104
324浮点数值计算中的上溢和
下溢105
33数值计算中的类型转换108
331基本类型转换和数据
宽度108
332强制类型转换110
333char的符号类型111
334变量符号类型的判断112
34按位操作112
341移位操作113
342标志位的设置、检测和
清除114
343常用的位操作模式115
344位操作应用举例117
35数值计算的速度118
习题120
第4章指针、数组、结构和类型122
41指针变量122
411指针变量的定义123
412指针的类型124
413指针运算125
414指针的强制类型转换126
415不合法的指针运算127
416指针与整数128
417指针的增量运算和减量
运算129
418作为函数参数的指针130
42指针和一维数组130
421指针和数组的互换130
422动态一维数组133
423数组复制与指针赋值135
424变量限制符const136
425数组的负数下标137
43二维数组和一维指针数组138
431作为参数的二维数组138
432二维数组和指针139
433二维数组和一维指针
数组141
434指针数组和命令行
参数143
435二维数组的动态分配144
44函数指针147
441函数指针变量的定义148
442函数指针变量的使用149
443函数指针数组的使用153
45结构154
451结构类型的定义154
452结构成员的访问155
453结构类型的嵌套定义157
454结构的自引用158
455结构类型与函数的参数和
返回值158
46复杂类型的解读159
461变量定义中的复杂类型
说明159
462强制类型转换中的复杂
类型162
463类型定义语句和
复杂类型的定义162
习题164
第5章程序中的递归166
51递归的定义166
52递归函数的执行171
53递归函数的设计172
54递归的优点和缺点176
55递归函数的效率179
56递归函数的使用181
561适宜使用递归的情况181
562不适宜使用递归的情况189
57递归函数效率的改进189
571尾递归函数的非递归化…189
572带存储机制的递归191
573一般递归函数的
非递归化191
习题194
第6章搜索196
61搜索的目标和基本过程196
62深度优先搜索198
621深度优先搜索的基本算法…198
622回溯搜索201
63广度优先搜索204
64重复节点的判断205
65带深度控制的广度优先搜索211
66节点的编码和搜索效率215
习题223
第7章常用函数和函数库225
71静态链接和动态链接225
711静态链接225
712动态链接226
72库函数的使用227
721标准库函数的头文件227
722标准函数库文件的使用228
723错误信息函数和变量228
73数据输入输出函数229
731文件描述字和字符流230
732文件的打开、创建和
关闭232
733文件数据的二进制格式
读写234
734读写操作中的定位236
735基础读写与字符流读写的
效率比较238
736字符流的冲刷239
737文件的属性240
74字符类型函数和字符串操作
函数243
741字符类型函数243
742字符串操作函数244
75时间函数245
751日历时间245
752程序运行时间246
76随机数函数247
761基本随机数函数247
762均匀分布随机数的生成…247
763非均匀连续分布随机数的
生成248
764离散分布随机数的生成249
习题251
第8章程序的优化253
81优化的作用和意义253
82优化的基本过程254
821运算时间和存储空间254
822优化可能性的判断255
823程序运行的整体计时255
824程序运行的分析计时和
程序运行剖面257
83运行效率的改进策略和方法259
831调整代码259
832改进算法263
833空间换时间267
834改进数据结构269
835了解和适应硬件的特性271
836编译优化选项274
84空间效率的改进策略和方法274
841内存使用状况的检测275
842空间效率的改进方法275
习题278
第9章程序的风格、结构和组织280
91程序风格的要素280
92程序的描述281
921代码描述的层次281
922代码的函数封装281
923数据描述控制代码的
执行282
924表达式的描述288
925预处理和变量初始化的
使用289
926程序可靠性的设计要点290
927错误信息和日志文件291
928关于可移植性的考虑292
929程序中的注释293
93变量使用中的规则和风格294
931变量的命名294
932变量的命名空间和
作用域295
933变量的生存周期和静态
局部变量297
934全局变量的使用300
935变量与常量的比较301
94函数的参数和变长参数表302
941基于指针数组的变长参数
处理机制302
942变长参数表303
943函数的参数传递303
944变长参数表的基本处理
机制和工具304
945变长参数表和程序描述
风格306
946vprintf()函数族310
95缓冲区溢出311
96常用编译预处理命令的使用312
961文件的包含313
962宏313
963条件编译316
97源文件的拆分318
971源文件拆分的基本原则…319
972源文件的类型和后缀319
973避免h文件被重复引用…320
974静态全局变量320
975可执行文件的生成和
更新321
习题323
附录A标准头文件及其中的函数
说明和符号常量325
附录Bcc/gcc的常用命令
选项328
附录Cvi的基本操作命令329
附录DASCII编码表330
附录E使用Visual C++IDE创建
程序的基本操作
过程331
附录F函数printf()的常用描述符
及其含义333
参考文献335

教学资源推荐
作者: 辛运帏 饶一梅
作者: [美]克洛维斯· L.汤多(Clovis L. Tondo) 斯科特· E.吉姆佩尔(Scott E. Gimpel)著
作者: 【美】梁勇(Y.Daniel Liang) 著
作者: [美] 托尼·加迪斯(Tony Gaddis) 著
参考读物推荐
作者: [奥]斯特凡·鲍姆加特纳(Stefan Baumgartner) 著
作者: 戴艳 等编著
作者: 孟灿 编著