[] [] [] 发布人:文得学习网 发布日期:2021-07-10 共895人浏览过


本“c程序设计谭浩强答案”选自于:谭浩强《C程序设计》(第5版)典型习题详解


购买请点击链接:/Ebook/999956.html


更多在线刷题软件|模拟试题题库|历年真题及答案,上文得学习网

文得学习网汇聚了全国各种考试不仅提供了全国各高校专业辅导班,还有电子书、题库、视频10万份考试资料。


试看部分精选内容:试题及答案


4用伪代码表示第2题中各题的算法。

答:(1)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个数大小输出的伪代码为:

input a,b,c
if a<b then swap 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=sum+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<=sqrt(n)
    if mod(n,i)=0 then
      i=n
    else
      i=i+1
    end if
  end do
  if i<sqrt(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=b^2-4ac
if disc>=0 then
  if disc=0 then
    x1,x2=-b/(2a)
  else
    x1=(-b+sqrt(disc))/(2a)
    x2=(-b-sqrt(disc))/(2a)
  end if
  print x1,x2
else
  p=-b/(2a)
  q= sqrt(disc)/(2a)
  print p+q,"+","i"
end if
 

5用自顶向下、逐步细化的方法进行以下算法的设计:

(1)输出1900~2000年中是闰年的年份,符合下面两个条件之一的年份是闰年:

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

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

答:先画出图2-18(a),对它细化得图2-18(b);对图2-18(b)中的S1.1细化得图2-18(c)。

图2-18 输出1900~2000中闰年的流程图

 

(2)求ax2+bx+c=0的根。分别考虑d=b2-4ac大于0、等于0和小于0这3种情况。

答:先画出图2-19(a),对其中的S3细化为图2-19(b);对图2-19(b)中的S3.1细化为图2-19(c);对图2-19(c)中的S3.1.1细化为图2-19(d);对图2-19(c)中的S3.1.2细化为2-19(e),对图2-19(b)中S3.2细化为图2-19(f)。

图2-19 求ax2+bx+c=0根的流程图

 

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

答:先初步画出图2-20(a),考虑到还没有学习数组的知识,因而不能做到将10个数全部输入给数组中各个元素,然后再从中找到最大者。由于不采用数组这种数据结构,算法也应与采用数组时有所不同,现在只用普通变量,逐个读入数据,将当时各数中的最大者保留下来存放在max中,以便再与后面读入的数比较。将图2-20(a)细化为图2-20(b),再细化为图2-20(c)。

图2-20 求解输入10个数中最大数的流程图



热门文章推荐: