VFP考试题型(带答案)

3、计算分段函数的值:当x>0时,y=15;当x<=0时,y= -5;当x=0时,y=0 SET TALK OFF

INPUT “请输入X的值:” TO X DO CASE

CASE X>0

Y= (1)

CASE X<0 Y= -5 OTHERWISE Y=0 ENDCASE

? ”Y=”, y RETURN

答案: (1) 15 (2) Y 知识点:多分支结构

4、设eee.dbf为职工数据表,姓名为一个字段名,查找名为“王林”的职工,若找到显示该员工信息,否则显示“查无此人”信息。 SET TALK OFF (1)

LOCATE FOR 姓名=”王林” IF (2) DISP ELSE

?” 查无此人” ENDIF USE

SET TALK ON

答案: (1) USE EEE (2) FOUND() 知识点:记录查找,双分支

5、下面程序将“春光明媚”先纵向显示出来然后再横向显示“明媚春光” 请填空完成该程序:

Set talk off Clear

STORE “春光明媚” TO XY N=1

DO WHILE N<8 ?SUBSTR( 1 ) N=N+2 ENDDO

? SUBSTR( 2 ) ??SUBSTR(XY,1,4) Return 答案:(1) XY,N,2 (2) XY,5,4 知识点:单循环结构

答案:(1) X-5 (2) ENDIF 知识点:双分支结构

6、输入一个三位整数,将其反向输出。如输入123,输出321。 set talk off

input \请输入一个三位数\(1)

(2)=100*mod(a,10)+10*mod(int(a/10),10)+ int(a/100) ?b return 答案:(1) a

(2) b

知识点:顺序结构

7、 子程序调用 主程序:t1.prg SET TALK OFF

STORE ′NH′ TO k1,k2 DO t2

?k1+k2 屏幕上显示的结果是 (1) RETURN

子程序:t2.prg PRIVATE k1

k1=k2+″100″

?k1 屏幕上显示的结果是 (2) RETURN

答案:(1) NHNH

(2) NH100 知识点:子程序调用

7、子程序调用 主程序:z.prg SET TALK OFF

STORE 4 TO y1, y2, y3 y1=y1+1

? y1+y2+y3 &&屏幕上显示的结果是 (1) DO z1

? y1+y2+y3 &&屏幕上显示的结果是 (2) RETURN

子程序:z1.prg y2=y2+1 DO z2 y1=y1+1 RETURN

子程序:z2.prg y3=y3+1

RETURN TO MASTER

答案:(1) 13

(2) 15

知识点:子程序调用

8、下面的程序实现了多次在“aaa.dbf”表中查找记录的操作。请在建立了aaa.dbf表的基础上,任意输入一位员工的“编号”,若查找到相应的记录则显示,否则给出提示“无此人!”;根据提示输入“N”或“n”则结束程序的运行。

SET TALK OFF CLEAR

USE aaa.dbf DO WHILE .T. CLEAR

ACCEPT \请输入员工编号:\ LOCATE FOR 编号= ZHGNO IF (1) DISPLAY 编号,姓名,部门代号,职称,基本工资 ELSE

?\无此人!\ ENDIF

WAIT \继续查询?(Y/N):\ IF UPPER(P)<>\ USE EXIT ENDIF ENDDO

SET TALK ON RETURN

答案:(1) NOT EOF()

(2) Y

知识点:表的操作

9、下面程序输出如图所示的图形,请将程序补充完整。

******* ***** ***

*

Set talk off clear

FOR N=4 TO 1 STEP -1 ? (1) (3-N) FOR M=1 TO 2*N-1 ?? (2)

ENDFOR ENDFOR

Set talk on return

答案:(1) SPACE

(2) \

知识点:双循环结构 三、编程题(要求从三大类型的程序中各选其一,即不能选两个同类型的程序题) (一)求和类型的程序

1、编程计算s=1+1/3+1/5+?+1/49。 参考答案: clear s=0

for i=1 to 49 step 2 s=s+1/i endfor ?s Retu

答案:2.5912

2、编程计算100到1000之间能被4除余1的所有数之和。 参考答案: clear s=0

for i=100 to 1000 if i%4=1 s=s+i endi endf ?s Retu

答案:123525

3、计算100到500中所有素数的和。(所谓素数是指除了1和它本身外,没有任何因子被该数整除) 参考答案: clea s=0

for i=100 to 500 for j=2 to i-1 if i%j=0

exit endif endf if j>=i s=s+i endi endf ?s Retu

答案:20476

编程计算1/4!+1/8!+1/10! clea &&主程序

?1/fac(4)+1/fac(8)+1/fac(10) retu

func fac &&fac创建一个求阶乘的函数 para i s=1

for J=1 to i s=s*J endfor return

答案:0.0014

4、求所有五位数中,千位数字等于个位数字的数之和。 clear s=0

for i=10000 to 99999 if i=int(i/1000) s=s+I endif endf ?s retu

答案:494995500

(二)统计个数的类型

1、统计100到1000中能被5或9整除的所有数的个数。 clea s=0 I=100

DO WHILE I<=1000 if i%5=0 or i%9=0 s=s+1 endif I=I+1 endDO ?s Retu

答案:261

2、求四位数中所有“回文数”的个数。(所谓“回文数”,是指该数从左往右念与从右往左念相同,例如:1221,3223等) clea s=0

for i=1000 to 9999 STEP 1 a=int(i/1000)

b=int((i00)/100)

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4