§ 算法与流程图
1.以下对算法的描述正确的有 个.
①对一类问题都有效;①算法可执行的步骤必须是有限的;①计算可以一步步地进行,每一步都有确切的
含义;
①是一种通法,只要按部就班地做,总能得到结果.
答案 4
2.任何一个算法都必须有的基本结构是 .
答案 顺序结构
3.下列问题的算法适宜用选择结构表示的是 (填序号).
①求点 P(-1,3)到直线 l:3x-2y+1=0 的距离
①由直角三角形的两条直角边求斜边
①解不等式 ax+b>0 (a≠0)
①计算 100 个数的平均数
答案 ①
4.下列 4 种框图结构中,是直到型循环结构的为 (填序号).
答案 ①
5.(2008·广东理,9)阅读下面的流程图,若输入 m=4,n=3,则输出 a= ,i= .(注:框图中的
赋值符号“←”也可以写成“=”或“:=”)
基础自测
答案 12 3
例 1 已知点 P(x0,y0)和直线 l:Ax+By+C=0,求点 P(x0,y0)到直线 l 的距离 d,写出其算法并画出
流程图.
解 算法如下:
第一步,输入 x0,y0 及直线方程的系数 A,B,C. 流程图:
第二步,计算 Z1←Ax0+By0+C.
第三步,计算 Z2←A2+B2.
第四步,计算 d← .
第五步,输出 d.
例 2 “特快专递”是目前人们经常使用的异地邮寄信函或托运物品的一种快捷方式,某
快递公司规定甲、乙两地之间物品的托运费用根据下列方法计算:
f =
其中 f(单位:元)为托运费, 为托运物品的重量(单位:千克).试设计计算费用 f 的算法,并画出流程
图.
解 算法如下:
S1 输入 ;
S2 如果 ≤100,那么 f← ;否则
f ←100×+( -100)×;
S3 输出 f.
流程图为:
例 3 (14 分)画出计算 12-22+32-42+…+992-1002 的值 的流程图.
解 流程图如下图.
2
1
)100()100(
)100(
14 分
1.写出求解一个任意二次函数 y=ax2+bx+c(a≠0)的最值的算法.
解 算法设计如下:
第一步,计算 m ← ;
第二步,若 a>0,输出最小值 m;
第三步,若 a<0,输出最大值 m.
2.到银行办理个人异地汇款(不超过 100 万元),银行收取一定的手续费,汇款额不超过 100 元,收取 1 元
手续费,超过 100 元但不超过 5 000 元,按汇款额的 1%收取,超过 5 000 元,一律收取 50 元手续费,试
用条件语句描述汇款额为 x 元时,银行收取手续费 y 元的过程,画出流程图.
解 这是一个实际问题,故应先建立数学模型,
y= 由此看出,求手续费时,需先判断 x 的范围,故应用选择结构描述.
流程图如图所示:
3.利用两种循环写出 1+2+3+…+100 的算法,并画出各自的流程图.
解 直到型循环算法:
第一步:S←0;
a
bac
4
4 2
0005100,
1000,1
x
xx
x
第二步:I←1;
第三步:S←S+I;
第四步:I←I+1;
第五步:如果 I 不大于 100,转第三步;否则,输出 S.
相应的流程图如图甲所示.
当型循环算法如下:
S1 令 i←1,S←0
S2 若 i≤100 成立,则执行 S3;否则,输出 S,结束算法
S3 S←S+i
S4 i←i+1,返回 S2
相应的流程图如图乙所示.
一、填空题
1.算法:
S1 输入 n;
S2 判断 n 是否是 2,若 n=2,则 n 满足条件,若 n>2,则执行 S3;
S3 依次从 2 到 n-1 检验能不能整除 n,若不能整除 n,满足上述条件的是 .
答案 质数
2.在算法的逻辑结构中,要求进行逻辑判断,并根据结果进行不同处理的是哪种结构 .
答案 选择结构和循环结构
3.阅读下面的流程图,若输入的 a、b、c 分别是 21、32、75,则输出的 a、b、c 分别是 .
答案 75,21,32
4.如果执行下面的流程图,那么输出的 S= .
答案 2 550
5.(2009·兴化市板桥高级中学 12 月月考)如下图的流程图输出的结果为 .
答案 132
6.如图所示,流程图所进行的求和运算是 .
答案 + + +…+
7.(2008·山东理,13)执行下边的流程图,若 p=,则输出的 n= .(注:框中的赋值符号“←”,
也可以写成“=”或“:=”)
2
1
4
1
6
1
20
1
答案 4
8.若框图所给的程序运行的结果为 S=90,那么判断框中应填入的关于 k 的判断条件是 .
答案 k≤8
二、解答题
9.已知函数 f(x)= ,写出该函数的函数值的算法并画出流程图.
解 算法如下:
第一步,输入 x.
第二步,如果 x<0,那么使 f(x)←3x-1;
否则 f(x)←2-5x.
第三步,输出函数值 f(x).
流程图如下:
10.写出求过两点 P1(x1,y1),P2(x2,y2)的直线的斜率的算法,并画出流程图.
解 由于当 x1=x2 时,过两点 P1、P2 的直线的斜率不存在,只有当 x1≠x2 时,根据斜率公式
k= 求出,故可设计如下的算法和流程图.
算法如下:
第一步:输入 x1,y1,x2,y2;
第二步:如果 x1=x2,输出“斜率不存在”,否则,
)0(52
)0(13
xx
xx
12
12
xx
yy
k ← ;
第三步:输出 k.
相应的流程图如图所示:
11.画出求 + + +…+ 的值的流程图.
解 流程图如图所示:
12.某企业 2007 年的生产总值为 200 万元,技术创新后预计以后的每年的生产总值将比上一年增加 5%,问
最早哪一年的年生产总值将超过 300 万元?试写出解决该问题的一个算法,并画出相应的流程图.
解 算法设计如下:
第一步,n←0,a←200,r←.
第二步,T←ar(计算年增量).
第三步,a←a+T(计算年产量).
第四步,如果 a≤300,那么 n←n+1,重复执行第二步.
如果 a>300,则执行第五步.
第五步,N←2 007+n.
第六步,输出 N.
流程图如下:
方法一
12
12
xx
yy
21
1
32
1
43
1
10099
1
方法二
§ 基本算法语句、算法案例
1.下面是一个算法的操作说明:
①初始值为 n←0,x←1,y←1,z←0;
①n←n+1;
①x←x+2;
①y←2y;
①z←z+xy;
①如果 z>7 000,则执行语句①;否则回到语句①继续执行;
①打印 n,z;
①程序终止.
由语句①打印出的数值为 、 .
答案 8 7 682
2.按照下面的算法进行操作:
S1 x←
S2 y←Int(x)
S3 Print y
最后输出的结果是 .
答案 2
3.读下面的伪代码:
Read x
If x>0 Then
Print x
Else
Print -x
End If
这个伪代码表示的算法的功能是 .
答案 输入一个数,输出其绝对值
4.下面是一个算法的伪代码.如果输入的 x 的值是 20,则输出的 y 的值是 .
答案 150
基础自测
5.与下列伪代码对应的数学表达式是 .
Read n
e←0
S←1
For I From 1 To n Step 1
S←S×I
e←e+1/S
End for
Print e
答案 S=1+ + +…+
例 1 设计算法,求用长度为 l 的细铁丝分别围成一个正方形和一个圆时的面积.要求输入 l 的值,输出
正方形和圆的面积.
解 伪代码如下:
Read l
S1←(l×l)/16
S2←(l×l)/(4×)
Print S1
Print S2
End
例 2 (14 分)已知分段函数 y= ,编写伪代码,输入自变量 x 的值,输出其相应
的函数值,并画出流程图.
解 伪代码如下: 流程图如图所示:
Read x
If x<0 Then
y ←-x+1
Else
If x=0 Then
y←0
Else
y←x+1
End If
End If
Print y
End 7 分
!2
1
!3
1
!
1
n
0,1
0,0
0,1
xx
x
xx
例 3 编写一组伪代码计算 1+ + +…+ ,并画出相应的流程图.
解 伪代码如下:
i←1
S←0
While i≤1 000
S←S+1/i
i←i+1
End While
Print S
End
流程图如图所示:
1.下面的表述:
①6←p;
①t←3×5+2;
①b+3←5;
①p←((3x+2)-4)x+3;
①a←a3;
①x,y,z←5;
①ab←3;
①x←y+2+x.
其中正确表述的赋值语句有 .
(注:要求把正确的表述的序号全填上)
答案 ①①①①
2
1
3
1
0001
1
2.某百货公司为了促销,采用打折的优惠办法:
每位顾客一次购物
①在 100 元以上者(含 100 元,下同),按九五折优惠;
①在 200 元以上者,按九折优惠;
①在 300 元以上者,按八五折优惠;
①在 500 元以上者,按八折优惠.
试写出算法、画出流程图、伪代码,以求优惠价.
解 设购物款为 x 元,优惠价为 y 元,
则优惠付款公式为 y=
算法分析:
S1 输入 x 的值;
S2 如果 x<100,输出 y←x,否则转入 S3;
S3 如果 x<200,输出 y←,否则转入 S4;
S4 如果 x<300,输出 y←,否则转入 S5;
S5 如果 x<500,输出 y←,否则转入 S6;
S6 输出 y←.
3.某玩具厂 1996 年的生产总值为 200 万元,如果年生产增长率 5%,计算最早在哪一年生产总值超过 300
万元.试写出伪代码.
解 伪代码如下:
n←1 996
p←
a←200
While a≤300
500,
500300,
300200,
200100,
100,
xx
xx
xx
xx
xx
a←a×p
n←n+1
End While
Print n
End
一、填空题
1.伪代码
a←3
b←5
Print a+b
的运行结果是 .
答案 8
2.为了在运行下面的伪代码后输出 y=16,应输入的整数 x 的值是 .
Read x
If x<0 Then
y←(x+1)2
Else
y←1-x2
End If
Print y
答案 -5
3.写出下列伪代码的运行结果.
图 1 图 2
(1)图 1 的运行结果为 ;
(2)图 2 的运行结果为 .
答案 (1)7 (2)6
4.以下给出的是用条件语句编写的一个伪代码,该伪代码的功能是 .
答案 求下列函数当自变量输入值为 x 时的函数值 f(x),其中 f(x)=
5.下面是一个算法的伪代码,其运行的结果为 .
答案 2 500
6.如图所示,该伪代码表示的作用是 .
答案 求三个数中最大的数
7.如图(1)是某循环流程图的一部分,若改为图(2),则运行过程中 I 的值是 .
3,1
3,2
3,2
2 xx
x
xx
Read x
If x<3 Then
y←2×x
Else
If x>3 Then
y←x2-1
Else
y←2
End If
End If
Print y
End
S←1
For I From 3 To 99 Step 2
S←S+I
End For
Print S
Read a,b,c
m←max(a,b,c)
Print m
End
答案 1
8.图中算法执行的循环次数为 .
答案 333
二、解答题
9.用条件语句描述下面的算法流程图.
解
Read x
If x<0 Then
y←2×x+3
Else
If x>0 Then
y←2×x-5
Else
y←0
End If
End If
Print y
S←0
For I From 2 To 1 000 Step 3
S←S+I
End For
End
10.请设计一个问题,使得该问题的算法如已知的伪代码所示.
解 已知圆 O 内有一个边长为 a 的圆的内接正方形,求圆的面积比正方形的面积大多少?
11.有一个算法如下:
S1 输入 x;
S2 判断 x>0
是:z←1;否:z←-1;
S3 z←1+z;
S4 输出 z.
试写出上述算法的流程图及相应的伪代码.
解
12.一个小朋友在一次玩皮球时,偶然发现一个现象:球从某高度落下后,每次都反弹回原高度的 ,再落
下,再反弹回上次高度的 ,如此反复.假设球从 100 cm 处落下,那么第 10 次下落的高度是多少?在第
10 次落地时共经过多少路程?试用伪代码表示其算法.
解 伪代码如图所示:
3
1
3
1
Read a
r← 2 a/2
S← ×r×r-a×a
Print S
End
Read x
If x>0 Then
z←1
Else
z←-1
End If
z←z+1
Print z
End
h←100
s←100
i←2
While i≤10
h←h/3
s←s+2×h
i←i+1
End While
Print “第 10 次下落的高度为:”;h
Print “第 10 次落地时共经过的路程为:”;s
End