1第一章算法初步一、选择题.1.看下面的四段话,其中是解决问题的算法的是().A.把高一5班的同学分成两组,高个子参加篮球赛,矮个子参加拔河比赛B.把高一5班的同学分成两组,身高达到或超过170cm的参加篮球赛,不足170cm的参加拔河比赛C.把a,b的值代入x=ab,求方程ax=b的解D.数清海滩上有多少粒沙子2.用秦九韶算法求n次多项式f(x)=anxn+an-1xn-1+…+a1x+a0,当x=x0时,求f(x0)需要算乘法、加法的次数分别为().A.n,nB.n,2nC.2n,nD.0,n3.如下的程序框图,能判断任意输入的数x的奇偶性:其中判断框内的条件是().A.m=0B.x=0C.x=1D.m=1开始结束输入xm=x除以2的余数输出“x是奇数”输出“x是偶数”是否开始结束输入a,b,ca>ba>c输出a否a=ca=b否4.给出以下一个算法的程序框图(如下图所示),该程序框图的功能是().A.求输出a,b,c三数的最大数B.求输出a,b,c三数的最小数C.将a,b,c按从小到大排列D.将a,b,c按从大到小排列5.下图给出的是计算21+41+61+…+201的值的一个程序框图,其中判断框内应填入的条件是().A.i>10B.i<10C.i>20D.i<2026.下列给出的赋值语句中正确的是().A.4=MB.M=-MC.2B=A-3D.x+y=07.我国古代数学发展一直处于世界领先水平,特别是宋、元时期的“算法”,其中可以同欧几里得辗转相除法相媲美的是().A.割圆术B.更相减损术C.秦九韶算法D.孙子剩余定理8.用二分法求方程x2-2=0的近似根的算法中,用到的算法结构是().A.顺序结构B.条件结构C.循环结构D.以上都用9.算法第一步,m=a.第二步,若b<m,则m=b.第三步,若c<m,则m=c.第四步,输出m.此算法的功能是().A.求a,b,c中的最大值B.求a,b,c中的最小值C.将a,b,c由小到大排序D.将a,b,c由大到小排序10.有一堆形状、大小相同的珠子,其中只有一粒重量比其他的轻,某同学经过思考,他说根据科学的算法,利用天平,三次肯定能找到这粒最轻的珠子,则这堆珠子最多有几粒().A.21B.24C.27D.30二、填空题.1.下列关于算法中,说法正确的是.(填上正确的序号)①某算法可以无止境地运算下去②一个问题的算法步骤可以是可逆的③完成一件事情的算法有且只有一种④设计算法要本着简单方便可操作的原则2.下列算法的功能是.S1输入A,B;(A,B均为数据)S2A=A+B,B=A-B,A=A-B;S3输出A,B.3.已知函数f(x)=3>,3-3≤,2+2xx xx流程图表示的是给定x值,求其相应函数值的算法.请将该流程图补充完整.其中①处应填___________,②处应填__________.若输入x=3,则输出结果为___________.34.在算法中,需要重复执行同一操作的结构称为.5.下列算法中含有选择结构的是.(写出正确的序号)①求点到直线的距离②已知梯形两底及高求面积③解一元二次方程④求两个数的积6.下列所画流程图是已知直角三角形两条直角边a、b求斜边的算法,其中正确的是__________.(写出正确的序号)三、解答题.1.试写出判断直线Ax+By+C=0与圆(x-a)2+(y-b)2=r2(r>0)的位置关系的算法.2.读下列两个程序回答问题:(1)(2)①上述两个程序的运行结果是(1)_________;(2)__________.②上述两个程序的第三行有什么区别?x=3;y=4;x=y;xyx=3;y=4;y=x;yx43.编写一个程序,使得任意输入的3个整数按从大到小的顺序输出.4.用两种不同的循环语句写出求12+22+…+1002的值的程序.5参考答案一、选择题.1.B【解析】A.何为高个子,何为矮个子,标准不明确.C.当a=0时公式是无效的.D.海滩上的沙子数目太多,步骤超出了合理的范围,所以不可取.只有B符合算法的三个要求,所以答案是B.2.A【解析】根据秦九韶算法.3.A【解析】x除以2,如余数为0,则为偶数;余数不为0,则为奇数.4.B【解析】从程序框图可知:输出的是三个数中的最小数.5.A【解析】这是一个10项求和问题.6.B【解析】依据赋值语句的概念,选B是正确的.7.B8.C【解析】由于二分法要多次二分逼近,所以为循环结构.∴C.9.B【解析】此算法为求出a,b,c中最小值.答案:选B.10.C【解析】最多为33=27粒.将27粒分成3组,每组9粒,任取两组称量,若一样重则轻球在另一组里若不一样重,则在较轻的那组中.然后再分三组,任取两组称量,找出轻球所在一组;再分三组,任取二球称量,即可找到轻球.此题若为n次,则最多3n粒.二、填空题.1.④【解析】由算法的特点所确定.2.实现数据A,B的互换.【解析】利用赋值语句的意义与题中算法的步骤进行分析.3.x≤3;y=-3x2;5.【解析】根据给出函数的解析式可填写.4.循环结构【解析】按循环结构的意义可得.5.③【解析】解一元二次方程时,必须首先判断根的“判别式”的值与0的大小间的关系,这便是条件判断,故解一元二次方程时需用选择结构.6.①【解析】③、④选项中的有些框图选用不正确;②图中的输入变量的值应在公式给出之前完成.三、解答题.1.分析:直线与圆有三种位置关系:若圆心到直线的距离d>r,则直线与圆相离;若d=r,则直线与圆相切;若d<r,则直线与圆相交.因此,我们可先求出圆心到直线的距离d,然后与r比较.解:第一步:输入圆心的坐标(a,b),直线方程的系数A,B,C和半径r;第二步:计算z1=Aa+Bb+C;第三步:计算z2=A2+B2;第四步:计算d=21zz;第五步:如果d>r,则直线与圆相离;第六步:如果d=r,则直线与圆相切;第七步:如果d<r,则直线与圆相交.2.解:①上述两个程序的运行结果是(1)4,4;(2)3,3.②程序(1)中的第三行是将y的值赋给x,赋值后x的值变为4,y的值不变;程序(2)中的第三行是将x的值赋给y,赋值后y的值变为3,x的值不变.6说明:用上述程序不能实现两个变量的互换.如果用赋值语句实现两个变量的互换,方法是引进第三个变量.如要交换a,b的值,只需c=a,a=b,b=c.对于一个变量,我们可以进行多次赋值,赋值号左边的变量如果原来没有值,则执行赋值语句后获得一个值;如果已有值,则执行语句后,以赋值号右边表达式的值代替该变量原来的值,即将原值“冲掉”.3.分析:我们用a,b,c表示输入的三个整数,比较三个整数,把最大的整数存入变量a中,次大的整数存入b中,最小的整数存入c中.算法步骤为:S1:输入三个整数a,b,c;S2:将a与b比较,如果a<b,交换它们的值;S3:将a与c比较,如果a<c,交换它们的值;(第2步和第3步后,a中存储的已经是最大的整数)S4:将b与c比较,如果b<c,交换它们的值;(第4步后,b中存储的是次大的整数,c中存储的是最小的整数)S5:按顺序输出a,b,c.解:a=input(“a=”);b=input(“b=”);c=input(“c=”);ifabt=a,a=b,b=t;endifact=a,a=c,c=t;endifbct=b,b=c,c=t;endprint(%io(2),c,b,a)4.分析:若用while语句,循环终止条件为i≤100,用for语句其步长为1,终止为100.解:while语句:for语句:i=1;sum=0;whilei=100sum=sum+i﹡i;i=i+1;endprint(%io(2),sum)sum=0;fori=1:100sum=sum+i﹡i;endprint(%io(2),sum)