图书简介:
第1章 概述 11.1 程序设计语言 11.1.1 程序设计语言的概念 11.1.2 程序设计语言的发展 11.1.3 程序设计的一般步骤 31.2 C语言的发展历史和特点 31.2.1 C语言的发展历史 31.2.2 C语言的特点 41.3 第1个C语言程序 51.3.1 必要的计算机基础知识——初识内存 51.3.2 一个C语言程序从编写到执行的过程 61.3.3 使用VC++ 6.0调试程序 61.3.4 使用VC++ 2010调试程序 101.3.5 编译时常见错误 131.3.6 链接时常见错误 131.3.7 执行时常见错误 141.4 C语言程序结构与注意事项 151.5 本章小结 17习题1 17第2章 数据类型与输入/输出 182.1 变量与常量 182.2 常量的表示 192.2.1 C语言的基本数据类型 192.2.2 常量表示一览表 192.2.3 字符常量 202.2.4 整型常量 212.2.5 浮点型常量 222.2.6 双精度型常量 222.2.7 字符串常量 222.3 简单变量类型 232.3.1 标识符的要求 232.3.2 字符变量、整型变量 242.3.3 浮点型变量、双精度型变量 272.4 输入/输出 302.4.1 getchar()与putchar()函数 302.4.2 printf()函数 312.4.3 scanf()函数 342.5 本章小结 37习题2 38第3章 运算符与表达式 413.1 表达式 413.2 优先级与结合方向 413.3 基本算术运算符 423.4 自增、自减运算符 433.5 赋值运算符 453.6 关系运算符 463.7 逻辑运算符 473.8 条件运算符 483.9 逗号运算符 493.10 位逻辑运算符 513.11 移位运算符 523.12 复合运算符 543.13 类型转换与混合运算 543.14 其他运算符 563.15 运算符的优先级与结合性一览表 573.16 常用数学函数 583.17 本章小结 59习题3 59第4章 算法与结构化程序设计 654.1 算法及其表示 654.1.1 算法的概念 654.1.2 算法的特征 654.1.3 算法的描述方法 674.2 结构化程序设计 684.2.1 C语言语句综述 684.2.2 goto语句 694.2.3 软件危机与结构化程序设计的提出 704.2.4 结构化程序设计的核心思想 714.2.5 三种基本程序结构的N-S图 734.3 顺序结构程序设计 744.3.1 顺序结构的含义 744.3.2 顺序结构程序设计示例 744.4 程序调试 754.5 本章小结 77习题4 77第5章 选择结构程序设计 795.1 if语句 795.1.1 if语句的格式 795.1.2 if语句的注意事项 805.1.3 程序示例 805.2 if-else语句 825.2.1 if-else语句的格式 825.2.2 if-else语句的注意事项 835.2.3 缩进结构的书写方式 845.2.4 if-else-if语句 865.3 switch语句 885.3.1 switch语句的格式 885.3.2 switch语句的流程图及N-S图 915.3.3 switch语句的注意事项 935.4 本章小结 93习题5 93第6章 循环结构程序设计 986.1 循环结构概述 986.2 while语句 986.3 for语句 1006.3.1 for语句的格式 1006.3.2 for语句的注意事项 1026.4 do语句 1026.5 break语句与continue语句 1046.5.1 break语句 1046.5.2 continue语句 1056.5.3 break语句与continue语句的替代方法 1076.6 循环嵌套 1086.7 常见循环类问题 1096.8 本章小结 114习题6 115第7章 数组与字符串 1197.1 数组的声明与存储 1197.1.1 数组的声明与使用 1197.1.2 数组的存储及数组名中存储的内容 1217.1.3 数组的初始化 1237.1.4 使用随机数函数 1267.2 数组的常用操作 1277.2.1 查找最大值、最小值 1277.2.2 排序 1287.2.3 插入/删除元素 1307.2.4 查找 1317.3 字符数组与字符串 1327.3.1 字符数组 1327.3.2 字符串 1337.3.3 字符串的输入/输出 1347.3.4 字符串的常用处理函数 1367.4 程序设计示例 1387.5 本章小结 140习题7 140第8章 指针 1448.1 指针的含义与使用 1448.1.1 指针与目标单元 1458.1.2 指针的声明与初始化 1458.1.3 指针的注意事项 1468.1.4 指针的使用 1478.2 指针与一维数组 1478.3 动态内存分配 1528.4 复杂指针 1548.4.1 数组指针及多维数组指针 1548.4.2 指针数组 1578.4.3 二级指针 1598.4.4 数组指针数组 1618.4.5 三级指针与多级指针 1618.4.6 指针归纳 1628.5 本章小结 163习题8 163第9章 函数 1669.1 函数功能 1669.2 函数的定义与使用 1679.2.1 函数的定义与调用格式 1679.2.2 函数的定义与调用注意事项 1689.2.3 定义一个函数的步骤 1699.2.4 函数声明与头文件 1699.2.5 函数的调用与返回 1719.3 简单参数传递 1729.3.1 值的传递 1729.3.2 变量地址的传递 1739.3.3 参数的处理次序 1759.4 变量的作用域 1769.4.1 不同变量的作用域 1769.4.2 extern关键字 1789.5 传递数组作为参数 1799.5.1 传递一维数组 1799.5.2 传递多维数组 1819.5.3 传递指针数组 1839.5.4 const关键字 1849.6 变量的存储类型 1859.7 递归 1889.8 函数指针 1919.9 主函数的参数 1939.10 本章小结 194习题9 194第10章 结构体、共用体、枚举、链表 20010.1 结构体 20010.1.1 结构体的定义 20010.1.2 关键字typedef的用法 20110.1.3 结构体变量的定义与初始化 20210.1.4 结构体与函数 20810.2 共用体 20910.3 枚举 21110.3.1 枚举的定义和枚举变量的声明 21110.3.2 枚举变量的赋值和使用 21210.4 链表 21310.4.1 链表的定义 21310.4.2 链表的建立与遍历 21410.4.3 链表节点的插入、删除操作 21710.4.4 完整程序示例 22010.5 本章小结 221习题10 222第11章 编译预处理 22911.1 宏定义 22911.1.1 不带参数的宏定义 22911.1.2 带参数的宏定义 23111.1.3 #undef 23311.2 文件包含 23311.3 条件编译 23411.4 本章小结 238习题11 239第12章 文件 24112.1 文件类型 24112.2 文件的打开与关闭 24212.2.1 文件的打开 24212.2.2 文件的关闭 24412.3 文件的读/写 24412.3.1 如何判断文件结束 24512.3.2 fgetc()、fputc()函数 24512.3.3 fscanf()、fprintf()函数 24712.3.4 fgets()、fputs()函数 25012.3.5 fread()、fwrite()函数 25112.4 文件指针的移动 25312.4.1 rewind()函数 25312.4.2 fseek()、ftell()函数 25312.4.3 随机读/写 25412.5 本章小结 255习题12 256第13章 用C语言构造简单数据结构(选学) 26113.1 数据结构概述 26113.1.1 基本概念 26113.1.2 数据的逻辑结构 26113.1.3 数据的存储结构 26213.2 算法复杂度 26213.2.1 算法的时间复杂度 26213.2.2 算法的空间复杂度 26313.3 队列 26313.4 栈 26613.5 树 26813.5.1 树的基本概念 26813.5.2 二叉树的基本概念 26813.5.3 二叉树的遍历 269第14章 发展与规范(选学) 27214.1 认识C++ 27214.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
展开
现今已经进入信息时代,计算机以各种不同的外形遍布生活的各个角落,大的占据几百平方米面积,小的装入了人们的口袋。工业时期,人们从体力劳动中解放出来。有了计算机后,人们又从简单重复的脑力劳动中解放出来,由计算机代劳完成枯燥的重复劳动。计算机需要人用程序控制它一步步地完成工作,人的工作可简化成两种:设计软件和使用软件。因此,对目前的学生来说,学会软件编程十分重要。计算机语言是生产计算机软件的工具,在诸多的计算机语言中,许多语言产生后逐渐衰落,甚至被淘汰。而在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语言教学领域的资深教师贾小珠、高长铎、夏方遒、侯东昌、赵希梅、刘堃、孙林学、强文萍的精心指导与大力支持,在此表示感谢。本书的编写力求叙述准确、内容完整,讲解过程由浅入深、循序渐进,使学生容易理解和学习,但限于编者水平和时间的限制,书中难免存在缺点和错误,恳请专家和读者批评指正。 编 者
展开