具体描述
本书根据计算机专业C语言程序设计课程的教学大纲编写,全书共分9章,分别介绍了C语言概述、数
据类型及其运算、选择语句和循环语句、数组、指针、函数、结构体和共用体、预处理和位段、文件。每
章由基本知识点和例题分析组成,前者高度概括和疏理了本章应重点掌握的相关知识;后者详尽地解析精
选的典型习题。本书将使学生充分掌握C语言程序设计课程求解问题的技巧与方法,加强学生对基本概念
的理解,切实提高使用C语言解决问题的程序设计能力。
本书内容丰富,习题覆盖面广,不仅可以作为计算机专业本、专科C语言程序设计课程的学习参考书,
也可作为计算机水平考试和等级考试者的参考书。
作者简介
李春葆,1986年7月毕业于华中工学院(现为华中科技大学)计算机软件专业,1989年7月毕业于中国科学院沈阳自动化研究所,1989年7月分配到武汉大学计算机系工作至今,2000年评为教授。主要研究方向:数据挖掘和算法设计。先后主持和参加3S系统集成关键技术的研究(国家自然科学基金重点科技攻关项目,49631050)、城市地理信息系统标准规范的研究(国家测绘局项目)、湖北省财政厅三查管理信息系统、湖北省财政厅外汇管理信息系统、湖北省财政厅财政监督管理信息系统、武汉英华ERP系统等项目。在武汉大学学报、华中理工大学学报、计算机工程与应用、计算机应用研究等刊物上发表论文40余篇,在清华大学出版社、人民邮电出版社和机械工业出版社等出版社出版教材和论著60余本。
目录信息
知识点:C语言的基本概念 1
要点归纳 1
例题解析 4
第2章 数据类型及其运算 8
2.1 知识点1:数据类型 8
2.1.1 要点归纳 8
2.1.2 例题解析 22
2.2 知识点2:数据输入与输出 36
2.2.1 要点归纳 36
2.2.2 例题解析 40
第3章 选择语句和循环语句 47
3.1 知识点1:选择语句 47
3.1.1 要点归纳 47
3.1.2 例题解析 49
3.2 知识点2:循环语句 59
3.2.1 要点归纳 59
3.2.2 例题解析 61
3.3 知识点3:穷举法 80
3.3.1 要点归纳 80
3.3.2 例题解析 82
第4章 数 组 87
4.1 知识点1:数组的基本概念 87
4.1.1 要点归纳 87
4.1.2 例题解析 90
4.2 知识点2:字符数组和字符串数组 101
4.2.1 要点归纳 101
4.2.2 例题解析 104
4.3 知识点3:数组的排序 114
4.3.1 要点归纳 114
4.3.2 例题解析 119
4.4 知识点4:数组的查找 124
4.4.1 要点归纳 124
4.4.2 例题解析 125
第5章 指 针 127
5.1 知识点1:指针的概念 127
5.1.1 要点归纳 127
5.1.2 例题解析 129
5.2 知识点2:指针和数组 133
5.2.1 要点归纳 133
5.2.2 例题解析 139
5.3 知识点3:指针数组和多级指针 157
5.3.1 要点归纳 157
5.3.2 例题解析 158
第6章 函 数 167
6.1 知识点1:函数的基本概念 167
6.1.1 要点归纳 167
6.1.2 例题解析 168
6.2 知识点2:函数和变量的存储类别 175
6.2.1 要点归纳 175
6.2.2 例题解析 178
6.3 知识点3:函数的数据传递 184
6.3.1 要点归纳 184
6.3.2 例题解析 186
6.4 知识点4:指针型函数 203
6.4.1 要点归纳 203
6.4.2 例题解析 203
6.5 知识点5:指向函数的指针 207
6.5.1 要点归纳 207
6.5.2 例题解析 208
6.6 知识点6:递归函数 210
6.6.1 要点归纳 210
6.6.2 例题解析 212
6.7 知识点7:命令行参数 215
6.7.1 要点归纳 215
6.7.2 例题解析 215
第7章 结构体与共用体 218
7.1 知识点1:结构体类型和结构体变量 218
7.1.1 要点归纳 218
7.1.2 例题解析 221
7.2 知识点2:结构体数组和结构体指针 226
7.2.1 要点归纳 226
7.2.2 例题解析 228
7.3 知识点3:函数之间结构体变量的数据传递 237
7.3.1 要点归纳 237
7.3.2 例题解析 237
7.4 知识点4:结构体的应用——链表 242
7.4.1 要点归纳 242
7.4.2 例题解析 244
7.5 知识点5:共用体 254
7.5.1 要点归纳 254
7.5.2 例题解析 255
7.6 知识点6:枚举类型 261
7.6.1 要点归纳 261
7.6.2 例题解析 262
7.7 知识点7:用户定义类型 264
7.7.1 要点归纳 264
7.7.2 例题解析 264
第8章 预编译处理和位段 268
8.1 知识点1:宏 268
8.1.1 要点归纳 268
8.1.2 例题解析 269
8.2 知识点2:条件编译 277
8.2.1 要点归纳 277
8.2.2 例题解析 278
8.3 知识点3:文件包含 280
8.3.1 要点归纳 280
8.3.2 例题解析 280
8.4 知识点4:位段 281
8.4.1 要点归纳 281
8.4.2 例题解析 282
第9章 文件 284
9.1 知识点1:文件概述 284
9.1.1 要点归纳 284
9.1.2 例题解析 286
9.2 知识点2:文件的操作 289
9.2.1 要点归纳 289
9.2.2 例题解析 292
9.3 知识点3:文件的定位和随机读/写操作 308
9.3.1 要点归纳 308
9.3.2 例题解析 309
附录A C语言常见错误 323
附录B 近几年全国计算机等级考试二级C试题 328
参考文献 338
· · · · · · (收起)
读后感
用户评价
我是一名刚从其他编程语言转投C语言的开发者,当时对C的内存控制感到十分头疼,几乎每次编译都伴随着各种莫名其妙的段错误。这本书给我的感觉是,它不仅仅是教你“怎么写代码”,更是在教你“为什么这么写会出问题”。它的解析部分处理得非常细腻,尤其是在讲解宏定义展开和预处理指令时,简直像是给我们的思维装上了一个X光机。我记得其中有一段关于`volatile`关键字的题目,它深入探讨了多线程环境下变量被优化可能导致的竞态条件,并给出了一个非常优雅的解决方案。这种对细节的执着,让我在阅读时不得不放慢速度,细细品味每一个分号和每一个关键字背后的含义。这种强迫自己慢下来的学习过程,恰恰是我目前最需要的。如果非要挑刺,我希望出版社能在排版上稍微改进一下,某些大型代码块的缩进在小屏幕上阅读时,会稍微影响代码流的顺畅性。
说实话,我抱着一种期待又略带怀疑的心态开始接触这本书的。我之前用过好几本市面上的“名著”,很多都是把大学课本里的例子换个说法又拿出来充数,缺乏真正的实战价值。但这本习题册在这一点上做得还算厚道。它的题目设计思路很贴近实际工程中的某些常见模块编写,比如文件I/O的处理、字符串的自定义解析等,这些内容在理论教材里往往一带而过,但在实际工作中却是绕不开的坎。我特别喜欢它在面向对象思想的C语言实现方面的讨论,虽然C语言本身并非原生支持OOP,但书中展示的如何用结构体和函数指针模拟多态和继承的那些“小技巧”,简直让人茅塞顿开。这些技巧的处理方式非常巧妙,体现了作者对C语言特性的深刻理解。如果说有什么遗憾,那就是某些进阶章节的注释略显简略,偶尔需要结合其他资料才能完全消化题目背后的思想精髓。不过,瑕不掩瑜,它确实提供了一个超越初级语法的学习平台。
这本习题集我断断续续用了快半年了,说实话,它在很多方面确实提供了扎实的练习基础。比如,对于指针和内存管理这一块,书中给出的题目深度恰到好处,既不会像某些参考书那样晦涩难懂,又避免了过于基础的简单重复。尤其欣赏的是,对于一些经典的算法实现,比如快速排序或链表操作,它提供的多种解法思路非常清晰,不仅仅是给出标准答案,还会对不同实现方式的效率进行简要的对比分析。我记得有一次我在一个复杂的结构体操作上卡住了很久,后来翻到书里的对应章节,通过它提供的图示和分步解析,我一下子就明白了数据结构之间的关系是如何在C语言层面体现的。这种引导式的学习路径,对于自学编程语言的初学者来说,简直是雪中送炭。我个人感觉,如果能把书中的部分代码实现逻辑再进一步细化,尤其是在涉及底层系统调用的那几章,体验感会更完美。总的来说,作为一本进阶练习簿,它的价值是毋庸置疑的,它更像是一位经验丰富的老教师,在你遇到瓶颈时,递给你一把精准开启难题的钥匙。
作为一本习题解析,我最看重的是其解析的深度和广度,而这本教材在这方面做得相当出色。它不满足于教会你如何通过编译,而是深入到操作系统对代码的理解层面。比如,在涉及到I/O多路复用(如`select`或`poll`的C语言实现)的练习中,它的注释不仅仅解释了函数调用,还简要提及了内核如何调度这些等待事件,这极大地拓宽了我的视野,让我意识到C语言编程的背后是与整个系统紧密相连的。这种跨领域的知识融合,是很多纯粹的编程练习册所欠缺的。此外,书中所选用的标准库函数例子也非常贴合现代编程规范,很少使用那些已经被弃用或存在安全隐患的函数写法,体现了作者对安全编程的重视。如果说有什么可以改进的地方,那就是希望能在附录中增加一个常见错误码查询表,这样在遇到运行时错误时,可以更快速地进行初步排查。总而言之,这本书是一份经过精心打磨的学习工具,是巩固C语言内功的绝佳选择。
这本书的整体风格偏向于严谨的学院派,但又不失对实际应用的关注,这是一种很微妙的平衡。我发现它在涉及数据结构和算法的应用题时,很少直接给出最优解,而是设计一系列递进式的子问题,引导读者自己去发现并优化性能瓶颈。这种“循序渐进”的解题过程,比直接看到一个完美的解答要更有助于知识的内化。例如,在处理树形结构遍历时,它没有直接展示递归或非递归的最终版本,而是先让你实现一个基础的层序遍历,然后通过增加一个条件限制,让你自然而然地思考如何转化为更复杂的结构。对我来说,这本教材更像是提供了一个“脚手架”,让学习者自己搭建起知识的宫殿。当然,对于那种追求快速入门的读者来说,可能前期的铺垫会略显冗长,需要一定的耐心才能看到核心价值的爆发点。
错误满天飞,看着心累
很多错误,讲解也很不到位,很差的一本书
很多错误,讲解也很不到位,很差的一本书
很多错误,讲解也很不到位,很差的一本书
很多错误,讲解也很不到位,很差的一本书