目录
第1章C/C 语言概述
1.1计算机组成
1.1.1计算机的硬件系统
1.1.2计算机的软件系统
1.2计算机语言及其执行方式
1.3C/C 语言的发展简史与重要性
<p>目录</p> <p> </p> <p>第1章C/C 语言概述</p> <p> </p> <p>1.1计算机组成</p> <p> </p> <p>1.1.1计算机的硬件系统</p> <p> </p> <p>1.1.2计算机的软件系统</p> <p> </p> <p>1.2计算机语言及其执行方式</p> <p> </p> <p>1.3C/C 语言的发展简史与重要性</p> <p> </p> <p>1.3.1C/C 语言的发展简史</p> <p> </p> <p>1.3.2C的优点</p> <p> </p> <p>1.3.3C程序设计是非常重要的基本训练</p> <p> </p> <p>1.4简单的C/C 程序示例</p> <p> </p> <p>1.5在VC 6.0中实现C程序</p> <p> </p> <p>1.5.1基本概念</p> <p> </p> <p>1.5.2VC 6.0集成环境介绍</p> <p> </p> <p>1.5.3C/C 单文件应用程序的实现过程</p> <p> </p> <p>1.5.4程序中的两类错误</p> <p> </p> <p>1.5.5培养严谨的逻辑思维和工作作风</p> <p> </p> <p>1.6本章知识要点和常见错误列表</p> <p> </p> <p>习题</p> <p> </p> <p>第2章编程基础Ⅰ</p> <p> </p> <p>2.1结构化程序设计及C语句综述</p> <p> </p> <p>2.1.1结构化程序设计</p> <p> </p> <p>2.1.2C语言中的语句</p> <p> </p> <p>2.2顺序结构——三大结构之一</p> <p> </p> <p>2.2.1赋值语句</p> <p> </p> <p>2.2.2C中的数据输入与输出</p> <p> </p> <p>2.2.3C 中的数据输入与输出</p> <p> </p> <p>2.2.4程序设计举例</p> <p> </p> <p>2.3分支结构——三大结构之二</p> <p> </p> <p>2.3.1if…else…语句</p> <p> </p> <p>2.3.2if语句</p> <p> </p> <p>2.4循环结构——三大结构之三</p> <p> </p> <p>2.4.1while循环语句</p> <p> </p> <p>2.4.2do…while循环语句</p> <p> </p> <p>2.5本章知识要点和常见错误列表</p> <p> </p> <p>习题</p> <p> </p> <p>第3章C语言的基础知识</p> <p> </p> <p>3.1C语言的标识符与关键字</p> <p> </p> <p>3.1.1标识符</p> <p> </p> <p>3.1.2关键字</p> <p> </p> <p>3.2基本数据类型</p> <p> </p> <p>3.3常量与变量</p> <p> </p> <p>3.3.1常量</p> <p> </p> <p>3.3.2变量</p> <p> </p> <p>3.3.3变量的初始化</p> <p> </p> <p>3.4运算符</p> <p> </p> <p>3.4.1算术运算符和赋值运算符</p> <p> </p> <p>3.4.2关系运算符和逻辑运算符</p> <p> </p> <p>3.4.3条件运算符</p> <p> </p> <p>3.4.4逗号运算符</p> <p> </p> <p>3.4.5位运算符</p> <p> </p> <p>3.5表达式</p> <p> </p> <p>3.6应用举例</p> <p> </p> <p>3.7本章知识要点和常见错误列表</p> <p> </p> <p>习题</p> <p> </p> <p>第4章编程基础Ⅱ</p> <p> </p> <p>4.1C中的条件判断</p> <p> </p> <p>4.2复杂的分支结构</p> <p> </p> <p>4.2.1分支结构的嵌套</p> <p> </p> <p>4.2.2else if语句</p> <p> </p> <p>4.2.3if语句注意事项</p> <p> </p> <p>4.2.4多分支结构——switch语句</p> <p> </p> <p>4.3for循环语句</p> <p> </p> <p>4.3.1for循环语句的一般形式</p> <p> </p> <p>4.3.2for语句使用注意事项</p> <p> </p> <p>4.3.3三种循环语句的比较</p> <p> </p> <p>4.4C 中的输出格式控制</p> <p> </p> <p>4.5好程序的标准与算法的选择</p> <p> </p> <p>4.5.1好程序的标准</p> <p> </p> <p>4.5.2选择合适的算法</p> <p> </p> <p>4.6本章知识要点和常见错误列表</p> <p> </p> <p>习题</p> <p> </p> <p>第5章编程进阶</p> <p> </p> <p>5.1复杂的循环结构</p> <p> </p> <p>5.1.1循环的嵌套</p> <p> </p> <p>5.1.2循环控制语句break和continue</p> <p> </p> <p>5.1.3无限循环的应用</p> <p> </p> <p>5.2典型题目的编程</p> <p> </p> <p>5.2.1累加与累乘</p> <p> </p> <p>5.2.2穷举搜索法</p> <p> </p> <p>5.2.3数位提取问题</p> <p> </p> <p>5.2.4递推与迭代</p> <p> </p> <p>5.3程序的动态调试</p> <p> </p> <p>5.3.1单步调试的过程</p> <p> </p> <p>5.3.2单步调试的实例</p> <p> </p> <p>5.4本章知识要点</p> <p> </p> <p>习题</p> <p> </p> <p>第6章数组——批量数据的处理</p> <p> </p> <p>6.1数组的概念</p> <p> </p> <p>6.2一维数组</p> <p> </p> <p>6.2.1一维数组的定义和引用</p> <p> </p> <p>6.2.2一维数组的初始化</p> <p> </p> <p>6.2.3数组的越界问题</p> <p> </p> <p>6.2.4应用举例</p> <p> </p> <p>6.3二维数组</p> <p> </p> <p>6.3.1二维数组的定义和引用</p> <p> </p> <p>6.3.2二维数组的初始化</p> <p> </p> <p>6.3.3应用举例</p> <p> </p> <p>6.4字符数组和字符串</p> <p> </p> <p>6.4.1字符数组的定义和初始化</p> <p> </p> <p>6.4.2字符串</p> <p> </p> <p>6.4.3字符数组的输入和输出</p> <p> </p> <p>6.4.4应用举例</p> <p> </p> <p>6.5本章知识要点和常见错误列表</p> <p> </p> <p>习题</p> <p> </p> <p>第7章函数及变量存储类型</p> <p> </p> <p>7.1为什么要用函数</p> <p> </p> <p>7.1.1模块化的优越性及C的实现</p> <p> </p> <p>7.1.2函数概述</p> <p> </p> <p>7.2函数三部曲</p> <p> </p> <p>7.2.1函数声明——函数三部曲之一</p> <p> </p> <p>7.2.2函数定义——函数三部曲之二</p> <p> </p> <p>7.2.3函数调用——函数三部曲之三</p> <p> </p> <p>7.2.4实参到形参的单向值传递</p> <p> </p> <p>7.2.5函数的返回值</p> <p> </p> <p>7.3变量的存储类型</p> <p> </p> <p>7.3.1变量的作用域和生存期</p> <p> </p> <p>7.3.2变量的动态存储和静态存储</p> <p> </p> <p>7.4函数的嵌套与递归</p> <p> </p> <p>7.4.1函数的嵌套调用</p> <p> </p> <p>7.4.2函数的递归调用</p> <p> </p> <p>7.5本章知识要点和常见错误列表</p> <p> </p> <p>习题</p> <p> </p> <p>第8章编程深入</p> <p> </p> <p>8.1授人以鱼不如授人以渔</p> <p> </p> <p>8.1.1编程思想——顺杆儿爬</p> <p> </p> <p>8.1.2大程序逐步完善——鱼竿一节节加长</p> <p> </p> <p>8.1.3程序单步调试——用竿儿步步试探</p> <p> </p> <p>8.1.4单步调试的三大功能及其他调试手段</p> <p> </p> <p>8.2典型题目的编程思路及优化</p> <p> </p> <p>8.2.1分解质因数</p> <p> </p> <p>8.2.2数字字符转换成十进制数</p> <p> </p> <p>8.2.3数组插入</p> <p> </p> <p>8.2.4数组元素排序</p> <p> </p> <p>8.3常用字符串处理函数及其应用</p> <p> </p> <p>8.4编译预处理</p> <p> </p> <p>8.4.1宏定义</p> <p> </p> <p>8.4.2文件包含</p> <p> </p> <p>8.5关于全国高校计算机水平考试</p> <p> </p> <p>8.6本章知识要点</p> <p> </p> <p>习题</p> <p> </p> <p>第9章指针</p> <p> </p> <p>9.1指针的概念与定义</p> <p> </p> <p>9.1.1内存地址的概念</p> <p> </p> <p>9.1.2指针变量的概念与定义</p> <p> </p> <p>9.2指针的使用</p> <p> </p> <p>9.2.1指针的两个运算符</p> <p> </p> <p>9.2.2指针变量的初始化与**性</p> <p> </p> <p>9.2.3指针运算</p> <p> </p> <p>9.3间接访问——指针的强大功能之一</p> <p> </p> <p>9.3.1利用指针变量间接访问某一个单元</p> <p> </p> <p>9.3.2利用指针变量访问一片连续的存储区</p> <p> </p> <p>9.4指针形参“返回”函数多个数值——指针的强大功能之二</p> <p> </p> <p>9.4.1普通变量作函数参数</p> <p> </p> <p>9.4.2指针变量作函数参数</p> <p> </p> <p>9.5灵活引用数组——指针的强大功能之三</p> <p> </p> <p>9.5.1数组元素的4种表示方法</p> <p> </p> <p>9.5.2数组作函数参数</p> <p> </p> <p>9.5.3指向字符串的指针</p> <p> </p> <p>9.5.4字符数组与字符指针变量比较</p> <p> </p> <p>9.6动态分配内存——指针的强大功能之四</p> <p> </p> <p>9.7复杂指针简介</p> <p> </p> <p>9.7.1指针数组</p> <p> </p> <p>9.7.2指针与函数</p> <p> </p> <p>9.7.3复杂指针</p> <p> </p> <p>9.8本章知识要点和常见错误列表</p> <p> </p> <p>习题</p> <p> </p> <p>第10章结构体和类</p> <p> </p> <p>10.1结构体</p> <p> </p> <p>10.1.1结构体类型的定义</p> <p> </p> <p>10.1.2结构体变量的定义</p> <p> </p> <p>10.1.3结构体变量及其成员的引用</p> <p> </p> <p>10.1.4结构体变量的初始化</p> <p> </p> <p>10.1.5应用举例</p> <p> </p> <p>10.2结构体嵌套</p> <p> </p> <p>10.3结构体数组</p> <p> </p> <p>10.3.1结构体数组的定义与引用</p> <p> </p> <p>10.3.2结构体型数组的初始化</p> <p> </p> <p>10.3.3应用举例</p> <p> </p> <p>10.4结构体指针</p> <p> </p> <p>10.4.1结构体指针的定义</p> <p> </p> <p>10.4.2结构体指针的使用</p> <p> </p> <p>10.5共用体</p> <p> </p> <p>10.6从结构体过渡到类</p> <p> </p> <p>10.6.1结构体类型的局限性及类的引出</p> <p> </p> <p>10.6.2类的声明——类三部曲之一</p> <p> </p> <p>10.6.3类的成员函数定义——类三部曲之二</p> <p> </p> <p>10.6.4类的应用——类三部曲之三</p> <p> </p> <p>10.6.5类之实例</p> <p> </p> <p>10.7本章知识要点和常见错误列表</p> <p> </p> <p>习题</p> <p> </p> <p>第11章C 基础</p> <p> </p> <p>11.1面向对象的程序设计</p> <p> </p> <p>11.1.1面向过程与面向对象</p> <p> </p> <p>11.1.2面向对象的三大特性</p> <p> </p> <p>11.2封装性——特性之一</p> <p> </p> <p>11.2.1构造函数</p> <p> </p> <p>11.2.2析构函数</p> <p> </p> <p>11.3函数的重载</p> <p> </p> <p>11.4继承性——特性之二</p> <p> </p> <p>11.4.1类的层次结构</p> <p> </p> <p>11.4.2继承的访问控制</p> <p> </p> <p>11.4.3派生类的构造和析构函数</p> <p> </p> <p>11.4.4多重继承与虚基类</p> <p> </p> <p>11.4.5继承之综合实例</p> <p> </p> <p>11.5多态性——特性之三</p> <p> </p> <p>11.5.1多态性</p> <p> </p> <p>11.5.2虚函数</p> <p> </p> <p>11.5.3多态之综合实例</p> <p> </p> <p>11.6本章知识要点及常见错误列表</p> <p> </p> <p>习题</p> <p> </p> <p>第12章C 流文件</p> <p> </p> <p>12.1文件和流</p> <p> </p> <p>12.2文件的打开和关闭</p> <p> </p> <p>12.2.1打开文件</p> <p> </p> <p>12.2.2关闭文件</p> <p> </p> <p>12.3文件的读写</p> <p> </p> <p>12.3.1文本文件的读写</p> <p> </p> <p>12.3.2二进制文件的读写</p> <p> </p> <p>12.3.3随机文件的读写</p> <p> </p> <p>12.4本章知识要点和常见错误</p> <p> </p> <p>习题</p> <p> </p> <p>附录AASCII码表</p> <p> </p> <p>附录BVC 6.0常见错误列表</p> <p> </p> <p>附录CC语言常用库函数表</p> <p> </p> <p>附录D各章习题部分答案</p> <p> </p> <p>附录E模拟题训练</p> <p> </p> <p>参考文献</p> <p> </p>显示全部信息前 言
前言
<br />前言<br /><br /><br />C语言程序设计的重要性本毋庸赘言,但在多年高校的教学工作中,编者深切体会到,对学习者而言,学习C程序设计的过程不仅是非常重要的专业基础训练,更应该是锻炼自己的耐心和毅力,培养独立思考、严谨缜密的逻辑思维方式,提高发现问题、解决问题的实践能力的大好时机。好好学习、认真实践,其意义远大于学会一种程序设计语言,对后续课程的学习和今后的工作都大有裨益!本教材面向应用型人才培养,内容安排由易到难,逐步深入,免得学习者失去学习信心。另外,一开始就使学习者可以上机实践,之后全程理论和实践互补学习,有利于掌握程序设计的技巧,提高编程能力。扎实地掌握好C语言的编程后,自然过渡到C 编程。鉴于C 全国高校计算机水平考试迫切需要一本适合的教材,于是有了这本C/C 结合的书。本教材所有例题的输入和输出直接采用C 的cin和cout,摒弃了C语言中的printf和scanf函数调用。仍愿意使用printf和scanf函数的学习者也可以选用本书,将例题中的输入输出换回C语言的函数,也是一个很好的训练。本教材的特色之一在于面向现在的年轻人。众所周知,现在的90后学习者已经是“读图”一代了。他们对于传统教材的大段文字描述很不耐烦,故而本书从内容上加了阴影和警示,适时提出问题,版面上讲究编排,尽量将程序、运行结果和相关解释组织在一起,增加**概念的图解,以便更好地帮助学习者理解C/C 程序设计。本教材的特色之二是章节的全新组织。前5章打破C语言教材按内容体系组织的传统,三大结构一起介绍,以“编程基础Ⅰ、Ⅱ”和“编程进阶”3章从简到难、循序渐进地增加学习难度,这样安排非常有利于尽早上机实践: 从第1章的学习开始就可以辅以上机练习,使计算机这个程序设计*好的老师全程伴随学习者,发挥其*大的作用!对于后面繁难的内容,尽量系统化: 函数和类以三部曲的方式介绍; 指针部分以4个强大功能为线索串起来; 构造类型从数组引出结构体、共用体,进而引出类; 面向对象以三大特性为线索来组织,条理清晰,使学习者感受到知识的连贯性、系统性,更容易掌握这些比较烦琐的内容。教材的特色之三是增加了大量例题和解题思路,引导学生自己学会如何编程: 两次集中总结典型题目。**次在三大结构讲完后的第5章增加了主��算法题目的总结; 第二次在函数之后专设了第8章,本着“授人以鱼不如授人以渔”的思想,将编程思想、逐步完善和单步调试形象地称为“三根鱼竿”,**根鱼竿: 编程思想——顺杆“爬”,对一些感到无从下手的难题,如何去思考?第二根鱼竿: 大程序的逐步完善——犹如鱼竿一节节加长,逐步完善程序代码,以及化繁为简,逐步完成复杂题目的编程技巧; 第三根鱼竿: 程序单步调试——如盲者用竿儿步步试探,查找程序的逻辑错误和运行错误。这样对学习者的编程、上机、调试等各方面都有促进作用。教材还有另外两个特色。一个是强调动态调试,书中在第5章和第8章两处给出单步跟踪实例,有心的学习者可以模仿这些实例自己上机实践,自学动态调试; 另一个是在大多数章*后将该章的常见错误列成表格,以便学习者仔细阅读并作为上机参考,可透彻理解各个知识点,很快成为编程高手。全书由张正明主编并编写第7、9章,第10~12章由卢晶琦编写,第1、6、8章由王丽娟编写,第2~5章由孟庆元编写。在本书成书的过程中,受到电子科技大学中山学院领导及清华大学出版社编辑们的大力支持,在此一并表示感谢。选用本书的教师可免费索取电子教案、所有例题代码及作业和模拟题的答案。如对本书有疑问和建议,可与编者联系,QQ: 704393383。希望本书能给注重实践的学习者以切实的帮助。由于编者水平有限,时间仓促,书中可能有不足之处,殷切盼望读者提出宝贵意见。编者2016年1月<br /><br /><br /><br /><br /><br /><br /><br />显示全部信息媒体评论评论免费在线读第3章C语言的基础知识本章讲述C程序设计的基础知识,内容比较多,但有了前两章的铺垫,本章的内容完全可以编程上机体会。对于第2章已经反复用到的变量、表达式等重要概念,本章会详细讲述。如此两相补充: 学会了第1、2两章的编程基础,可以上机运行体会、帮助理解第3章的各种知识和概念; 而第3章的具体概念理解透了,又可以更深入地理解第2章的程序,如分支、循环语句中作为条件的关系表达式等,请学习者多多上机,细心体会。学习程序设计,计算机本身就是*好的老师。
3.1C语言的标识符与关键字
3.1.1标识符在C语言中,所谓标识符,就是用一串字符起一个名字用来标识和识别变量、常量、函数等。ANSI C规定有效标识符的构成规则如下: (1) **个字符必须是字母或下画线“_”。(2) 后跟字母、下画线“_”或数字。(3) 标识符中的大小写字母有区别。如sum、Sum、SUM代表三个不同的标识符。C程序中基本上都采用小写字母,大写字母只用来定义宏名等,用得不多。C 中名字偏长,单词间用大写字母分辨,如curLen代表当前长度(current length),用maxLen代表*大长度等。(4) 不同的C语言系统对标识符的长度有不同的限制,有的要求*多为6个字符,有的允许使用*多8个字符,而VC 系统下的有效长度为1~32个字符。(5) 不能与C编译系统的保留标识符(即3.1.2节所讲的32个关键字)同名。表31所示是正确标识符和错误标识符的举例。
表31标识符举例
正确的标识符错误的标识符
count1 counttest123hi!therehigh_balancehigh..balancePIa ba_1a=1