江苏省溧阳中学2007-2008学年第一学期高二数学单元测试《算法初步》B (本卷满分160)
一、选择题:本大题共10小题,每小题5分,共50分.在每小题给出的四个选项中,有且只有
一项是符合题目要求的,请把正确答案填在相应的括号( )内.
1、下面四个问题中必须用条件结构才能实现的个数是 ( ) ①已知梯形上下底为a,b,高为h,求梯形面积;②求方程ax+b=0(a、b为常数)的根; ③求三个数a,b,c中的最小数;④求函数f(x)???x?1,x?0的函数值
?x?2,x?0A、1个 B、2个 C、3个 D、4个
2、有一堆形状、大小相同的珠子,其中只有一粒重量比其它的轻,某同学经过思考,他说根据科学的算法,利用天平,三次肯定能找到这粒最轻的珠子,则这堆珠子最多有几粒
A、21 B、24 C、27 D、30 ( ) 3、下面是一个算法的伪代码,如果输入的x值是20,则输出的y值是 ( )
A、100 B、50 C、25 D、150
4、计算1?3?5?7?9?11?13算法,图中给出了程序的一部分,则在横线上能填入的数是
A、13.5 B、12.5 C、12 D、11.5 ( )
S←1 Read x S←0 If x≤5 Then For i From 1 To _ Step 2 For I From l To 1000
y←10x S←S×i S←S+I Else End For y←7.5x End For
End If Print S
Print y (第3题) (第4题) (第5题)
5、对于所给的算法中,执行循环的次数是 ( )
A.1 000 B.999 C.1001 D.998
6、如图算法输出的结果是 ( ) A、满足1×3×5×…×n>2005的最小整数n B、 1+3+5+…+2005 C、求方程1×3×5×…×n=2005中的n值 D、1×3×5×…×2005 7、 阅读下面的两个伪代码
甲 乙
S←1 S←0 S←0
I←1 I←1 I←1000
While S≤2005 While i≤1000 While i≥1
i←i+2 S←S+i S←S+i
S←S×i i←i+1 i←i-1
End while End while End while Print i (第6题) Print S (第7题) Print S 其中对甲乙两程序和输出结果判断正确的是 ( ) A、程序不同,结果不同 B、程序不同,结果相同 C、程序相同,结果不同 D、程序相同,结果相同
8、下面这段伪代码的功能是 ( ) A、统计x1到x10十个数据中负数的个数 B、找出x1到x10十个数据中的负数
C、判断x1的符号
D、求x1到x10十个数据中负数的和
9、为了在运行下面的程序之后得到输出y=16,键盘输入x应该是 ( )
A、3或-3 B、 -5 C、-5或5 D、 5或-3
i?12 n←0 READ x
Read x1,x2,…,x10 If x<0 then s?1 For i From 1 To 10 y? (x+1)?(x+1) WHILE条 件 If xi<0 Then Else
s ?s * i n←n+1 y? (x-1)?(x-1)
End If End if i ?i-1 End For Print y END WHILE Print n End PRINT s (第8题) (第9题)
END (第10题)
10.已知有上面程序,如果程序执行后输出的结果是11880,那么在程序的“条件”应为( )
A、i > 9 B、i >= 9 C、i <= 8 D、i < 8
二、填空题:本大题共6小题,每小题5分,共30分.请把正确答案填在题中相应的横线上. 11、对x取某给定的值,用“秦九韶算法”设计求多项式6x?5x?4x?3的值时,应先将此多项式变形为 ,它共做了 次乘法 次加法。 12、阅读下面所给伪代码,此段伪代码输出的结果是 ;
13、如果在所给程序中运行后输出的结果为132,那么在程序While后面的“条件”应为_____;
S?1 i?12a?221 开始
While i?2
S?S?iWhile Mod(a,i)≠0 输入n
i?i?1 i ?i + 1
s←1 End While End While
Print i (第12题) Print S (第13题) i←1 14、图中所示的S的表达式为 ; 15、下面是用伪代码写出求1?2?3???n?1000成立的
222232i<20 是 n的最大整数值的算法过程,请将其补全。
S?1i?2While S?1000 a?i2 S?S?i2 i?i?1End WhilePrint (第15题)
(1)初始值为ns←s+1/(2i+1) 输出s i←i+1 结束 14题 ?0,x?1,y?2,z?0; (2)n?n?1; (3)x?x?2; y?2y; (5)z?z?x?y; (6)如果z?4000,则执行语句(7), (4)否则回到语句(2)继续进行; (7)打印n,z; (8)程序终止。 (第16题) 16、这是一个算法的操作说明:由语句(7)打印出的数值为 ; 三、解答题:本大题共5小题,共80分.解答应写出文字说明,证明过程或演算步骤. 17.(本题16分).对任意函数f(x),x?D,可按图示构造一个数列发生器,其工作原理如下:
①输入数据x0?D,经数列发生器输出x1?f(x0); ②若x1?D,则数列发生器结束工作;若x1?D,则
将x1反馈回输入端再输出x2?f(x1),并且依此规律继续下去.
输入 f(x) 输出 打印 4x?2. x?149(I)若输入x0?,则由数列发生器产生数列{xn},请写
65现定义f(x)?出数列{xn}的所有项;
x1?D No 结束 Yes (II)若要数列发生器产生一个无穷的常数列,试求输入的初始数据x0的值;
(III)若输入x0时,产生的无穷数列{xn}满足:对任意正整数n,均有xn?xn?1,求x0的 取值范围. 18、(本题16分)下面是计算应纳税所得额的算法过程,其算法如下:
S1 输入工资x(x<=5000); S2 如果x<=800,那么y=0;
如果800 请写出该算法的伪代码及流程图。