C语言程序设计(21世纪高等学校计算机规划教材)

分类: 图书,教材教辅与参考书,大学,计算机专业,
品牌: 朱立华
基本信息·出版社:人民邮电出版社
·页码:299 页
·出版日期:2009年09月
·ISBN:7115199574/9787115199577
·条形码:9787115199577
·包装版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:21世纪高等学校计算机规划教材
产品信息有问题吗?请帮我们更新产品信息。
内容简介《C语言程序设计》是为以C语言作为入门语言的程序设计课程而编写的,以培养学生具有基本的程序设计能力为主要目标。全书共分13章,内容包括:C语言的基本概念、常量与变量、运算符及表达式、顺序结构、分支结构、循环结构、数组、函数、指针、结构体、联合体和枚举类型、预处理和标准函数、文件等。同时,还介绍了程序设计的基本方法和主要算法,并给出了一个综合的小型管理系统的设计与实现,初步引入了C++语言的基本知识。《C语言程序设计》对C语言最精华的知识——指针和函数作了全面透彻的讲解和分析,所选例题有很强的针对性,并对例题的源代码和运行结果有详细的注释。各章附有适量的课后习题,便于学生复习巩固。《C语言程序设计》配有两个版本的免费多媒体课件,程序的动态演示使很多初学者难以理解的问题变得直观、简单、易懂,既方便了教师教学,又方便了学生自学。另外,《C语言程序设计》还配有辅导教材《C语言程序设计习题解析与实验指导》,对主教材后的习题作详细解析,并配有大量补充习题,同时还精心设计了10个实验。《C语言程序设计》适合作为C语言程序设计课程的教材,也可以作为广大计算机编程爱好者学习C语言的自学教材和参考书。
编辑推荐《C语言程序设计》:高层建瓴,透彻解析指针概念,循序渐进,交待函数来龙去脉,简明扼要,推演和实验同步,学以致用,应试与能力并重,综合直观,全方位多媒体演示。
《C语言程序设计》系统解决了指针和函数这两个C语言的难题,并在此基础上,树立教材的思想,精炼教材的内容,锻造教材的结构。《C语言程序设计》多媒体软件独具特色:三级菜单与教材章节一一对应。任务栏对应每节中更具体的内容。算法、代码、抽象结构、存储结构、运行过程和结果同时展现,蓝色光条跟踪程序执行过程。按下显示器上的数据输入按钮,用户可自行输出要处理的数据。黄色字体是热区,用来显示与黄色字体相关的解释。《C语言程序设计》将提供两个版本的多媒体课件(PPT+Authorware版本和Authorware整体版本),第一个版本适合教师上课用,教师可以根据自己的需要修改内容;第二个版本适合学生自学用,学生可仔细体会每一个程序的执行过程。
目录
第1章 计算机的组成与程序设计语言
1.1 计算机的组成及工作过程
1.2 机器语言程序设计
1.3 机器语言的局限性
1.4 高级程序设计语言与C语言
1.5 C语言程序及其开发
本章小结
习题
第2章 基本数据类型
2.1 常量与变量
2.2 整型
2.3 字符型
2.4 实型
2.5 typedef类型名
本章小结
习题
第3章 表达式与运算符
3.1 表达式与算术运算符
3.2 关系运算符
3.3 逻辑运算符
3.4 自增自减运算符
3.5 位运算符
3.6 条件运算符
3.7 赋值和复合赋值运算符
3.8 逗号运算符
3.9 内部类型转换
本章小结
习题
第4章 程序流程控制
4.1 算法与语句
4.1.1 算法及其描述方法
4.1.2 C语言的语句分类
4.2 顺序结构
4.3 选择结构
4.3.1 if~else语句
4.3.2 switch~case语句
4.4 循环结构
4.4.1 for语句
4.4.2 while语句
4.4.3 do~while语句
4.4.4 循环嵌套
4.5 其他流程控制语句
4.5.1 break语句
4.5.2 continue语句
4.5.3 goto语句
本章小结
习题
第5章 一级指针与一维数组
5.1 一级指针类型
5.1.1 直接引用与间接引用
5.1.2 地址的类型——指针类型
5.1.3 指针的基本操作——间接引用
5.1.4 指针的基本操作——加减一个整数
5.1.5 指针的其他基本操作
5.2 一维数组类型
5.2.1 一维数组的定义
5.2.2 一维数组的初始化
5.2.3 一维数组名的双重含义
5.3 一级指针变量与一维数组
5.3.1 指针变量
5.3.2 指针变量定义中的“*”的位置
5.3.3 数组指针的基类型和指针变量的基类型相同
5.3.4 数组指针的基类型和指针变量的基类型不同
5.3.5 一个变量等价于一个长度为1的数组
5.3.6 取址运算和间接引用运算互为逆运算
5.3.7 “野”指针和void指针
5.4 移动下标与移动指针的比较
5.5 一维数组应用举例
5.5.1 查找一个数据元素
5.5.2 插入一个数据元素
5.5.3 删除一个数据元素
5.5.4 选择法排序
本章小结
习题
第6章 函数
6.1 函数定义与调用
6.2 函数声明
6.3 函数定义与调用举例
6.3.1 判断质数
6.3.2 求最大公约数
6.3.3 在数组中查找一个元素
6.3.4 选择法排序
6.3.5 冒泡法排序
6.4 函数调用与变量的存储类别
6.4.1 自动局部变量
6.4.2 静态局部变量
6.4.3 外部变量
6.4.4 寄存器变量
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.7 函数指针
6.8 递归
本章小结
习题
第7章 模块化程序设计相关
7.1 全局外部函数
7.2 静态外部函数
7.3 全局外部变量
7.4 静态外部变量
7.5 const常类型
7.5.1 const常量
7.5.2 指向const常量的指针
7.5.3 const常量指针
7.5.4 指向const常量的const常量指针
7.6 编译预处理
7.6.1 无参宏指令
7.6.2 带参宏指令
7.6.3 条件编译指令
7.6.4 文件包含指令
7.7 模块化程序设计方法简介
本章小结
习题
第8章 结构、联合、枚举
8.1 结构
8.1.1 结构定义
8.1.2 结构指针
8.1.3 结构数组
8.1.4 结构的嵌套
8.1.5 结构型返回值和地址调用
8.2 结构应用程序举例
8.2.1 学生记录排序
8.2.2 洗牌
8.3 联合
8.4 枚举
本章小结
习题
第9章 字符串
9.1 字符串的定义与存储
9.2 字符串的赋值和输出
9.2.1 字符串赋值
9.2.2 字符串的输入/输出处理
9.3 字符串处理函数的原型
9.4 字符串处理函数的实现
9.5 字符串应用程序举例
9.5.1 数字串转换函数的应用
9.5.2 判断回文
本章小结
习题
第10章 二维数组与指针
10.1 二维数组的定义与赋值
10.2 二维数组与一维数组
10.3 二维数组名的双重含义
10.4 二维数组与行指针
10.5 二维数组与列指针
10.6 一维指针数组与二级指针
10.7 一维指针数组与二维数组
10.8 二维动态空间的申请与释放
10.9 二维(数组)指针和一维(数组)指针的相互转化
10.10 以二级指针为形参的main函数
本章小结
习题
第11章 流与文件
11.1 文件指针
11.2 文件的打开与关闭
11.3 文件的读写
11.3.1 字符的读写
11.3.2 字符串的读写
11.3.3 无格式读写
11.3.4 格式读写
11.4 文件的随机访问
11.5 文件的复制
本章小结
习题
第12章 高级程序设计
12.1 单链表
12.1.1 单链表结点结构的定义
12.1.2 单链表的建立
12.1.3 单链表的遍历
12.1.4 单链表的查找
12.1.5 单链表的插入
12.1.6 单链表的删除
12.1.7 单链表的逆置
12.1.8 单链表操作的完整程序
12.1.9 其他类型的单链表
12.2 学生成绩档案管理系统的设计与实现
12.2.1 数据类型的定义
12.2.2 为结点类型定制的基本操作
12.2.3 用二进制文件实现数据的 永久保存
12.2.4 用两级菜单四层函数实现 系统
本章小结
习题
第13章 C++初步
13.1 输入/输出
13.2 结构
13.3 内联函数
13.4 默认函数
13.5 函数重载
13.6 运算符重载
13.7 引用
13.8 布尔型
本章小结
习题
附录A 常用字符与ASCII码对照表
附录B C语言的关键字
附录C Visual C++下各数据类型所占字节数及取值范围
附录D C语言运算符的优先级与结合性
附录E 常用的ANSI C标准库函数
附录F C语言程序设计常见错误及解决方案
附录G 命名规则
附录H C语言的发展简史
附录I 函数printf的格式转换说明符
附录J 函数printf的格式修饰符
参考文献
……[看更多目录]
序言程序设计课程是高等院校重要的基础课程,c语言是这门课程的主要程序设计语言之一。
学习C语言不仅因为它是软件开发与设计的主要程序语言之一,还因为它是学习其他高级语言和应用软件的核心基础。
指针和函数是c语言的主要内容,但它们是学习的难点,对初学者更是如此。
本书正是从系统地解决这两个难题的目标出发,树立教材的理念、精炼教材的内容、锻造教材的结构。其主要特色如下。
一、本书从程序设计的具体需要出发,坚持相互作用的基本原理,指明了直接引用和间接应用、地址和指针、指针和数组的相互关联性。例如:
(1)指针是类型化的地址;地址是直接引用下的指针。
(2)一个变量等价于一个长度为1的一维数组。一维数组是一组类型相同、空间相邻的变量。
(3)一个m行n列的二维数组等价于一个长度为m*n的一维数组。一个长度为n的一维数组等价于一个1行n列的二维数组。
(4)二维数组是元素为一维指针常量的一维数组。每一个指针常量分别指向长度相同、空间相邻的一维数组。指针数组是元素为一维指针变量的一维数组。每一个指针变量可以分别指向长度不同且空间不相邻的一维数组。
二、本书以赋值语句为前提,逻辑地推出函数调用过程的实质,奠定了各种函数概念统一描述的基础。
调用一个有返回值的函数,其过程可以概括为3步赋值:
(1)主调函数传递实参,以初始化的形式使被调函数的形参获得初值;
(2)被调函数在执行return语句时,将一表达式的值赋给系统根据函数返回值类型创建的一个临时变量中;
(3)主调函数如果需要这个返回值,就从这个临时变量取值。
三、本书对指针和函数的每一个概念都进行了需求分析和编程实验的检验。例如:“耗尽”动态空间资源的实验;一种“野”指针的实验;数组指针和指针变量的基类型不同时的实验;一个函数两次被调用,其自变量空间可能不同的实验等。
文摘插图:

