问答题
程序改错(5分)
下列程序中PrintPrime过程的功能是查找所有小于自然数nMax的素数,并按每行nCol个素数显示在主窗口中。素数是大于1且只能被1和自身整除的整数,如2、3、5、7等。判断一个自然数N是否是素数的方法是:用N除以从2到大于N的最小整数之间的每一个整数j,若所有的j都不能整除N,则N为素数。要求:
1.项目中有一个程序文件Pcode,将T盘中VFP01.TXT中的程序代码复制到其中并进行修改。
2.在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
1 CLEAR
2 DO PrintPrime(400,5)
3 PROCEDURE PrintPrime
4 PARA nMax,nCol
5 i=0 &&记录素数个数
6 FOR n=2 TO nMax
7 Flag=.T.
8 FOR j=2 TO INT(SQRT(n))
9 IF n%j=0
10 Flag=.F.
11 RETURN
12 ENDIF
13 ENDFOR
14 IF FLag
15 ?? n
16 i=i+1
17 IF MOD(i,nCol)=0
18 ?
19 ENDIF
20 ENDIF
21 ENDFOR
22 ENDPROC
【正确答案】第2行 DO printPrime(400,5) 该为 PrintPrime With 400,5
第11行 Return 改为 Exit
【答案解析】