据,且都必须加引号。 说明:参数可以为常量、变量或表达式。
TYPE(\.F. OR .T.\)=L
当其数据类型不能确定时,返回字符 U。TYPE(\A= .T.\)=U
BETWEEN(3.14,4,5)返回.F.。注意:范围只能是从小到大。
INLIST(2,1,2,3,4,5,6) 第一个参数如果在其后出现,则返回.t.。 EMPTY()判断字段是否为空。空格、逻辑假值、数字 0 返回值为真。 ISNULL()判断是否为空值。只有为空值时,才返回真值。 ISBLANK()判断是否为空格。只有参数为空格串时,才返回真值。 IIF(条件,为真的结果,为假的结果) 此函数允许嵌套使用。 MESSAGEBOX(提示文本,按钮类型+图标类型+默认光标位置,标题栏文本)。
注意
此函数的返回值,可以推断出用户点击哪个按钮。 INKEY()返回一个键码值,判断用户按了键盘中的哪个键,回车键为 13。 GETFILE()显示打开对话框,返回用户选定的文件名及路径。
(7)表、数据库函数。 BOF()、EOF()、RECNO() RECCOUNT()记录数统计,包括逻辑删除的记录 FCOUNT()字段数统计 USED()判断表是否被打开、DBUSED()判断数据库是否被打开 ORDER()、TAG()、SELECT()工作区号、ALIAS()别名、DELETED() 5.掌握 NULL 值的处理。 NULL 等价于没有确定的值,任何变量被赋空值,都不会改变原来的数据类型。
Dimension a(3)
?type(\a(1)=.null. ?type(\
&&数组的所有元素将被赋初值.F. &&此处返回 L。因为定义数组后,每个元素被赋逻辑假值为初值 &&此处返回 L
空值在排序时,将优先于任何值。 判断空值的函数:
ISNULL()当值为真时,则该变量为空值。
6.宏替换和名称表达式。 名称表达式:由圆括号括起来的一个字符表达式,该字符表达式可以是单个变量或数组
元素,还可以是一个由字符运算符连接的字符表达式。
Nvar=100
Var_name=\
Store 1234 to (var_name) ?nvar
db_name=\dbf_name=\
use (db_name+\
&&红色部分的表达式可以直接用 nvar 代替 &&此处 nvar 的值为 1234
&&等价于 stud!xs
宏替换:与名称表达式具有相似的作用,在字符变量前面添加符号(&)。宏替换的使
用范围比名称表达式更广,但它的运算速度比名称表达式慢。
区别:(1)宏替换可以用来构成表达式,但名称表达式不能作为其他表达式的组成部分。
第二部分 《Visual FoxPro 程序设计(第二版)》复习提要与学习指导、习题及参考解答 91
92
Visual FoxPro 程序设计实训与考试指导(第二版)
field_name=\
locate for (field_name)= \王平\错误,名称表达式不能作为表达式的一部分,但可以作为命 令的一部分
locate for &field_name=\王平\正确
(2)某些命令和函数不能使用名称表达式
var_name=\(var_name)=\&var_name=\
cvar=\var_name=\
?substr((var_name),2,2) ?substr(&var_name,2,2)
&&不能正确赋值,赋值语句中不能使用名称表达式 && 正确
&&显示“va”此处名称表达式不起作用 &&显示“is”
将专业代号第一个字符为 1 的改成 9:
replace zydh with \正确
replace left(zydh,1) with \&&错误
(3)名称表达式不能充当整条命令,而宏替换可以 充当整条命令。
cvar=\(cvar) &&错误,它只能作为命令的一部分 &cvar &&正确
2.2.2 习题 2 及参考解答
一、选择题
1.下列关于 VFP 中命令的书写规则,说法不正确的是( )。 A.命令动词必须写在命令的最前面,而各短语的前后顺序可以任意排列 B.命令动词与短语之间、短语与短语之间、短语的各部分之间必须用空格分隔开 C.命令动词、短语保留字及函数名均可简写为前 4 个字符,而且英文字母大小写等效 D.当一行写不下时,可在适当位置输入续行符“;”并按回车键换行,继续输入该
命令,但一条命令的总长度最多可达 8192 个字符
2.扩展名为 DBC 的文件是( )。 A.表单文件 B.数据库表文件 C.数据库文件 D.项目文件 3.下列函数中函数值为字符型的是( )。 A.DATE() B.TIME() C.YEAR() D.DATETIME() 4.下面的数据类型默认值为.F.的是( )。 A.数值型 B.字符型 C.逻辑型 D.日期型 5.在 Visual FoxPro 中,有下面几个内存变量赋值语句:
X={^2002-09-10 10:10:10 PM}
Y=.T.
M=$125.50
N=120.46 Z=\
执行上述赋值语句之后,内存变量 X、Y、M、N 和 Z 的数据类型分别是( )。 A.D、L、Y、N、C B.D、L、M、N、C C.T、L、M、N、C D.T、L、Y、N、C 6.连续执行以下命令之后,最后一条命令的输出结果是( )。
X=\\
?IIF(\
A.A B.BCD C.A BCD D.ABCD
7.下面关于 Visual FoxPro 数组的叙述中,错误的是( )。 A.用 DIMENSION 和 DECLARE 都可以定义数组
B.Visual FoxPro 只支持一维数组和二维数组 C.一个数组中各个数组元素必须是同一种数据类型 D.新定义数组的各个数组元素初值为.F. 8.执行下列命令序列:
CLEAR ALL
DIMENSION sz(2,3)
则当前内存中定义的内存变量数、数组元素数及其初值分别为( )。 A.6,6,0 B.1,6,.F. C.1,6,0 D.6,6,.F. 9.在 Visual FoxPro 中,字段长度只受外存可用空间限制的字段类型为( )。 A.Character B.Memo C.Number D.Float 10.执行 A=\安徽考试\和 B=12 两条命令后,能够正确求值的表达式是( )。
A.RIGHT(A,4)+SUBSTR(B,2) B.VAL(LEFT(A,1))+B C.A+B D.SUBSTR(A,1,1)+B 11.以下四组函数运算中,结果相同的是( )。
A.LEET(\与 SUBSTR(\B.YEAR(DATE())与 SUBSTR(DTOC(DATE),7,2) C.VARTYPE(\与 VARTYPE(36-5*4) D.假定 A=\\与 A+B 12.下面的 Visual FoxPro 表达式中,不正确的是( )。 A.{^2009-05-01 10:10:10 AM}-10 B.{^2009-05-01}-DATE()
C.{^2009-05-01}+DATE() D.[^2009-05-01]+[1000] 13.下列函数中,函数值为数值的是( )。
A.AT(\人民\中华人民共和国\B.CTOD(\
C.BOF() D.SUBSTR(DTOC(DATE()),7) 14.求字母“W”的 ASCII 码,正确的函数为( )。
A.SUBSTR(\B.LEN(\C.ASC(\D.CHR(\15.将所有以“W”开头的内存变量保存到 MAB.MEM 文件中的操作为( )。
A.SAVE TO MAB B.SAVE TO MAB ALL LIKE W*
第二部分 《Visual FoxPro 程序设计(第二版)》复习提要与学习指导、习题及参考解答 93
94
Visual FoxPro 程序设计实训与考试指导(第二版)
C.SAVE TO MAB ALL LIKE W? 二、填空题
D.SAVE TO MAB ALL EXCEPT W*
?b+2x +|X| 1.数学表达式 的 Visual FoxPro 表达式是 。
2a 2.要把以 B 为第二个字符的全部内存变量存入内存变量文件 ABC.MEM 中,应使用命 令 。
3.当且仅当参加逻辑运算的两个具有逻辑值的表达式都取得真值时,结果为真的逻辑 运算称为 运算;当且仅当参加逻辑运算的两个具有逻辑值的表达式全为假时,结果 为假的逻辑运算称为 运算;使得参加逻辑运算的逻辑表达式取得与原值相反的值的 逻辑运算称为 运算。
4.Visual FoxPro 中表达式按运算结果类型可分为: 表达式、 表达 式、 表达式、 表达式和 表达式。
5.指出下列表达式的运算结果
ABS((-1^3)+EXP(0)+INT(10.2) + MOD(13,5))的结果是 。 \的结果是 。 UPPER(\的结果是 。
LEFT(\数据库\的计算结果是 。 6.指出下列日期函数的值,设当前时间是 2009 年 5 月 14 日 16 点 51 分 40 秒。 DTOC(DATE())+\的结果是 。 STR(YEAR(DATE()),4)+\年\月\日\的结果是 。
7.计算今天和 2008 年 8 月 8 日相差天数的表达式 。
8.判断字符串“ICQ”是否包含在字符串“ILVUANDCQ”中的表达式 9.随机产生整数值 1~26 的函数表达式 。 10.A=1354.567,对 A 求不保留小数的四舍五入运算的表达式 。 三、操作题
。
建立以下内存变量:
AA
BB CC(1) CC(2)
C N L D
\水平考试\ 20 .T.
2009 年 12 月 1 日
并将所有的内存变量保存到当前文件夹下文件 MAB.MEM 中。
习题 2 参考解答
一、选择题
1~5:CCBCD 6~10:CCBBB 11~15:ACACB