第二章
【例2-1】在下面的表达式中,运算结果为逻辑真的是——。
A)EMPTY(.NULL.) B)LIKE(“edit”,”edi?”)
c) AT(“a”,”123abc”) D)EMPTY(SPACE(10))
答案:D
解析 函数EMPTY()的返回值为逻辑值,常用于判别参数是否为空串,该函数中将空格视同空串,所以得到EMPTY(SPACE(10))的值为.T.;此外EMPTY(.NULL.)
的值为.F.,EMPTY(0)的值是.T.,EMPTY(.T.)的值是.F.,EMPTY(.F.)的值是.T.。
函数LIKE(<expC1>,<expC2>)用于比较两个字符类型的参数是否完全匹配,若能够完全匹配,返回值为.T.。其中第一参数可以含有通配符“?”(表示匹配一个任意字符)或*(表示匹配若干个任意字符),所以函数LIKE(“edit”,”edi?”)的结果值为.F.。
AT()函数的返回值是数值型,AT(“a”,”123abc”)的结果为4。
[例2-2]Visual FoxPro内存变量的数据类型不包括( )
A)数值型 B)货币型 C)备注型 D)逻辑型
答案:C
{解析}备注型是表中字段的数据类型。
例2-3 有如下赋值语句:a=“你好”,b=“大家”,结果为“大家好”的表达式是
A b+AT(a,1) B b+RIGHT(a,1) C b+LEFT(a,3,4) D b+ RIGHT(a,2)
答案 D
解析:由于一个汉字占两个字节,RIGHT(a,2)函数从右边截取两个字符,其结果为“好”,所以得到D选项的值为“大家好”
[例2-4]若内存变量a1=`12`,则命令?&a1*2.5的结果是——。
A)122.5 B)a12.5 C)30 D)出错答案:C
[解析] 这里“&”为宏替换。&a1的值是12,所以最终结果是30。
[例2-5] 下列4个表达式中,运算结果为数值类型的是—
A“9999”—“1255”
B1200+800=2000
C CTOD([11/22/01])
D LEN(SPACE(10))—3
[解析]A选项为字符串联接运算,结果为字符类型;B选项为比较运算,结果为逻辑类型;C选项结果为日期类型;D选项结果为数值类型
2-6 LEFT(”123456789”,LEN(”数据库”))的结果是答案:”123456”
解析:因为表达式LEN(”数据库”)的值是6,所以LEFT(”123456789”,6)的结果是字符串”123456”。
2-7 表达式LEN(“VEP程序设计”)的值为_,SUBSTR(“VEP 程序设计”,4,4)的值为_。
答案:11  “程序”
解析:LEN 测试字符字串的长度,其结果为11。SUBSTR(VFP“程序设计”,4,4)从第四个字符开始取长度为4的子串,其结果为“程序”。
2-8 表达式{^07/25/2004}-10的值是__.
答案:{^07/15/2004}
解析:{^07/25/2004}为日期型数据,它减去10表示10天前的日期.
2-9 年龄在20岁和50岁之间,职称为技术员的逻辑表达式为________
(注:年龄用变量nl表示,职称用变量zc表示)。
答案:(nl>=20.and.nl<=50).and.zc=”技术员”
解析:本题的年龄条件和职称条件为同时成立,所以.and.用运算符。