C语⾔程序设计第五版谭浩强课后答案(第⼆章答案)⽬录
1. 什么是算法?试从⽇常⽣活中3个例⼦,描述它们的算法
2. 什么叫结构化的算法?为什么要提倡结构化的算法?
3. 试述3种基本结构的特点,请另外设计两种基本结构(要符合基类结构的特点)。
4. ⽤传统流程图表⽰求解以下问题的算法。
5. ⽤N-S图表⽰第4题中各题的算法
6. ⽤伪代码表⽰第4题中各题的算法
7. 什么叫结构化程序设计?它的主要内容是什么?
8. ⽤⾃顶向下、逐步细化的⽅法进⾏以下算法的设计:
1. 什么是算法?试从⽇常⽣活中3个例⼦,描述它们的算法
算法:简⽽⾔之就是求解问题的步骤,对特定问题求解步骤的⼀种描述。
⽐如⽣活中的例⼦:
考⼤学
⾸先填报志愿表、交报名费、拿到准考证、按时参加考试、收到录取通知书、按照⽇期到指定学校报到。
去北京听演唱会
⾸先在⽹上购票、然后按时坐车到北京,坐车到演唱会会场。
把⼤象放进冰箱
先打开冰箱门,然后将⼤象放进冰箱,关冰箱。
2. 什么叫结构化的算法?为什么要提倡结构化的算法?
结构化算法:由⼀些顺序、选择、循环等基本结构按照顺序组成,流程的转移只存在于⼀个基本的范围之内。
结构化算法便于编写,可读性⾼,修改和维护起来简单,可以减少程序出错的机会,提⾼了程序的可
靠性,保证了程序的质量,因此提倡结构化的算法。3. 试述3种基本结构的特点,请另外设计两种基本结构(要符合基类结构的特点)。
结构化程序设计⽅法主要由以下三种基本结构组成:
顺序结构:顺序结构是⼀种线性、有序的结构,它依次执⾏各语句模块
选择结构:选择结构是根据条件成⽴与否选择程序执⾏的通路。
循环结构:循环结构是重复执⾏⼀个或⼏个模块,直到满⾜某⼀条件位置
重新设计基本结构要满⾜以下⼏点:
只有⼀个⼊⼝
只有⼀个出⼝
结构内的每⼀部分都有机会执⾏到
结构内不存在死循环
因此给出以下复习结构:while型和until型循环复合以及多选择结构
4. ⽤传统流程图表⽰求解以下问题的算法。
1.有两个瓶⼦A和B,分别盛放醋和酱油,要求将他们互换(即A瓶原来盛醋,现在盛酱油,B瓶则相反)。
解析:
⽤两个瓶⼦显然很难实现,可以借助⼀个空瓶⼦C作为中转,先将A中醋导⼊C中,然后将B中的酱油导⼊A中,最后将C中的醋导⼊B中即可实现交换。
2.依次将10个数输⼊,要求输出其中最⼤的数。
解析:
先输⼊10个整数,将第⼀个整数给max,然后依次取剩余整数与max进⾏⽐较,如果某个整数⼤于max,将该整数交给max,直到所有剩余整数全部⽐较完,max中保存的即为最⼤整数,将max值输出。
3.有3个数a,b,c, 要求按⼤⼩顺序把他们输出。
解析:
i:先⽤a和b⽐较,如果a⼤于b,将a与b内容交换,否则进⾏ii
ii:⽤c和a⽐较,如果c⼤于a,将a和c交换,否则进⾏iv
iii:⽤c和b⽐较,如果c⼤于b,将c和b进⾏交换,否则进⾏iv
iv:输出a、b、c,结束
4.求1 + 2 + 3 + … + 100。
解析:
给定N为1,sum为0,如果N ⼩于等于100时,进⾏sum += N,直到N超过100,循环操作完成后sum即为从1加到100的结果。
5.判断⼀个数n能否同时被3和5整除。
解析:
i:输⼊数据n
ii:如果n能被3整数,进⾏iii,否则输出n不能被3和5整数
iii:如果n能被5整数,输出n能被3和5整数,否则n不能被3和5整数
6.将100~200之间的素数输出
素数:即数学中的质数,因⼦只有1和其本⾝的数字称为质数。
对100和200之间的每个数进⾏⼀下操作:
c语言搜题软件推荐该数能否被2~该数之间的所有数整除,是则是素数输出,否则取下⼀个数字。
7.求两个数m和n的最⼤公约数
解析:辗转相除法
a. 如果m⼤于n,交换m和n
b. 循环进⾏⼀下操作:
n是否为0?是则最⼤公约数为m,输出m结束。
否则:⽤m%n结果给r,将n的值给m,将r的值给n
8.求⽅程 a x 2 + b x + c = 0 ax^2 + bx + c = 0 ax2+bx+c=0的根。分别考虑:
有两个不相等的实根;有两个相等的实根;
解析:
如果 b 2 − 4 a c > 0 b^2 - 4ac > 0 b2−4ac>0则⽅程有两个不相等的实根: x = − b ± b 2 − 4 a c 2 a x=\frac{-b\pm\sqrt{b^2-4ac}}{2a} x=2a−b±b2−4ac
如果 b 2 − 4 a c = 0 b^2 - 4ac = 0 b2−4ac=0则⽅程有⼀个实根: x = − b 2 a x=\frac{-b}{2a} x=2a−b
如果 b 2 − 4 a c < 0 b^2 - 4ac < 0 b2−4ac<0则⽅程没有实根。
5. ⽤N-S图表⽰第4题中各题的算法
1.有两个瓶⼦A和B,分别盛放醋和酱油,要求将他们互换(即A瓶原来盛醋,现在盛酱油,B瓶则相反)。
2.依次将10个数输⼊,要求输出其中最⼤的数。
3.有3个数a,b,c, 要求按⼤⼩顺序把他们输出。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。