VFP程序填空阅读试题

更新时间:2024-03-01 03:26:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

计算机专业《VFP》程序填空与阅读试卷汇编一

一、程序填空(每空3分,共27分)

1.有一商场的商品销售数据库XS.DBF,其记录如下:

记录号 商品名 单价 数量 总价 1 电冰箱 2000 3 6000 2 彩 电 1800 5 9000 3 电冰箱 2010 1 2010 4 空调机 1600 2 3200 5 彩 电 1900 2 3800 ??

下面程序用于分类统计各种商品总的销售数量和总的销售额(总价),并计算出平均 销售单价。

SET TALK OFF USE XS

INDE ON __________________ TO SY ______________ ______ TO TJK USE TJK

REPL _____________________ LIST USE

SET TALK ON

2.任意输入两个正整数X和Y,求X与Y的最小公倍数。 SET TALK OFF INPUT \ INPUT \ IF X>Y T=X X=Y Y=T ENDI N=Y

DO WHILE N<=__________________ IF ________________ EXIT ENDI

N=_______________________ ENDDO

?\最小公倍数是:\ SET TALK ON

3.现有一数据库CJ.DBF,该数据库文件中仅有一个数值型字段\数据\且无记录。要求键盘输入十个数,将这些数保存到CJ.DBF的\数据\字段中,并由大到小显示出来。 SET TALK OFF

1

CLEA USE CJ K=1

DO WHIL K<=10 _________________

@K+5,1 SAY \第\数是:\ GET 数据 READ

__________________ ENDD

INDE ON _______________ TO TMP LIST USE

SET TALK ON

二、程序填空(每空3分,共18分)

1.男子100米短跑成绩已录入数据库Male100.DBF,现要求将前3名运动员的成绩转入获奖数据库gainer.dbf和gainer.txt文件中。阅读下列程序, 填写空位处的代码,使程序能正确有效地实现上述要求。 set Talk off clear

@14,20 say \请稍候?\ use Male100

___________ on 成绩/D To temp use Temp

Copy _________________ To gainer.dbf use gainer

copy to gainer.txt _________________ use

@14,20 say \操作完毕!\ Return

2.现有一户籍数据库People.DBF,存贮有该地区各位公民的档案资料,现要求按\出生日期\字段(日期型),以索引查询方式,快速查找并显示所有与指定出生日期相同的记录。 Set Talk off Set Safe off Clear

use people

Index On 出生日期 To Ipeople Born=\ / / \

@14,20 Say \请输入查询的出生日期:\ Read

________________________

Do while .NOT.EOF( ).AND. _________________ Display Skip Enddo

2

use

Set Talk on Return

三、程序填空(每空3分,共18分)

1、在人事档案管理系统中,设有两个数据库:

ZGQK.DBF(编号,姓名,性别,职称,部门名,基本工资) ZGGZ.DBF(编号,资金,房租,实发工资)

查询并显示实发工资1200元以上的职工姓名及职称,请将程序补充完整。 SET TALK OFF SELE 1 USE ZGQK

INDEX TO QK SELE 2 USE ZGGZ

LOCA FOR 实发工资>=1200 IF FOUND( )

DO WHILE .NOT.EOF( )

DISP CONT ENDDO ENDIF

CLOSE ALL SET TALK ON

2、求1──100间能被5整除的奇数个数及其和,请将程序被充完整。 SET TALK OFF CLEA I=1 S=0 M=0

DO WHILE IF M=M+1

ENDIF I=I+2 ?M,S ENDO

SET TALK ON 四、程序填空题:(每空3分,共计24分)

1、显示1到100之间既能被4整除又能被6整除的整数。 set talk off n=1

do while

3

if n=n+1 Loop else

? n endi

Endd

2、向数据库文件 TSK.DBF 中增添新记录。 Set talk off Clear

Use tsk

An=\

Do While An=\

@ 10, 20 say \书号\ GET 书号 @ 11, 20 say \书名\ GET 书名 @ 12, 20 say \单价\ GET 单价 @ 13, 20 say \册数\ GET 册数 READ

WAIT “继续吗?(Y/ N)” Endd Use

3、通过光带式菜单选择并执行子程序,其菜单和子程序名称分别为:数据录入(PG1-1. PRG)、数据查询(PG2-2. PRG)、统计报表(PG3-3. PRG)、退出系统,共四项。 SET TALK OFF DO WHILE .T CLEAR

