1、 算法与流程图 26 资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。 §13.1 算法与流程图 基础自测 1.以下对算法的描述正确的有 个. ①对一类问题都有效; ②算法可执行的步骤必须是有限的; ③计算能够一步步地进行, 每一步都有确切的含义; ④是一种通法, 只要按部就班地做, 总能得到结果. 答案 4 2.任何一个算法都必须有的基本结构是 . 答案 顺序结构 3.下列问题的算法适宜用选择结构表示的是 ( 填序号) . ①求点P( -1,
2、3) 到直线l:3x-2y+1=0的距离 ②由直角三角形的两条直角边求斜边 ③解不等式ax+b>0 (a≠0) ④计算100个数的平均数 答案 ③ 4.下列4种框图结构中, 是直到型循环结构的为 ( 填序号) . 答案 ② 5.( ·广东理, 9) 阅读下面的流程图, 若输入m=4, n=3, 则输出a= , i= .( 注: 框图中的赋值符号”←”也能够写成”=”或”: =”) 答案 12 3 例1 已知点P( x0, y0) 和直线l:Ax
3、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的算法, 并
4、画出流程图. 解 算法如下: S1 输入; S2 如果≤100,那么f←0.6;否则 f ←100×0.6+(-100)×0.85; S3 输出f. 流程图为: 例3 ( 14分) 画出计算12-22+32-42+…+992-1002的值的流程图. 解 流程图如下图. 14分 1.写出求解一个任意二次函数y=ax2+bx+c(a≠0)的最值的算法. 解 算法设计如下: 第一步, 计算m ←; 第二步, 若a>0,输出最小值m; 第三步, 若a<0, 输出最大值m. 2.到银行办理个人异地汇款( 不超过100万元)
5、 银行收取一定的手续费, 汇款额不超过100元, 收取1元手续费, 超过100元但不超过5 000元, 按汇款额的1%收取, 超过5 000元, 一律收取50元手续费, 试用条件语句描述汇款额为x元时, 银行收取手续费y元的过程, 画出流程图. 解 这是一个实际问题, 故应先建立数学模型, y=由此看出, 求手续费时, 需先判断x的范围, 故应用选择结构描述. 流程图如图所示: 3.利用两种循环写出1+2+3+…+100的算法, 并画出各自的流程图. 解 直到型循环算法: 第一步: S←0; 第二步: I←1; 第三步: S←S+I; 第四步: I←I+
6、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.在算法的逻辑结构中, 要求进
7、行逻辑判断, 并根据结果进行不同处理的是哪种结构 . 答案 选择结构和循环结构 3.阅读下面的流程图, 若输入的a、 b、 c分别是21、 32、 75, 则输出的a、 b、 c分别是 . 答案 75, 21, 32 4.如果执行下面的流程图, 那么输出的S= . 答案 2 550 5.( ·兴化市板桥高级中学12月月考) 如下图的流程图输出的结果为 . 答案 132 6.如图所示, 流程图所进行的求
8、和运算是 . 答案 +++…+ 7.( ·山东理, 13) 执行下边的流程图, 若p=0.8, 则输出的n= .( 注: 框中的赋值符号”←”, 也能够写成”=”或”:=”) 答案 4 8.若框图所给的程序运行的结果为S=90, 那么判断框中应填入的关于k的判断条件是 . 答案 k≤8 二、 解答题
9、 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; 第二步
10、 如果x1=x2,输出”斜率不存在”, 否则, k ←; 第三步: 输出k. 相应的流程图如图所示: 11.画出求+++…+的值的流程图. 解 流程图如图所示: 12.某企业 的生产总值为200万元, 技术创新后预计以后的每年的生产总值将比上一年增加5%, 问最早哪一年的年生产总值将超过300万元? 试写出解决该问题的一个算法, 并画出相应的流程图. 解 算法设计如下: 第一步, n←0,a←200,r←0.05. 第二步, T←ar(计算年增量). 第三步, a←a+T( 计算年产量) . 第四步, 如果a≤300, 那么n←n+1, 重复执行第二步
11、 如果a>300,则执行第五步. 第五步, N←2 007+n. 第六步, 输出N. 流程图如下: 方法一 方法二 §13.2 基本算法语句、 算法案例 基础自测 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; ⑧程序终止. 由语句⑦打印出的数值为
12、 、 . 答案 8 7 682 2.按照下面的算法进行操作: S1 x←2.35 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的值是 .
13、 答案 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×3.14) Print S1 Print S
14、2 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分 例3 编写一组伪代码计算1+++…+, 并画出相应的流程图. 解 伪代码如下: i←1 S←0 While i≤1 000 S←S+1/i i←i+1 End Whil
15、e 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.某百货公司为了促销, 采用打折的优惠办法: 每位顾客一次购物 ①在100元以上者( 含100元, 下同) , 按九五折优惠; ②在200元以上者, 按九折优惠; ③在300
16、元以上者, 按八五折优惠; ④在500元以上者, 按八折优惠. 试写出算法、 画出流程图、 伪代码, 以求优惠价. 解 设购物款为x元, 优惠价为y元, 则优惠付款公式为y= 算法分析: S1 输入x的值; S2 如果x<100, 输出y←x,否则转入S3; S3 如果x<200,输出y←0.95x,否则转入S4; S4 如果x<300, 输出y←0.9x,否则转入S5; S5 如果x<500,输出y←0.85x,否则转入S6; S6 输出y←0.8x. 3.某玩具厂1996年的生产总值为200万元
17、 如果年生产增长率5%, 计算最早在哪一年生产总值超过300万元.试写出伪代码. 解 伪代码如下: n←1 996 p←1.05 a←200 While a≤300 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 Prin
18、t y 答案 -5 3.写出下列伪代码的运行结果. 图1 图2 ( 1) 图1的运行结果为 ; ( 2) 图2的运行结果为 . 答案 ( 1) 7 ( 2) 6 4.以下给出的是用条件语句编写的一个伪代码, 该伪代码的功能是 . 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
19、 答案 求下列函数当自变量输入值为x时的函数值f(x),其中f( x) = 5.下面是一个算法的伪代码, 其运行的结果为 . S←1 For I From 3 To 99 Step 2 S←S+I End For Print S 答案 2 500 6.如图所示, 该伪代码表示的作用是 . Read a,b,c m←max(a,b,c) Print m End 答案 求三个数中最大的数 7.如图( 1) 是某循环流程图
20、的一部分, 若改为图( 2) , 则运行过程中I的值是 . 答案 1 8.图中算法执行的循环次数为 . S←0 For I From 2 To 1 000 Step 3 S←S+I End For 答案 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
21、If Print y End 10.请设计一个问题, 使得该问题的算法如已知的伪代码所示. Read a r←a/2 S←×r×r-a×a Print S End 解 已知圆O内有一个边长为a的圆的内接正方形, 求圆的面积比正方形的面积大多少? 11.有一个算法如下: S1 输入x; S2 判断x>0 是: z←1; 否: z←-1; S3 z←1+z; S4 输出z. 试写出上述算法的流程图及相应的伪代码. 解 Read x If x>0 Then z←1 Else z←-1
22、 End If z←z+1 Print z End 12.一个小朋友在一次玩皮球时, 偶然发现一个现象: 球从某高度落下后, 每次都反弹回原高度的, 再落下, 再反弹回上次高度的, 如此重复.假设球从100 cm处落下, 那么第10次下落的高度是多少? 在第10次落地时共经过多少路程? 试用伪代码表示其算法. 解 伪代码如图所示: 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






