N=N-10
ENDDO
?
N
RETURN
运行此程序显示的M值是()
A.0B.10C.-10D.1
16、内存变量按其在程序中的使用范围分类不可能是()
A.区域变量B.全局变量C.局部变量D.循环变量
17、命令文件中,如同一语句分两行输入,则应()。
A.该语句行第一行行尾加“逗号”B.在该语句行第二行行尾加“分号”
C.在该语句行第一行行尾加“分号”C.在该语句行第二行行尾加“逗号”
18.下列语句中,可给内存变量赋多种类型值的语句是()。
A.repalceB.waitC.inputD.accdpt
19.有如下的VisualFoxPro程序。
*主程序Z.PRG
X1=2
X2=2
X3=2
X1=X1+1
DOZ1
?
X1+X2+X3
RETURN
*子程序Z1.PRG
X2=X2+1
DOZ2
X1=X1+1
RETURN
*子程序Z2.PRG
X3=X3+1
执行程序Z后,屏幕显示的结果为()
A.9B。
10C。
3D。
4
21.用ACCEPT命令给内存变量输入数据时,内存变量得到的数据类型是______________。
(A)取决于所输入的数据类型(B)数值型(C)字符型(D)日期型
22.在执行ACCEPT命令时,如果不输入会何容而直接回车,则存入内存变量的内容为_____。
(A)0(B).F.(C).T.(D)空串
23.用INPUT命令输入的数据类可以是___________。
(A)数值型、字符型、备注型(B)数值型、字符型、日期型、逻辑型
(C)数值型、备注型、日期型(D)数值型、字符型、日期型、屏幕型
24.用INPUT命令输入日期型数据“12/16/98”时,正确的表达式是___________。
(A)12/16/98(B)"12/16/98"(D)CTOD("12/16/98")(D)DTOC("12/16/98")
25.用WAIT命令给内存变量输入数据时,内存变量所获得的数据是________________。
(A)任意长度的字符串(B)一个字符串和一个回车符
(C)数值型数据(D)一个字符
26.在交互方式下,可对L型变量输入数据的命令__________。
(A)ACCEPT(B)WAIT(C)READ(D)INPUT
30.执行一列程序后,屏幕晃示的结果为()
X=20
Y=10
N=0
DOWHILEY〈X
X=X-1
Y=Y+2
N=N+1
ENDDO
?
N
RETURN
A.10B。
20C。
4D。
5
38.能放在可执行命令末尾的注释命令是_______________。
(A)REM(B)&&(C)*(D)ABCD
39.命令“CLEAR"的功能是_______________。
(A)清除当前文件内容(B)关闭数据库
(C)清除屏幕(D)清除内存
40.可以关闭数据库文件的命令是_________________。
(A)CLEARFIELDS(B)CLOSEDATABASE
(C)CLOSEINDEX(D)CLEARALL
41.只能关闭过程文件的命令是_____________。
(A)CLOSEPROCEDURE(C)CLOSEDATABASES
(C)SETINDEXTO(D)USE
42.命令“CLEARALL"的功能是_______________。
(A)清除当前文件内容(B)关闭数据库
(C)清除屏幕(D)清除内存
43.不能将LOOP作为有效命令使用程序结构是________________。
(A)IF……ENDIF(B)SCAN……ENDSCAN
(C)DOCASE……ENDCASE(D)DOWHILE……ENDDO
44.下面命令执行后输出的结果是_____________。
CJ=82
?
IIF(CJ>=60.IIF(CJ>=85,"优秀","良好"),"差”
(A)优秀(B)差
(C)良好(D)82
45.命令“CLOSEALL"的功能是_______________。
(A)关闭所有文件不清除内存变量(B)只关闭数据库
(C)关闭所有文件且清除内存变量(D)清除内存
46.在下面的DO循环中,一共要循环_____________次。
M=5
N=1
DOWHILEN<=M
N=N+1
ENDDO
(A)1(B)6
(C)4(D)5
47.在下面的DO循环中,一共要循环_____________次。
X=10
Y=5
DOWHIEY>=X
Y=Y-1
ENDDO
(A)15(B)10
(C)6(D)5
48.调用子程序传递实参时,通过_______语句。
A.parametersB.WITHC.TOD.INPUT
49.自定义子函数中一定具有_______语句。
A.parametersB.returnC.procedureD.close
50.过程文件中一定具有_______语句。
A.parametersB.privC.procedureD.close
二、是非判断题
1.在编写VFP程序时,每行只能写一条命令。
()
2.VFP程序中一条命令可以占用多行,但必须使用“,”做为续行符。
()
3.使用MODIFYCOMM命令建立文件的缺省扩展名为.PRG。
()
4.ACCEPT命令可用于输入任何类型的数据。
()
5.用ACCEPT命令输入字符串时,必须使用定界符。
()
6.变量必须使用“=”来赋值。
()
7.程序未尾的RETURN命令不能省略。
()
8.在DOCASE命令所构成的多分支结构中,如果有多个CASE子句的条件为.T.(真),将依次执行这些CASE子句后面的命令序列。
()
9.命令RETURN和EXIT命令相同,都结束程序。
()
10.命令CLEARALL的作用是清除整个屏幕。
()
三、填空题
1.在数据表文件XS.DBF中查询姓名为刘明的记录,若其总分大于等于250分,则显示他的学号、姓名、专业和总分。
(学完第四章后做)
SETTALKOFF
USEXS
____________①__________
SEEK"刘明"
IFFOUND()
IF___________②_________
?
"学号:
",学号
?
"姓名:
",姓名
?
"专业:
",专业
?
"总分:
",总分
ELSE
?
"刘明的总分小于250分!
"
ENDIF
ELSE
?
"表中没有刘明的记录!
"
ENDIF
USE
RETURN
2.逐条显示数据表STU.DBF中的所有记录。
SETTALKOFF
USESTUD
DOWHILE___________①__________
DISPLAY
_____________②_____________
WAIT"按任意键显示下一条记录!
"
ENDDO
USE
RETURN
3.在表SSS.DBF中查询某专业的学生,SSS.DBF中有“专业”字段名。
SETTALKOFF
USESSS
ACCEPT"请输入专业名称:
"GETZY
LOCATEFOR专业=ZY
IF____________②____________
?
"没有符合条件的记录,按任意键结束!
"
WAIT
CLEAR
RETURN
ENDIF
*逐条显示该专业所有学生的记录
DOWHILE.NOT.EOF()
DISPLAY
________________③_______________
ENDDO
WAIT
RETURN
4.在表ABC.DBF中查询“姓名”为李燕的记录。
SETTALKOFF
USEABC
_____________________
SEEK"李燕"
IFFOUND()
DISPLAY
ELSE
?
"库中没有李小燕的记录!
"
ENDIF
USE
RETURN
5.本程序是根据输入的表,在表中查找指定“姓名”的记录,如果找到则删除此记录
settalkoff
accept"输入数据库名:
"tokname
use_____________
accept"姓名:
"toname
locate__________
if.not.______
__________
else
?
"查无此人"
endif
use
settalkon
return
6.设学生的数学、物理、英语这三门课程的期末考试成绩存在放在表CJ.DBF中。
如果某一学生三门课程的成绩均达到85分以上(包括85分在内),应在该学生记录的“等级”这一字段中填入“优秀”。
SETTALKOFF
USECJ
DOWHIL.NOT.EOF()
IF数学>=85____________①___________
______________②_____________
SKIP
ENDIF
ENDDO
USE
RETURN
7.在表STUD.DBF中查找总分最高者并输出其姓名、专业和总分。
USETALKOFF
USESTUD
XM=姓名
ZY=专业
ZF=总分
DOWHILE.NOT.EOF()
_______________①_____________
IFZF<总分
____________②____________
③_
____________④____________
____________⑤____________
ENDIF
ENDDO
CLEAR
?
XM,ZY,ZF
USE
RETURN
8.设成绩表CJK.DBF中“数学”(数值型字段)这门课程的学分为4,其学分值计算的方法如下:
数学≥90,学分值为4;
80≤数学〈90,学分值为3;
70≤数学〈80,学分值为1;
60≤数学〈70,学分值为1;
数学〈60,学分值为0。
计算任一学数学这门课程的学分值的程序如下:
SETTALKOFF
USECJK
ACCEPT"输入学号:
"TOXH
XF=0&&存放学分值
LOCATEFOR学号=XH
DOCASE
CASE__________①__________
XF=4
CASE___________②___________
XF=3
CASE___________③___________
XF=2
CASE___________④___________
XF=1
OTHERWISE
XF=0
ENDCASE
?
"学号:
",XF
USE
RETURN
9.按程中的要求填容。
SETTALKOFF
ACCEPT"输入数据库名:
"TOKM
USE&KM
*连续显示1~5条记录
____________①__________
WAIT
GOBOTTOM
*显示最后4条记录
____________②__________
LISTREST
USE
RETURN
四、读程序选结果
1.有以下两个表文件,其中表文件SEE.DBF中的记录如下:
Record#学号姓名性别专业
10004方平军男机械工程
22009王子李男计算机
31007肖丹苹女经济管理
41002李小锋男经济管理
53020李旭君女电子工程
表JCY.DBF中的记录如下:
Recod#学号数学物理
100048278
220097283
310079295
410029093
530208586
执行以下程序:
SETTALKOFF
SELECT2
USEJOY
SELECT1
USESEE
LOCATEFOR"李"$姓名
XH=学号
XM=姓名
SELECT2
LOCATEFOR学号=XH
SX=数学
?
XH,XM,SX
SELECT1
CONTINUE
XH=学号
SELECT2
CONTINUE
?
学号,A->姓名,物理
CLOSEALL
RETURN
(1)第一条命令?
显示的值分别为________。
(A)1002、李小锋、90(B)0004、方平军、82
(C)2009、王子李、72(D)1002、李小锋、78
(2)第二条命令?
显示的值分别为________。
(A)2020、李旭君、85(B)3020、李旭君、86
(C)2009、王子李、83(D)1002、李小锋、93
2.有以下两个表文件,其中表文件KU1.DBF中的记录如下:
Record#学号姓名性别专业
196004罗华东男机械工程
296005姜山男计算机科学
396006张玲女经济管理
496007王先林男应用化学
表KU2.DBF中的记录如下:
Record#学号上机笔试
1960048477
2960055683
3960069193
4960076351
执行以下程序:
SETTALKOFF
SETDELETEDON
SELECT2
USEKU2
INDEXON学号TOXH2
SELECT1
USEKU1
INDEXON学号TOXH1
SETRELATINOTO学号INTOB
COPYTOKU3FIELDS学号,姓名,性别,B-〉上机,B-〉笔试
USEKU3
DELETEALLFOR上机〉60.OR.笔试〉60
LIST
GO2
XH=学号
XM=姓名
WAIT
USE
RETURN
(1)程序中的LIST命令共显示出__________条记录。
(A)4(B)3
(C)2(D)1
(2)变量XH、XM的值分别为_________。
(A)96006、张玲(B)96005、姜山
(C)96004、罗华东(D)96007、王先林
(3)程序执行到RETURN命令时,被关闭的库文件是_________。
(A)KU1.DBF、KU2.DBF、KU3.DBF
(B)KU3.DBF
(C)KU2.DBF和KU3.DBF
(D)KU1.DBF和KU3.DBF
五、写出程序的运行结果
1.SETTALKOFF
STORE0TOX,Y
DOWHILE.T.
X=X+1
Y=Y+X
IFX〉=5
EXIT
ENDIF
ENDDO
?
X,Y
当程序执行到?
命令时,X与Y的值分别为_______________。
2.设ZGK.DBF为职工数据表文件,“姓名”为该表中一字符字段名。
USEZGK
DOWHILE.NOT.EOF()
IF.NOT."张"$姓名
SKIP
LOOP
ENDIF
DISPLAY
SKIP
ENDDO
USE
RETURN
本程序的作用______________。
3.SETTALKOFF
A=1
DOWHILEA〈5
B=1
DOWHILEB〈5
IFA*B〈10
B=B+1
ELSE
EXIT
ENDIF
ENDDO
A=A+1
ENDDO
?
A,B
当程序执行到?
命令时,A与B的值分别是______________。
3.settalkoff
store1tox,y
dowhile.t.
x=x+1
y=y+x
ifx>=5
exit
endif
enddo
?
x,y
则程序运行后x为______,y为___________