@ 10,26 SAY “1 . 数据录入” @ 11,26 SAY “2 . 数据查询” @ 12,26 SAY “3. 统计报表” @ 13,26 SAY “4 . 退出系统” TO K EXIT ENDI

DO &FN ENDDO

4、三个数据库文件;学生入学情况库XSRX.DBF、本学期学生成绩库XSCJ.DBF和教师情况库JXK.DBF,和数据库内容如下: USE XSRX LIST OFF

姓名 班级 保送生

4

张红 2 .T. 李明 4 .T. 王军 2 .F. 赵波 2 .T. USE XSCJ LIST OFF

姓名 数学 英语 计算机 张红 89 92 87 李明 80 97 67 王军 25 78 80 赵波 90 67 91 USE JSK LIST OFF

任课教师 年龄 班级 课程 陈 35 2 数学 李 40 4 物理 孙 38 4 英语 王 29 3 计算机

下面的程序是生成一个新数据库文件XX.DBF,此数据库文件包括四个字段:姓名、班级、任课教师、课程,记录是入学时为保送生并且本学期英语成绩在90分以上(包括90分)的全部学生。 请用正确的语句填空: SET TALK OFF CLEAR SELECT 3 USE JSK SELECT 2 USE XSCJ SELECT 1 USE XSRX

JOIN WITH C TO XSRX1 FOR ; FIELDS 姓名,班级,任课教师,课程 SELECT 4 USE XSRX1

JOIN WITH B TO XX FOR ; FIELDS SELECT 5 USE XX LIST

SET TALK ON RETURN

**下面是在“KSDA.DBF“库文件逻辑删除已知准考证号学生的程序: SET TALK OFF

ACCEPT “输入待删除考生的准考证号:” TO NO

5

IF ____________________ ST=ST+X ENDIF ENDFOR

?”原字符串为:”+RS ?”新字符串为:”+ST RETU

2 下面为核对口令的程序段,口令最多输入三次,请阅读并填空。 Set talk off

Set device to screen Set escape off Clea I=1

Do while .T.

@3,2 say “[请输入口令]” set console off accept to pass

if upper(pass)=”OK” do main.prg else

wait “第”+str(I,1)+”次输入有错” if I=3

@ 4,10 say space(60)

endif I=I+1 enddo set talk on return

1. 在JSDA?DBF中查找用户输入的编号,如果查找成功,显示教师的职称,否则,显示一个说明信息。请完成如下程序: CLEAR

USE C:\\JSGL\\JSDA “请输入教师的编号:” TO BH LOCATE FOR 编号= =BH IF DO CASE

CASE 职称=“高级教师” WAIT “该教师是高级教师” WINDOW AT 15,50 TIMEOUT 1 CASE 职称=“一级教师”

21

WAIT “该教师是一级教师” WINDOW AT 15,50 TIMEOUT 1 CASE 职称=“二级教师” WAIT “该教师是二级教师” WINDOW AT 15,50 TIMEOUT 1

WAIT “该编号不存在” WINDOW AT 15,50 TIMEOUT 1 ENDIF USE

RETURN

* 注: AT m,n 在VisualFoxPro中,指定信息窗口在屏幕上的位置

2、在JSDA.DBF表中查找用户指定的编号。如果查找成功,显示找到的记录,否则,显示一条说明信息。请完成如下程序。 USE JSDA.DBF DO WHILE .T. CLEAR

ACCEPT ”请输入编号:”TO BH LOCATE FOR IF FOUND( ) DISPLAY ELSE

WAIT ”不存在该编号” WINDOW TLMEOUT 1

WAIL ”是否继续查找?(Y/N)” TO ANSWER WINDOW IF UPPER(ANSWER)〈〉”Y”

ENDIF ENDIF ENDDO USE

RETURN

4、使用自定义函数计算5!=7!+10!。请完成如下程序。 CLEAR

?”5!+7!+10!=“+ALLTRIM(STR(JS)(5)+JS(7)+JS(10))) RETURN

FUNCTION &&定义自定义函数 XS= FOR N=1 TO X XS=XS*N RETURN ENDFUNC

四、阅读程序,写出程序运行结果(每小题6分,18共) 1.主程序 main.prg 子程序 sub.prg set talk off priv b public a b=5

