教育>本科研究生>计算机类
C语言程序设计(第2版)

C语言程序设计(第2版)"

作者:蔺德军,张云红
ISBN:9787121379536
定价:¥58.0
字数:493千字
页数:308
出版时间:2020-04
开本:16开
版次:01-01
装帧:
出版社:电子工业出版社
简介

本书立足于作者近20年的C语言教学经验编写而成,共14章,内容包括概述,数据类型与输入/输出,运算符与表达式,算法与结构化程序设计,选择结构程序设计,循环结构程序设计,数组与字符串,指针,函数,结构体、共用体、枚举、链表,编译预处理,文件,用C语言构造简单数据结构(选学),发展与规范(选学)。全书内容经过精心筛选,按照理解顺序组织,追求由浅入深、步步提高。除涵盖C语言的语法知识外,本书还专门增加了用C语言构造队列、栈、树等实用的数据结构及其相应的常用算法。在第14章中用一个较简单实用的案例解释读者的困惑:与C语言相比,C++增加了什么。本书配有《C语言程序设计上机实验与习题解答》(第2版)(ISBN 978-7-121-37954-3)。此外,本书配套程序源代码、PPT课件、动画演示视频、实验自动阅卷系统等资源,读者可登录华信教育资源网(www.hxedu.com.cn)免费下载。本书特别适合作为大学C语言课程的教材及相关爱好者的自学教材,也适合作为二级C语言考试的参考用书。

前言

现今已经进入信息时代,计算机以各种不同的外形遍布生活的各个角落,大的占据几百平方米面积,小的装入了人们的口袋。工业时期,人们从体力劳动中解放出来。有了计算机后,人们又从简单重复的脑力劳动中解放出来,由计算机代劳完成枯燥的重复劳动。计算机需要人用程序控制它一步步地完成工作,人的工作可简化成两种:设计软件和使用软件。因此,对目前的学生来说,学会软件编程十分重要。 计算机语言是生产计算机软件的工具,在诸多的计算机语言中,许多语言产生后逐渐衰落,甚至被淘汰。而在1973年诞生的C语言仍是无法被替代的计算机语言,在计算机语言使用率排行榜上始终居于前三名的位置。C语言既具有高级语言简洁、高效、功能强大的特点,又具有低级语言直接操纵硬件的能力。由于C语言有其他语言不具备的内存、物理设备访问能力,因此C语言一直是控制软件和系统软件开发的首选语言。其应用领域也在不断延伸,从操作系统到游戏软件,从控制软件到管理软件,从UNIX环境下的编程到Windows环境下的编程,无不体现着C语言的强大优势。C++仅仅是C语言的延伸,在C语言的基础上增加了对象和类,而构造类使用的仍然是C语言的语句。 有些语言,如Java、JSP、PHP等沿袭了C语言的基本语句语法,若学会了C语言,则可以较容易地读懂用这几种语言编写的程序。因此,从C语言开始学习编写程序是一个不错的选择。 现在,市面上某些教材的内容很完整,语言描述得非常准确,让人找不出任何疏漏,但是对于学习者而言,却很难看懂。本书定位于易学、易懂,而不是内容的堆砌,更不是C语言标准的官方文档,而是立足于作者近20年的C语言教学经验,遵循学生的理解次序编写的。书中包含图示、比喻及配套动画演示,目标是让学生既能轻松入门,又能在日常的基础学习中达到一定的高度,学完后能达到国家二级C语言考试的水平。 本书配有《C语言程序设计上机实验与习题解答》(第2版)(ISBN 978-7-121-37954-3)。此外,本书配套程序源代码、PPT课件、动画演示视频、实验自动阅卷系统等资源,读者可登录华信教育资源网(www.hxedu.com.cn)免费下载。 本书由姜彬完成第1、2章的编写,由张云红完成第4、5、6章的编写,由刘晓洁完成第9、10章的编写,由郑世秀完成第7、11章的编写,由蔺德军负责内容总体安排及完成第8、12、13章的编写,由臧嵘完成第3章的编写,由杨金宝完成第14章的编写,由朱威同、姜山完成习题、附录的编写。在再版过程中,由茹俊丽、臧嵘、杨金宝负责全书修订工作。在本书的编写过程中,得到了C语言教学领域的资深教师贾小珠、高长铎、夏方遒、侯东昌、赵希梅、刘堃、孙林学、强文萍的精心指导与大力支持,在此表示感谢。 本书的编写力求叙述准确、内容完整,讲解过程由浅入深、循序渐进,使学生容易理解和学习,但限于编者水平和时间的限制,书中难免存在缺点和错误,恳请专家和读者批评指正。 编 者

