典型例题 [例1] 函数INT(RAND()*10)是在( )范围内的整数? ( )
A.(0,1) B.(1,10)
C.(0,10) D.(1,9)
分析: 函数RAND()是0到1之间的数,因此INT(RAND()*10)的值是0到10之间的整数。
答案: C
[例2] SCATTER命令用于将当前记录的各字段值送到一个数组中,与该命令相对应的、
利用数组中的数据更新当前记录字段值的命令是 ( )
A.GATHER B.UPDATE
C.REPLACE D.CHANGE
分析: 为了表中数据与组数据之间方便的进行数据交换以利于程序的使用,Visual
FoxPro提供了相互之间数据传递的功能,可以方便的完成表记录与内存变量之间的数据
交换工;其中SCATTER用以将表的当前记录复制到组数;GATHER用以将组数据复制到到表
的当前记录。
答案:A
[例3] 在下述Visual FoxPro表达式中,结果总是逻辑值的为 ( )
A.字符运算表达式 B.算术运算表达式
C.关系运算表达式 D.日期运算表达式
分析: 算术表达式由算术运算符将数值型数据连接想来形成,其运算结果仍然是数值
型数据;字符表达式是由字符串运算符型数据连接起来形成,其运算结果仍然是字符型数
据;日期表达式根据其组合不同可以返回日期型或数值型两类;关系表达式能通常也称为
简单逻辑表达式,它有关系运算符将两个运算对象连接起来形成,运算结果为逻辑型数据。
答案:C
例4 表达式LEN(‘CHINESE’)+VAL(‘86’)+({04/05/98}-{04/01/98})返回的数据类型是
A.字符型 B.日期型 C.数值型 D.逻辑型
分析:函数LEN(’CHINESE’)返回字符串中的字符的个数,其函数返回值是数值型;VAL(’86’)把字符表达式
’86’转换成数值型数据86,其返回什是数值型;{04/05/98}-{04/01/98}则是日期型表达式Visual FoxPro
中两个日期型常数相减得出是两个日期中间隔的天数,结果是数值型;题目中给出的表达式各运算对象均
为数值型,则该表达式的结果也为数值型.
答案:C
例5 Visual FoxPro的表达式LEN(DTOC(DATE()))+DATE()的类型是( )
A. 数值型 B.逻辑型 C.字符型 D.日期型
分析: DATE()返回当前系统日期,值为日期型;DTOC()将日期型数据或日期时间数据的日期部分转换成字
符串;LEN(<字符表达式>)返回指定字符表达式的长度,即所包含的字符个数,函数值为数值型;表达式<天
数>+<日期>的计算结果为日期型,是指定日期若干天后的日期.
答案: D
例6 "x是小于100的非负数",用VFP表达式表示是( )
A.0<=x<100 B.0<=x<100 C.0<=x AND x<100 D.0<=x OR x<100
分析:A和B是错误的VFP表达式,同时根据应该用逻辑与AND来表示,所以正确答案C。
例7 运算符 = =的作用为( )
A.等价于运算符= B.不是Visual FoxPro的运算符 C.字符串全等比较 D.用于比较两个数值数据的全等
分析:由Visual FoxPro 中所定义的运算符可知“=”是Visual FoxPro 中的运算符,且用于字符串的
精确比较,相当于=运算符在EXACT的状态在ON时的比较。
答案:C
例8 表达式2*3^2+2*8/4+3^2的值为( )
A.64 B.31 C.49 D.22
分析:根据运算符的优先级,计算方法如下:
2*3^2+2*8/4+3^2
=2*9+16/4+9
=18+4+9=31
答案:B
例9 执行SET EXACT OFF命令后,再来执行?“天津市”=“天津”命令的显示结果为( )
A : T B:F C:0 D:非0
分析;用单等号来比较两个字符串,如果设置为SET EXACT OFF 则只需后面表达式和前面表达式的前一部分相匹配
即可。设置为ON时,就必须精确匹配,每个字符都相等时,结果才为真。
答案:A
[例 10] 执行?AT(“教室”,“自习教室”)命令后显示结果为 ( )
A :T B:2 C:3 D:5
分析:字符函数AT(表达式1 , 表达式2)是用来查找表达式1是否是表达式2的子串,如果是,则返回表达式
2在表达式1中的位置,如果非子串,则返回0值,在该题中,读者必须注意表达式1和表达式2的位置,否则就
有可能错选C。
答案为D
[例 11]如果设置字符的排序次序命令为:SET COLLATE TO〈 Machine〉,则下列运算结果为真的是 ()
A:“A”〈“a” B:“a”〈“A” C:“abc”〈“A” D:“ abc”〈“a”
分析:排序次序名有三种:
Machine类型:按照几内码顺序排列,在计算机中,西文字符是按照ASCII码值排列的,空格在最前面,大写ABCD
字母顺序序列在小写abcd字母序列的前面,因此大写字母小于小写字母。对常用的一级汉字,根据它们的
拼音顺序决定大小。
PinYin类型:按照拼音自诩排列。对于西文字符而言,空格在最前面,小写abcd字母序列在前,大写ABCD
字母序列在后。
Stroke类型:无论英文西文,一律按照书写笔画的多少排序
答案:A
[例 12]下列4个表达式中,运算结果为数值的是 ( )
A:30 + 23 =58 B :“3344”—“1122”
C:CTOD([04/01/02])—10 D:LEN(SPACE(3))—1
分析:A 是一个等式,而不是一个表达式,B是字符表达式,所以运算结果仍然为字符型,C是日期型,
D使用的是字符处理函数,处理结果是数值2。
答案;D
[例 13]下列( )是日期型常量。
A{“2002/04/01”} B:{2002—04—01}
C:{^2002/04/01} D:{2002—04/01}
分析:A 使用的是传统的日期格式,在计算机里面系统默认为{“月/日/年”},其中月日年都为两位
数字,这种格式的日期型常量要受到命令语句SET DATE TO 和SET CENTURY 设置的影响。在不同的设置
下,会有不同的意义。
B 和D 都没有用引号和“^”符号,并且在D 中,分隔符必须统一格式。C使用的是严格的日期格式,这种
日期格式不受SET DATE 等命令语句的影响。
例14 设有变量pi=3.1425549,执行命令?ROUND(PI,4)后的显示结果为( )
A.3.1420 B.3.1425 C.3.1426 D.3.0000
分析:ROUND(表达式1,表达式2)函数是将表达式1四舍五入,保留表达式2要求的小数位数。答案:C
例15 下列选项中不属于定界符的是( )
A.半角单引号 B.大括号 C.双引号 D.方括号
分析:A.C.D都是定界符的一种,定界符是用来界定字符型常量的长度的。定界符虽然不作为常量本身的
内容,但它规定了常量的类型和终始界限。使用定界符要注意定界符必须成对匹配使用,当一种定界符本身
就是字符串的内容时,就必须换用另外一种符号作定界符。答案 B
例16 3E-4是一个( )
A.字符变量 B.内存变量 C.数值常量 D.非法表达式
分析:3E-4是一个以科学计数法表示的数值常量,变量的值是可以改变的。答案 C
例17 下列的算术运算符中按优先级从高到低排列正确的是( )
A.* *,*,/,() B.(),* *,*,+ C./,^,+,% d.(),*,* *,+
分析:算术运算符7种符号的优先级顺序是:();**或(乘方)./除.%(取模);+(加)-(减)答案B
例18设有变量sr="2002年下半年全国计算机等级考试”,下列语句执行后能够显示“2002年下半年计算机等级考试‘的是
A.?sr-"全国” B.?SUBSTR(sr,1,9)+SUBSTR(sr,17,14)
C.? STR(sr,1.12)+STR(sr,17,14) D.?SUBSTR(sr,1,12)+SUBSTR(sr,17,14)
分析:SUBSTR(sr,1,12)+SUBSTR(sr,17,14)的含义是返回sr中的从第一位起的前12位,加上从sr中17位起
的长度为14位的字符串 答案 D
例19 函数SQRT(数值表达式)的功能是( )
A.返回指定表达式的平方根 B.按四舍五入取数值表达式的整数部分 C.返回数值表达式的整数部分
D.返回数值表达式的符号
分析:B所指的是ROUND()函数;C所指的是INT()函数;D所指的是SIGN()函数
答案:A
[例20] 已知D1和D2是日期型变量,下列4个表达式中非法的是( )
A D1-D2 B D1+D2 C D1+20 D D1-35
分析:不存在日期型+日期型的表达式。A是表示D1和D2相差的天数,C是表示D1时间之后20天的时间,D表示指定日期前35天的时间。
答案:B
[例21] 日期型数据加上或减去一个整数,结果是( );两个日期型数据相减,结果又会是( )。
分析:Viual FoxPro 允许以下三种日期运算:{日期/日期时间1}-{日期/日期时间2},计算结果是相差的天数/秒数;{日期/日期时间}+或-{数
值表达式},计算结果仍是数据,其中表达式的值必须是整数,表达式的值是若干天/秒以后或者以前的日期/时间。
答案:日期型数据 一个表示两个日期相差天数的整数
[例22] Visual FoxPro 的表达式分为五类,分别( )、( )、( )、( )和( ),一个表达式中参加运
算的各个分量的类型必须( )。
分析:Visual FoxPro 根据表达式的值的类型不同可以将表达式分为数值表达式、字符表达式、日期时间表达式、逻辑表达式和关系表达式。一
般来说一个表达式中各参加运算的各个操作数的类型必须一致。
答案:数值表达式 字符表达式 逻辑表达式 日期时间表达式 关系表达式 一致
[例23]算术运算的结果是( )型数据;关系运算的结果是( )型数据;逻辑运算的结果是( )型数据。
分析:数值表达式由算术运算符将数值型数据连接起来形成,其运算结果仍然是数值型数据;关系表达式通常也称为简单逻辑表达式,它有关系
运算符将两个运算对象连接起来形成,运算结果为逻辑型数据;逻辑表达式由逻辑运算符将逻辑型数据连接起来而形成,其运算结果仍然是逻辑
型数据。
答案:数值 逻辑 逻辑
[例24] 在Visual FoxPro 6.0中,若有:a=’Hello’,b=’everyone’,c={2002-02-1610:10:10 AM},则?a+b为( ),c+10为( )。
分析:由+连接的字符表达式结果是前后两个字符串首尾连接形成的一个新的字符串;表达式〈日期时间〉+〈秒数〉的结果仍是日期时间型,是
指定日期时间若干秒后的日期时间。
答案:Hello everyone 02/16/02 10:10:20 AM
[例25] 表达式:
?DATE( ),TIME( ),DATETIME( )函数的值分别为:( ),( ),( )。
分析:这几个函数显示的是系统实际日期,本答案仅提供格式参考。
答案:04/12/02,19:34:04,04/12/02 7:34:04PM
[例26] 表达式CTOD(”04/01/2002”)的值为( )。
分析:字符串中的日期格式要与SET DATE TO命令设置的格式一致。年份可以用两位,也可以用四
位,如果用两位,则世纪由SET STRICTDATE TO语句指定。
答案:04/01/2002
[例27] 设置字符的排序次序为:Stroke,则执行下列命令的结果分别为_______,_______,______.
? "a"<"acd", "a"<"A", "A"<"a"
分析:当设置值为Stroke时,按照书写笔画的多少排序.
答案: .T., .T., .F.
[例28] 执行命令LEN("我是中国人 IAMCHINESE")的结果是_______.
分析: LEN返回字符串的长度
答案: 20
[例29] 命令? TYPE("04/01/02")的输出结果是_______.
分析: TYPE()函数是测试表达式类型的函数,Visual FoxPro中常用的几种类型是:
数值型常量(N),字符型常量(C),逻辑型常量(L),日期型常量(D),货币型常量(Y),日期时间象常量
(T).
答案: N
[例30] 假设系统日期为04/01/2002,下列表达式的值的_______.
VAL(SUBSTR("1999",3)+RIGHT(STR(YEAR(DATE())),2))+15
分析: SUBSTR("1999",3)=99, VAL("99"+”02”)=9902.00
RIGHT(STR(YEAR(DATE())),2))=02
答案: 9917.00
[例31] 日期时间型数据用_______个字节储蓄. 日期部分的取值范围与日期型
数据相同,时间部分的取值范围是________.
分析: 日期时间型常量表示日期和时间,默认格式为:|yyy-mm-dd[,][hh[:ss]][a|p]]|,用
8个字节储蓄,时间部分的取值范围是 00:00:00AM-11:59:59PM.
答案: 8,00:00:00AM-11:59:59PM
[例32] 货币型常量用来表示货币,其书写格式与数值型常量类似,但要加上一个前
置的符号_______.
分析: 货币型常量以符号"$"开头,小数部分如果超过4位,则四舍五入后取四位小数.
答案: $
[例33] 在访问内存变量时必须在变量名前加上前缀_________.
分析: Visual FoxPro中,在变量名前加上前缀.M.或M->,表示对内存变量的访问.
答案: .M.或M->
[例34] 数组大小由小标值的________决定,下限规定为________.
分析: 每一个数组元素都是通过数组名和下标来访问的(如M[2,3],N[8]),因此数组大小可以由下
标值的上下限决定,下限规定为1.
答案:上下限,1
[例35] 表达式"Win"="Winword"结果为_______。
分析:当“=”号用于比较两个字符串时(非精确比较),若后面的所有字符和前面的若干字符相等,则
结果为“真”,否则为“假”。
[例36] 若a=5,b="a<10",则? type(b)输出结果为______,而? type("b")输出结果为_______。
分析:type()函数要求自变量是一个字符型表达式,返回表达式的类型。
? type(b)命令,判别变量b为"a>10",判别的是a<10,这显然是一个关系表达式,因此数据类型应为L;
而? type("b")命令,判别变量b的数据类型,而b为"a<10",是一个字符型表达式,因此数据类型应为C。
答案:L C
[例37] 表达式"World Wide Wed"$"World"结果为_______。
分析:字符串运算符$功能是检验前面的字符串是否包含在后面的字符串中,如果包含返回“真”,否则
返回“假”。
答案:.F.
[例38] 表达式"World"=="Win"结果为________。
分析:字符串运算符“==”对比较的两字符串进行精确比较。
答案:.F.
[例39] ?AT("a+b=c","+")_________
分析: AT(<字符表达式1>,<字符表达式2>)函数功能是查找<字符表达式1>在<字符表达式2>的
开始位置,若没有找到返回0。
|