21世纪高等学校计算机规划教材——精品系列

C语言程序设计

分享 推荐 0 收藏 0 阅读 4.4K
朱立华、王立柱 (编著) 978-7-115-19957-7

关于本书的内容有任何问题,请联系 武恩玉

内容和写法上比较有特色之处是:
(1)第一章开篇从机器语言程序的设计及执行过程解释了计算机程序设计和执行的本质,尤其是子程序调用的解释,这是本教材区别于其他教材的一种独特思路。因为,长期以来,学生在学完了C语言之后,对函数调用的原理不清楚,什么叫断点地址、如何能返回原调用点等等都不清楚,这从本质上解释了程序执行的过程。
(2)解释了字面值常量问题,统一了常量与变量存储空间的标识与存储空间里面的内容的区别。
(3)将一维数组与一级指针放在同一章中同时讲解,因为在实际编程中,一级指针常用来访问一维数组的元素,而且一维数组形式参数的本质就是一级指针参数,两部分内容整合在一起,不仅缩减了篇幅,而且很自然地给出很多应用的实例。更主要的,给出了一维数组名的两种意义解释,从而使得二维数组中的行列指针的知识非常容易掌握,这是很多教材中我法讲解得很清楚的问题,也是教师教学过程中的一个难点。
(4)对函数的返回值为什么能赋值给主调函数的变量这一问题作了深入分析,通过简单的三句话的总结解决了一直困扰学生的返回值存放在哪里,为什么能传出被调函数这一疑问。这是目前其他教材中几乎都没有解释的问题。并且对于函数的参数,尤其是指针参数的应用原理作了深入分析。
(5)全书大量采用表格对比的形式引出了新的知识点,用学生已经掌握的老知识介绍新的内容,自然过渡,降低了学习的难度,也使同样页码的教材含有比同类教材更丰富的信息。
(6)实用的附录信息。将主教材中一些总结性的表格、内容以附录形式出现,这样,使得主教材需要主讲的内容部分简明清晰,教师不会觉得负担重,学生看的时候也会感觉轻松。特别值得一提的是:作者总结多年的教学经验将初学者编程易出错的现象及解决方案,分门别类地给出了示例、报错或告警信息及解决方案,这是其他教材中没有的亮点。
(7)动态演示程序执行过程的配套课件。提供两种版本的多媒体课件:教学版和自学版,教学版为PPT加程序动态演示整合版(AUTHORWARE制作),从出版社网站供教师下载;自学版为整本教材的动态演示整合版(AUTHORWARE制作),方便读者根据课件更好地理解程序执行的过程,增强了趣味性和直观性。
总之,该教材从内容的组织及配套资源的提供上都是从有利于教学、有利于自学出发的,期待着经得起读者检验。
¥32.00 ¥27.20 (8.5 折)
立即购买 申请样书
教学资源仅供教师教学使用,转载或另作他用版权方有权追究法律责任。

内容摘要

  本书是为以C语言作为入门语言的程序设计课程而编写的,以培养学生具有基本的程序设计能力为主要目标。
  全书共分13章,内容包括:C语言的基本概念、常量与变量、运算符及表达式、顺序结构、分支结构、循环结构、数组、函数、指针、结构体、联合体和枚举类型、预处理和标准函数、文件等。同时,还介绍了程序设计的基本方法和主要算法,并给出了一个综合的小型管理系统的设计与实现,初步引入了C++语言的基本知识。
  本书对C语言最精华的知识——指针和函数作了全面透彻的讲解和分析,所选例题有很强的针对性,并对例题的源代码和运行结果有详细的注释。各章附有适量的课后习题,便于学生复习巩固。
  本书配有两个版本的免费多媒体课件,程序的动态演示使很多初学者难以理解的问题变得直观、简单、易懂,既方便了教师教学,又方便了学生自学。
  另外,本书还配有辅导教材《C语言程序设计习题解析与实验指导》,对主教材后的习题作详细解析,并配有大量补充习题,同时还精心设计了10个实验。
  本书适合作为C语言程序设计课程的教材,也可以作为广大计算机编程爱好者学习C语言的自学教材和参考书。

目录

目 录

第 1章 计算机的组成与程序设计语言 1
1.1 计算机的组成及工作过程 1
1.2 机器语言程序设计 5
1.3 机器语言的局限性 6
1.4 高级程序设计语言与C语言 7
1.5 C语言程序及其开发 9
本章小结 10
习题 11

