名称 | (全国通用版)2018_2019高中数学第一章算法初步练习(打包9套)新人教B版必修3 | | |
格式 | zip | ||
文件大小 | 2.7MB | ||
资源类型 | 教案 | ||
版本资源 | 人教新课标B版 | ||
科目 | 数学 | ||
更新时间 | 2018-11-20 08:42:31 |
循环判断,此时S=0.5
p=0.8,则输出n=4,结束.
答案4
11如图所示的程序框图表示的算法的功能是 .?
解析这是个循环结构,i的值从1开始依次变为3,5,7,9,…;S的值为1×3×5×7×…,当S≥10 000时,将i的值输出.
答案计算并输出使1×3×5×7×…×i≥10 000成立的最小整数i
12给出以下10个数:5,9,80,43,95,73,28,17,60,36,要求把大于40的数找出来并输出.试画出该问题算法的程序框图.
解程序框图如图所示.
★13在电脑游戏中,“主角”的生存机会往往被预先设定,如某枪战游戏中,“主角”被设定生存机会5次,每次生存承受射击8枪(被击中8枪则失去一次生命机会).假设射击过程均为单子弹发射,试画出表示“主角”耗用生存机会的过程的算法的程序框图.
解(方法一)“主角”的所有生存机会共能承受8×5=40(枪)(第40枪被击中,则生命结束).设“主角”被击中枪数为i(i=1,2,3,…,40),程序框图如图甲所示.
(方法二)电脑中预存共承受枪数为40,“主角”的生存机会以“减数”计数,程序框图如图乙所示.
1.2.1 赋值、输入和输出语句
课时过关·能力提升
1赋值语句是非常重要的语句,以下写法错误的是( )
A.a=3 B.S=(a+b+c)/2
C.6=x D.N=N+2
解析赋值语句中“=”右边是表达式,左边是变量.
答案C
2当a=3,b=5,c=b+2时,执行print(%io(2),a,b,c)后在屏幕上的输出结果自上而下依次是( )
A.3,5,7 B.3,5,5 C.7,3,5 D.7,5,3
解析print(%io(2),a,b,c)在屏幕上的输出是从右往左,即最上面是c的值,中间是b的值,最下面是a的值.
答案D
3给出下列算法语句,其输出结果为( )
A=2;
B=3;
B=A?? A;
A=A+B;
B=B+A;
print(%io(2),B,A);
A.5,5 B.6,10 C.10,6 D.6,7
解析执行过程如下:A=2,B=3?B=2×2=4?A=2+4=6?B=4+6=10,故输出A,B的值分别为6,10.
答案B
4将两个数a=1,b=2交换,使a=2,b=1,下面赋值语句正确的是( )
A.a=b,b=a B.b=a,a=b
C.a=c,c=b,b=a D.c=b,b=a,a=c
解析“a=b”的含义是把b的值赋给a.选项A得到的结果是a=2,b=2;选项B得到的结果是a=1,b=1;选项C中c的值不明确;选项D正确.
答案D
5在下面程序框图中,若输入a,b,c的值分别为2 013,2 014,2 015,则输出的a,b,c的值分别是( )
A.2 013,2 014,2 015 B.2 014,2 013,2 015
C.2 015,2 013,2 014 D.2 015,2 014,2 013
解析程序框图的执行过程如下:a=2 013,b=2 014,c=2 015?x=2 013?a=2 015?c=2 014?b=2 013,故输出a=2 015,b=2 013,c=2 014.
答案C
6赋值语句n=2n+1的作用是 .?
答案将当前变量n的值乘2后再加上1,然后再赋给变量n
7执行下列赋值语句后,a= ,b= .?
a=3;
b=4;
a=a?? b;
b=b+a?? 5.
解析由a=3,b=4知a=a?? b=3×4=12,
b=b+a?? 5=4+12×5=64.
答案12 64
8给出以下程序:
x=input(“x=”);
y=x?? x-4?? x;
print(%io(2),y);
(1)若输入的值为2,则输出的值为 ;?
(2)若输出的值为5,则输入的值为 .?
解析(1)由已知得y=x2-4x,当x=2时,y=22-4×2=-4;
(2)由y=x2-4x=5,解得x=5或-1.
答案(1)-4 (2)5或-1
9编写一个程序,要求输入三个数a,b,c,计算a2-3b2+5c的值.
解程序如下:
a=input(“a=”);
b=input(“b=”);
c=input(“c=”);
S=a?? a-3?? b?? b+5?? c;
print(%io(2),S);
★10三个变量x,y,z,试将x置换给y,y置换给z,z置换给x,如图画出的程序框图正确吗?如果不正确,请加以改正.
解所给的程序框图表示的算法如下:
S1 y=x,使y的值变为了x;
S2 z=y,此时的y应为上一步的y,而非原题中的y,因此其结果是z的值也变为了x;
S3 x=z,同样的道理,此时的z也是上一步的z.
可见这一流程的最终结果是将x赋值给了x本身,而没有实现相互置换.
故该程序框图不正确.
正确的程序框图如图所示.
1.2.2 条件语句
课时过关·能力提升
1给出以下三个问题:
①求面积为6的正方形的周长;
②求三个数a,b,c中的最大数;
③求函数f(x)
其中不需要用条件语句来描述其算法的有( )
A.0个 B.1个 C.2个 D.3个
解析①的算法不需用条件语句来描述.
答案B
2在下面条件语句中,其中F表示的是( )
if E
F;
else
G;
end
A.不满足条件时执行的内容
B.条件语句
C.条件
D.满足条件时执行的内容
解析条件语句中,若条件成立,则执行后面的语句体,否则执行else后面的语句体,故F是条件成立时执行的内容.
答案D
3若输入t=4,则执行下面算法语句后输出的结果为 ( )
t=input(“t=”);
if t<=4
c=0.2+3.8?? (4-t);
else
c=0.2+0.1?? (t-3);
end
print(%io(2),c);
A.4 B.0.2 C.0.1 D.0.3
解析因为t=4,所以c=0.2+3.8(4-4)=0.2,故输出的结果为0.2.
答案B
4下面程序输入“x=π”时的运算结果是( )
x=input(“x=”);
if x>0
y=-2;
else
if x=0
y=0;
else
y=2;
end
end
print(%io(2),y);
A.-2 B.1 C.π D.2
解析因为π>0,所以y=-2,故运算结果为-2.
答案A
5下面是一个算法的程序.如果输出的y的值是20,那么输入的x的值是( )
x=input(“x=”);
if x<=5
y=10?? x;
else
y=2.5?? x+5;
end
print(%io(2),y);
A.2 B. 6 C.2或6 D.20
解析当x≤5时,由10x=20,解得x=2;
当x>5时,由2. 5x+5=20,解得x=6.
综上,输入的x的值是2或6.
答案C
6根据下面的程序,当输入的a,b分别为2,3时,最后输出的m的值为 .?
a=input(“a=”);
b=input(“b=”);
if a>b
m=a;
else
m=b;
end
print(%io(2),m);
解析因为a=2,b=3,且a答案3
7求函数y
x=input(“x=”);
if x=0
y=0.2;
else
if ?
y=1+2?? x;
else
y=1-2?? x;
end
end
print(%io(2),y);
则空白处应填写( )
A.x<0 B.x=0
C.x>=0 D.x>0
解析由函数解析式可知当x>0时,y=1+2x,故应填x>0.
答案D
8读程序Ⅰ、Ⅱ,若两程序输入值与执行结果均分别相同,则两程序的输入值为 ,执行结果为 .?
程序Ⅰ:
x=input(“x=”);
y=x+2;
print(%io(2),y);
程序Ⅱ:
x=input(“x=”);
y=2?? x+2;
print(%io(2),y);
解析两程序执行结果相同,即求y=x+2与y=2x+2的交点.
答案0 2
9给出下列语句:
x=input(“x=”);
if x<3
y=2?? x;
else
if x>3
y=x?? x-1;
else
y=2;
end
end
print(%io(2),y);
则当输入的x∈[0,5]时,输出y的取值范围是 .?
解析该语句的功能是求函数y.
因为x∈[0,5],所以当x∈[0,3)时,y=2x∈[0,6);当x=3时,y=2;当x∈(3,5]时,y=x2-1∈(8,24].
综上,y∈[0,6)∪(8,24].
答案[0,6)∪(8,24]
10用基本算法语句描述一个算法,要求输入两个实数,然后由小到大输出这两个数.
解用算法语句描述为:
a=input(“a=”);
b=input(“b=”);
if a>b
t=a;
a=b;
b=t;
print(%io(2),b,a);
else
print(%io(2),b,a);
end
★11某批发部出售袜子,当购买少于300双时,每双批发价为2.5元;不少于300双时,每双批发价为2.2元.试分别画出程序框图和用程序语言编写计算批发金额.
解程序框图如图所示.
程序如下:
i=input (“批发双数i=”);
if i>=0 and i<300
T=2.5?? i;
else
T=2.2?? i;
end
print(%io(2),T);
1.2.3 循环语句
课时过关·能力提升
1关于for x=a:b:c,下列说法正确的有( )
①当x=c时程序结束;②当x=c时,还要继续执行一次;③当b>0时,x≥a时程序结束.
A.1个 B.2个 C.3个 D.0个
解析当x的值为终值时,还要执行一次,才能跳出循环体,从而①③不正确,②正确.
答案A
2下列程序语句中循环语句的循环终止条件是( )
m=1;
while m<10
m=m+3;
end
m
A.m≤10 B.m<10 C.m>10 D.m≥10
解析当m<10不成立,即m≥10时,循环终止.
答案D
3运行下面的程序,执行后输出的S的值是( )
S=0;
for i=1:2:10
S=S+i;
end
S
A.45 B.35 C.25 D.55
解析由程序可知S=1+3+5+7+9=25,故选C.
答案C
4下列给出四个框图,其中满足while语句格式的是( )
A.①② B.②③
C.②④ D.③④
解析①④中程序执行了一次循环体后对循环条件进行判断,不符合while型语句(先判断后执行)的功能.
答案B
5下面程序执行后,输出的值为( )
J=1;
A=0;
while J<5
J=J+1;
A=A+J?? J;
end
J
A.4 B.5
C.54 D.55
解析按while循环语句的执行过程一步步分析,循环实现了2×2+3×3+4×4+5×5,但要注意,在本题中,应为输出变量J的值,而不是A的值.
答案B
6阅读下列算法语句,若输入的n为10,则输出的变量S和T的值分别为( )
n=input(“n=”);
S=0;
T=0;
while n>=2
S=S+n;
n=n-1;
T=T+n;
n=n-1;
end
print(%io(2),S,T);
A.30,25 B.30,30
C.25,25 D.25,30
解析当n=10时,S=10+8+6+4+2=30,T=9+7+5+3+1=25.
答案A
7写出下列程序运行后的结果.
(1)
for x=1:2:11 print(%io(2),x);end
输出结果为 ;?
(2)
for x=6:(-1):1endprint(%io(2),x);
输出结果为 .?
答案(1)1,3,5,7,9,11
(2)1
8给出下列程序语句:
N=2;
T=1;
while N<=5
T=N?? T;
N=N+1;
end
print(%io(2),T);
该程序中T的表达式为 .?
解析T的表达式为T=1×2×3×4×5.
答案T=1×2×3×4×5
9程序
S=0;
i=1;
①
while i<=100
②
S=S+i;
③
end
④
S
要使上述程序能运算出“1+2+…+100”的结果,需将语句“i=i+1”加在 处.?
解析变量i在程序中既是控制循环次数的变量,在循环体中,又是实现求和的变量.所以由S=0+1+2+…+100知i=i+1应放在③处.
答案③
10设计程序求π的近似值可以用公式
解程序如下:
S=0;
i=1;
T=1/(i?? i);
while T>=0.00001
S=S+T;
i=i+1;
T=1/(i?? i);
end
p=sqrt(6?? S);
p
11猴子第1天摘下若干个桃子,当即吃一半,还不过瘾,又多吃了一个.第2天早上又将剩下的桃子吃掉一半又多吃了一个.以后每天早上都吃了前一天剩下的一半多一个.到第10天早上想再吃时,见只剩下一个桃子.求第1天共摘了多少个桃子?请画出这个问题的程序框图,并编写相应的程序.
解由题意可知,第10天为S10=1,
第9天为S9=(1+1)×2=4,
第8天则为S8=(4+1)×2=10,
……
第1天则为S1=(S2+1)×2,
得到递推公式为
S10=1,Sn=(Sn+1+1)×2,
n=1,2,…,9.
程序框图如图所示.
根据框图,其程序为:
S=1;
i=1;
while i<10
S=(S+1)?? 2;
i=i+1;
end
print(%io(2),S);
★12高一(3)班共有54名同学参加了数学竞赛,现在有这54名同学的竞赛分数,求竞赛成绩优秀的同学的平均分数(规定90分以上为优秀).请画出这个问题的程序框图,并用基本语句描述该算法.
解程序框图如下:
用基本语句描述算法如下:
S=0;
m=0;
for i=1:54
xi=input(“xi=”);
if xi>90
S=S+xi;
m=m+1;
end
end
a
print(%io(2),a);
1.3 中国古代数学中的算法案例
课时过关·能力提升
1下列方法中能求两个正整数的最大公约数的是( )
A.割圆术 B.更相减损之术
C.秦九韶算法 D.以上均可
答案B
2用更相减损之术求得95与19的最大公约数为( )
A.5 B.12 C.19 D.2
解析(95,19)→(76,19)→(57,19)→(38,19)→(19,19),故95与19的最大公约数为19.
答案C
3284和1 024的最小公倍数是( )
A.1 024 B.142
C.72 704 D.568
解析由于1 024÷284=3(余172),
284÷172=1(余112),
172÷112=1(余60),
112÷60=1(余52),
60÷52=1(余8),
52÷8=6(余4),
8÷4=2(余0),
则1 024与284的最大公约数是4,故它们的最小公倍数704.
答案C
4用秦九韶算法求多项式f(x)=6x5+x4+4x3+5x2+3x+2在x=-3时的值的过程中,所做的加法次数为a,乘法次数为b,则a,b的值为( )
A.a=4,b=4
B.a=5,b=5
C.a=5,b=4
D.a=6,b=5
解析由于f(x)=6x5+x4+4x3+5x2+3x+2
=((((6x+1)x+4)x+5)x+3)x+2.
因此,需做5次乘法,5次加法.
答案B
5用秦九韶算法求多项式f(x)=2+0.35x+1.8x2-3.66x3+6x4-5.2x5+x6在x=-1.3时,令v0=a6;v1=v0x+a5;…;v6=v5x+a0时,v3的值为( )
A.-9.820 5 B.14.25
C.-22.445 D.30.978 5
解析由于f(x)=2+0.35x+1.8x2-3.66x3+6x4-5.2x5+x6
=(((((x-5.2)x+6)x-3.66)x+1.8)x+0.35)x+2,
于是v0=a6=1,v1=1×(-1.3)-5.2=-6.5,
v2=-6.5×(-1.3)+6=14.45,
v3=14.45×(-1.3)-3.66=-22.445.
答案C
6用程序框图表示“割圆术”,将用到( )
A.顺序结构
B.条件分支结构
C.顺序结构和循环结构
D.三种基本逻辑结构
解析三种算法逻辑结构都将用到.
答案D
7用更相减损之术求36和135的最大公约数,第一步应为 .?
解析第一步为较大的数减去较小的数.
答案135-36=99
8秦九韶算法中有n个一次式,若令v0=an,我们可以得
答案an-k 循环
9已知一个5次多项式f(x)=x5+0.5x4-4x2+5x-9,用秦九韶算法求当x=x0时多项式的值,可把多项式写成: .?
解析本题中,x3项不存在,可把该项看作0·x3.
答案f(x)=((((x+0.5)x)x-4)x+5)x-9
10求三个数168,54,264的最大公约数.
解采用更相减损之术先求168与54的最大公约数.
(168,54)→(114,54)→(60,54)→(6,54)→(6,48)→(6,42)→(6,36)→(6,30)→(6,24)→(6,18)→(6,12)→ (6,6),
故168和54的最大公约数为6.
采用辗转相除法求6与264的最大公约数.
因为264=44×6+0,
所以6为264与6的最大公约数,故三个数的最大公约数是6.
11用秦九韶算法求当x=2时,f(x)
解根据秦九韶算法,把多项式改写为如下形式:
f(x)x=2时的值.
v0
故当x=2时,f(x)=-11.
★12有甲、乙、丙三种溶液,分别为4 200 mL,3 220 mL和2 520 mL,现要将它们分别全部装入小瓶中,每个小瓶子装入液体的体积相同.问:要使三种溶液都刚好装满小瓶且所用瓶子最少,则小瓶的容积应为多少毫升?
解由题意可知,就是求这三种溶液体积的最大公约数.
先求4 200与3 220的最大公约数;
∵4 200=3 220×1+980,
3 220=980×3+280,
980=280×3+140,
280=140×2,
∴4 200与3 220的最大公约数为140.
再求140与2 520的最大公约数;
∵2 520=140×18,
∴140与2 520的最大公约数为140.
综上知,4 200,3 220和2 520的最大公约数为140.
∴小瓶的容积应为140 mL.
第一章算法初步
检测(A)
(时间:90分钟 满分:120分)
一、选择题(本大题共10小题,每小题5分,共50分.在每小题给出的四个选项中,只有一项是符合题目要求的)
1下列关于算法的叙述不正确的是( )
A.在任何数值计算或非数值计算的过程中所采取的方法和步骤,都可称之为算法
B.计算机解决问题的方法和步骤,就是计算机的算法
C.算法并不给出问题的精确的解,只是说明怎样才能得到解
D.算法中执行的步骤可以是无限次数的,能无休止地执行下去
解析本题主要考查算法的基本概念和特点.算法就是解决问题的步骤,可以是数值或者非数值操作,它必须是有限的步骤,不能无休止地执行下去,必须“有始有终”.
答案D
2“x=4+5”,“x=x-1”是某一程序中先后相邻的两个语句,那么下列说法正确的是( )
①x=4+5的意思是x=4+5=9,此式与算术中的式子是一样的;
②x=4+5是将数值9赋给x;
③x=4+5可以写成4+5=x;
④x=x-1语句在执行时,“=”右边x的值是9,执行后左边x的值是8.
A.①③
B.②④
C.①④
D.②③
解析在x=4+5中,是先计算4+5,再用其结果9代替左边的x,由于赋值号“=”左边与右边的含义不一样,因而x=4+5不能写成4+5=x.
答案B
3下列程序运行的结果是( )
a=1;
b=2;
c=3;
a=b;
b=c;
c=a;
a
b
c
A.1,2,3 B.2,3,1
C.2,3,2 D.3,2,1
解析由已知得a=1,b=2,c=3?a=2?b=3?c=2,故a,b,c的值分别是2,3,2.
答案C
4对于下列算法,
a=input(“a=”);
if a>5
b=4;
else
if a<3
b=5;
else
b=9;
end
end
print(%io(2),a);
print(%io(2),b);
如果在运行时,输入2,那么输出的结果是( )
A.2,5 B.2,4 C.2,3 D.2,9
解析本题主要考查条件语句的应用.输入a的值为2,首先判断是否大于5,显然2不大于5,然后判断2与3的大小,显然2小于3,所以结果是b=5,因此结果应当输出2,5.
答案A
5执行下面的程序框图,如果输入的t∈[-1,3],则输出的s属于( )
A.[-3,4] B.[-5,2]
C.[-4,3] D.[-2,5]
解析当-1≤t<1时,s=3t,则s∈[-3,3).当1≤t≤3时,s=4t-t2.∵该函数的对称轴为t=2,∴该函数在[1,2]上单调递增,在[2,3]上单调递减.∴smax=4,smin=3.
∴s∈[3,4].综上知s∈[-3,4].故选A.
答案A
6两个正整数490和910的最大公约数是( )
A.2 B.10 C.30 D.70
解析910=91×10,490=49×10.
∵91=49×1+42,
49=42×1+7,
42=7×6,
∴91与49的最大公约数为7.
故910与490的最大公约数为70.
答案D
7下面的程序框图表示的算法的功能是( )
A.计算小于100的奇数的连乘积
B.计算从1开始的连续奇数的连乘积
C.从1开始的连续奇数的连乘积,当乘积大于100时,计算奇数的个数
D.计算1×3×5×…×n≥100时的最小的n值
解析题中程序框图表示的算法是确定使1×3×…×n≥100成立的最小整数n的值.
答案D
8某程序框图如图所示,运行后输出的倒数第二个数是( )
A
解析当n=1时,输出a=3;
当n=2时,输出a=2;
当n=3时,输出a
当n=4时,输出a
当n=5时,输出a
故输出的倒数第二个数
答案C
9下面程序执行后输出的结果是( )
n=5;
S=0;
while S<15
S=S+n;
n=n-1;
end
n
A.-1 B.0 C.1 D.2
解析∵5+4+3+2+1=15,∴当n=1时进行最后一次循环,最后输出n=n-1=1-1=0.
答案B
10执行两次下图所示的程序框图,若第一次输入的a的值为-1.2,第二次输入的a的值为1.2,则第一次、第二次输出的a的值分别为( )
A.0.2,0.2 B.0.2,0.8
C.0.8,0.2 D.0.8,0.8
解析第一次:a=-1.2<0,a=-1.2+1=-0.2,-0.2<0,a=-0.2+1=0.8>0,a=0.8≥1不成立,输出0.8.
第二次:a=1.2<0不成立,a=1.2≥1成立,a=1.2-1=0.2≥1不成立,输出0.2.
答案C
二、填空题(本大题共5小题,每小题5分,共25分.把答案填在题中的横线上)
11三个数72,120,168的最大公约数是 .?
解析利用辗转相除法:120=72×1+48,72=48×1+24,48=24×2,所以72和120的最大公约数是24,又168=24×7,所以三个数的最大公约数是24.
答案24
12下面是求S=1+3+5+…+2 015的程序,在横线处填上正确的内容.
S= ;?
i=1;
for i=1: : ?
S= ;?
end
print(%io(2),S);
答案0 2 2 015 S+i
13阅读某一问题的算法的程序框图(如图所示).此框图反映的算法功能是 .?
答案计算任意实数x的绝对值|x|
14执行如图所示的程序框图,如果输入a=1,b=2,则输出的a的值为 .?
解析输入a=1,b=2,不满足a>8,故a=3;
a=3不满足a>8,故a=5;
a=5不满足a>8,故a=7;
a=7不满足a>8,故a=9,满足a>8,终止循环.输出a=9.
答案9
15用秦九韶算法计算多项式f(x)=3x6+4x5+5x4+6x3+7x2+8x+1当x=0.4时的值时,需要做乘法和加法的次数分别是 .?
解析由于f(x)=(((((3x+4)x+5)x+6)x+7)x+8)x+1,
因此需做乘法6次,加法6次.
答案6,6
三、解答题(本大题共5小题,共45分.解答时应写出文字说明、证明过程或演算步骤)
16(8分)分别用更相减损之术与辗转相除法求161与253的最大公约数.
解更相减损之术:
(161,253)→(161,92)→(69,92)→(69,23)→(46,23)→(23,23).
故161与253的最大公约数为23.
辗转相除法:
253÷161=1(余92),161÷92=1(余69),92÷69=1(余23),69÷23=3(余0),
故161与253的最大公约数为23.
17(8分)如图所示的程序框图.
(1)试写出该程序框图的功能;
(2)若输出的值为3,求输入x的值.
解(1)该程序框图的功能是输入自变量x的值,输出函数y.
(2)若输出的值为3,当x<0时,2x2-5=3,解得x=2(舍去)或x=-2;
当x≥0时,x-1=3,解得x=4.
综上所得x=-2或x=4.
18(9分)老师将一次测验的成绩分为3个等级:85~100为“A”;60~84为“B”;60以下为“C”.试用条件分支结构的框图表示某个学生成绩等级的算法.
解程序框图如图所示.
19(10分)已知如图所示的程序框图(未完成).设当箭头a指向①时,输出的结果为s=m,当箭头a指向②时,输出的结果为s=n,求m+n的值.
解当箭头a指向①时,s和i的结果如下:
s
0+1
0+2
0+3
0+4
0+5
i
2
3
4
5
6
因此,s=m=5.
当箭头a指向②时,输出s和i的结果如下:
s
0+1
0+1+2
0+1+2+3
0+1+2+3+4
0+1+2+3+4+5
i
2
3
4
5
6
因此,s=n=1+2+3+4+5=15.故m+n=20.
20(10分)相传古代印度国王在奖赏他聪明能干的宰相达依尔(国际象棋发明者)时,问他需要什么,达依尔说:“国王只要在国际象棋棋盘的第一格子上放一粒麦子,第二格子上放二粒,第三格子上放四粒,以后按比例每一格加一倍,一直放到第64格(国际象棋棋盘格数是8×8=64),我就感恩不尽,其他什么也不要了.”国王想:“这才有多少,还不容易!”于是让人扛来一袋小麦,但不到一会儿就用完了,再来一袋很快又没有了,结果全印度的粮食用完还不够,国王很奇怪,怎么也算不清这笔账.请你设计一个程序框图表示其算法,来帮国王计算一下需要多少粒小麦,并用算法语句编写程序.
解程序框图如图所示.
程序如下:
i=0;
S=0;
while i<64
S=S+2^i;
i=i+1;
end
print(%io(2),S);
第一章算法初步
检测(B)
(时间:90分钟 满分:120分)
一、选择题(本大题共10小题,每小题5分,共50分.在每小题给出的四个选项中,只有一项是符合题目要求的)
1下列叙述中正确的是( )
①用程序框图表达算法,其优点是算法的逻辑结构展现得非常直观清楚;
②不同的算法都可由顺序结构、条件分支结构、循环结构这三种基本的逻辑结构构成;
③循环结构中,一定存在反复执行的处理步骤;
④条件分支结构中一定包含循环结构.
A.①②③ B.②③④
C.①③④ D.①②④
解析循环结构中一定包含条件分支结构,但条件分支结构中不一定含循环结构.
答案A
2下列赋值语句正确的是( )
A.a+b=5 B.5=a
C.a=2?? b=2 D.a=a+1
答案D
3用秦九韶算法计算多项式f(x)=3x6+5x5+6x4+79x3-8x2+35x+12在x=-4时的值时,v2的值为 ( )
A.-57 B.22
C.34 D.74
解析由秦九韶算法可得v0=3,v1=3×(-4)+5=-7,v2=28+6=34,故选C.
答案C
4如图所示,程序框图所进行的求和运算是( )
A.1
B.1
C
D
解析i是计数变量,n是计算变量,当i=1时,si=2时,s;当i=11时跳出循环,因此选C.
答案C
5下列程序段运行时输出的结果是( )
A=4;
B=A?? A;
A=A+B;
B=B+A;
print(%io(2),A,B);
A.16,20
B.16,36
C.20,36
D.36,20
解析按照步骤执行,B=16,A=4+16=20,B=16+20=36,最后输出A,B的值即为20,36.
注意print(%io(2),A,B)在屏幕上的输出顺序由上而下分别是B,A的值.故选D.
答案D
6执行如图所示的程序框图,则输出的k的值是( )
A.3 B.4 C.5 D.6
解析∵k=1,s=1+(1-1)2=1;k=2,s=1+(2-1)2=2;k=3,s=2+(3-1)2=6;k=4,s=6+(4-1)2=15;k=5,s=15+(5-1)2=31>15,∴k=5.故选C.
答案C
7下面程序运行后,输出的值是( )
i=0;
while i?? i<2000
i=i+1;
end
i=i-1;
print(%io(2),i);
A.42 B.43 C.44 D.45
解析本题是while循环语句,目的是求出i-1,使得i×i≥2 000,当i=45时满足条件,输出的值为i-1=44,故选C.
答案C
8执行如图所示的程序框图,若输入n的值为3,则输出s的值是( )
A.1 B.2
C.4 D.7
解析i=1,s=1,i≤3,s=1+0=1,i=2;
i≤3,s=1+1=2,i=3;
i≤3,s=2+2=4,i=4;
i>3,s=4.
答案C
9阅读下边的程序框图,运行相应的程序.若输入x的值为1,则输出S的值为( )
A.64 B.73
C.512 D.585
解析由题中程序框图,得x=1时,S=1;x=2时,S=9;x=4时,S=9+64=73,结束循环输出S的值为73,故选B.
答案B
10如图所示,程序框图(算法流程图)的输出结果是( )
A
解析开始2<8,s=0
返回,4<8,s
返回,6<8,s
返回,8<8不成立,输出s
答案D
二、填空题(本大题共5小题,每小题5分,共25分.把答案填在题中的横线上)
11运行如图所示的程序,输出的结果为 .?
a=6;
b=7;
a=a+b;
b=b-a;
print(%io(2),b,a);
解析a=6,b=7?a=6+7=13?b=7-13=-6,故输出a和b的值分别是13,-6.
答案13,-6
12275与60的最小公倍数为 .?
解析先求275与60的最大公约数:(275,60)→(215,60)→(155,60)→(95,60)→(35,60)→(35,25)→(10,25)→(10,15)→(10,5)→(5,5),即275与60的最大公约数是5,因此其最小公倍数300.
答案3 300
13若输入8,则下列程序执行后输出的结果是 .?
t=input(“t=”);
if t<=8
c=0.2;
else
c=0.2+0.1?? (t-3);
end
print(%io(2),c);
解析由于8≤8,因此c=0.2,即输出结果是0.2.
答案0.2
14如图是某算法的程序框图,则程序运行后输出的结果是 .?
解析s=(0+1)×1=1,n=2<3;s=(1+2)×2=6,n=3;s=(6+3)×3=27,n=4>3,输出s的值为27.
答案27
15执行下面的程序框图,若输入的ε的值为0.25,则输出的n的值为 .?
解析第1次运行将F0+F1赋值给F1,
即将3赋值给F1,然后将F1-F0赋值给F0,
即将3-1=2赋值给F0,n增加1变成2,
此ε大,
故循环,新F1为2+3=5,新F0为5-2=3,n增加1变成3,
此≤ε,
故退出循环,输出n=3.
答案3
三、解答题(本大题共5小题,共45分.解答时应写出文字说明、证明过程或演算步骤)
16(8分)已知f(x)=x5+x3+x2+x+1,用秦九韶算法求f(3)的值.
解f(x)=((((x+0)x+1)x+1)x+1)x+1,f(3)=((((3+0)×3+1)×3+1)×3+1)×3+1=283.
算法过程:v0=1,v1=1×3+0=3,v2=3×3+1=10,v3=10×3+1=31,v4=31×3+1=94,v5=94×3+1=283.
17(8分)已知某算法的程序框图如图所示,若将输出的(x,y)依次记为(x1,y1),(x2,y2),…,(xn,yn),….若程序运行中输出的一个数组是(x,-8),求x的值.
解开始n=1,x1=1,y1=0→n=3,x2=3,y2=-2→n=5,x3=9,y3=-4→n=7,x4=27,y4=-6→n=9,x5=81,y5=-8,则x=81.
18(9分)给出下列算法:
S1 输入x;
S2 若x<-2,执行S3,S4,S5;否则,执行S6;
S3 y=x2+1;
S4 输出y;
S5 执行S12;
S6 若-2≤x<2,执行S7,S8,S9;否则执行S10,S11,S12;
S7 y=x;
S8 输出y;
S9 执行S12;
S10 y=x2-1;
S11 输出y;
S12 结束.
(1)指出该算法的功能;
(2)画出该算法对应的程序框图.
解(1)该算法的功能为:求函数y.
(2)程序框图如下:
19(10分)下面程序框图表示了一个什么样的算法?试用其他方法写出它的算法,并画出该算法对应的程序框图.
解这是一个计算10个数的平均数的算法.
当型循环的算法如下:
第一步,S=0;
第二步,I=1;
第三步,如果I大于10,执行第七步;否则,执行第四步;
第四步,输入G;
第五步,S=S+G;
第六步,I=I+1,执行第三步;
第七步,A
第八步,输出A.
程序框图如下:
20(10分)给出30个数:1,2,4, 7,11,…,其规律是:第1个数是1,第2个数比第1个数大1,第3个数比第2个数大2,第4个数比第3个数大3,依此类推.要计算这30个数的和,现已给出了该问题算法的程序框图如下图所示.
(1)请在图中判断框中的①处和执行框中的②处填上合适的语句,完善该程序框图;
(2)根据程序框图,用语句描述该算法.
解(1)①i≤30,②p=p+i.
(2)程序如下:
i=1;
p=1;
S=0;
while i<=30
S=S+p;
p=p+i;
i=i+1;
end
print(%io(2),S);