问题 单项选择题


阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】 程序功能是求1到100之间的所有素数。
【程序】
SET TALK OFF
CLEAR
J=2
DO WHILE J<=100
I=2
DO WHILE (5)
IF MOD(J,I)=0
(6)
ENDIF
I=I+1
ENDDO
IF (7)
J
ENDIF
J=J+1
(8)
SET TALK ON
RETURN

A.I<INT(J/2)

B.I>INT(J/2)

C.I=INT(J/2)

D.I<J/2

答案

参考答案:B

解析: 素数是只能被自己和1整除的数。该程序的指导思想是:变量J从2增加到100(1既不是素数也不是合数,所以直接从2开始),是外层循环所做的工作,变量J每增加1,在循环体中判断本次循环的J是否是素数,然后加1。如何去判断1是否是素数如果J最先遇到的能整除的数(除了 1以外)比J的一半还大,这个能整除的数肯定是J自己,那么此时的J是素数。在内循环,被除数I,最大也不能超过J,所以第(5)空是I<=J。在循环体内,如果找到第一个能够整除J的I,此时要退出内循环,其余的I不用再参与循环了。剩下的工作就只需要判断I是比J的一半大,还是比J的一半小。如果大,则J是素数,如果小,则J不是素数。综上分析,第(6)个空和第(7)个空分别填EXIT和I>INT(J/2)。

综合题
多项选择题