1.1 计算机的组成及工作过程
计算机处理存储的数据。可以说,存储和处理是一个整体:存储是为了处理,处理需要存储。“存储和处理的整体性”的最初表达是美国普林斯顿大学的冯·诺依曼于1945年提出的计算机体系结构设计思想,一般称为“程序存储思想”。计算机从1946年问世至今都是以这种思想为基本依据的,其主要内容为:
(1)计算机应该采用二进制,与十进制相比,实现二进制运算的结构简单,容易控制;
(2)操作指令也是一种信息,不妨用二进制代码表示;
(3)程序和数据的存储形式可以完全相同;
(4)程序本身也可包含数据,即程序中的每一条指令由操作码和操作数两部分组成,前者是操作内容,后者是数据所在的存储单元的地址或直接就是数据。
例如,“01H 1000H”是一条操作指令,其中0lH是操作码,1000H是操作数。具体含义是:“将地址为1000H存储单元中的数据放到中央处理器中的寄存器A中”。
冯·诺依曼型计算机提出硬件由五部分组成,即运算器、控制器、存储器、输入设备和输出设备,其系统结构如图1.1所示。
运算器能够进行各种算术运算和逻辑运算。控制器控制和指挥整个运算过程,使指令按要求一条一条执行。存储器存放程序指令及原始数据。输入设备输入指令代码和原始数据,输出设备显示或打印计算结果。