22

stor 2 to a,b a=2*b a=a+b return b=a+b ? a,b do sub ? a,b return

程序执行的结果是: 2.对于职工工资数据库ZGGZ.DBF,执行下面程序。 SET TALK OFF USE ZGGZ

INDE ON 工资 TO GZ STOR 0 TO S,N GO TOP

DO WHIL .NOT.EOF( ) DO CASE

CASE 性另='男' S=S+工资

CASE 职称='工程师' N=N+1 ENDC SKIP ENDD USE

SET TALK ON

程序执行后,变量S表示__________________ 变量N表示___________________。

3.现有学生档案数据库XSDA.DBF,其记录如下:

记录号 姓名 性别 班级 团员否 1 王 红 女 2 T 2 张长江 男 4 T 3 黄一品 男 2 T 4 高 峰 男 1 F 5 肖 丹 女 1 F 6 赵婷婷 女 2 T 7 张雅芝 女 1 T 8 刘 刚 男 2 F 执行下面程序: SET TALK OFF USE XSDA

INDE ON 班级 TO BJ N=0 K=班级 GO TOP

23

DO WHILE .NOT.EOF( ) IF K<>班级 ? K,N ENDIF N=N+1 K=班级 SKIP

ENDDO ?K,N USE

SET TALK ON

程序执行的结果是:

五、阅读程序,写出程序运行的结果。(每空3分,共18分) 1.*主程序 main.prg *子程序 sub.prg set Talk off private B public B B=10 A=7 A=N^2 N=3 Return B=5 Do Sub ? A,B Return

程序运行结果为:_______________ ____________ 2.现有XSCJ.DBF数据库,其记录内容如下所示: 记录号# 姓名 成绩 1 李梅 78.5 2 张燕 89.5 3 孙静 45.8 4 李雪 65.0 5 杨东 90.0 现依次执行如下命令,试写出程序运行结果 Set talk off use XSCJ

Index on - 成绩 To IXSCJ GO TOP ? 成绩

____________ skip 2 ? Recno()

____________ use

set talk on Return

24

3.Set talk off

Sour=\ N=2 I=1

S=” ” Do while I<4

If Int(/2)=I/2 N=N-3 Else

N=N+6 EndIF

S=S+Substr(Sour,N,I) I=I+1 Enddo ? S,N

Set talk On Return

执行以上程序后,其运行结果为___________ __________

四、阅读程序,写出程序运行结果(每空4分,共16分) 1、SET TALK OFF CLEA

ACCE“输入密码:”TO STRING ?“破译密码:” I=1

DO WHILE I<=3

CH=SUBSTR(STRING,I,1)

IF CH>=’A’ .AND.CH<=’Z’ CH=CHR(ASC(CH)+32) ELSE

IF CH>=’a’.AND.CH<=’z’ CH=CHR(ASC(CH)-32) ENDIF ENDIF ??CH I=I+1 ENDDO

SET TALK ON 输入密码:Aim

破译密码: 。 2、SET TALK OFF I=1

DO WHILE I<=3 J=I

25

RETURN

PROCEDURE PROC3 K=K*K RETURN

MAIN.PRG 运行结果是I= __________ ,J= _________ ,K= ___________ 。

20.有程序段如下: STORE 0 TO X,Y DO WHILE.T. X=X+1 Y=Y+X IF X>=100 EXIT ENDIF ENDDO

?\

这个程序是计算______的,执行后的结果是______。

2.执行如下命令序列 .USE STUDENT .LIST

Record# 姓 名 学号 年龄 性别

1 李 红 098765 20 男 2 王 菩 123456 19 男 3 赵 师 345678 21 女 4 刘 知 863745 18 男 5 钱 生 374951 20 女 6 杨 博 903278 18 女 .INDEX ON 年龄 TO STU .FIND 20 .SKIP

.DISP 姓名

最后一条命令显示的学生姓名是______。 3.有如下一段程序:

INPUT \请输入当前日期:\ ?RQ+29

在执行本程序时,用户应当输入______,显示结果才是:12/27/98。 4.有如下一段程序: SET STATUS OFF SET COLOR TO/G CLEAR X=79

SET COLOR TO/R DO WHILE X>39

31

@ 0,X TO 23,X CLEAR

@ 0,79-X TO 23,79-X CLEAR X=X-0.2 ENDDO()

