24.VFP中程序的注释命令有&&和*。 <标准答案>1
25.COUNT命令的功能为:统计当前表中指定范围内满足条件的记录的个数。 <标准答案>1
26.INPUT命令输入的数据可以是常量、变量,也可以是一般的表达式,但不能不输入任何内容直接按回车。 <标准答案>1
27.输入命令ACCEPT只能接受字符串,但用户在输入字符串时不需要加定界符。 <标准答案>1 28.在Visual FoxPro中,对表进行索引后,将产生一个新的表。 <标准答案>2
29.VFP命令的书写规则规定,命令中的英文字符是区分大小写的。 <标准答案>2
30.备注型数据用字母“M”表示,长度固定为4个字节,并用这4个字节来引用备注的实际内容。 1 31.Visual FoxPro规定,逻辑型数据用.T.或.Y.表示逻辑真,用.F.或.N.表示逻辑假,所以逻辑型数据有四个值。 <标准答案>2
32.INT(SQRT(26))的值是5 <标准答案>1
33.字符型数据之间可以进行数学运算,每个字符占一个字节。 <标准答案>2
34.逻辑型数据用字母“L”表示,它表示逻辑判断的结果,长度固定为1个字节。 <标准答案>1 35.数据库表中可以使用长字段名,最大长度为128个字符。 <标准答案>1 36.在Visual FoxPro中,对表进行排序后,将产生一个新的表。 <标准答案>1 37.在Visual FoxPro中,对表进行排序后,不会产生一个新的表。 <标准答案>2
38.数值型数据用来表示数量,没有定界符,可以是整数或小数,也可以是分数。 <标准答案>2 39.计算与显示命令规定:?是在同行显示结果,??是在下一行显示结果。 <标准答案>2 40.SET TALK ON/OFF 命令决定是否显示数据处理命令的响应信息。 <标准答案>1 >
41.INPUT命令输入的数据可以是常量、变量,也可以是一般的表达式,但不能不输入任何内容直接按回车。 <标准答案>1
三、程序改错题 1.下面的程序是求3+9+27+81+243+...这样的数之和. 若累加数大于500时,则结束累加.程序中有一处错误。
改正后运行程序,将程序执行结果填入答案框内。
SET TALK OFF CLEAR X=3 Y=0 DO WHILE .F. Y=Y+X IF Y>500 EXIT ENDIF STORE 3*X TO X ENDDO ?Y SET TALK ON RETURN <标准答案>1092
2.已知S1=1,S2=1+2,S3=1+2+3,?,SN=1+2+?+N,下面的程序求S20到S80有多少数能被17或35整除。 改正后运行程序,将程序执行结果填入答案框内。
SET TALK OFF I=20 N=0 DO WHILE I<=80 STORE 0 TO S J=1 DO WHILE J<=I S=S+J J=J+1 ENDDO IF MOD(S,17)=0 N=N+1 ENDIF I=I+1 ENDDO ? N SET TALK ON RETURN <标准答案>12
3.计算S=1*5*9*13*...*k,直到累乘数k>=25中止。程序中有错误。改正后运行程序,将程序执行结果填入答案框内。
SET TALK OFF CLEAR s=0 k=1 DO WHILE .T. s=s*k IF k>=25 EXIT ENDIF k=k+4 ENDDO ?s RETURN <标准答案>5221125
4.下面的程序是求1到500的偶数立方和与奇数立方和之差。程序中有一处错。更正程序中的错误,运行更正后的程序,记录运行结果,
将结果填入答题窗口内。 SET TALK OFF STORE 0 TO I,S1,S2 DO WHILE I<=500 I=I+1 IF MOD(I,2)=0 S1=S1+I*I*I ELSE S2=S2+I*I*I
ENDIF ENDDO ? S1-S2 SET TALK ON RETURN <标准答案>62687500
5.程序求能被3整除且至少有一位数字为5的三位数的个数。程序中有一行有错误。更正程序中的错误,运行更正后的程序,
第 6 页 共 14 页 2008-06-13
记录运行结果,将结果填入答题窗口。 SET TALK OFF CLEAR S=0 X=100 DO WHILE X<=999 IF MOD(X,3)<>0 A=INT(X/100)
B=INT(X/10)-A*10 C=X-A*100-B*10 IF A=5 .OR. B=5 .OR. C=5 S=S+1 ENDIF ENDIF X=X+1 ENDDO ? S RETURN
<标准答案>85
6.下面的程序是求在1,2,3,4,...,10这10个数中,任意选两个不同的数,求它们的和能被2整除的数的总对数. (注意: 象3+5和5+3认为是同一对数). 程序中有一处错误。改正程序中的错误后运行程序,将程序执行结果填入答案框内。
SET TALK OFF CLEAR N=0 I=1 DO WHILE I<=10 J=1 DO WHILE J(I+J)/2 N=N+1 ENDIF
J=J+1 ENDDO I=I+1 ENDDO ?N SET TALK ON RETURN <标准答案>20
7.已知一个数列的前三个数是1,2,3,从第四个数起,每个数都是前三个数之和。下面的程序是求出该数列的第15个数。改正程序中的错误后运行程序,将程序执行结果填入答案框内。 SET TALK OFF DIME A(15) A(1)=1 A(2)=2 A(3)=3 I=4 DO WHILE I=15 A(I)=A(I-1)+A(I-2)+A(I-3) I=I+1 ENDDO ? A(15) SET TALK ON RETURN
<标准答案>4841
四、程序设计填空题 1.编程序求出1000到2000之间同时满足除3余2和除5余3条件的数的个数。 <标准答案>66
set talk off clear n=0
for i=1000 to 2000
if mod(i,3)=2 and mod(i,5)=3 n=n+1 endif endf ?n set talk on return
2.编程序求出3000到5000之间同时满足除3余2和除5余3条件的数的个数。 <标准答案>133
set talk off clear
n=0
for i=3000 to 5000
if mod(i,3)=2 and mod (i,5)=3 n=n+1 endi endf ?n
set talk on return
3.求能被3整除且至少有一位数字为5的三位数的个数。 <标准答案>85
第 7 页 共 14 页 2008-06-13
set talk off clear n=0 s=0
for i=100 to 999 a=int(i/100)
b=int(mod(i,100)/10) c=mod(i,10) if mod(i,3)=0
s=s+1
if a<>5 and b<>5 and c<>5 n=n+1 endif endif t=s-n endf
?t
set talk on retu
4.编写程序,求10! <标准答案>3628800 set talk off clear sub=1
for j=1 to 10 sub=sub*j endf s=sub ?s set talk on
return
5.编写程序,s=1+1/2+1/3+?+1/99,保留两位小数。 <标准答案>5.18 set talk off clear s=0 for i=1 to 99 s=s+1/i endf ?s
set talk on retu
6.求出只要能被2,7,9之一整除的1000以内的正整数的个数。 <标准答案>619 set talk off clear s=0
第 8 页 共 14 页 2008-06-13
for i=1 to 1000
if mod(i,2)=0 or mod(i,7)=0 or mod(i,9)=0 s=s+1 endif endf ?s
set talk on
retu
7.求出只要能被2,7,9之一整除的800以内的正整数的个数。 <标准答案>495 set talk off clear
s=0
for i=1 to 800
if mod(i,2)=0 or mod(i,7)=0 or mod(i,9)=0 s=s+1 endif endf ?s
set talk on retu
8.求出只要能被2,7,9之一整除的600以内的正整数的个数。 <标准答案>371 set talk off clear
n=0
for i=1 to 600
if mod(i,2)=0 or mod(i,7)=0 or mod(i,9)=0 n=n+1 endif endf ?n set talk on return
9.编程序求出1到100之间同时满足除3余2和除4余2条件的数的和。 <标准答案>450 set talk off clear s=0
for i=1 to 100
if mod(i,3)=2 and mod(i,4)=2 s=s+i endif endf ?s set talk on retu
第 9 页 共 14 页 2008-06-13
10.编程序求出1到500之间同时满足除3余2和除4余2条件的数的和。 <标准答案>10416 set talk off clear s=0
for i=1 to 500
if mod(i,3)=2 and mod(i,4)=2 s=s+i endif endf ?s set talk on
return
11.求[105,625]间能同时被7和11整除的自然数之和。 <标准答案>2695 set talk off
clear s=0
for i=105 to 625
if mod(i,7)=0 and mod(i,11)=0 s=s+i endif endf ?s
set talk on
retu
12.求[1000,6000]间能同时被7和11整除的自然数之和。 <标准答案>225225 set talk off clear
s=0
for i=1000 to 6000
if mod(i,7)=0 and mod(i,11)=0 s=s+i endif endf
?s
set talk on retu
13.编写程序,求200到800之间素数的个数。 <标准答案>93 set talk off clear
s=0
for i=200 to 800 for j=2 to sqrt(i) if mod(i,j)=0 exit
第 10 页 共 14 页 2008-06-13