1、第一章第一章算法初步算法初步测试一测试一算法与程序框图概念算法与程序框图概念学习目标学习目标1了解算法思想及算法的意义2了解框图的概念,明确框图符号的意义基础性训练基础性训练一、选择题一、选择题1下列程序框通常用来表示赋值、计算功能的是()(A)(B)(C)(D)2算法的有穷性指的是()(A)算法是明确和有效的(B)算法能够在有限步内完成(C)算法的每个操作步骤是可执行的(D)用数字进行四则运算的有限过程3对算法理解正确的是()(A)一种解题方法(B)基本运算及规定的运算顺序构成的完整的解题步骤(C)计算的方法(D)一种语言程序4算法中,每一步的结果有()(A)一个或两个(B)任意多个(C)确
2、定的一个(D)两个*5有一堆形状大小相同的珠子,其中只有一粒重量比其他的珠子重,其余所有珠子重量相同一个同学利用科学的算法,仅两次利用天平就找出了这颗最重的珠子,则这堆珠子最多有()(A)6 粒(B)7 粒(C)8 粒(D)9 粒二、填空题二、填空题6完成不等式 2x33x2 的算法过程:(1)将含 x 的项移项至不等式的左边,将常数项移至不等式的右边,得_;(2)在不等式两边同时除以 x 的系数,得_7阅读流程图(图 1),试写出流程图所给出的算法含义:_图 18写出图 2 中顺序框图的运算结果_图 29写出图 3 中顺序框图的运算结果_图 310 “判断整数 n(n2)是否为质数”的算法可
3、以按如下步骤进行:S1 给定大于 2 的整数 nS2令 i2S3用 i 除 n,得到余数 rS4判断余数 r 是否为 0若为 0,则不是质数,结束算法;否则将 i 的值增加 1 仍用 i表示S5判断 i 是否大于 n1若是,则是质数,结束算法;否则返回第三步现设给定的整数为 35,则算法结束时 i 的值是_三、解答题三、解答题11写出判断直线 axbyc0 与圆 x2y21 的位置关系的算法12写出求解二元一次方程组21yxax的算法步骤13在某商场购物时,商场会按顾客购物款的数额的大小分别给予不同的优惠折扣计算顾客应付货款的算法步骤如下:S1输入购物款 x(购物款以元为单位)S2若 x250
4、,则折扣率 d0;若250 x500,则折扣率 d0.05;若500 x1000,则折扣率 d0.10;若x1000,则折扣率 d0.15;S3计算应付货款 Tx(1d);S4输出应付货款 T现已知某顾客的应付货款是 882 元,求该顾客的购物款是多少元14输入直角三角形两直角边长度,输出第三条边长度,画出此题的顺序框图测试二测试二程序框图程序框图(一一)学习目标学习目标理解三种逻辑结构,会读逻辑框图,尝试写出程序框图基础性训练基础性训练一、选择题一、选择题1程序框图中“处理框”的功能是()(A)赋值(B)计算(C)赋值或计算(D)判断某一条件是否成立2尽管算法千差万别,但程序框图按其逻辑结构
5、分类只有()(A)2 类(B)3 类(C)4 类(D)5 类3程序框图如图 1 所示,输出的结果为()图 1(A)2,5(B)4,7(C)2,4(D)1,24程序框图如图 2 所示,输出的结果为()图 2(A)2(B)9(C)3(D)15程序框图如图 3 所示,当 a1,b3 时输出的结果为()(A)0,1(B)2,4(C)21,43(D)2,4图 3二、填空题二、填空题6用流程图表示求解不等式 axb(a0)的算法时,判断框内的内容可以是_7在表示求解一元二次方程的算法中,需要使用选择结构,因为_8如图 4,当 a1 时,框图的输出结果是_图 49如图 5,框图的输出结果是_图 510如图
6、6 所示框图,设火车托运重量为 p(kg)的行李时,每千克的费用标准为,)kg30)(30(5 . 0303 . 0,)kg30(3 . 0PPPPy则图中处分别填的内容为:_;_图 6三、解答题三、解答题11已知函数 f(x)x3,程序框图(图 7)表示的是给出 x 值,求相应函数值的算法请将该框图补充完整写出两处应填的内容图 712观察所给算法的流程框图(图 8),说明它表示的函数如果输入数字 1,则输出的数字是什么?图 8拓展性训练拓展性训练13设计一个求任意实数的绝对值的算法,并画出流程图14已知三个实数 a,b,c,试给出寻找这三个数中最大数的一个算法,并画出该算法的流程图测试三测试
7、三程序框图程序框图(二二)学习目标学习目标理解三种逻辑结构,会读逻辑框图,尝试写出程序框图基础性训练基础性训练一、选择题一、选择题1下列关于框图的逻辑结构说法正确的是()(A)用顺序结构画出“求点到直线的距离”的程序框图是唯一的(B)条件结构中不含顺序结构(C)条件结构中一定含有循环结构(D)循环结构中一定包含条件结构2已知函数, 0, 0,)(xxxxxf在由给定的自变量 x 计算函数值 f(x)的算法中,应该至少包含以下基本逻辑结构中的()(A)顺序结构、循环结构(B)条件结构、循环结构(C)顺序结构、条件结构(D)顺序结构、循环结构3下列四个说法中正确的有()任意一个算法都离不开顺序结构
8、算法程序框图中,根据条件是否成立有不同的流向循环体是指按照一定条件,反复执行某一处理步骤循环结构中一定有条件结构,条件结构中一定有循环结构(A)1 个(B)2 个(C)3 个(D)4 个4要解决下面四个问题,只用顺序结构画不出其流程图的是()(A)计算 1210 的值(B)当圆的面积已知时,求圆的周长(C)给定一个数 x,求其绝对值(D)求函数 f(x)x33x 的值5算法:S1ma;S2若 bm,则 mb;S3若 cm,则 mc;S4若 dm,则 md;S5输出 m则输出的 m 为()(A)a,b,c,d 中的最小值(B)a,b,c,d 中的最大值(C)d(D)a二、填空题二、填空题6程序框
9、图中的“处理框”的功能是_7有如图 1 所示的程序框图,该程序框图表示的算法功能是_图 18 如图 2 所示是求小于等于 1000 所有正偶数的和的程序框图, 则空白处应为_;应为_图 29 如图 3 所示表示的是计算前 10 个奇数倒数之和的算法的程序框图, 其中判断框内应填入的条件是_图 3三、解答题三、解答题10给出如图 4 所示的程序框图在执行上述框图表达的算法后,输出的 S,i 的值分别是多少?图 411写出表示解方程 axb0(a,b 为常数)的一个程序框图拓展性训练拓展性训练12设计求 S1352007 和 T1352007 的一个算法,并画出相应的流程图13某工厂 2004 年
10、的生产总值为 200 万元,技术革新后,预计以后每年的生产总值比上一年增加 5,问最早需要到哪一年年生产总值超过 300 万元,写出算法并画出相应的程序框图测试四测试四算法语言算法语言学习目标学习目标了解算法语言,尝试用算法语言实现一些算法基础性训练基础性训练1编写一个输入底面边长和侧棱长,求正四棱锥体积的程序2已知函数 f(x)2x3,编写一段程序,用来求 ff(x)的值(其中,x 值由用户输入)3给出三个正数 a,b,c,问能否构成一个三角形,若能则求其面积请设计一个程序解决该问题(注:已知三角形三边分别为 a,b,c,则其面积)()(cpbpappS,其中 p2cba)4已知等式“365
11、2838256”中,方框内是同一个数字,请设计程序,用尝试的方法求出满足等式的一个数字5请编写一个程序,计算 1!2!3!4!100!(注:其中 4!1234,5!12345,100!123100)拓展性训练拓展性训练6已知数列an满足:a11,a23,对于任意的 n3,有 an3an12an2求该数列的前 n 项和7写出一个用二分法求方程 x3x22x20 在某个区间上的近似解的程序要求:初始区间和计算精度都能在运行中指定8求二次函数在给定区间上的最值测试五测试五逻辑框图综合测试逻辑框图综合测试一、选择题一、选择题1 找出乘积为 528 的两个相邻偶数, 流程图如图 1, 其中填充处语句正确
12、的选择是()图 1(A)Si*(i2),输出 i,i2(B)Si*i2,输出 i,i2(C)Si*(i2),输出 i,i2(D)Si*(i2),输出 i2,i2如图 2 所示的算法流程图中,第三个输出的数是()图 2(A)1(B)23(C)2(D)253阅读流程图 3,若输入的 a,b,c 分别为 21,32,75,则输出的 a,b,c 分别是()图 3(A)75,21,32(B)21,32,75(C)32,21,75(D)75,32,214如图 4,程序框图所进行的求和运算是()图 4(A)101211(B)1814121(C)2014121(D)1913115如果如图 5 程序框图的输出结
13、果为18,那么在判断框中表示的“条件”应该是()图 5(A)i9(B)i9(C)i8(D)i116函数0, 1.0, 00, 1xxxy求值的程序框图如图 6 所示,则空白处需要填的语句为:_;_;_图 67如图 7 是一个算法的程序框图,当输入的值为 5 时,则其输出的结果是_图 78阅读流程图 8 填空:最后一次输出的 i_;一共输出 i 的个数为_个图 89分别写出图 9 和图 10 的运行结果:图 9_;图 10_图 9图 10参考答案参考答案第一章第一章算法初步算法初步测试一测试一1C2B3B4C5D6x1,x17已知一个数的 13,求这个数82591010511S1求出原点到直线
14、axbyc0 的距离22|bacdS2比较 d 与圆的半径 r1 的大小,若 dr,则直线与圆相离;若 dr,则直线与圆相切;若 dr,则直线与圆相交12S1判断 a 是否为 0,若是,则执行 S4,若不是,则执行 S2S2 解出ax1S3将ax1代入 xy2,解出ay12S4输出方程组的解若 a0,则输出“方程组无解” ;否则,输出方程组的解12,1ayax13解:设该顾客的购物款为 x 元根据题意,x882如果 x1000,则 0.9x882,解得 x980;如果 x1000,则 0.85x882,解得 x1037.65;所以,该顾客的购物款是 980 元或 1037.65 元14测试二测
15、试二1C2B3A4B5C6a0,或 a07当方程根的判别式0 时,方程有实根;当方程根的判别式0 时,方程没有实根8 “是负数”912,21100.3*p0.3*300.5*(p30)11x3,yx3或 x3,yx312流程框图表示的是下面的函数:3,213, 73,21xxxxxy输出的数字是 313S1输入 xS2如果 x0,则 yx;否则 yxS3输出 y14S1输入 a,b,cS2xaS3如果 bx,则 xb;否则,执行 S4S4如果 cx,则 xc;否则,执行 S5S5输出 x测试三测试三1D2C3C4C5A6赋值或计算7 从小到大连续 n 个正整数乘积大于 1000 时, 计算出最
16、小的自然数 n 或其他等价的回答8SSi,ii29n10?103205,511112S1赋值 S1,T1S2赋值 i3S3赋值 SSi,赋值 TTiS4赋值 ii2S5若 i2007,则执行 S3S6输出 S,T13S1赋值 n0,a200,r0.05S2年增量 TarS3年产量 aaTS4若 a300,那么 nn2,重复执行 S2S5N2004nS6输出 N.测试四测试四算法语言算法语言1ainput(底面边长 a);1input(侧棱长 l);/注:这里应该对输入数据的合理性作出判别hsqrt(12(sqrt(2)/2*a)2);/计算棱锥的高Va2*h/3;/计算棱锥的体积disp(V,
17、正四棱锥的体积为);2法一xinput(x);y2*x3;/计算 yf(x)y2*y3;/计算 yf(f(x)disp(y);法二/定义函数 f(x)2*x3function yf(x)y2*x3;endfunction/下面可直接调用 f(x)xinput(x);yf(f(x);/与代数中的表达方式一样disp(y);3disp(请输入三角形的三条边长:);ainput(a);binput(b);cinput(c);if(abc)&(acb)&(bca)thenp(abc)/2;Ssqrt(p*(pa)*(pb)*(pc);disp(S,三角形面积为);elsedisp(不能
18、构成三角形!);end;4for i19if(10*i3)*6528(30i)*8256)thendisp(i,这个数字是:);break;end;end;5法一用 for 语句实现S0;an1;for i1100anan*i;SSan;end;disp(S,1!2!3!100!);法二用 while 语句实现S0;an1;i1while i100anan*i;SSan;ii1;end;disp(S,1!2!3!100!);6a_n_21;a_n_13;ninput(要求前多少项的和呢?请输入 n);S0;/如果只要求前 1 项或 2 项的和,则不需要用到递推关系if(n1)thenSa_n_
19、2;elseif(n2)thenSa_n_2a_n_1;end;/如果 n 大于 2,则要用递推关系i3;while(in)a_n3*a_n_12*a_n_2;/先由递推关系求出下一项SSa_n;/然后累加到和 S 中a_n_2a_n_1;/原来的第(n1)项在下一轮循环中将变成第(n2)项a_n_1a_n;/原来的第 n 项在下一轮循环中将变成第(n1)项ii1;/项的脚标增 1(表示下一轮循环要计算下一项了)end;printf(前d 项和为:d,int(n),int(S);7/定义函数 f(x)x3x22x2/方程 f(x)0 有三个实数解:sqrt(2),1,sqrt(2)functi
20、on yf(x)yx3x22*x2;endfunction/用户输入初始区间的左右端点disp(请输入实根所在初始区间a,b:);ainput(a);binput(b);yaf(a);ybf(b);/用户输入计算精度dabs(input(请输入计算精度(输入的越小精度越高,但计算花费的时间就越多):);/下面通过二分法求符合精度的近似解x0;errf;while(abs(ba)d)x(ab)/2;yf(x);if(y0)then break;end;/若此时 x 的值正好是方程的解,则退出循环if(y*ya0)thenbx;ybf(b);elseif(y*yb0)thenax;yaf(a);e
21、lseerrt;break;end;end;if(errt)thendisp(计算中出现问题,可能是在您输入的初始区间中没有实根);elseprintf(方程的近似解为:xf,x);end;8法一disp(请依次输入 f(x)ax2bxc 的系数);ainput(a);if(a0)thendisp(系数 a 不能为 0!);abort;end;binput(b);cinput(c);disp(请输入区间的左右端点:);x1input(x1);x2input(x2);if(x1x2)then begindisp(区间端点输入错误!);abort;end;x0b/(2*a);/对称轴if(a0)t
22、hen/如果开口朝上if(x0 x1)then/如果对称轴在给定区间的左侧,则min_va*x12b*x1c;/在 xx1 处取得最小值max_va*x22b*x2c;/在 xx2 处取得最大值elseif(x0(x1x2)/2)then/如果对称轴在区间x1,x2的左半部分,则min_va*x02b*x0c;/在顶点处取得最小值max_va*x22b*x2c;/在 xx2 处取得最大值elseif(x0 x2)then/如果对称轴在区间x1,x2的右半部分,则min_va*x02b*x0c;/在顶点处取得最小值max_va*x12b*x1c;/在 xx1 处取得最大值else/如果对称轴在区
23、间x1,x2右侧,则min_va*x22b*x2c;/在 xx2 处取得最小值min_va*x12b*x1c;/在 xx1 处取得最大值end;else/如果开口朝下if(x0 x1)then/如果对称轴在给定区间的左侧,则max_va*x12b*x1c;/在 xx1 处取得最大值min_va*x22b*x2c;/在 xx2 处取得最小值elseif(x0(x1x2)/2)then/如果对称轴在区间x1,x2的左半部分,则max_va*x02b*x0c;/在顶点处取得最大值min_va*x22b*x2c;/在 xx2 处取得最小值elseif(x0 x2)then/如果对称轴在区间x1,x2的
24、右半部分,则max_va*x02b*x0c;/在顶点处取得最大值min_va*x12b*x1c;/在 xx1 处取得最小值else/如果对称轴在区间x1,x2右侧,则max_va*x22b*x2c;/在 xx2 处取得最大值min_va*x12b*x1c;/在 xx1 处取得最小值end;end;printf(最小值f,n 最大值f,min_v,max_v);法二(为法一的简化版)ainput(a);binput(b);cinput(c);x1input(x1);x2input(x2);x0b/(2*a);/对称轴if(x0 x1)then/如果对称轴在给定区间的左侧,则v1a*x12b*x1
25、c;/在 xx1 处取得最小值v2a*x22b*x2c;/在 xx2 处取得最大值elseif(x0(x1x2)/2)then/如果对称轴在区间x1,x2的左半部分,则v1a*x02b*x0c;/在顶点处取得最小值v2a*x22b*x2c;/在 xx2 处取得最大值elseif(x0 x2)then/如果对称轴在区间x1,x2的右半部分,则v1a*x02b*x0c;/在顶点处取得最小值v2a*x12b*x1c;/在 xx1 处取得最大值else/如果对称轴在区间x1,x2右侧,则v1a*x22b*x2c;/在 xx2 处取得最小值v2a*x12b*x1c;/在 xx1 处取得最大值end;if(a0)thenprintf(最小值f,n 最大值f,v1,v2);elseprintf(最小值f,n 最大值f,v2,v1);end;测试五测试五1C2C3A4C5A6y1;x0?;y072857,896,5