解析C程序设计

解析C程序设计"

作者:甘玲等
ISBN:9787302146285
定价:¥36
字数:千字
页数:
出版时间:2007.03.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

    本书运用解析法由浅入深全面介绍ANSI C,不仅涵盖C语言的基本知识,而且更加注重C程序应用实例的讲解。

    全书共9章,分为4个部分。第1~3章是C语言的入门部分,主要介绍C程序的基本组成、上机运行过程、简单程序设计、函数设计;第4、5章是程序设计基础部分,主要介绍控制结构程序设计和模块化结构程序设计;第6、7章是程序设计提高部分,主要介绍有关数组、指针、结构体等构造类型及文件处理的程序设计问题;第8、9章是综合程序设计部分,通过实例讲述解决问题的全过程。

    本书体系新颖,层次清晰,内容全面,逻辑性强,例题丰富,特别注重可读性和实用性,每章开头有重点难点提示,结尾有本章小结。各章节以问题入手,分析并讲述需要的知识点,然后再实现该问题,并通过思考题延伸知识点或引入新的问题,环环相扣,层层推进,充分体现解析法的精髓,达到通俗易懂、由浅入深的效果,培养迁移知识的能力。本书既是高等学校计算机及相关专业的理想教材,也是一本适合自学的教材,以及C程序开发人员的极佳参考书。

前言

    C语言是国内外长期并广泛使用的一种计算机语言,是计算机应用人员,特别是硬件产品开发和底层程序开发人员应该掌握的一种程序设计工具之一。C语言以其功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好而深得广大程序开发人员青睐。

    由于C语言具有语法结构简洁精妙、目标代码高效、便于描述算法、方便深入系统底层等特点,使得大多数操作系统都采用C语言开发,如:Windows、UNIX、Linux、Mac、OS/2等;还有很多新型的语言都是C语言衍生的,如:C++、Java、C#、J#、Perl等。可以这样说,掌握了C语言,就掌握了很多门语言,经过简单的学习,你就可以用这些新型的语言去开发程序了。目前社会招聘程序员,很多单位也将C语言作为最基本的开发工具进行考核。

    目前市面上大多数C语言教材或参考书都是传统编排模式,先是入门总体介绍、然后是基础知识、再是程序结构体系等,这种方法以知识点为主线,过于陷于语法细节,而忽略了程序本身的重要性。采用这种方法的结果是: 学完C语言,即便掌握了所有的知识点,却不能完整地解决一个实际问题。

    基于教学过程的实践和思考,更是为了培养读者的编程能力,笔者提出了这样一个问题:能不能打破传统教材和讲授模式,先以问题入手,提出解决问题的方法和思路,分析问题需要的知识点,然后根据需要讲解知识点,再解决提出的问题,最后举一反三,并以应用实例加以提升和巩固知识点,实现综合应用的目的。适合这样讲授的教材或参考书目前市面上很少,作者经过不断探讨并通过多年的解析法教学经验,撰写了《解析C程序设计》讲义,该讲义通过反复教学实践,最终形成了本教材。本书作为大学C语言教材,体系新颖、层次清晰、内容全面、逻辑性强、例题丰富,特别注重可读性和实用性,每章开头有重点难点提示、结束有本章小结。各章节以问题入手,分析并讲述需要的知识点,然后再实现该问题,并通过大量的思考题延伸知识点或引入新问题,环环相扣,层层推进,充分体现解析法的精髓,达到通俗易懂、由浅入深的效果,举一反三,培养迁移知识的能力。希望本教材能够弥补传统教材的不足,将学习知识与培养能力结合起来,提高读者的编程能力,最终能够达到实战的目的。

    本书通过解析法由浅入深全面介绍ANSI C,不仅涵盖C语言的基本知识,而且更加注重C程序应用实例的讲解。全书共分9章,内容包括: 绪论、简单C程序设计、自定义函数设计、控制结构程序设计、模块化程序设计、构造类型的程序设计、文件处理程序设计、高级程序设计、实用程序设计等。第1~3章是C语言的入门部分,主要介绍C程序的基本组成、上机运行过程和C语言的基本语法知识,包括主函数、关键字与标识符、基本数据类型、常量与变量、基本表达式、C语句、格式化输入输出、预处理命令,函数的定义、调用、返回及参数的传递、函数的声明,变量的作用域和变量的存储类型;第4、5章是程序设计基础部分,主要介绍C语言程序设计的基本思想和方法,包括算法的概念及描述方法、C程序的三种控制结构、函数的嵌套调用和递归调用等模块化结构程序设计;第6、7章是程序设计提高部分,主要介绍如何更灵活地进行C程序设计,包括数组、指针、结构体等构造类型及文件处理的程序设计问题;第8、9章是综合程序设计部分,第8章进一步介绍有关数组、指针、函数、结构体、文件之间的复杂关系的程序设计问题,第9章通过模拟龟兔赛跑程序、数据安全实用程序、电话本的实用程序、潜艇大战游戏程序、模拟计算机的程序、C语言与汇编语言的接口等较为简单的实例讲述解决问题的全过程。书后的附录提供了ASCII码表、C语法摘要、C库函数、Turbo C编程环境与程序调试及常见错误、Linux下的C程序运行等内容,供读者在学习时查阅。本书程序均在Turbo C 2.0环境下调试通过,也能在VC环境下运行。

    本书由甘玲和刘达明主编,唐雁副主编。甘玲编写第1~4章和附录A、B、C、E及附录D和第9章的部分内容,刘达明编写第5~6章及第7、8章部分内容,唐雁编写第7~8章,汪建、张璞、曾立梅编写第9章和附录D的部分内容,参加本书编写工作的还有张虹、朱江、邓东东。全书由甘玲、刘达明统稿和校稿,全书代码由朱江调试通过。在编写过程中,于显平、聂永萍、谢竞博、冯潇、唐晓军等老师提出了宝贵的意见和建议,在此表示感谢。同时,感谢冯博琴教授、邱玉辉教授、王国胤教授的指导和大力支持。感谢本书所列参考文献的作者!感谢为本书出版付出辛勤劳动的清华大学出版社工作人员!使用我们系列教材的老师也给我们提出了宝贵的意见和建议,在此一并表示感谢。

    由于作者水平有限,加之时间仓促,错误与疏漏之处在所难免,恳请广大读者批评指正。在使用本书的过程中如遇到任何问题,或想索取本书的例题源代码与电子课件(PPT),请与作者或责任编辑联系,联系方式:ganling@cqupt.edu.cn,fuhy@tup.tsinghua.edu.cn。