目录

第1章 概述 1 1.1 程序设计语言 1 1.1.1 程序设计语言的概念 1 1.1.2 程序设计语言的发展 1 1.1.3 程序设计的一般步骤 3 1.2 C语言的发展历史和特点 3 1.2.1 C语言的发展历史 3 1.2.2 C语言的特点 4 1.3 第1个C语言程序 5 1.3.1 必要的计算机基础知识——初识内存 5 1.3.2 一个C语言程序从编写到执行的过程 6 1.3.3 使用VC++ 6.0调试程序 6 1.3.4 使用VC++ 2010调试程序 10 1.3.5 编译时常见错误 13 1.3.6 链接时常见错误 13 1.3.7 执行时常见错误 14 1.4 C语言程序结构与注意事项 15 1.5 本章小结 17 习题1 17 第2章 数据类型与输入/输出 18 2.1 变量与常量 18 2.2 常量的表示 19 2.2.1 C语言的基本数据类型 19 2.2.2 常量表示一览表 19 2.2.3 字符常量 20 2.2.4 整型常量 21 2.2.5 浮点型常量 22 2.2.6 双精度型常量 22 2.2.7 字符串常量 22 2.3 简单变量类型 23 2.3.1 标识符的要求 23 2.3.2 字符变量、整型变量 24 2.3.3 浮点型变量、双精度型变量 27 2.4 输入/输出 30 2.4.1 getchar()与putchar()函数 30 2.4.2 printf()函数 31 2.4.3 scanf()函数 34 2.5 本章小结 37 习题2 38 第3章 运算符与表达式 41 3.1 表达式 41 3.2 优先级与结合方向 41 3.3 基本算术运算符 42 3.4 自增、自减运算符 43 3.5 赋值运算符 45 3.6 关系运算符 46 3.7 逻辑运算符 47 3.8 条件运算符 48 3.9 逗号运算符 49 3.10 位逻辑运算符 51 3.11 移位运算符 52 3.12 复合运算符 54 3.13 类型转换与混合运算 54 3.14 其他运算符 56 3.15 运算符的优先级与结合性一览表 57 3.16 常用数学函数 58 3.17 本章小结 59 习题3 59 第4章 算法与结构化程序设计 65 4.1 算法及其表示 65 4.1.1 算法的概念 65 4.1.2 算法的特征 65 4.1.3 算法的描述方法 67 4.2 结构化程序设计 68 4.2.1 C语言语句综述 68 4.2.2 goto语句 69 4.2.3 软件危机与结构化程序设计的提出 70 4.2.4 结构化程序设计的核心思想 71 4.2.5 三种基本程序结构的N-S图 73 4.3 顺序结构程序设计 74 4.3.1 顺序结构的含义 74 4.3.2 顺序结构程序设计示例 74 4.4 程序调试 75 4.5 本章小结 77 习题4 77 第5章 选择结构程序设计 79 5.1 if语句 79 5.1.1 if语句的格式 79 5.1.2 if语句的注意事项 80 5.1.3 程序示例 80 5.2 if-else语句 82 5.2.1 if-else语句的格式 82 5.2.2 if-else语句的注意事项 83 5.2.3 缩进结构的书写方式 84 5.2.4 if-else-if语句 86 5.3 switch语句 88 5.3.1 switch语句的格式 88 5.3.2 switch语句的流程图及N-S图 91 5.3.3 switch语句的注意事项 93 5.4 本章小结 93 习题5 93 第6章 循环结构程序设计 98 6.1 循环结构概述 98 6.2 while语句 98 6.3 for语句 100 6.3.1 for语句的格式 100 6.3.2 for语句的注意事项 102 6.4 do语句 102 6.5 break语句与continue语句 104 6.5.1 break语句 104 6.5.2 continue语句 105 6.5.3 break语句与continue语句的替代方法 107 6.6 循环嵌套 108 6.7 常见循环类问题 109 6.8 本章小结 114 习题6 115 第7章 数组与字符串 119 7.1 数组的声明与存储 119 7.1.1 数组的声明与使用 119 7.1.2 数组的存储及数组名中存储的内容 121 7.1.3 数组的初始化 123 7.1.4 使用随机数函数 126 7.2 数组的常用操作 127 7.2.1 查找最大值、最小值 127 7.2.2 排序 128 7.2.3 插入/删除元素 130 7.2.4 查找 131 7.3 字符数组与字符串 132 7.3.1 字符数组 132 7.3.2 字符串 133 7.3.3 字符串的输入/输出 134 7.3.4 字符串的常用处理函数 136 7.4 程序设计示例 138 7.5 本章小结 140 习题7 140 第8章 指针 144 8.1 指针的含义与使用 144 8.1.1 指针与目标单元 145 8.1.2 指针的声明与初始化 145 8.1.3 指针的注意事项 146 8.1.4 指针的使用 147 8.2 指针与一维数组 147 8.3 动态内存分配 152 8.4 复杂指针 154 8.4.1 数组指针及多维数组指针 154 8.4.2 指针数组 157 8.4.3 二级指针 159 8.4.4 数组指针数组 161 8.4.5 三级指针与多级指针 161 8.4.6 指针归纳 162 8.5 本章小结 163 习题8 163 第9章 函数 166 9.1 函数功能 166 9.2 函数的定义与使用 167 9.2.1 函数的定义与调用格式 167 9.2.2 函数的定义与调用注意事项 168 9.2.3 定义一个函数的步骤 169 9.2.4 函数声明与头文件 169 9.2.5 函数的调用与返回 171 9.3 简单参数传递 172 9.3.1 值的传递 172 9.3.2 变量地址的传递 173 9.3.3 参数的处理次序 175 9.4 变量的作用域 176 9.4.1 不同变量的作用域 176 9.4.2 extern关键字 178 9.5 传递数组作为参数 179 9.5.1 传递一维数组 179 9.5.2 传递多维数组 181 9.5.3 传递指针数组 183 9.5.4 const关键字 184 9.6 变量的存储类型 185 9.7 递归 188 9.8 函数指针 191 9.9 主函数的参数 193 9.10 本章小结 194 习题9 194 第10章 结构体、共用体、枚举、链表 200 10.1 结构体 200 10.1.1 结构体的定义 200 10.1.2 关键字typedef的用法 201 10.1.3 结构体变量的定义与初始化 202 10.1.4 结构体与函数 208 10.2 共用体 209 10.3 枚举 211 10.3.1 枚举的定义和枚举变量的声明 211 10.3.2 枚举变量的赋值和使用 212 10.4 链表 213 10.4.1 链表的定义 213 10.4.2 链表的建立与遍历 214 10.4.3 链表节点的插入、删除操作 217 10.4.4 完整程序示例 220 10.5 本章小结 221 习题10 222 第11章 编译预处理 229 11.1 宏定义 229 11.1.1 不带参数的宏定义 229 11.1.2 带参数的宏定义 231 11.1.3 #undef 233 11.2 文件包含 233 11.3 条件编译 234 11.4 本章小结 238 习题11 239 第12章 文件 241 12.1 文件类型 241 12.2 文件的打开与关闭 242 12.2.1 文件的打开 242 12.2.2 文件的关闭 244 12.3 文件的读/写 244 12.3.1 如何判断文件结束 245 12.3.2 fgetc()、fputc()函数 245 12.3.3 fscanf()、fprintf()函数 247 12.3.4 fgets()、fputs()函数 250 12.3.5 fread()、fwrite()函数 251 12.4 文件指针的移动 253 12.4.1 rewind()函数 253 12.4.2 fseek()、ftell()函数 253 12.4.3 随机读/写 254 12.5 本章小结 255 习题12 256 第13章 用C语言构造简单数据结构(选学) 261 13.1 数据结构概述 261 13.1.1 基本概念 261 13.1.2 数据的逻辑结构 261 13.1.3 数据的存储结构 262 13.2 算法复杂度 262 13.2.1 算法的时间复杂度 262 13.2.2 算法的空间复杂度 263 13.3 队列 263 13.4 栈 266 13.5 树 268 13.5.1 树的基本概念 268 13.5.2 二叉树的基本概念 268 13.5.3 二叉树的遍历 269 第14章 发展与规范(选学) 272 14.1 认识C++ 272 14.2 C语言标准 274 二级C语言笔试真题及答案(一) 276 二级C语言笔试真题及答案(二) 286 附录A ASCII码 296 附录B stdio.h中的常用函数 297 附录C stdlib.h中的常用函数 298 附录D string.h中的常用函数 299 附录E math.h中的常用函数 300

作者简介

编辑推荐

作者寄语

电子资料

http://www.hxedu.com.cn/hxedu/fg/book/bookinfo.html?code=G0379530

www.luweidong.cn

下一个