t=a
a=c
c=t
END IF
IF c
t=b
b=c
c=t
END IF
PRINT a,b,c
END
类型三 循环语句
若下面程序中输入的n值为2017,则输出的值为____________.
INPUT “n=”;n
S=0
i=1
WHILE i<=n
S=S+1/(i*(i+1))
i=i+1
WEND
PRINT S
END
解:
本程序是计算S=
+
+…+
.
裂项得S=
+
+…+
=
.所以当n=2017时,S=
.故填
.
【点拨】计算机执行此程序时,遇到WHILE语句,先判断条件是否成立,如果成立,则执行WHILE和WEND之间的循环体,然后返回到WHILE语句再判断上述条件是否成立,直至返回到WHILE语句判断上述条件不成立为止,这时不再执行循环体,而执行WEND后面的语句,这是当型循环.
计算12+22+32+…+1002的值,分别用WHILE型语句和UNTIL型语句编写程序.
解:
WHILE型:
UNTIL型:
i=1
S=0
WHILEi<=100
S=S+i^2
i=i+1
WEND
PRINTS
END
i=1
S=0
DO
S=S+i^2
i=i+1
LOOPUNTILi>100
PRINTS
END
当型循环与直到型循环的区别
(1)WHILE型是先判断条件,后执行循环体,而UNTIL型则是先执行循环体,后判断条件;
(2)WHILE型是当条件满足时执行循环体,不满足时结束循环,而UNTIL型则是条件不满足时执行循环体,条件满足时结束循环;
(3)UNTIL型至少执行一次循环体,而WHILE型执行循环体的次数可能为0.
1.给出下列程序:
INPUT “A=”;A
A=A*2
A=A*3
A=A*4
A=A*5
PRINT A
END
若输出的A的值为120,则输入的A的值为( )
A.1B.5C.15D.120
解:
该程序的功能是计算A×2×3×4×5的值,则120=A×2×3×4×5,故A=1,即输入A的值为1.故选A.
2.给出程序:
a=5
IFa>5THEN
b=2*a
ELSE
b=a*a+1
ENDIF
PRINT b
END
该程序运行的结果为( )
A.1B.10C.25D.26
解:
由条件可知,b=5×5+1=26.故选D.
3.读程序回答问题.
甲
i=1
S=0
WHILE i<=1000
S=S+i
i=i+1
WEND
PRINT S
END
乙
i=1000
S=0
DO
S=S+i
i=i-1
LOOPUNTILi<1
PRINT S
END
对甲、乙两程序和输出结果判断正确的是( )
A.程序不同,结果不同
B.程序不同,结果相同
C.程序相同,结果不同
D.程序相同,结果相同
解:
甲、乙两程序显然不同,但都是求1+2+…+1000的和,所以结果相同,故选B.
4.下列程序语句是求函数y=|x-4|+1的函数值,则①处为( )
INPUT “x=”;x
IF x>=4 THEN
y=x-3
ELSE
__①__
END IF
PRINT y
END
A.y=3-xB.y=x-5
C.y=5-xD.y=x+5
解:
y=|x-4|+1=
故选C.
5.(
)下面程序运行后,输出的值是( )
i=0
DO
i=i+1
LOOPUNTIL i*i>=2000
i=i-1
PRINTi
END
A.42B.43C.44D.45
解:
程序的功能是利用循环计算i2<2000(i∈N)的最大i值,∵442<2000,452>2000,∴输出的i为44.故选C.
6.读下面的程序:
INPUT n
i=1
S=1
WHILE i<=n
S=S*i
i=i+1
WEND
PRINT S
END
上面的程序在执行时输入6,那么输出的结果为( )
A.6B.720C.120D.1
解:
当n=6时,这个程序的实际含义是计算S=1×2×3×4×5×6,结果是720.故选B.
7.运行如图所示的程序,输出的结果是.
a=1
b=2
a=a+b
PRINT a
END
解:
a=1,b=2,则a+b=3,根据赋值语句的含义,有a=3.故填3.
8.下列程序输出结果为____________.(SQR(a)表示非负数a的算术平方根)
a=6
b=2
a=a-b
b=b-a
a=a*b^a*SQR(a)
PRINT a
END
解:
执行第三、四句后,a=4,b=-2,执行第五句后,a=4×(-2)4×
=128,故输出a的值为128.故填128.
9.求下面程序的运行结果.
n=10
s=0
DO
s=s+n
n=n-1
LOOP UNTIL s>=40
PRINT n
END
解:
n=10,s=0直接进入循环体后,s=10,n=9;s=19,n=8;s=27,n=7;s=34,n=6;s=40,n=5,这时s≥40,跳出循环,输出结果为5.
10.高等数学中经常用到符号函数y=sgnx,其定义为y=
试编写程序,根据输入的x值,输出对应的y值.
解:
根据x的取值,此函数为三段分段函数,则需用条件语句嵌套.程序如下.
INPUT x
IF x>0 THEN
y=1
ELSE
IFx=0THEN
y=0
ELSE
y=-1
ENDIF
ENDIF
PRINT y
END
11.编写一个程序,求1!
+2!
+…+10!
的值.
解:
程序如下.
s=0
i=1
j=1
WHILE i<=10
j=j*i
s=s+j
i=i+1
WEND
PRINT s
END
某商场第一年销售计算机5000台,如果平均每年销售量比上一年增加10%,那么从第一年起,大约几年可使总销售量达到30000台?
画出解决该问题的程序框图,并编写相应程序.
解:
根据题意,每年销售量比上一年增加的百分率相同,设总销售量为S,n年达到30000台.
则S=5000+5000(1+10%)+5000(1+10%)2+…+5000(1+10%)n-1=50000(1.1n-1).
令S≥30000,可得n≥5,即大约5年可使总销售量达30000台.
程序框图如图所示.
程序如下.m=5000
S=0
i=0
WHILE S<30000
S=S+m
m=m*(1+0.1)
i=i+1
WEND
PRINT i
END