12算法语句程序单元测试自己精编.docx
《12算法语句程序单元测试自己精编.docx》由会员分享,可在线阅读,更多相关《12算法语句程序单元测试自己精编.docx(29页珍藏版)》请在冰点文库上搜索。
![12算法语句程序单元测试自己精编.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/9cc25a56-03a1-4ef1-a280-1016f4831f3f/9cc25a56-03a1-4ef1-a280-1016f4831f3f1.gif)
12算法语句程序单元测试自己精编
1.3算法基本语句
经典例题:
意大利数学家菲波拉契,在1202年出版的一书里提出了这样的一个问题:
一对兔子饲养到第二个月进入成年,第三个月生一对小兔,以后每个月生一对小兔,所生小兔能全部存活并且也是第二个月成年,第三个月生一对小兔,以后每月生一对小兔.问这样下去到年底应有多少对兔子?
试画出解决此问题的程序框图,并编写相应的程序.
当堂练习:
1.下边程序运行后的输出结果为( )
A.17 B.19 C.21 D.23
2.下边程序运行的结果是( )
A.1,2,3 B.2,3,1 C.2,3,2 D.3,2,1
3.下边程序运行后输出的结果为( )
A.3 4 5 6 B.4 5 6 7 C.5 6 7 8 D.6 7 8 9
4下图给出的是计算
的值的一个程序框图,其中判断框内应填入的条件是( )
A.i>10 B.i<10 C.i>20 D.i<20
5.算法:
S1 输入n;
S2 判断n是否是2,若n=2,则n满足条件,
若n>2,则执行S3;
s3 依次从2到n一1检验能不能整除n,若不能整除n,
则输出n.
则输出n是( )
A.质数 B.奇数 C.偶数 D.约数
6.读程序
甲:
INPUTi=1 乙:
INPUT I=1000
S=0 S=0
WHILEi≤1000 DO
S=S+i S=S+i
i=i+l I=i一1
WEND LoopUNTILi<1
PRINTS PRINT S
END END
对甲乙两程序和输出结果判断正确的是( )
A.程序不同结果不同 B.程序不同,结果相同 C.程序相同结果不同 D.程序相同,结果相同
7.阅读下列程序:
输入x;
ifx<0, theny:
=
;
elseifx>0, theny:
=
;
elsey:
=0;
输出y.
如果输入x=-2,则输出结果y为( )
A.3+
B.3-
C.
-5 D.-
-5
8.x=5
y=6
PRINT xy=11
END
上面程序运行时输出的结果是( )
A.xy≠11 B.11 C.xy=11 D.出错信息
9.下面的问题中必须用条件结构才能实现的个数是( )
(1)已知三角形三边长,求三角形的面积;
(2)求方程ax+b=0(a,b为常数)的根;
(3)求三个实数a,b,c中的最大者;
(4)求1+2+3+…+100的值。
A.4个 B.3个 C.2个 D.1个
10.两个数5671、10759的最大公约数是( )
A.46 B.53 C.28 D.71
11.二进制数111011001001
(2)对应的十进制数是( )
A.3901 B.3902 C.3785 D.3904
12.下面的代码的算法目的是( )
10 Reada,b
20 r←mod(a,b)
30 Ifr=0thenGoto80
40 Else
50 a←b
60 b←r
70 Goto20
80 Printb
A.求x,y的最小公倍数 B.求x,y的最大公约数
C.求x被y整除的商 D.求y除以x的余数
13.若连续函数
在区间
内单调,且
则
在区间
内( )
A.至多有一个根 B.至少有一个根 C.恰好有一个根 D.不确定
14.已知算法如下:
S=0;
输入n;
fori:
=1tondo
begin
S=S+2*i;
end.
输出S.
若输入变量n的值为3,则输出变量S的值为 ;
若输出变量S的值为30,则变量n的值为 .
15.看右边程序运行后,输出的结果为______________..
x=5
y=-20
IF x<0 THEN
x=y-3
PRINTx
ELSE
y=y+3
PRINTy
ENDIF
END (第15题)
16.算法程序:
计算1+2+3+…+n的值(要求可以输入任意大于1的正自然数)中,请填上空缺的部分.
INPUT“n=”;n
i=1
sum=0
WHILEi<=n
sum=sum+I
i=i+1
PRINTsum
END
(第16题)
17.用秦九韶算法求n次多项式
,当
时,求
需要算乘方、乘法、加法的次数分别为 .
18.青年歌手电视大赛共有10名选手参加,并请了12名评委,在计算每位选手的平均分数时,为了避免个别评委所给的极端分数的影响,必须去掉一个最高分和一个最底分后再求平均分.试设计一个算法,解决该问题,要求画出程序框图,写出程序(假定分数采用10分制,即每位选手的分数最高分为10分,最底分为0分).
19.目前高中毕业会考中,成绩在85~100为“A”,70~84为“B”,60~69为“C”,60分以下为“D”.编制程序,输入学生的考试成绩(百分制,若有小数则四舍五入),输出相应的等级.
20.给出30个数:
1,2,4,7,……,其规律是:
第1个数是1,第2个数比第1个数大1,第3个数比第2个数大2,第4个数比第3个数大3,依此类推.要计算这30个数的和,现已给出了该问题算法的程序框图(如图所示),(I)请在图中判断框内
(1)处和执行框中的
(2)处填上合适的语句,使之能完成该题算法功能;(II)根据程序框图写出程序.
21.有10个互不相等的数,写出找出其中一个最大数的算法和程序.
参考答案:
经典例题:
根据题意可知,第一个月有1对小兔,第二个月有1对成年兔子,第三个月有两对兔子,从第三个月开始,每个月的兔子对数是前面两个月兔子对数的和,设第N个月有两F对兔子,第N-1个月有S对兔子,第N-2个月有Q对兔子,则有F=S+Q,一个月后,即第N+1个月时,式中变量S的新值应变第N个月兔子的对数(F的旧值),变量Q的新值应变为第N-1个月兔子的对数(S的旧值),这样,用S+Q求出变量F的新值就是N+1个月兔子的数,依此类推,可以得到一个数序列,数序列的第12项就是年底应有兔子对数,我们可以先确定前两个月的兔子对数均为1,以此为基准,构造一个循环程序,让表示“第×个月的I从3逐次增加1,一直变化到12,最后一次循环得到的F”就是所求结果.流程图和程序如下:
S=1
Q=1
I=3
WHILE I<=12
F=S+Q
Q=S
S=F
I=I+1
WEND
PRINT F
END
(经典例题)
当堂练习:
1.A;2.C;3.A;4.A;5.A;6.B;7.B;8.C;9.C;10.B;11.C;12.B;13.D;14.12,5;15.-17;16.WEND;17.0,n,n;
18.由于共有12位评委,所以每位选手会有12个分数,我们可以用循环语句来完成这12个分数的输入,同时设计累加变量求出这12个分数的和,本问题的关键在于从这12个输入分数中找出最大数与最小数,以便从总分中减去这两个数.由于每位选手的分数都介于0分和10分之间,去我们可以先假设其中的最大数为0,最小数为10,然后每次输入一个评委的分数,就进行一次比较,若输入的数大于0,就将之代替最大数,若输入的数小于10,就用它代替最小数,依次下去,就能找出这12个数中的最大数与最小数,循环结束后,从总和中减去最大数与最小数,再除以10,就得到该选手最后的平均数.
程序框图如上图所示.
s=0
k=1
max=0
min=10
DO
INPUTx
s=s+x
IFmax<=xTHEN
max=x
ENDIF
IFmin>=xTHEN
min=x
ENDIF
k=k+1
LOOPUNTILk>12
s1=s-max-min
a=s1/10
PRINT a
END (第18题程序)
19.I=1
WHILE I=1
INPUT “shuruxueshengchengji a=”;a
IF a<60 THEN
PRINT “D”
ELSE
IF a<70 THEN
PRINT “C”
ELSE
IF a<85 THEN
PRINT “B”
ELSE
PRINT “A”
END IF
END IF
END IF
INPUT “INPUT 1,INPUT 2”;I
WEND
END (第19题)
20.该算法使用了当型循环结构,因为是求30个数的和,故循环体应执行30次,其中i是计数变量,因此判断框内的条件就是限制计数变量i的,故应为
.算法中的变量p实质是表示参与求和的各个数,由于它也是变化的,且满足第i个数比其前一个数大
,,第
个数比其前一个数大i,故应有
.故
(1)处应填
;
(2)处应填
i=1
p=1
s=0
WHILEi<=30
s=s+p
p=p+i
i=i+1
WEND
PRINTa
END
(第20题程序)
21.S1:
输入一个数,放在MAX中
S2:
i=1
S3:
输入第1个数,放入x中
S4:
若x>MAX,则MAX=z
S5:
i=i+1
S6:
若i≤9,返回S3继续执行,否则停.
1.4算法初步单元测试
1.如图所示程序框图,能判断任意输入的数x的奇偶性:
其中判断框内的条件是( )
A.m=0 B.x=0
C.x=1 D.m=1
2.算法的过程称为“数学机械化”,数学机械化的最大优点是可以让计算机来完成,中国当代数学家在这方面研究处于世界领先地位,为此而获得首届自然科学500万大奖的是( )
A.袁隆平 B.华罗庚
C.苏步青 D.吴文俊
3.算法
S1 m=a
S2 若bS3 若cS4 若dS5 输出m,则输出m表示 ( )
A.a,b,c,d中最大值
B.a,b,c,d中最小值
C.将a,b,c,d由小到大排序
D.将a,b,c,d由大到小排序
4.如图程序运行后输出的结果为 ( )
A.50 B.5 C.25 D.0
5.计算机执行下面的程序段后,输出的结果是 ( )
A.1,3 B.4,1 C.0,0 D.6,0
6.用“辗转相除法”求得459和357的最大公约数是( )
A.3 B.9 C.17 D.51
7.算法的三种基本结构是( )
A.顺序结构、模块结构、条件结构 B.顺序结构、循环结构、模块结构
C.顺序结构、条件结构、循环结构 D.模块结构、条件结构、循环结构
8.下面为一个求20个数的平均数的程序,在横线上应填充的语句为( )
A.i>20 B.i<20 C.i>=20 D.i<=20
9.用秦九韶算法计算多项式
当
时的值时,需要做乘法和加法的次数分别是( )
A.6,6 B.5,6
C.5,5 D.6,5
10.给出以下一个算法的程序框图(如图所示),该程序框图的功能是( )
A.求输出a,b,c三数的最大数
B.求输出a,b,c三数的最小数
C.将a,b,c按从小到大排列
D.将a,b,c按从大到小排列
11.若输入8时,则下列程序执行后输出的结果是 .
12.下左程序运行后输出的结果为_________.
x=5
y=-20
IF x<0 THEN
x=y-3
ELSE
y=y+3
ENDIF
PRINT x-y;y-x
END
(第12题)
13.用直接插入排序法对:
7,1,3,12,8,4,9,10进行从小到大排序时,第四步得到的一组数为:
_ _ .
14.求方程
的近似根,要先将它近似地放在某两个连续整数之间,则应当在区间 上.
15.学了算法你的收获有两点,一方面了解我国古代数学家的杰出成就,另一方面,数学的机械化,能做许多我们用笔和纸不敢做的有很大计算量的问题,这主要归功于算法语句的 .
16.上右程序输出的n的值是____________.
j=1
n=0
WHILE j<=11
j=j+1
IF jMOD4=0 THEN
n=n+1
ENDIF
j=j+1
WEND
PRINT n
END (第16题)
17.函数y=
请设计算法流程图,要求输入自变量,输出函数值.
18.某电信部门规定:
拨打市内电话时,如果通话时间不超过3分钟,则收取通话费0.2元,如果通话时间超过3分钟,则超过部分以每分钟0.1元收取通话费(通话不足1分钟时按1分钟计),试设计一个计算通话费用的算法.要求写出算法,画出程序框图,编写程序.
19.把“五进制”数
转化为“十进制”数,再把它转化为“八进制”数.
20.给定一个年份,写出该年是不是闰年的算法,程序框图和程序.
21.已知正四棱锥的底面边长为3,高为4,求正四棱锥的体积和表面积,写出算法的伪代码,并画出相应图.
参考答案:
1.A;2.D;3.B;4.D;5.B;6.D;7.C;8.A;9.A;10.B;11.0.7;12.22,-22;13.[1 3 7 12]8 4 9 10;14.(1,2);15.循环语句;16.3;
17.
18.解我们用c(单位:
元)表示通话费,t(单位:
分钟)表示通话时间,
则依题意有
算法步骤如下:
第一步,输入通话时间t;第二步,如果t≤3,
那么c=0.2;否则令c=0.2+0.1(t-3);
第三步,输出通话费用c;
程序框图如图所示
INPUT t
IFt<=3 THEN
c=0.2
ELSE
c=0.2+0.1(t-3)
END IF
PRINTc
END
(第18题程序)
19.解:
①
;
②
20.S1:
输入一个年份x
S2:
若z能被100整除,则执行S3否则执行S4
S3:
若x能被400整除,则x为闰年,否则x不为闰年
S4:
若x能被4整除,则x为闰年,否则x不为闰年
INPUT x
IF x=100k(k是正整数)THEN
IF x=400k(k是正整数)THEN
PRINT“x是闰年”
ELSE“x不是闰年”
END
ELSE IF x=4k(k是正整数)THEN
PRINT“x是闰年”
ELSE“x不是闰年”
END
21.