C程序设计第五版谭浩强课后答案第⼆章答案
c语⾔程序设计第五版谭浩强课后答案
第⼆章:算法----程序的灵魂
1. 什么是算法?试从⽇常⽣活中3个例⼦,描述它们的算法
算法:简⽽⾔之就是求解问题的步骤,对特定问题求解步骤的⼀种描述。
⽐如⽣活中的例⼦:
1. 考⼤学
⾸先填报志愿表、交报名费、拿到准考证、按时参加考试、收到录取通知书、按照⽇期到指定学校报到。
2. 去北京听演唱会
⾸先在⽹上购票、然后按时坐车到北京,坐车到演唱会会场。
3. 把⼤象放进冰箱
先打开冰箱门,然后将⼤象放进冰箱,关冰箱。
2. 什么叫结构化的算法?为什么要提倡结构化的算法?
结构化算法:由⼀些顺序、选择、循环等基本结构按照顺序组成,流程的转移只存在于⼀个基本的范围之内。
结构化算法便于编写,可读性⾼,修改和维护起来简单,可以减少程序出错的机会,提⾼了程序的可靠性,保证了程序的质量,因此提倡结构化的算法。
3. 试述3种基本结构的特点,请另外设计两种基本结构(要符合基类结构的特点)。
结构化程序设计⽅法主要由以下三种基本结构组成:
1. 顺序结构:顺序结构是⼀种线性、有序的结构,它依次执⾏各语句模块
2. 选择结构:选择结构是根据条件成⽴与否选择程序执⾏的通路。
3. 循环结构:循环结构是重复执⾏⼀个或⼏个模块,直到满⾜某⼀条件位置
重新设计基本结构要满⾜以下⼏点:c程序设计谭浩强pdf百度网盘
1. 只有⼀个⼊⼝
2. 只有⼀个出⼝
3. 结构内的每⼀部分都有机会执⾏到
4. 结构内不存在死循环
因此给出以下复习结构: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,结束