第 2章 基本数据类型 12
2.1 常量与变量 12
2.2 整型 17
2.3 字符型 22
2.4 实型 26
2.5 typedef类型名 29
本章小结 29
习题 30

第3章 表达式与运算符 33
3.1 表达式与算术运算符 33
3.2 关系运算符 34
3.3 逻辑运算符 36
3.4 自增自减运算符 38
3.5 位运算符 39
3.6 条件运算符 41
3.7 赋值和复合赋值运算符 42
3.8 逗号运算符 44
3.9 内部类型转换 44
本章小结 45
习题 46

第4章 程序流程控制 47
4.1 算法与语句 47
4.1.1 算法及其描述方法 47
4.1.2 C语言的语句分类 49
4.2 顺序结构 49
4.3 选择结构 50
4.3.1 if~else语句 50
4.3.2 switch~case语句 54
4.4 循环结构 56
4.4.1 for语句 56
4.4.2 while语句 59
4.4.3 do~while语句 61
4.4.4 循环嵌套 64
4.5 其他流程控制语句 67
4.5.1 break语句 68
4.5.2 continue语句 68
4.5.3 goto语句 69
本章小结 70
习题 71

第5章 一级指针与一维数组 75
5.1 一级指针类型 75
5.1.1 直接引用与间接引用 75
5.1.2 地址的类型——指针类型 76
5.1.3 指针的基本操作——间接引用 77
5.1.4 指针的基本操作——加减一个整数 78
5.1.5 指针的其他基本操作 79
5.2 一维数组类型 79
5.2.1 一维数组的定义 79
5.2.2 一维数组的初始化 80
5.2.3 一维数组名的双重含义 84
5.3 一级指针变量与一维数组 85
5.3.1 指针变量 85
5.3.2 指针变量定义中的“*”的位置 87
5.3.3 数组指针的基类型和指针变量的基类型相同 87
5.3.4 数组指针的基类型和指针变量的基类型不同 88
5.3.5 一个变量等价于一个长度为1的数组 89
5.3.6 取址运算和间接引用运算互为逆运算 89
5.3.7 “野”指针和void指针 90
5.4 移动下标与移动指针的比较 91
5.5 一维数组应用举例 93
5.5.1 查找一个数据元素 93
5.5.2 插入一个数据元素 94
5.5.3 删除一个数据元素 96
5.5.4 选择法排序 97
本章小结 98
习题 99

第6章 函数 103
6.1 函数定义与调用 103
6.2 函数声明 107
6.3 函数定义与调用举例 108
6.3.1 判断质数 108
6.3.2 求**大公约数 110
6.3.3 在数组中查找一个元素 111
6.3.4 选择法排序 112
6.3.5 冒泡法排序 113
6.4 函数调用与变量的存储类别 115
6.4.1 自动局部变量 115
6.4.2 静态局部变量 117
6.4.3 外部变量 119
6.4.4 寄存器变量 120
6.5 动态空间管理 120
6.5.1 一维动态空间的申请与释放 120
6.5.2 “耗尽”动态空间资源的实验 122
6.5.3 一种“野”指针的实验 122
6.5.4 筛选法求质数 124
6.5.5 约瑟夫环问题 125
6.6 关于函数调用的深入讨论 126
6.6.1 传值与传地址 126
6.6.2 返回值与返回地址 128
6.6.3 返回值与传地址 130
6.7 函数指针 131
6.8 递归 133
本章小结 136
习题 137

第7章 模块化程序设计相关 141
7.1 全局外部函数 141
7.2 静态外部函数 142
7.3 全局外部变量 143
7.4 静态外部变量 144
7.5 const常类型 145
7.5.1 const常量 145
7.5.2 指向const常量的指针 146
7.5.3 const常量指针 148
7.5.4 指向const常量的const常量指针 150
7.6 编译预处理 150
7.6.1 无参宏指令 150
7.6.2 带参宏指令 151
7.6.3 条件编译指令 152
7.6.4 文件包含指令 153
7.7 模块化程序设计方法简介 155
本章小结 156
习题 157

第8章 结构、联合、枚举 159
8.1 结构 159
8.1.1 结构定义 159
8.1.2 结构指针 162
8.1.3 结构数组 162
8.1.4 结构的嵌套 164
8.1.5 结构型返回值和地址调用 166
8.2 结构应用程序举例 166
8.2.1 学生记录排序 166
8.2.2 洗牌 168
8.3 联合 170
8.4 枚举 172
本章小结 173
习题 174

第9章 字符串 177
9.1 字符串的定义与存储 177
9.2 字符串的赋值和输出 178
9.2.1 字符串赋值 178
9.2.2 字符串的输入/输出处理 179
9.3 字符串处理函数的原型 180
9.4 字符串处理函数的实现 181
9.5 字符串应用程序举例 183
9.5.1 数字串转换函数的应用 183
9.5.2 判断回文 185
本章小结 186
习题 187

第 10章 二维数组与指针 191
10.1 二维数组的定义与赋值 191
10.2 二维数组与一维数组 194
10.3 二维数组名的双重含义 197
10.4 二维数组与行指针 197
10.5 二维数组与列指针 199
10.6 一维指针数组与二级指针 201
10.7 一维指针数组与二维数组 203
10.8 二维动态空间的申请与释放 205
10.9 二维(数组)指针和一维(数组)指针的相互转化 206
10.10 以二级指针为形参的main函数 207
本章小结 208
习题 209

第 11章 流与文件 212
11.1 文件指针 212
11.2 文件的打开与关闭 213
11.3 文件的读写 216
11.3.1 字符的读写 216
11.3.2 字符串的读写 218
11.3.3 无格式读写 219
11.3.4 格式读写 221
11.4 文件的随机访问 223
11.5 文件的复制 224
本章小结 225
习题 226

第 12章 高级程序设计 228
12.1 单链表 228
12.1.1 单链表结点结构的定义 229
12.1.2 单链表的建立 229
12.1.3 单链表的遍历 231
12.1.4 单链表的查找 231
12.1.5 单链表的插入 232
12.1.6 单链表的删除 233
12.1.7 单链表的逆置 234
12.1.8 单链表操作的完整程序 235
12.1.9 其他类型的单链表 244
12.2 学生成绩档案管理系统的设计与实现 245
12.2.1 数据类型的定义 246
12.2.2 为结点类型定制的基本操作 247
12.2.3 用二进制文件实现数据的 永久保存 248
12.2.4 用两级菜单四层函数实现 系统 250
本章小结 260
习题 260

第 13章 C++初步 262
13.1 输入/输出 262
13.2 结构 266
13.3 内联函数 266
13.4 默认函数 267
13.5 函数重载 268
13.6 运算符重载 268
13.7 引用 270
13.8 布尔型 272
本章小结 273
习题 274

附录A 常用字符与ASCII码对照表 275
附录B C语言的关键字 277
附录C Visual C++下各数据类型所占字节数及取值范围 278
附录D C语言运算符的优先级与结合性 279
附录E 常用的ANSI C标准库函数 281
附录F C语言程序设计常见错误及解决方案 286
附录G 命名规则 294
附录H C语言的发展简史 296
附录I 函数printf的格式转换说明符 297
附录J 函数printf的格式修饰符 298

参考文献 299

读者评论

赶紧抢沙发哦!

我要评论

同系列书

  • AutoCAD建筑制图教程(2010版)

    李银英 刘光洁 马永志 郑艺华 杨冬

      本书结合精选的典型建筑图例系统地介绍了AutoCAD绘图知识,从掌握建筑制图的方法及技巧入手,由浅入深、循...

    ¥44.00
  • 人工智能

    王万森

      本书是作者在多年人工智能教学实践和多本人工智能教材编写的基础上,结合国内外人工智能领域的最新进展和我国人工...

    ¥29.50
  • 数据库原理及应用(第2版)

    何玉洁 刘福刚 于绍娜 余阳 张荣梅

      本书由11章、2个附录组成,主要内容包括关系数据库基础、SQL语言、关系数据理论、数据库设计、事务与并发控...

    ¥35.00
  • SPSS 16实用教程

    宋志刚 谢蕾蕾 何旭宏

      SPSS是应用最广泛的统计软件之一,在很多领域深受用户的好评。本书以SPSS 16.0为基础,详细介绍了多...

    ¥32.00
  • JavaScript 程序设计基础教程(第2版)

    阮文江

      本书是学习JavaScript动态网页编程技术的基础教材,共分10章,主要内容包括:Web技术概述、HTM...

    ¥32.00

相关图书

人邮微信
本地服务
教师服务
教师服务
读者服务
读者服务
返回顶部
返回顶部