内容简介
本书是与谭浩强所著的《C程序设计(第五版)》(清华大学出版社出版)配合使用的一本重要的参考用书。本书包括4个部分,第1部分是《C程序设计(第五版)》一书的习题和参考解答,包括该书各章的全部习题,对全部编程习题都给出了参考解答,共计132个程序;第2部分是深入学习C程序设计,包括预处理指令、位运算、常见错误分析和C程序案例;第3部分是上机指南,详细介绍Visual C++ 6.0和Visual Studio 2010集成环境下编辑、编译、调试和运行程序的方法;第4部分是上机实践指导,包括程序的调试与测试、实验的目的与要求,并提供了12个实验。
本书内容丰富,实用性强,可以有效地帮助读者学好C程序设计并提高应用水平,不仅可以作为《C程序设计(第五版)》的配套教材,而且可以作为其他版本的C语言教材的参考书;既适合高等学校师生使用,也可供自学者参考。
目录
第1部分《C程序设计(第五版)》习题和参考解答
第1章程序设计和C语言1
第2章算法——程序的灵魂4
第3章最简单的C程序设计——顺序程序设计14
第4章选择结构程序设计24
第5章循环结构程序设计37
第6章利用数组处理批量数据54
第7章用函数实现模块化程序设计74
第8章善于利用指针99
第9章用户自己建立数据类型128
第10章对文件的输入输出159
第2部分深入学习C程序设计
第11章预处理指令177
11.1宏定义178
11.1.1不带参数的宏定义178
11.1.2带参数的宏定义181
11.2“文件包含”处理186
11.3条件编译189
第12章位运算193
12.1位运算和位运算符193
12.1.1“按位与”运算193
12.1.2“按位或”运算194
12.1.3“异或”运算195
12.1.4“取反”运算196
12.1.5左移运算197
12.1.6右移运算197
12.1.7位运算赋值运算符198
12.1.8不同长度的数据进行位运算198
12.2位运算举例198
12.3位段200
第13章常见错误分析204
第14章C程序案例219
14.1案例1个人所得税计算219
14.2案例2学生试卷分数统计223
14.3案例3电话订餐信息处理229
第3部分C语言程序上机指南
第15章怎样使用Visual C++ 6.0运行程序239
15.1Visual C++ 6.0的安装和启动240
15.2输入和编辑源程序240
15.2.1新建一个C源程序的方法241
15.2.2打开一个已有的程序243
15.2.3通过已有的程序建立一个新程序的方法243
15.3编译、连接和运行243
15.3.1程序的编译243
15.3.2程序的调试244
15.3.3程序的连接247
15.3.4程序的执行248
15.4建立和运行包含多个文件的程序的方法249
15.4.1由用户建立项目工作区和项目文件249
15.4.2用户只建立项目文件253
第16章用Visual Studio 2010运行C程序256
16.1关于Visual Studio 2010256
16.2怎样建立新项目257
16.3怎样建立文件260
16.4怎样进行编译262
16.5怎样运行程序263
16.6怎样打开项目中已有的文件264
16.7怎样编辑和运行一个包含多文件的程序265
16.8关于用Visual Studio 2010编写和运行C程序的说明268
第4部分上机实践指导
第17章程序的调试与测试269
17.1程序的调试269
17.2程序错误的类型271
17.3程序的测试273
第18章上机实验的目的和要求278
18.1上机实验的目的 278
18.2上机实验前的准备工作279
18.3上机实验的步骤279
18.4实验报告279
18.5实验内容安排的原则280
第19章实验安排281
19.1实验1C程序的运行环境和运行C程序的方法281
19.2实验2数据类型、运算符和简单的输入输出283
19.3实验3最简单的C程序设计——顺序程序设计286
19.4实验4选择结构程序设计287
19.5实验5循环结构程序设计288
19.6实验6数组289
19.7实验7函数(一)290
19.8实验8函数(二)291
19.9实验9指针(一)292
19.10实验10指针(二)293
19.11实验11用户自己建立数据类型294
19.12实验12文件操作295
参考文献296
精彩书摘
《C程序设计(第五版)学习辅导/中国高等院校计算机基础教育课程体系规划教材》:
第5章循环结构程序设计1.请画出例5.6中给出的3个程序段的流程图。解:下面分别是教材第5章例5.6给出的程序,据此画出流程图。(1)程序1:#includeintmain(){inti,j,n=0;for(i=1;i<=4;i)for(j=1;j<=5;j,n)//n用来累计输出数据的个数{if(n%5==0)printf(″\n″);//控制在输出5个数据后换行printf(″%d\t″,i�砵);}printf(″\n″);return0;}其对应的流程图见图5.1。运行结果:
(2)程序2:#includeintmain(){inti,j,n=0;for(i=1;i<=4;i)for(j=1;j<=5;j,n){if(n%5==0)printf(″\n″);//控制在输出5个数据后换行if(i==3&&j;==1)break;//遇到第3行第1列,结束内循环printf(″%d\t″,i�砵);}printf(″\n″);return0;}其对应的流程图见图5.2。图5.1图5.2运行结果:
遇到第3行第1列时,执行break,结束内循环,进行第4次外循环。(3)程序3:#includeintmain(){inti,j,n=0;for(i=1;i<=4;i)for(j=1;j<=5;j,n){if(n%5==0)printf(″\n″);//控制在输出5个数据后换行if(i==3&&j;==1)continue;//遇到第3行第1列,终止本次内循环printf(″%d\t″,i�砵);}printf(″\n″);return0;}其对应的流程图见图5.3。图5.3运行结果:
遇到第3行第1列时,执行continue,只是提前结束本次内循环,不输出原来的第3行第1列的数3,而进行下一次内循环,接着在该位置上输出原来的第3行第2列的数6。请仔细区分break语句和continue语句。2.请补充教材例5.7程序,分别统计当“fabs(t)>=1e-6”和“fabs(t)>=1e-8”时,执行循环体的次数。解:例5.7程序是用π4≈1-1315-17…公式求π的近似值,直到发现某一项的绝对值小于10-6为止。根据本题要求,分别统计当fabs(t)>=1e-6和fabs(t)>=1e-8时,执行循环体的次数。(1)采用fabs(t)>=1e-6作为循环终止条件的程序补充修改如下:#include#include//程序中用到数学函数fabs,应包含头文件math.nintmain(){intsign=1,count=0;//sign用来表示数值的符号,count用来累计循环次数doublepi=0.0,n=1.0,term=1.0;//pi开始代表多项式的值,最后代表π的值,n代表分母,//term代表当前项的值while(fabs(term)>=1e-6)//检查当前项term的绝对值是否大于或等于10的(-6)次方{pi=piterm;//把当前项term累加到pi中n=n2;//n2是下一项的分母sign=-sign;//sign代表符号,下一项的符号与上一项符号相反term=sign/n;//求出下一项的值termcount;//count累加1}pi=pi��4;//多项式的和pi乘以4,才是π的近似值printf(″pi=%10.8f\n″,pi);//输出π的近似值printf(″count=%d\n″,count);//输出count的值return0;}运行结果:
执行50万次循环。(2)采用fabs(t)>=1e-8作为循环终止条件的程序,只须把上面程序的第8行如下修改即可:while(fabs(term)>=1e-8)运行结果:
执行5000万次循环。3.输入两个正整数m和n,求其最大公约数和最小公倍数。解:#includeintmain(){intp,r,n,m,temp;printf(″请输入两个正整数n,m:″);scanf(″%d,%d,″,&n;,&m;);if(n
4.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。解:#includeintmain(){charc;intletters=0,space=0,digit=0,other=0;printf(″请输入一行字符:\n″);while((c=getchar())!=′\n′){if(c>=′a′&&c;<=′z′||c>=′A′&&c;<=′Z′)letters;elseif(c==′′)space;elseif(c>=′0′&&c;<=′9′)digit;elseother;}printf(″字母数:%d\n空格数:%d\n数字数:%d\n其他字符数:%d\n″,letters,space,digit,other);return0;
……
前言/序言
序
从20世纪70年代末、80年代初开始,我国的高等院校开始面向各个专业的全体大学生开展计算机教育。面向非计算机专业学生的计算机基础教育牵涉的专业面广、人数众多,影响深远,它将直接影响我国各行各业、各个领域中计算机应用的发展水平。这是一项意义重大而且大有可为的工作,应该引起各方面的充分重视。
三十多年来,全国高等院校计算机基础教育研究会和全国高校从事计算机基础教育的老师始终不渝地在这片未被开垦的土地上辛勤工作,深入探索,努力开拓,积累了丰富的经验,初步形成了一套行之有效的课程体系和教学理念。高等院校计算机基础教育的发展经历了3个阶段:20世纪80年代是初创阶段,带有扫盲的性质,多数学校只开设一门入门课程;20世纪90年代是规范阶段,在全国范围内形成了按3个层次进行教学的课程体系,教学的广度和深度都有所发展;进入21世纪,开始了深化提高的第3阶段,需要在原有基础上再上一个新台阶。
在计算机基础教育的新阶段,要充分认识到计算机基础教育面临的挑战。
(1) 在世界范围内信息技术以空前的速度迅猛发展,新的技术和新的方法层出不穷,要求高等院校计算机基础教育必须跟上信息技术发展的潮流,大力更新教学内容,用信息技术的新成就武装当今的大学生。
(2) 我国国民经济现在处于持续快速稳定发展阶段,需要大力发展信息产业,加快经济与社会信息化的进程,这就迫切需要大批既熟悉本领域业务,又能熟练使用计算机,并能将信息技术应用于本领域的新型专门人才。因此需要大力提高高校计算机基础教育的水平,培养出数以百万计的计算机应用人才。
(3) 21世纪,信息技术教育在我国中小学中全面开展,计算机教育的起点从大学下移到中小学。水涨船高,这样也为提高大学的计算机教育水平创造了十分有利的条件。
迎接21世纪的挑战,大力提高我国高等学校计算机基础教育的水平,培养出符合信息时代要求的人才,已成为广大计算机教育工作者的神圣使命和光荣职责。全国高等院校计算机基础教育研究会和清华大学出版社于2002年联合成立了“中国高等院校计算机基础教育改革课题研究组”,集中了一批长期在高校计算机基础教育领域从事教学和研究的专家、教授,经过深入调查研究,广泛征求意见,反复讨论修改,提出了高校计算机基础教育改革思路和课程方案,并于2004年7月发布了《中国高等院校计算机基础教育课程体系2004》(简称CFC 2004)。国内知名专家和从事计算机基础教育工作的广大教师一致认为CFC 2004提出了一个既体现先进性又切合实际的思路和解决方案,该研究成果具有开创性、针对性、前瞻性和可操作性,对发展我国高等院校的计算机基础教育具有重要的指导作用。根据近年来计算机基础教育的发展,课题研究组先后于2006、2008和2014年发布了《中国高等院校计算机基础教育课程体系》的新版本,由清华大学出版社出版。
为了实现CFC提出的要求,必须有一批与之配套的教材。教材是实现教育思想和教学要求的重要保证,是教学改革中的一项重要的基本建设。如果没有好的教材,提高教学质量只是一句空话。要写好一本教材是不容易的,不仅需要掌握有关的科学技术知识,而且要熟悉自己工作的对象,研究读者的认识规律,善于组织教材内容,具有较好的文字功底,还需要学习一点教育学和心理学的知识等。一本好的计算机基础教材应当具备以下5个要素:
(1) 定位准确。要明确读者对象,要有的放矢,不要不问对象,提笔就写。
(2) 内容先进。要能反映计算机科学技术的新成果、新趋势。
(3) 取舍合理。要做到“该有的有,不该有的没有”,不要包罗万象、贪多求全,不应把教材写成手册。
(4) 体系得当。要针对非计算机专业学生的特点,精心设计教材体系,不仅使教材体现科学性和先进性,还要注意循序渐进,降低台阶,分散难点,使学生易于理解。
(5) 风格鲜明。要用通俗易懂的方法和语言叙述复杂的概念。善于运用形象思维,深入浅出,引人入胜。
为了推动各高校的教学,我们愿意与全国各地区、各学校的专家和老师共同奋斗,编写和出版一批具有中国特色的、符合非计算机专业学生特点的、受广大读者欢迎的优秀教材。为此,我们成立了“中国高等院校计算机基础教育课程体系规划教材”编审委员会,全面指导本套教材的编写工作。
本套教材具有以下几个特点:
(1) 全面体现CFC的思路和课程要求。可以说,本套教材是CFC的具体化。
(2) 教材内容体现了信息技术发展的趋势。由于信息技术发展迅速,教材需要不断更新内容,推陈出新。本套教材力求反映信息技术领域中新的发展、新的应用。
(3) 按照非计算机专业学生的特点构建课程内容和教材体系,强调面向应用,注重培养应用能力,针对多数学生的认知规律,尽量采用通俗易懂的方法说明复杂的概念,使学生易于学习。
(4) 考虑到教学对象不同,本套教材包括了各方面所需要的教材(重点课程和一般课程,必修课和选修课,理论课和实践课) ,供不同学校、不同专业的学生选用。
(5) 本套教材的作者都有较高的学术造诣,有丰富的计算机基础教育的经验,在教材中体现了研究会所倡导的思路和风格,因而符合教学实践,便于采用。
本套教材统一规划,分批组织,陆续出版。希望能得到各位专家、老师和读者的指正,我们将根据计算机技术的发展和广大师生的宝贵意见及时修订,使之不断完善。
全国高等院校计算机基础教育研究会荣誉会长
“中国高等院校计算机基础教育课程体系规划教材”编审委员会主任
前言
C语言是国内外广泛使用的计算机语言。许多高校都开设了“C语言程序设计”课程。作者于1991年编写了《C程序设计》,由清华大学出版社出版,并于1999年、2005年和2010年进行了三次修订,受到了广大读者的欢迎,认为概念清晰,叙述详尽,例题丰富,深入浅出,通俗易懂,被大多数高校选为教材。至2017年5月该书已累计发行1400万册,成为国内C语言教学的主流用书。
根据发展的需要,作者于2017年出版《C程序设计(第五版)》,为了配合该教材的教学,同时编写了这本《C程序设计(第五版)学习辅导》。
本书包括4个部分。
第1部分是《C程序设计(第五版)》习题和参考解答。在这一部分中包括了清华大学出版社出版的《C程序设计(第五版)》一书的全部习题。其中有些题的难度高于书中的例题,目的是使学生不满足于已学过的内容,而要举一反三,善于拓展已有知识,提倡创新精神,培养解决问题的能力。希望教师能指定学生完成各章中有一定难度的习题。希望学生能尽量多做习题,以提高自己的水平。
为了方便读者,本书提供了参考解答。除了其中少数概念问答题,由于能在教材中直接找到答案,为节省篇幅本书不另给出答案外,对所有编程题一律给出参考解答,包括程序代码和运行结果。对于比较难的习题,除了给出程序(程序中加了注释)外,还给出N�睸流程图,并作了比较详细的说明,以便于读者理解。对于相对简单的问题,只给出程序代码和运行结果,不作详细说明,以便给读者留下思考的空间。对有些题目,我们给出了两种参考答案,供读者参考和比较,以启发思路。
在这部分中提供了132个不同类型、不同难度的程序,全部程序都在Visual C++ 6.0环境下调试通过。由于篇幅和课时的限制,在教材和讲授中不可能介绍很多例子,只能介绍一些典型的例题。本书中给出的程序实际上是对《C程序设计(第五版)》一书例题的补充,希望读者能充分利用它。即使没有时间自己做出全部习题,如果能把全部习题的参考解答都看一遍,而且都能看懂,理解不同程序的思路,也会大有裨益,能扩大眼界,丰富知识。
应该说明,本书给出的程序并非是唯一正确的解答,甚至不一定是最佳的一种。对同一个题目可以编出多种程序,我们给出的只是其中的一种。读者在使用本书时,千万不要照抄照搬,我们只是提供了一种参考方案,读者完全可以编写出更好的程序。
第2部分是深入学习C程序设计。包括预处理指令、位运算、常见错误分析和C程序案例,这是对教材内容的补充。
“预处理指令”一章详细地介绍预处理指令,使读者对这些指令有系统的了解并善于利用它们,以提高编程效率。
位运算是C语言区别于其他高级语言的一个重要特点。C语言能对位进行操作,使得C具有比较接近机器的特点。在编写系统软件和数据采集、检测与控制中往往需要用到位运算。信息类专业的学生需要学习这方面的知识,因此,本书专门列出一章,介绍位运算的基本知识,供需要者选学,信息类专业可以把它列入教学内容。
“常见错误分析”是作者总结归纳的初学者常犯的35种错误,供读者编写程序时参考。“C程序案例”一章介绍了3个实用程序,可以帮助读者把学习到的C程序设计的知识用于解决实际问题,能根据需要编写应用程序。在教材中,为了便于课堂教学,例题程序的规模一般都不大。在学完各章内容之后,需要综合应用已学过的知识,编写一些应用程序,同时提高编程能力。因此在本书中专门组织“C程序案例”一章,供读者阅读参考。这些案例很有实用价值。建议读者在学完教材后,仔细阅读这几个案例,对于提高编程能力会有很大的帮助。
第3部分是C语言程序上机指南。介绍了Visual C++ 6.0和Visual Studio 2010集成环境下的上机方法,使读者上机练习有所遵循。
第4部分是上机实践指导,介绍了程序调试和测试的初步知识,提出了上机实验的目的与要求,并且安排了12个实验,供各校安排实验时参考。
可以看到,本书内容很丰富,是学习《C程序设计(第五版)》的重要参考书。考虑到大多数学校的学时安排和多数初学者的基础,在主教材《C程序设计(第五版)》中只介绍程序设计的基本知识和C语言的最基本最常用的内容,为以后进一步学习和应用打下一定的基础。许多学生对C语言产生很大的兴趣,希望了解更多一些,掌握更深入些,尤其有些大学生在参加科研和毕业后工作中要求具有编程的实际能力,希望有更多的指导。因此,作者精心编写了本书,作为主教材的重要补充,帮助读者有效地提高应用能力。许多老师说,如果能把本书的习题全部独立地做出来,C语言就基本过关了。希望广大教师和读者能充分利用本书提供的资源,共同提高C程序设计的教学质量。
本书不仅可以作为《C程序设计(第五版) 》的配套教材,而且可以作为其他版本的C语言教材的参考书;既适用于高等学校教学,也可供自学者参考。
本书的第14章由林小茶副教授编写。薛淑斌、谭亦峰高级工程师参加了本书的编写和修订工作。
本书难免会有错误和不足之处,作者愿得到广大读者的指正。
谭浩
C程序设计(第五版)学习辅导/中国高等院校计算机基础教育课程体系规划教材 电子书 下载 mobi epub pdf txt