c语言程序设计谭浩强第二版答案,不要推销书

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言程序设计谭浩强第二版答案,不要推销书相关的知识,希望对你有一定的参考价值。

言,你可以很好地应付任何一种编程工具。

2、一定要多上机练习,通过程式了解相关知识。几经反复方得正果。

3、不要把学习C语言当成一种任务,更不要把它看成很难完成的任务。要充满自信,只要是一个智力正常的人都能学好C语言。始终保持游戏的心态,多发现其中的乐趣。当感到编程趣味无穷,那你在电脑方面将前程无量。

4、如果一个程式一时无法弄清楚最后暂时放在一边,过一段时间你可能会从其他的程式中悟出道理。

5、C语言是一个整体,各个方面是有机联系的,要从总体上把握它,不要把它割裂成互不关联的部件。

6、不要完全相信教材(包括本讲义),所有结论最好都上机验证。
怎样学好C语言

1. 工欲善其事,必先利其器

准备工作:一个开发环境,如Turbo C 2.0、Visual C++等开发工具;一本好教材,如谭浩强主编的《C语言程序设计》(第二版)。我当时看的是他的第一版,就为它的简洁、完美所吸引,简直爱不释手,用了两个星期一口气看完。

2. 秘密武器

初学者学习计算机语言要会“读程序”,要对小型的应用型、游戏型程序感兴趣,并模仿去加深对C语言程序设计的理解和操作,只有不断地写程序、调试程序才能得到编写程序的经验和加深对程序的理解,这也是学习编写优秀高级程序的秘密武器。

3. 发扬探索精神

学习C语言程序设计有点像做数学难题,只要我们善于思考,善于探索,发扬探索精神去寻找好的设计思想和方法,才能把C语言的精髓真正地掌握。

备战C语言考试要诀

1. 了解大纲,临阵不乱

各类笔试中,大多数考题是与大纲要求的基本内容一致的,难度不高,但内容十分广泛,应牢固掌握C语言考试大纲要求的基础部分。只有熟悉题型,理解语法、句法,做到心中有数,才能临阵不乱。

2. 善于归纳,强化记忆

对于需要记忆的计算机基础知识和基本概念,如果考试时因此失分就十分可惜。如:C语言中有几种不同的数据类型?运算的优先级别是怎样的?因此我们需要善于归纳这些计算机基础知识,并在理解的基础上强化记忆。

3. 重视实践,善于调试

计算机科学是一门理论性、实践性都很强的学科,对C语言考试的参加者来说,基础理论方面要求不高,而上机试题往往是很多考生不能通过考试的重要原因,因此要勤于实践。

4. 多做练习,查漏补缺

在认真地学完指定用书后,最好再找些试题,认真地测试一下,一则可以检查自己的复习情况;二则可以查漏补缺;三则可以调节心理状况,以备正式考试时沉着冷静、万无一失。
参考技术A 一般在书店或者学校的二手书店都可以买到 参考技术B 网上有有答案,txtg格式的,pfd格式的都有。。

C语言程序设计,谭浩强老师第三版里面的一个关于浮点型数据的舍入误差问题

程序是这个样子的:
#include<stdio.h>
void main()

float a,b;
a=0;
a=123456.789e5;
b=a+20;
printf("%f,%f\n",a,b);

书本上说:a和b的输出结果是一样的,但是我在VC++里面运行的结果却是:
12345678848.000000,12345678868.000000
明显是不一样的……此外,我将a的赋值语句改为了"a=123456.78"然后输出a,但是输出的结果却是123456.781250,求解释!

1.-->>问:将a的赋值语句改为了"a=123456.78"然后输出a,但是输出的结果却是123456.781250....
 -->>答;计算机以二进制存储数据,因此它的权只能是:……,8,4,2,1,0.5,0.25,0.125,……。再看0.78=1*0.5 +1*0.25 +0*0.125 +0*0.0625 +1*0.03125,即可以看到是0.781250 <<---

2.->>问:我在VC++里面运行的结果却是:12345678848.000000,12345678868.000000明显是不一样的……
 -->>答:VC6.0里确实是这样。
    浮点型在VC6.0中占4个字节(32BIT),以1BIT数符,23BIT小数部分,8BIT指数的形式存储(书中有讲)。小数部分最小为0000……0001(最后一位为1),等于十进制的0.00000011920928955078125(23位小数)。当相加或相减的两个数,数量级相差20左右时,由于精度问题便出现书本所说的情况。数量相差级大于23,就肯定是白加了。(个人观点仅供参考)
参考技术A 很正常,在计算机里面,如果输入的是浮点数,也就是我们说的实数,小数点数,在存入到计算机的时候,是不能够完全一模一样存入的,这涉及到小数点后面的数进行扩展的问题,也就是用二进制位来存小数点后面的数的时候是要转换的,这样,如果再次输出这个转换的数的话,还要进行一次转换,这转来转去就夹杂了数的精度的问题。当然,你看到的就不是以前的数啦。但是是它的一个精度扩大的数。
你要想看到你原来的数,可以控制一下输出小数点的位数,你把这个输出格式换一下printf("%f,%f\n",a,b);-------》printf("%e,%e\n",a,b);
或者你用f格式的时候变成printf("%.2f,%.2f\n",a,b);追问

嗯。那么,根据书本上说的:因为a的数值比较大,而20比较小,当这两个数相加的时候,20会被忽略不计,从而a和b输出的结果是一样的,但是我运行的程序后,他们输出的结果不同,a是12345678900.00,而b是12345678920.00,是书本错了?

追答

怎么是忽略不计呢?
是先把20转换成浮点型 然后在进行相加
其实,你可以理解就是两个数相加的话,要对其格式,那一个有小数点,一个没有,怎么对齐,要是让你在纸上做,那就人为对齐了,计算机呢。那就按一个格式来,整数可以转换成扩大的实数,数值的大小并不变,而要是实数裁剪成整数,那岂不是把数的一部分没啦,所以只好按照扩大来转换,再进行相加。
我不知道你书上怎么说忽略不计,这是在什么情况下说的。你看一下。我不知道。

本回答被提问者采纳
参考技术B 我在VS上刚刚调试了,结果都是12345678848.000000
不知道你是怎么调试的?

以上是关于c语言程序设计谭浩强第二版答案,不要推销书的主要内容,如果未能解决你的问题,请参考以下文章

谭浩强版C语言程序设计(第三版)课后习题完整答案附源码--高等教育出版社

谭浩强版C语言程序设计(第三版)课后习题完整答案附源码--高等教育出版社

求c语言程序设计第二版(苏小红)课后第五章的本章实验题答案

谭浩强C程序设计第五版课后答案视频+代码讲解完整版(合集)持续跟新中~~~

谭浩强C程序设计第五版课后答案视频+代码讲解完整版(合集)持续跟新中~~~

C语言程序设计,谭浩强老师第三版里面的一个关于浮点型数据的舍入误差问题