关于c:C语言程序设计谭浩强第五版-第2章-算法程序的灵魂-习题解析与答案

41次阅读

共计 3258 个字符,预计需要花费 9 分钟才能阅读完成。

你也能够上程序咖(https://meta.chengxuka.com),关上大学幕题板块,岂但有答案,解说,还能够在线答题。

题目 1:什么是算法?试从日常生活中找 3 个例子,形容它们的算法。

答:

算法:算法是计算机解决信息的实质,因为计算机程序实质上是一个算法来通知计算机确切的步骤来执行一个指定的工作。个别地,当算法在解决信息时,会从输出设施或数据的存储地址读取数据,把后果写入输出设备或某个存储地址供当前再调用。

算法是独立存在的一种解决问题的办法和思维。

对于算法而言,实现的语言并不重要,重要的是思维。

例如:

1、自驾去新疆游览

筹备好车,而后筹备游览路线等,开车登程,一路游山玩水。

2、网上买一部手机

首先选好网购平台(某宝,某东,某猫等),而后抉择想要的品牌和型号,下单,期待到货。

3、相亲

首先有七大姑八大姨等(如果没有能够抉择一些交友网站或其余媒婆),而后获取对方的联系方式和根本信息,登程达到目的地,相见,称心或不称心,决定了是否能够再约。

4、把大象放进冰箱

先关上冰箱门,而后将大象放进冰箱,关冰箱。

题目 2:什么叫结构化的算法?为什么要提倡结构化的算法?

答:

结构化算法:由一些程序、抉择、循环等根本构造依照程序组成,流程的转移只存在于一个根本的范畴之内。

结构化算法便于编写,可读性高,批改和保护起来简略,能够缩小程序出错的机会,进步了程序的可靠性,保障了程序的品质,因而提倡结构化的算法。

题目 3:试述 3 种根本构造的特点,请另外设计两种根本构造(要合乎根本构造的特点)。

解:

结构化程序设计办法次要由以下三种根本构造组成:

程序构造:程序构造是一种线性、有序的构造,它顺次执行各语句模块
抉择构造:抉择构造是依据条件成立与否抉择程序执行的通路。
循环构造:循环构造是反复执行一个或几个模块,直到满足某一条件地位

从新设计根本构造要满足以下几点:

只有一个入口
只有一个进口
构造内的每一部分都有机会执行到
构造内不存在死循环

见图 2.1 和图 2.2。

题目 4:用传统流程图示意求解以下问题的算法。

(1)有两个瓶子 A 和 B,别离盛放醋和酱油,要求将它们调换(即 A 瓶原来盛醋,现改盛酱油,B 瓶则相同)。

解:显然,如果只有两个瓶子,必定不能实现此工作,必须有一个空瓶 C 作为过渡,其步骤见图 2.3。

(2)顺次将 10 个数输人,要求输入其中最大的数。

解:流程图见图 2.4。

(3)有 3 个数 a,b,c,要求按大小程序把它们输入。

解:流程图见图 2.5。

(4)求 1 +2+3+……+ 100。

解:流程图见图 2.6。

(5)判断一个数 n 是否同时被 3 和 5 整除。

解:流程图见图 2.7(a)或图 2.7(b)。

(6)将 100~200 之间的素数输入。

解:流程图见图 2.8。

(7)求两个数 m 和 n 的最大公约数。

解:流程图见图 2.9。

(8)求方程式 ax2+ bx+c= 0 的根。别离思考:

​ ①有两个不等的实根;

​ ②有两个相等的实根。

解:流程图见图 2.10。

题目 5:用 N - S 图示意第 4 题中各题的算法。

(1)有两个瓶子 A 和 B,别离盛放醋和酱油,要求将它们调换(即 A 瓶原来盛醋,现改盛酱油,B 瓶则相同)。

解:N- S 流程图见图 2.11。

(2)顺次将 10 个数输人,要求输入其中最大的数。

解:N- S 流程图见图 2.12。

(3)有 3 个数 a,b,c,要求按大小程序把它们输入。

解:N- S 流程图见图 2.13。

(4)求 1 +2+3+……+ 100。

解:N- S 流程图见图 2.14。

(5)判断一个数 n 是否同时被 3 和 5 整除。

解:N- S 流程图见图 2.15。

(6)将 100~200 之间的素数输入。

解:N- S 流程图见图 2.16。

(7)求两个数 m 和 n 的最大公约数。

解:N- S 流程图见图 2.17。

(8)求方程式 ax2+ bx+c= 0 的根。别离思考:

​ ①有两个不等的实根;

​ ②有两个相等的实根。

解:N- S 流程图见图 2.18。

题目 6:用伪代码示意第 4 题中各题的算法。

(1)有两个瓶子 A 和 B,别离盛放醋和酱油,要求将它们调换(即 A 瓶原来盛醋,现改盛酱油,B 瓶则相同)。

解:

c = a
a = b
b = c

(2)顺次将 10 个数输人,要求输入其中最大的数。

解:

n= 1
input max 
while n<10 do
    input a
    if a>max then max= a
    n=n+1
end do
print max

(3)有 3 个数 a,b,c,要求按大小程序把它们输入。

解:

input a,b,c
if a<b then swap a,b        (swap a,b 示意 a 和 b 互換)
if a<c then
    print c,a,b
else
    if c>b then
        print a,c,b
    else
        print a,b,c 
    end if
end if

(4)求 1 +2+3+……+ 100。

解:

sum = 0
n= 1
while n≤100 do
    sum = sumt+n 
    n=n+1
end do
print sum

(5)判断一个数 n 是否同时被 3 和 5 整除。

解:

input n
flag=0
if mod(n,3)≠ 0 then flag=- 1
if mod(n,5)≠ 0 then flag= 1
if flag=0 then
    print n "能被 3 和 5 整除"
else
    print n " 不能同时被 3 和 5 整除
end if

(6)将 100~200 之间的素数输入。

解:

n= 100 
while n≤200 do 
  i=2 
  while i≤ √n
    if mod(n,i)=0 then 
      i=n 
    else 
      i=i+1 
    end if 
   end do
   if i<√n then print n 
   n=m+1 
end do

(7)求两个数 m 和 n 的最大公约数。

解:

input m,n
if m<n then swap m,n 
t= mod(m,n)
while r≠=0 do
  m= n 
  n=r 
  r= mod(m,n)
end do 
print n

(8)求方程式 ax2+ bx+c= 0 的根。别离思考:

​ ①有两个不等的实根;

​ ②有两个相等的实根。

解:

int a,b,c 
disc= b2-4ac 
if disc≥0 then
  if disc=0 then
    xl,x2=-b/(2a)
  else
    xl=(-b+√disc)/(2a)
    x2=(-b-√disc)/(2a)
    end if 
     print x1,x2 
else
  p=-b/(2a)
  q= √(dis/(2a)
  print p+q,"+",p-q,"i"
end if

题目 7:什么叫结构化程序设计?它的次要内容是什么?

答:

结构化程序设计(structured programming,简称 SP)是进行以模块性能和处理过程设计为主的具体设计的根本准则。其概念最早由 E.W.Dijikstra 在 1965 年提出的。结构化程序设计思维的确使程序执行效率进步,是软件倒退的一个重要的里程碑,它的次要观点是采纳自顶向下、逐步求精的程序设计办法;各个模块通过“程序、抉择、循环”的控制结构进行连贯,并且只有一个入口、一个进口。

题目 8:用自顶向下、逐渐细化的办法进行以下算法的设计:

(1)输入 1900- 2000 年中是平年的年份,合乎上面两个条件之一的年 份是平年:

​ ①能被 4 整除但不能被 100 整除;

​ ②能被 100 整除且能被 400 整除。

解:先画出图 2.19(a),对它细化得图 2.19(b); 对图 2.19(b)中的 S1.1 细化得图 2.19(c)。

(2)求 ax2+bx+c= 0 的根。别离思考 d =b°-4ac 大于 0、等于 0 和小于 0 这 3 种状况。

解:先画出图 2.20(a),对其中的 S3 细化为图 2.20(b),对图 2.20(b)中的 S3.1 细化为图 2.20(c),对图 2.20(c)中的 S3.1.1 细化为图 2.20(d),对图 2.20(c)中的 S3.1.2 细化为图 2.20(e),再对图 2.20(b)中的 S3.2 细化为图 2.20(f)。请读者将它们合成一个总的
N- S 图。

(3)输人 10 个数,输入其中最大的一个数。

解:先初步画出图 2.21(a)。思考到还没有学习数组的常识,因此不能做到将 10 个数全副输出给数组中各个元素,而后再从中找最大者。因为不采纳数组这种数据结构,算法也应与采纳数组时有所不同。当初只用一般变量,一一读入数据,将过后各数中的最大者保留下来寄存在 max 中,以便再与前面读入的数比拟。将图 2.21(a)细化为图 2.21(b),再细化为图 2.21(c)。

正文完
 0