编者

于2006年秋

目录

第1章概述

1.1认识程序

1.1.1程序的直观理解

1.1.2计算机程序

1.1.3计算机程序在硬件层次的意义

1.2C语言概述

1.2.1C语言的发展

1.2.2C语言的特点

1.2.3C语言的作用

1.3C程序及其运行

本章小结

习题1

第2章简单C程序设计

2.1 计算给定半径的圆周长和面积

2.1.1问题的分析

2.1.2问题的实现

2.2计算输入半径的圆周长和面积

2.2.1问题的分析

2.2.2关键字与标识符

2.2.3基本数据类型

2.2.4常量与变量

2.2.5基本表达式

2.2.6C语句

2.2.7格式化输入输出

2.2.8预处理命令

2.2.9问题的实现

2.3C程序概貌

2.3.1C程序的结构特点

2.3.2书写C程序时应遵循的规则

2.4举一反三

本章小结

习题2

第3章自定义函数设计

3.1最大值和最小值问题

3.1.1问题的分析

3.1.2条件运算符

3.1.3函数的定义

3.1.4函数的调用

3.1.5函数的返回

3.1.6参数的传递

3.1.7函数的声明

3.1.8问题的实现

3.1.9举一反三

3.2交换两个变量值的问题

3.2.1问题的分析

3.2.2变量的作用域

3.2.3问题的实现

3.2.4变量的存储类型

3.2.5举一反三

本章小结

习题3

第4章控制结构程序设计

4.1算法的基础知识

4.1.1算法的概念

4.1.2算法的描述

4.1.3算法设计举例

4.2大小写字母转换问题

4.2.1问题的分析

4.2.2顺序结构程序的概念

4.2.3字符数据的输入输出

4.2.4问题的实现

4.2.5举一反三

4.3闰年问题

4.3.1问题的分析

4.3.2选择结构程序的概念

4.3.3if语句

4.3.4问题的实现

4.3.5switch语句

4.3.6举一反三

4.4统计多名学生成绩问题

4.4.1问题的分析

4.4.2循环结构程序的概念

4.4.3自增自减运算符与逗号表达式

4.4.4while循环

4.4.5dowhile循环

4.4.6for循环

4.4.7嵌套循环

4.4.8问题的实现

4.4.9举一反三

4.5应用实例

本章小结

习题4

第5章模块化程序设计

5.1怎样解决一个复杂的问题

5.1.1问题的分析

5.1.2模块化程序设计思想

5.1.3函数的嵌套调用

5.1.4问题的实现

5.1.5举一反三

5.2Hanoi(汉诺)塔问题

5.2.1问题的分析

