C语言程序设计第五版谭浩强课后答案 第二章《算法 | 您所在的位置:网站首页 › c程序设计第五版答案谭浩强第六章 › C语言程序设计第五版谭浩强课后答案 第二章《算法 |
第二章《算法--程序的灵魂》习题答案
1. 什么是算法?试从日常生活中找3个例子,描述它们的算法2. 什么叫结构化的算法?为什么要提倡结构化的算法?3. 试述3种基本结构的特点,请另外设计两种基本结构(要符合基类结构的特点)。4. 用传统流程图表示求解以下问题的算法。5. 用N-S图表示第4题中各题的算法6. 用伪代码表示第4题中各题的算法7. 什么叫结构化程序设计?它的主要内容是什么?8. 用自顶向下、逐步细化的方法进行以下算法的设计:
1. 什么是算法?试从日常生活中找3个例子,描述它们的算法
算法:简而言之就是求解问题的步骤,对特定问题求解步骤的一种描述。 比如生活中的例子: 考大学 首先填报志愿表、交报名费、拿到准考证、按时参加考试、收到录取通知书、按照日期到指定学校报到。 去北京听演唱会 首先在网上购票、然后按时坐车到北京,坐车到演唱会会场。 把大象放进冰箱 先打开冰箱门,然后将大象放进冰箱,关冰箱。 2. 什么叫结构化的算法?为什么要提倡结构化的算法?结构化算法:由一些顺序、选择、循环等基本结构按照顺序组成,流程的转移只存在于一个基本的范围之内。 机构化算法便于编写,可读性高,修改和维护起来简单,可以减少程序出错的机会,提高了程序的可靠性,保证了程序的质量,因此提倡结构化的算法。 3. 试述3种基本结构的特点,请另外设计两种基本结构(要符合基类结构的特点)。结构化程序设计方法主要由以下三种基本结构组成: 顺序结构:顺序结构是一种线性、有序的结构,它依次执行各语句模块选择结构:选择结构是根据条件成立与否选择程序执行的通路。循环结构:循环结构是重复执行一个或几个模块,直到满足某一条件位置重新设计基本结构要满足以下几点: 只有一个入口只有一个出口结构内的每一部分都有机会执行到结构内不存在死循环因此给出以下复习结构:while型和until型循环复合以及多选择结构 有两个瓶子A和B,分别盛放醋和酱油,要求将他们互换(即A瓶原来盛醋,现在盛酱油,B瓶则相反)。 解析: 用两个瓶子显然很难实现,可以借助一个空瓶子C作为中转,先将A中醋导入C中,然后将B中的酱油导入A中,最后将C中的醋导入B中即可实现交换。 依次将10个数输入,要求输出其中最大的数。 解析: 先输入10个整数,将第一个整数给max,然后依次取剩余整数与max进行比较,如果某个整数大于max,将该整数交给max,直到所有剩余整数全部比较完,max中保存的即为最大整数,将max值输出。
解析: 给定N为1,sum为0,如果N 小于等于100时,进行sum += N,直到N超过100,循环操作完成后sum即为从1加到100的结果。 解析: i:输入数据n ii:如果n能被3整数,进行iii,否则输出n不能被3和5整数 iii:如果n能被5整数,输出n能被3和5整数,否则n不能被3和5整数
解析: 如果 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 A 酱油 => B A => C B => A C => B end 依次将10个数输入,要求输出其中最大的数。 begin 1 => i 0 => max while i data => max } } print max end 有3个数a,b,c, 要求按大小顺序把他们输出。 begin input a input b input c if a > b { a => t b => a t => b } if c > a { c => t a => c t => a } if c > b { c => t b => c t => b } print a print b print c end 求1 + 2 + 3 + … + 100。 begin 1 => i 0 => sum while i if n % 5 == 0 { print n能被3和5整除 } else { print n不能被3和5整除 } } else { print n不能被3和5整除 } end 求两个数m和n的最大公约数 begin input m input n if m > n { m => t n => m t => n } while n != 0 { m % n => r m => n r => n } print m end 求方程 a x 2 + b x + c = 0 ax^2 + bx + c = 0 ax2+bx+c=0的根。分别考虑: 有两个不相等的实根;有两个相等的实根; begin input a input b input c b*b - 4*a*c => p if p print 方程有一个实根 -b/2a } if p > 0 { print 方程有两个实根: print x1 = {-b + sqrt(b^2 - 4ac)}/2a print x1 = {-b - sqrt(b^2 - 4ac)}/2a } end 7. 什么叫结构化程序设计?它的主要内容是什么? 结构化程序设计(structured programming,简称SP)是进行以模块功能和处理过程设计为主的详细设计的基本原则。其概念最早由E.W.Dijikstra在1965年提出的。结构化程序设计思想确实使程序执行效率提高 ,是软件发展的一个重要的里程碑,它的主要观点是采用自顶向下、逐步求精的程序设计方法;各个模块通过“顺序、选择、循环”的控制结构进行连接,并且只有一个入口、一个出口 。 8. 用自顶向下、逐步细化的方法进行以下算法的设计:输出1900—2000年中是软黏的年份,符合下面两个条件之一的年份是闰年: 能被4整除但不能被100整除能被100整除且能被400整除。 ```c 算法大体流程 1. 循环取1900到2000中的每一个年份 2. 对于每一个年份判断其是否是闰年 3. 是闰年则输出 判断一年是否是闰年: 1. 如果该年份内被4整除但是不能被100整除是闰年,否则不是闰年 2. 如果年份能被400整除则是闰年,否则不是闰年 求 a x 2 + b x + c = 0 ax^2 + bx + c = 0 ax2+bx+c=0的根。分别考虑 d = b 2 − 4 a c d = b^2 - 4ac d=b2−4ac大于0、等于0和小于0这三种情况。 1. 获取a b c的值 2. 计算b^2 - 4ac的结果并给p 3. 如果p 0, 则方程有两个实根 x1 = {-b + sqrt(b^2 - 4ac)}/2a x2 = {-b - sqrt(b^2 - 4ac)}/2a 输入10个数,输出其中最大的一个数。 1. 给一个max保存最大值 2. 分别输入10个数,并对用每个数与max进行比较 如果该数大于max,则将该数给max 3. 输出max喜欢点赞,创作不易,鼓励作者~ 其他章节: 第一章《程序设计和C语言》习题答案 第二章《算法–程序的灵魂》习题答案 第三章《最简单的C程序设计–顺序程序设计》习题答案 第四章《选择结构程序设计》习题答案 第五章《循环结构程序设计》习题答案 第六章《利用数组处理批量数据》习题答案 第七章《用函数实现模块化程序设计》习题答案 第八章《善于利用指针》习题答案 第九章《用户自己建立数据类型》习题答案 第十章《对文件的输入输出》习题答案 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |