您的当前位置:首页正文

《算法初步》单元测试1

2021-11-24 来源:吉趣旅游网
《算法初步》单元测试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 WhileEnd 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)初始值为n0,x(2)nn1; (3)xx2; s←s+1/(2i+1) 输出s i←i+1 结束 14题 1,y2,z0; 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请写出该算法的伪代码及流程图。 19、(本题16分)阅读流程图,解答下列问题:

(1)变量y在这个算法中的作用是什么?

(2)这个算法的循环体是哪一部分?功能是什么? (3)这个算法的处理功能是什么? 20、(本题16分)某城市现有人口总数为100万人,如果年自然增长率为1.2%,试解答下

列问题:

(1)写出该城市人口数y(万人)与年份x(年)的函数关系式; (2)用伪代码表示计算10年以后该城市人口总数的算法;

(3)用流程图表示计算大约多少年以后该城市人口将达到120万人的算法。 21、(本题16分)已知算法(1)、(2)试根据要求分别完成下列两道题:

S 1 a24 算法(1)  1 算法(2)N

S1While  S10000    SSN    NN1End  WhilePrint  N2EndS2 s0S3 I1aaS4 如果[],则ssIIIS5 II1S6 如果Ia,转S4S7 输出s根据算法(1)的伪代码,指出相应 画出算法(2)的流程图,指出相应算法 算法功能并画出相应的流程图。

功能并求出S值; 江苏省溧阳中学2007-2008学年第一学期高二数学单元测试

《算法初步》水平测试B答案及提示

1、解析:选C,②③③都用条件结构。

2.解析:选C,每次平均分成3组,第三次只能为3个球分组,因此球的个数最多为33。 3、解析:选D。

4、解析:选A,i到13后就要退出循环体。

5、解析:因为循环中step=1,初值为1,终值为1000,故循环的次数是1000,选A 6、解析:选A。

7、解析:选B,输出的结果都是1到1000的所有自然数的和。 8、解析:选A,利用计数器统计负数的个数。

9、解析:选C, x<0 时,(x+1)2=16,则x=-5,x>0时,(x-1)2=16,x=5。 10、解析:选B,因为s=12创1110?911880 11、解析:

6x5x4x3 3次 3次

12、解析:13,此算法表示能够整除221的第一个数。 13、解析:i11(或i>10) 14、解析:111351 3915、解析:填i2

16、解析:10,4212(提示:转化为数列来解)

三、解答题:本大题共5小题,共80分.解答应写出文字说明,证明过程或演算步骤. 17、解析:(I)Qf(x)的定义域为D=(-?,1)?(1,+?),\\f(x0)=11?D,19x2=f(x1)=1111?D,x3=f(x2)=-1?D,因此只有三项,,1; 51954x-2=x,x+1(II)要使该数列发生器产生一个无穷的常数数列,则有xn=xn+1,则设f(x)=即x2-3x+2=0,\\x=1,x=2,即x0=1或2时,xn+1=4xn-2=xn,因此当x01时,

xn+1xn1;x02时,xn2(nN).

(III) 解不等式x<由于f(x)=4-4x-21或1<x<2,要使xn<xn+1,则xn<-1或1<xn<2,得,x<-x+161,x2=f(x)>x1,若x1<-则x2=f(x1)>4不合题意;当1<x1<2时,

x+1且1<x2<2,依次类推可得数列{xn}的所有项均满足xn+1>xn,综上所述,x0(1,2)。

18、解析:

开始 输入x(x<=5000) Read x(x5000)If x800 then y0 Else if x1300 then y0.05(x800)

Else y250.1(x1300) End if End ifPrint yY x<=800 N N x<=1300 Y y0.05(x800) y0 y250.1(x1300) 输出y

结束

19、解:(1)变量y是循环变量,控制着循环的开始和结束 (2)流程图的循环体是y¬2000与y?y1之间的部分,其功能是判断年份y是否是闰年,并输出结果

(3)这个算法的处理功能是判断2000年--2500年中,哪些年份是闰年,哪些年份不是闰年,并输出结果。 20、(1)y1001.012 (2)伪代码如下:

x开始 S100 I11.2% x0 N S<120 Y S100I11.2For I from 1 to 10 SSIEndforprint S

SSI xx1 输出x (3)分析:即求满足1001.012x120的

结束 最小正整数x,其算法流程图如图。 21、(1)答:功能是求满足不等式123...n10000的最大正整数。

(或123...n10000的最小正整数的前一个)

(2)求整数a的所有比它小的正因数的和S=36

开始 开始

S0 S1

I1 N1

NN aa []II N S10000 Y Y SSI SSN NN1 II1 Y Ia

因篇幅问题不能全部显示,请点此查看更多更全内容