算法初步单元检测.doc
高一算法初步单元检测卷一、选择题: 姓名_ 1.给出以下四个问题:输入一个数, 输出它的相反数 求面积为的正方形的周长 输出三个数中的最大数 求函数的函数值 其中不需要用条件语句来描述其算法的有 ( ) A 个 B 个 C 个 D 个2程序框图符号“ ”可用于( )if A thenBelse Cend if A. 输出a=10 B. 赋值a=10 C. 判断a=10 D. 输入a=13条件语句的一般形式如右所示,其中B表示的是( )A条件 B条件语句 C满足条件时执行的内容 D不满足条件时执行的内容4将两个数a=2, b= -6交换,使a= -6, b=2,下列语句正确的是( )a=cc=bb=ab=aa=bc=aa=bb=ca=bb=aA B C D i=6s=0WHILE s=s+i ENDPRINT sEND(第7题)x=-1 y=20IF x<0 THEN x=y+3ELSE y=y-3END IFPRINT xy ;y+xEND(第6题) 5x=5y=6PRINT x+y=11END上面程序运行时输出的结果是( )A.x+y=11 B.11 C.x+y D.出错信息6图中程序运行后输出的结果为( )(A)3 43 (B) 43 3 (C)-18 16 (D)16 -18是否开始输入a,b,cx=ab>x输出x结束x=bx=c否是7图中程序是计算2345+6的值的程序。在WHILE后的处和在s=s+i之后的处所就填写的语句可以是( )Ai>1 i=i1 Bi>1 i=i+1 Ci>=1 i=i+1 Di>=1 i=i18.下列语句正确的是( ) A.x+3=y-2 B.d=d+2 C.0=x D.x-y=5 9(2008年海南高考)右面的程序框图,如果输入三个实数a、b、c,要求输出这三个数中最大的数,那么在空白的判断框中,应该填入下面四个选项中的( )i=11s=1DO s=s*i i=i1LOOP UNTIL “条件”PRINT SEND (第10题)A. c > xB. x > cC. c > bD. b > c10.如果下边程序执行后输出的结果是990,那么在程序中UNTIL后面的“条件”应为( ) A. i>10 B. i<8 C. i<=9 D. i<9 (第9题)i=1WHILE i<8i=i+2s=2*i+3WENDPRINT sEND(第11题)11.右边程序运行后输出的的结果是( )A17B19C21D23 12.如右图所示的程序是用来( )S=1I=1WHILE I<=10S=3*SI=I+1WENDPRINT SEND (第12题)A计算3×10的值 B计算的值C计算的值 D计算1×2×3××10的值13为了在运行程序之后得到输出16,键盘输入x应该是( ) INPUT xIF x<0 THEN y=(x+1)*(x+1) ELSE y=(x-1)*(x-1) END IFPRINT yENDA 3或-3 B -5 C5或-3 D5或-5题号12345678910111213答案二、填空题:(本大题共6小题,每小题4分,共24分)13(如下方左图所示)程序框图能判断任意输入的正整数x是奇数或是偶数。其中判断框内的条件是_开始?是输入p结束输出否结 束开 始输入 xm = x除以2的余数是 否 输出“x是偶数”输出“x是奇数” (第13题) (第14题)14(2008年山东高考理科13)执行上方右边的程序框图,若,则输出的 15. 读下面程序,该程序所表示的函数是 16.右边程序输出的n的值是_.j=1 n=0WHILE j<=11 j=j+1 IF j MOD 4=0 THEN n=n+1 END IF j=j+1WENDPRINT nEND (第16题)INPUT xIF x<0 THEN y= -x+1ELSE IF x=0 THEN y=0 ELSE y=x+1 END IFEND IFPRINT yEND (第15题)INPUT“m=”;mINPUT“n=”;nDO r=m MOD n m=n n=rLOOP UNTIL r=0PRINT mEND三、解答题: 17执行右图中程序,回答下面问题。(1)若输入:m=30,n=18,则输出的结果为:_(2)画出该程序的程序框图。18以下程序流程图及其相应程序是实现用二分法求近似值,但步骤并没有全部给出,请补上适当的语句或条件,以保证该程序能顺利运行并达到预期的目的。f(x)=x2-5Input “a=”;aInput “b=”;bInput “d=”;dDo If f(m)=0 then a = m b = mElse If f(a)f(m)<0 then _ Else _ End ifEnd ifLoop until _Print a , bEnd19. 根据下面的要求,求满足123n > 500的最小的自然数n。(1)画出执行该问题的程序框图;(2)以下是解决该问题的一个程序,但有几处错误,请找出错误并予以更正。i = 1S = 1n = 0DO S < = 500 S = S + i i = i + 1 n = n + 1WENDPRINT n + 1END解:(1) (2)(2)结 束i= i +1(1)开 始是输出 s否i = 1P = 1S= 0S= s + p20.给出50个数,1,2,4,7,11,其规律是:第1个数是1,第2个数比第1个数大1,第3个数比第2个数大2,第4个数比第3个数大3,以此类推. 要求计算这50个数的和. 先将下面给出的程序框图补充完整,再根据程序框图写出程序. 1. 把程序框图补充完整: (1)_ (2)_ 2. 程序:数学必修三算法初步单元测试参考答案一、选择题:BBCBDAA, CADCCDA二、填空题:15、 16、 4 17、m=0 ? 18、3 19、 20、3 三、解答题:21、解:(1) 1147=888×1+259888=259×3+111259=111×2+37111=37×3 888和1147的最大公约数是37.(2)25422、解: (1) 6(2)23、解: 程序如下:Define f(x)=x2-5Input “a=”;aInput “b=”;bInput “d<”;dDo If f(m)=0 then a = m b = mElse If f(a)f(m)<0 then _b = m_ Else _ a = m _ End ifEnd ifLoop until _abs(ab) < d_Print a , bEnd24、解: 开始(1)程序框图如图所示: 或者:S0S0i=1i=1i=i+1SS+iSS+ii=i+1是 S<=500 否 S>500 否是输出i1输出i1结束结束 (2)DO应改为WHILE; PRINT n+1 应改为PRINT n; S=1应改为S=0 25、解: (1)_i < = 50_ (2)_p= p + i_(2)程序: i=1 p=1s=0 WHILE i<=50 s= s + p p= p + i i=i+1 WEND PRINT s END