第一章 算法初步
1.2.3 循环语句
一、选择题
1.读下面的程序:
i=1
S=0
DO
INPUT x
S=S+x
i=i+1
LOOP UNTIL i>10
A=S/10
PRINT A
END
该程序的作用是
A.计算9个数的和 B.计算9个数的平均数
C.计算10个数的和 D.计算10个数的平均数
【答案】D
【解析】根据程序可知,共输入10个数,由“A=S/10”可知是求10个数的平均数.
2.以下程序运行后的输出结果为
i=1
WHILE i<8
i=i+2
S=2*i+3
i=i–1
WEND
PRINT S
END
A.17 B.19 C.21 D.23
【答案】C
输出的S值为:21.故选C.
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
LOOP? UNTIL i<1
PRINT S
END
对程序甲、乙和输出结果判断正确的是
A.程序不同,结果不同 B.程序不同,结果相同
C.程序相同,结果不同 D.程序相同,结果相同
【答案】B
【解析】甲是当型循环语句,由小到大求和,.乙是直到型循环语句,由大到小求和,.故两个程序不同,结果相同.故选B.
4.下面为一个求50个数的平均数的程序,在横线上应填充的语句为
S=0
i=1
DO
INPUT x
S=S+x
i=i+1
LOOP UNTIL __________
a=S/20
PRINT a
END
A.i>50 B.i<50 C.i>=50 D.i<=50
【答案】A
二、填空题
5.根据所给的程序,可知输出的结果S为________.
S=1
I=1
WHILE I8
S=S+2
I=I+3
WEND
PRINT S
END
【答案】7
【解析】第一次循环:;第二次循环:;第三次循环:,结束循环,故输出的为7.
6.下列程序运行的结果是__________.
n=15
S=0
i=1
WHILE i<=n
S=S+i
i=i+2
WEND
PRINT S
END
【答案】64
【解析】先画出对应的程序框图,如下:
执行程序,有S=0,i=1
第1次循环,满足条件i≤15,有S=1,i=3;
第2次循环,满足条件i≤15,有S=4,i=5;
第3次循环,满足条件i≤15,有S=9,i=7;
第4次循环,满足条件i≤15,有S=16,i=9;
第5次循环,满足条件i≤15,有S=25,i=11;
第6次循环,满足条件i≤15,有S=36,i=13;
第7次循环,满足条件i≤15,有S=49,i=15;
第8次循环,满足条件i≤15,有S=64,i=17;
第9次循环,不满足条件i≤15,退出循环.输出S的值为64.故答案为:64.
三、解答题
7.编写一个程序,求满足的的最小值.
【解析】用WHILE语句编写的程序如下:
S=1
n=1
WHILE S<=10
n=n+1
S=S+1/n
WEND
PRINT n
END
用UNTIL语句编写的程序如下:
S=1
n=1
DO
n=n+1
S=S+1/n
LOOP UNTIL S>10
PRINT n
END
8.相传古印度国王舍罕要褒奖他聪明能干的宰相达依尔(国际象棋的发明者),问他想要什么,达依尔回答说:“国王只要在国际象棋棋盘的第1个格子里放1粒麦子,第2个格子里放2粒,第3个格子里放4粒,依此类推,每个格子里的麦子数是前一个格子里的2倍,一直放到第64个格子(国际象棋棋盘是8×8=64个格子),我就感恩不尽,其他的我什么也不要了.”国王想,这还不容易!让人扛来一袋麦子,但不到一会儿就全用完了,再扛来一袋很快又没有了,结果全印度的粮食全部用完还不够.国王纳闷,怎样也算不清这笔账.请你设计一个算法,帮助国王计算一下,共需要多少粒麦子,并画出程序框图,写出程序.
程序框图如图所示:
程序如下:
i=0
S=0
WHILE i<=63
P=2^i
S=S+P
i=i+1
WEND
PRINT S
END