执行本程序的屏幕效果是___________________.

15.有程序段如下: STORE 0 TO X,Y DO WHILE.T. X=X+1 Y=Y+X IF X>=100 EXIT ENDIF ENDDO

?\

这个程序是计算______的,执行后的结果是______。

3.阅读下列程序,并填写运行结果。 SET TALK OFF CLEAR

STORE 1 TO N STORE 20 TO M DO WHILE N<=M IF MOD(N,2)=0 N=1+N^2 M=M+1 ELSE

N=N+1 ENDIF ENDDO ? N ? M

SET TALK ON RETURN

运行结果N的值是__________,M的值是____________。

1.有如下程序: store 'name' to s

s=lower(s)+str(len(s),1) t='孙猴子' x='桃子'

a=substr(t,1,4)+substr(t,at('y',x)2)

32

?'&a,吃&x'

回答:(1)内存变量s的值为_________

(2)程序的最后输出结果为_________ 2.set talk off x=0 y=0

do while x<20 x=x+1

if int (x/2)=x/2 loop else

y=y+x endif enddo

?\ set talk on return

程序运行结果是_______

四、写出以下程序运行的结果(每小题6分,共18分) 1.10 FOR I=1 TO 5 20 READ A(I)

30 PRINT TAB (I); A(I) 40 NEXT I 50 RESTORE

60 PRINT TAB(I);A(I) 70 DATA 0,1,2,1,2 80 END

2. 10 A $=\ 20 FOR I=1 TO 5 30 FOR J=1 TO 2*I 40 PRINT TAB(J);

50 PRINT MID$(A$,I,1); 60 NEXT J 70 PRINT 80 NEXT I 90 END

3. SET TALK OFF CLEAR N=1

DO WHILE N<7 M=1

DO WHILE M<2*N @N,20-N+M SAY \ M=M+1

33

ENDDO N=N+1 ENDDO

SET TALK ON RETURN

2. 阅读程序,并给出运行结果: SET TALK OFF CLEAR

STORE 1TO X STORE20 TO Y DO WHILE X<=Y

IF INT (/2)<>X/2 X=1+X~2 Y=Y+1 LOOP ELSE

X=X+1 END IF END DO ?X ?Y

SET TALK ON RETURN

运行结果X的值 ,Y的值是 。 4.已知有如下程序。

* main.prg *子程序sub.prg

set talk off para半径,周长,面积 半径=2 周长=2*3.14*半径 周长=3 面积=3.14*半径*半径 面积=4 return do sub with面积,周长,半径 ?“半径=”,半径,“周长,“面积=”,面积

执行main.prg后,主程序最后的输出语句的结果为: 半径= ,周长= ,面积= 1.写出下列程序的运行结果(16分) * AZ.PRG主程序 set talk off

store 5 to A, B, C do Azl WITH A, B, C ? A, B, C set talk on return

34

*AZ1.PTG

PARA A1, B1, C1 A1=B1+C1 B1=A1+C1 C1=A1+B1 ?A1!,B1,C1

DC AZ2 WITH A1,B1,C1 ?A1,B1,C1 RETURN

*AZ2.PRG子程序2 PARA A2,B2,C3 RETURN

⑴该程序的运行结果为:(1 六、程序分析题(3*6=18分) 1 store 0 to i, s do while .t. if s<50 i=i+3 else exit endif s=s+i enddo ? i, s return

程序运行后输出的i和s的值分别为________和________。 2 clear

dimension a(12) a=0

for i=1 to 12

@ i, 1 say \ read endfor x=a(1)

for i=2 to 12 if a(i)>x x=a(i) endif endfor ? x return

3 SET TALK OFF Clear

35

Dime A(6) K=2

Do while k<=6 A(k)=20-2*k K=k+1 Enddo K=5

Do while k>=2 A(k)=a(k)/a(4)-10) K=k-1 Enddo ?a(1),a(6) set talk on return

运行程序后屏幕上输出的结果为 。36

Dime A(6) K=2

Do while k<=6 A(k)=20-2*k K=k+1 Enddo K=5

Do while k>=2 A(k)=a(k)/a(4)-10) K=k-1 Enddo ?a(1),a(6) set talk on return

运行程序后屏幕上输出的结果为 。36

本文来源:https://www.bwwdw.com/article/7zia.html

Top