第二章 算法初步
2.4.3循环语句
一、选择题
1、学了算法你的收获有两点,一方面了解我国古代数学家的杰出成就,另一方面,数学的机械化,能做许多我们用笔和纸不敢做的有很大计算量的问题,这主要归功于算法语句的( )
A、输出语句 B、赋值语句
C、条件语句 D、循环语句
2、读程序
甲:INPUT i=1 乙:INPUT I=1000
S=0 S=0
WHILE i≤1000 DO
S=S+i S=S+i
i=i+l I=i一1
WEND Loop UNTIL i<1
PRINT S PRINT S
END END
对甲乙两程序和输出结果判断正确的是 ( )
A、程序不同结果不同
B、程序不同,结果相同
C、程序相同,结果不同
D、程序相同,结果相同
3、在上题条件下,假定能将甲、乙两程序“定格”在i=500,即能输出i=500 时一个值,则输出结果
A、甲大乙小 B、甲乙相同
C、甲小乙大 D、不能判断
二、填空题
4、INPUT x
IF 990
S=S+x;
m=m+1;
end
i=i+1;
end
p=S/m;
p
[来源:]
7、解:程序如下:
n=0;[来源: ]
A=0;
B=0;
C=0;
While n≤20
M=input(“M”=)
If M<0
B=B+1;
else
if M=0
C=C+1;
else
A=A+1;
end
end
n=n+1
end
print(%io(2),C,B,A)
8、
解:程序如下:
a=input(“a=”)
c=input(“c=”)
d=b*b-4*a*c
p=-b/(2*a)
q=SQR(ABS(d))/(2*a) (SQR)()为根号函数
if d>=0 then
x1=p+q
x2=p-q
if x1=x2 then
print “One real roots:x1”
else
print “One real roots:x1”; x1,”and x2”; x2
end
print”No real root.”
end
end
9、解:程序如下:
a=input(“a=”)
b=input(“b=”)
c=input(“c=”)
if b>a then
t=a
a=b
b=t
end
if c>a then
t=a
a=c
c=t
end
if c>b then
t=b
b=c
c=t
end
print a,b,c
end
10、解:程序如下:
i=2;max=0;S=0;
for m=1750;m<=1850
for i=2:1(m-1)
if m%i=0
break;
if(i>m-1)
S=S+m;max=m;
end
end
print S, max;
end
11、INPUT“money=”,10000
x=mOney
r=11.25/100
y=O
WHILE x≥2r
y=y+1
x=x+r*x
WEND
PRINT y
END
12、解:程序如下:
P=1;
R=0.09;
n=0;
while P<2
P=P*(1+R);
n=n+1;
end
print(%io(2),n)
13、解:程序:
for i=1:1:100
if i*i/100= =i
printf i
else if i*i/10= =i
printf i
end
14、
解:这是一个累加求和问题,共99项相加,可设计一个计数变量,一个累加变量,用循环结构实现这一算法.程序框图如下图所示
[来源:]
15、解:(Ⅰ)该算法使用了当型循环结构,因为是求30个数的和,故循环体应执行30次,其中i是计数变量,因此判断框内的条件就是限制计数变量i的,故应为.算法 中的变量p实质是表示参与求和的各个数,由于它也是变化的,且满足第i个数比其前一个数大,,第个数比其前一个数大i,故应有.故(1)处应填;(2)处应填。
(Ⅱ)可设计程序如下:
【点此下载】