资源描述
VFP程序强化训练
一、分析程序运行结果
1、设X和Y均为整型变量,下列程序的运行结果为:
SET TALK OFF
CLEAR
X=1
FOR I=1 TO 50
IF X>=10
EXIT
ENDIF
IF X%2=0
X=X+5
LOOP
ENDIF
X=X-3
ENDFOR
?X
SET TALK ON
RETURN
2、设I为整型变量,则下面程序的执行结果为:
CLEAR
FOR I=10 TO 4 STEP -1
IF I%3#0
I=I-1
ENDIF
I=I-2
ENDFOR
?I
3、下面程序的执行结果为:
CLEAR
FOR I=0 TO 1
I=I+1
FOR J=0 TO 3
IF J%2#0
LOOP
ELSE
I=I+1
ENDIF
ENDFOR
I=I+1
ENDFOR
?I
4、下列程序是计算 的,执行后的结果是
X=1
S=0
DO WHILE X<=100
S=S+X
X=X+2
ENDDO
?”S=”+STR(S,4)
5、下面程序的执行结果为:
A=10
B=20
C=40
IF A>B
IF C>A
C=A+B
ELSE
C=A-B
ENDIF
ENDIF
?C
6、运行下列程序后,输入的X,Y,.Z的值分别为3,4,10,则程序的运行结果为
INPUT “请输入X的值:“ TO X
INPUT “请输入Y的值:” TO Y
INPUT “请输入Z的值:” TO Z
IF MAX(X,Y)<Z
?MAX(X,Y)
ELSE
IF MIN(X,Y)<Z
?Z
ELSE
?MIN(X,Y)
ENDIF
ENDIF
7、设成绩表当前记录”计算机”字段的值为85,执行下面程序之后,输出结果为
DO CASE
CASE 计算机<60
?”计算机等级是”+”不及格”
CASE 计算机>=60
?”计算机等级是”+”及格”
CASE 计算机>=75
?”计算机等级是”+”良好”
CASE 计算机>=85
?”计算机等级是”+”优秀”
ENDCASE
8、执行如下程序,如果输入X的值为5,则最后S的显示值为
SET TALK OFF
S=0
I=1
INPUT “X=” TO X
DO WHILE S<=X
S=S+I
I=I+1
ENDDO
?S
SET TALK ON
RETURN
9、下列程序的运行结果为
LOCAL X1
?X1
DO P1
RETURN
PROCEDURE P1
X1=1
??X1
RETURN
ENDPROC
10、设成绩表中有“总分”字段,运行下列程序后,XI显示的值为成绩表中的
USE 成绩表
XI=0
SCAN
XI=MAX(总分,XI)
ENDSCAN
?XI
RETURN
11、执行下列程序,运行结果为
CLEAR
I=0
DO WHILE I<10
IF INT(I/2)=I/2
?”W”
ENDIF
??”ABC”
I=I+1
ENDDO
12、执行下列程序,运行结果为
CLEAR
STORE .T. TO X
STORE 0 TO Y
DO WHILE X
Y=Y+1
IF INT(Y/3)=Y/3
??Y
ELSE
LOOP
ENDIF
IF Y>20
STORE .F. TO X
ENDIF
ENDDO
RETURN
13、设当前目录下有数据表文件学生表,表中共有10条记录,执行下列程序,执行的结果为
USE 学生表
GO BOTTOM
FOR N=10 TO 1 STEP -1
IF BOF()
EXIT
ENDIF
GO N
DISPLAY
ENDFOR
USE
RETURN
A)仅显示表中第1条记录
B)仅显示表中第10条记录
C)按记录号升序逐条显示表中10条记录 D)按记录号降序逐条显示表中10条记录
14、执行下列程序,运行结果为
CLEAR
LOCAL A,B
A=100
DO CASE
CASE A<20
B=A/B
CASE A<50
B=A/B
CASE A<100
B=A/B
OTHERWISE
B=B
ENDCASE
?B
15、执行下列程序,运行结果为
CLEAR
STORE 0 TO X,Y
DO WHILE .T.
X=X+1
Y=Y+X
IF X>=10
EXIT
ENDIF
ENDDO
?Y
16、执行下列程序,运行结果为
CLEAR
FOR I=10 TO 5 STEP -2
IF I%3=0
I=I-1
ENDIF
I=I-2
??I
ENDFOR
17、执行下列程序,运行结果为
SET TALK OFF
CLEAR
DIMENSION A(6)
FOR K=1 TO 6
A(K)=20-2*K
ENDFOR
K=5
DO WHILE K>=1
A(K)=A(K)-A(K+1)
K=K-1
ENDDO
?A(1),A(3),A(5)
SET TALK ON
RETURN
18、执行下列程序,运行结果为
CLEAR
X=2
DO WHILE X<5 AND X>1
Y=1
DO WHILE Y<X
??X*Y
Y=Y+2
ENDDO
X=X+2
ENDDO
19、执行下列程序,运行结果为
SET TALK OFF
CLEAR
A=1
B=2
DO P1
?A,B
PROCEDURE P1
PRIVATE B
A=5
B=5
?A,B
RETURN
20、如下程序显示的结果是 。
S=1
I=0
DO WHILE I<8
S=S+I
I=I+2
ENDDO
?S
21、执行下列程序,运行结果为
CLEAR
STORE 0 TO X, S1,S2,S3
DO WHILE X<10
X=X+1
DO CASE
CASE INT(X/2)=X/2
S1=S1+X/2
CASE MOD(X,3)=0
S2=S2+X/3
CASE INT(X/2)<>X/2
S3=S3+1
ENDCASE
ENDDO
?S1,S2,S3
22、执行下列程序,屏幕第9行上显示的内容是 。
CLEAR
SET TALK OFF
@ 4,10 SAY "计算二元二次方程式的值"
X=1
Y=2
@ 9, 5 SAY "X**2+2*X*Y+Y**2="
@ 9,21 SAY X**2+2*X*Y+Y**2
SET TALK ON
RETURN
二、程序填空题
1、STD.DBF中的记录有:姓名(C,8)、课程名(C,16)、成绩(N,3,0)等字段,下面一段程序用于显示所有成绩及格的学生的信息,请在程序空缺处作适当的选择。
SET TALK OFF
CLEAR
USE STD
GO TOP
DO WHILE .NOT.EOF()
IF
?”姓名:”+姓名,”课程:”+课程名,”成绩”+STR(成绩,3,0)
ENDIF
ENDDO
USE
SET TALK ON
RETURN
2、已经建立了工资数据库文件GZB.DBF,要修改其中基本工资字段值,请填空.
SET TALK OFF
CLEAR
USE GZB
ACCEPT “清除基本工资数据吗?(Y/N)” TO X
IF
REPLACE ALL 基本工资 WITH 0
ENDIF
GO TOP
BROWSE FIELDS 姓名,基本工资
USE
RETURN
3、下列程序用来求1+2+3+……+100的值。
S=0
FOR
S=S+N
ENDFOR
?S
RETURN
4、逐条显示学生注册表.dbf中所有女生的记录。
USE
DO WHILE .NOT. EOF()
IF 性别=”男”
___ __ __
____ _____
ENDIF
WAIT ”按任意键显示女生的记录:”
DISPLAY
____ _____
ENDDO
USE
5、完成如下程序,其功能删除STD1.DBF~STD5.DBF 这五个表文件的末记录
N=1
DO WHILE N<=5
DB= ____
USE &DB
____ ____
DELETE
PACK
______ _____
ENDDO
USE
6、存款利率:
年限NX<1年,利率LL=2%
年限NX>=1年或NX<3年,利率LL=3%
年限NX>=3年或NX<5年,利率LL=4%
年限NX>=5年,利率LL=5%
根据输入存款年限,求出相应的利率
INPUT “请输入存款年限:” TO __ _____
DO CASE
CASE NX<1
LL=0.02
LL=0.03
CASE NX<5
LL=0.04
OTHERWISE
LL=0.05
ENDCASE
?”存款利率是:”,LL
7、下面是计算100以内偶数之和的程序,N是偶数个数,S是偶数之和。
CLEA ALL
STORE 0 TO K,N,S
DO WHILE
K=K+1
IF MOD(K,2)=0
N=
___ ____
ENDIF
ENDDO
?N,S
8、对 STUD表中数学及格的加5分,不及格的加10分。
SET TALK OFF
USE STUD
DO WHILE
IF 数学<60
ELSE
REPL 数学WITH 数学+5
ENDIF
_____ ________
ENDDO
9、职工数据库表中有”工资表”和”职工表”,其中工资表包括字段(职工号,基本工资,奖金,扣款,实发工资),职工表中包括字段(职工号,职工姓名,年龄,)其中工资表中实发工资的字段值为空,求出实际的实发工资的字段值,并在屏幕上显出实发工资<=1000的职工姓名, 实发工资.
CLEA
SELE A
USE 职工表
INDEX ON TO ZGH
SELE B
USE 工资表
REPL ALL实发工资 WITH
SET RELA TO 职工号
LIST A.职工号,姓名,实发工资 FOR ___
CLOSE ALL
10、循环输入学生的姓名,在学生表中查找,若找到则显示学生的情况,若没有则显示”没有某某学生”,直到用户停止输入
USE 学生
STORE “Y” TO M
DO WHILE .T.
ACCEPT “请输入要查询的学生姓名:” TO XM
IF !EOF()
?”学号”+学号,”姓名”+姓名
ELSE
?”没有 +XM+”学生”
ENDI
WATI”是否继续查找(Y/N) ?” TO _ ___
IF UPPER(M)=”Y”
____ ______
ELSE
EXIT
ENDDO
USE
11、已知学生档案数据库表(XSDA.DBF)中,有学号、姓名、性别字段,要求将每个男生信息显示在屏幕上,请将程序补充完整。
CLEAR
CLEAR ALL
@1,16 SAY “学号 姓名 性别”
@2,16 SAY “*******************”
N=1
SCAN FOR
@N+2,18 SAY 学号
@N+2,30 SAY 姓名
@N+2,42 SAY 性别
USE
RETURN
12、下列程序根据输入的学生成绩,来判断学生成绩等级,其中成绩大于等于90分的为优秀,75~89的为良好,60~74的为及格,小于60的为不及格,请正确补充程序行。
SET TALK OFF
CLEAR
“请输入成绩:” TO CJ
DO CASE
CASE CJ<60
DJ=”不及格”
CASE CJ<75
DJ=”及格”
CASE CJ<90
DJ=”良好”
DJ=”优秀”
ENDCASE
?DJ
SET TALK ON
RETURN
13、填上适当的语句,求100以内能被3整除但不能被7整除的数字之和,请填空。
CLEAR
CLEAR ALL
STORE TO S,N
DO WHILE N<=100
IF N%3=0 N%7<>0
ENDIF
N=N+1
?”S=”+STR(S)
RETURN
14、逐条显示数据表STUD.DBF中的所有女生记录:
CLEAR
USE STUD
DO WHIL
IF 性别='男'
LOOP
ENDIF
DISP
WAIT '按任意键显示下一记录'
ENDD
USE
15、打印如下乘法表,请填空:
1 2 3 4 5
1) 1
2) 2 4
3) 3 6 9
4) 4 8 12 16
5) 5 10 15 20 25
程序如下:
CLEAR
?' 1 2 3 4 5'
J=1
DO WHILE
?STR(J,3)+')'
I=1
DO WHILE
I=I+1
ENDDO
J=J+1
ENDDO
RETURN
16、以下是四川师范大学等级考试成绩查询程序,其成绩表为KS.DBF, 其字段有考号、姓名、系别、上机成绩、笔试成绩、合格否。请填空:
CLEAR
ACCEP '请输入考生考号:' TO KH
LOCA FOR
IF NOT
DISP
ELSE
?'考号有误!!!'
USE
17、有一“备份程序”如下,其功能是将硬盘上9个班的成绩数据表文件复制到A盘上。数据表文件名分别为CHJ1.DBFCHJ2.DBF,...等,备份文件名前面冠以年号,如97CHJ1.DBF, 97CHJ2.DBF,...。在C盘上运行该程序
CLEAR
ACCEPT '输入年号' TO NH &&两位年号
I=1
DO WHILE I<=9
DBN='CHJ'+STR(I,1)
BDBN=
USE &DBN
COPY TO
I=I+1
USE
18、下面程序的功能是通过字符串变量操作先横向显示“学习刻苦”,后竖向显示“刻苦学习”,请填空? 显示结果为:
学习刻苦
刻
苦
学
习
CLEAR
STORE "刻苦学习" TO XY
?
?? SUBS(XY,1,4)
N=1
DO WHILE N<8
?
ENDD
RETURN
19、有计算机考试查分程序如下(字段名有:准考证号(C), 姓名(C), 笔试成绩(N), 上机成绩(N))。例如:若输入:9901后,则显示:
张三 9901 笔试成绩: 98 上机成绩: 76
CLEAR
USE STUD
TAG ABC
ACCE"请输入准考证号:" TO NUM
SEEK
IF NOT
?姓名,准考证号,"笔试成绩:"
+ + "上机成绩:"+
ELSE
?"没有此考生!!!"
ENDIF
USE
20、下面是统计表STUD.DBF中数学及格和不及格人数的程序:
USE STUD
N1=0
N2=
DO WHILE NOT
DO CASE
CASE 数学<60
N1=N1+1
CASE 数学>=60
N2=N2+1
ENDCASE
ENDDO
?”不及格人数:”,N1, ”及格人数:”,N2
21、以职工表ZGJK为主表,按职工号对工资表GZ.DB建立关联,查询“张军”的工资
SELE 2
USE GZ
INDE ON TAG ZGHA
SELE 1
USE ZGJK
SET RELA TO INTO B
LOCA FOR 姓名=‘张军’
? 姓名,职称, GZ.基本工资
SET TO &&取消关联
CLEA ALL &&关闭表
22、按程序中的要求填空。
SET TALK OFF
ACCEPT “输入数据库名:” TO KM
USE &KM
*连续显示1~5条记录
_ __
WAIT
GO BOTTOM
*显示最后4条记录
__ _
LIST REST
USE
RETURN
23、下列程序的功能是计算S=1!+2!+…+10!的值,完成程序填空。
S=0
FOR N=1 TO 10
P=1
FOR I=1 TO N
ENDFOR
ENDFOR
?"SUM=",S
24、学生表中有字段:姓名、计算机和班级号,下列程序是查询并显示所有班级号为"1002"的学生记录,完成程序填空。
USE 学生表
DO WHILE
IF 班级号="1002"
DISPLAY
ENDIF
ENDDO
USE
25、数据表文件DA.DBF存放的是某单位职工的档案。在下面的程序中,用户通过按A键或B键,分别显示出全体女职工或全体男职工的记录,按ESC键可退出程序。已知A键的ASCII为65,B键的ASCII为66,ESC键的ASCII为27。
USE DA
DO WHILE .T.
CLEAR
WAIT “A—全体女职工 B—全体男职工 X—退出” TO K
DO CASE
CASE
LIST FOR 性别=”女”
CASE K=’B’
CASE
EXIT
ENDCASE
USE
8
展开阅读全文