5.2.2函数的递归调用

5.2.3问题的实现

5.2.4举一反三

5.3应用实例

本章小结

习题5

第6章构造类型程序设计

6.1学生成绩排名问题

6.1.1问题的分析

6.1.2一维数组

6.1.3问题的实现

6.1.4举一反三

6.2查找字符位置问题

6.2.1问题的分析

6.2.2字符串

6.2.3问题的实现

6.2.4举一反三

6.3查找某字符开始的子串问题

6.3.1问题的分析

6.3.2字符串处理函数

6.3.3问题的实现

6.3.4举一反三

6.4交换两个变量值的问题(另解)

6.4.1问题的分析

6.4.2指针的概念

6.4.3指针作函数参数

6.4.4问题的实现

6.4.5举一反三

6.5有序数组插入数的问题

6.5.1问题的分析

6.5.2指针的运算

6.5.3指针与一维数组

6.5.4问题的实现

6.5.5举一反三

6.6打印螺旋方阵问题

6.6.1问题的分析

6.6.2二维数组

6.6.3问题的实现

6.6.4举一反三

6.7求一组字符串的最小串问题

6.7.1问题的分析

6.7.2二维字符数组

6.7.3问题的实现

6.7.4举一反三

6.8查询学生信息问题

6.8.1问题的分析

6.8.2结构体变量

6.8.3使用typedef定义数据类型的别名

6.8.4结构体数组

6.8.5问题的实现

6.8.6举一反三

6.9如何读取一个整型数据的高字节数据

6.9.1问题的分析

6.9.2共用体

6.9.3问题的实现

6.9.4举一反三

6.10应用实例

本章小结

习题6

第7章文件处理程序设计

7.1如何将一个文件复制到另一个文件

7.1.1问题的分析

7.1.2文件的概念

7.1.3文件的打开与关闭

7.1.4出错检查

7.1.5文件的顺序读写

7.1.6问题的实现

7.1.7举一反三

7.2如何读取某个客户的银行账号信息

7.2.1问题的分析

7.2.2文件定位

7.2.3随机文件的读写

7.2.4问题的实现

7.2.5举一反三

7.3应用实例

本章小结

习题7

第8章高级程序设计

8.1如何打印学生成绩

8.1.1问题的分析

8.1.2指针数组

8.1.3指向指针的指针

8.1.4指向二维数组的指针

8.1.5问题的实现

8.1.6举一反三 

8.2查找字符位置问题

8.2.1问题的分析

8.2.2返回指针的函数

8.2.3问题的实现

8.2.4举一反三

8.3多用途排序问题

8.3.1问题的分析

8.3.2指向函数的指针

8.3.3问题的实现

8.3.4举一反三

8.4文件复制问题

8.4.1问题的分析

8.4.2带参数的main函数

8.4.3问题的实现

8.4.4举一反三

8.5如何打印结构体信息

8.5.1问题的分析

8.5.2结构体指针

8.5.3问题的实现

8.5.4举一反三

8.6Josephus(约瑟夫环)问题

8.6.1问题的分析

8.6.2动态内存分配

8.6.3链表结构

8.6.4问题的实现

8.6.5举一反三

8.7如何管理用户程序

8.7.1问题的分析

8.7.2内部函数

8.7.3外部函数

8.7.4复杂系统的多文件程序的运行

8.7.5问题的实现

8.7.6举一反三

8.8应用实例

本章小结

习题8

第9章实用程序设计

9.1模拟龟兔赛跑程序

9.1.1问题的分析

9.1.2程序的实现

9.2数据安全实用程序

9.2.1问题的分析

9.2.2程序的实现

9.3电话簿的实用程序

9.3.1问题的分析

9.3.2程序的实现

9.4潜艇大战游戏程序

9.4.1问题的分析

9.4.2程序的实现

9.5模拟计算机的程序

9.5.1问题的分析

9.5.2程序的实现

9.6C语言与汇编语言的接口

9.6.1问题的分析

9.6.2程序的实现

本章小结

附录AASCII码表

附录BC语法摘要

B.1词法规则

B.2数据类型

B.3运算符

B.4表达式

B.5函数

B.6变量的作用域

B.7变量的存储类型

B.8语句

B.9数据的输入输出

B.10预处理命令

附录CC库函数

附录DTurbo C编程环境、程序调试及常见错误

D.1Turbo C 2.0简介

D.2Turbo C 环境下运行C程序的步骤

D.3程序调试方法

D.4常见程序错误

D.4.1错误分类

D.4.2错误列表

D.4.3常见错误举例

附录ELinux下的C程序运行

参考文献

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个