篇一:vf变量函数练习题
1、 分别用STORE和“ = ”赋值命令建立四种不同数据类型的内存变量。
在命令窗口练习用STORE和“ = ”赋值命令建立如下10个内存变量:
a1=123
a2=”Hello!”
STORE {^2003/9/1} TO b1 , b2, 日期
sex=”男”
name=”王力平”
STORE 19 TO age
t= .T.
x = a1*2
2、 用LIST/ DISPLAY MEMORY或问号命令显示已建立的内存变量。
LIST MEMO LIKE * &&显示所有用户定义的内存变量
LIST MEMO LIKE a* &&显示变量名第一个字母是A的内存变量
LIST MEMO LIKE ?2* &&显示变量名第二个字母是2的内存变量
DISP MEMO &&分页显示用户建立的内存变量及系统变量等信息
LIST MEMO &&滚动方式显示用户建立的内存变量及系统变量等信息
? a1,a2, b1,t &&用问号命令只显示a1,a2,b1,t四个内存变量的值
??name , sex , age &&双问号命令表示不换行显示name , sex , age三个变量的值
? name AT 15 , sex AT 22 &&用问号命令在15和22列分别显示name、sex变量的值 ? ”a1=”, a1, “x=a1*2=”, x &&显示 “a1=” 和“x = a1*2=” 两个字符串。以及两个内存变量的值
3、 用RELEASE命令部分或全部释放已建立的内存变量。
在命令窗口输入下面的命令将以不同情况释放掉前面已建立的内存变量:
SAVE TO E:\vfp\var &&将内存变量保存到var.mem文件中
LIST MEMO LIKE * &&显示所有用户定义的内存变量
RELEASE t , x , sex &&释放t , x , sex三个内存变量
LIST MEMO LIKE * &&显示剩余的内存变量
RELE ALL LIKE ?1* &&释放变量名第二个字母是1的内存变量
LIST MEMO LIKE * &&显示剩余的内存变量
RELE ALL EXCEPT a* &&释放变量名第一个字母不是a的内存变量
LIST MEMO LIKE * &&显示剩余的内存变量
RELEASE ALL &&释放所有的内存变量
DISP MEMO &&分页显示用户定义的内存变量和系统变量等
RESTORE FROM E:\vfp\var &&将E盘var.mem文件中的变量恢复到内存 LIST MEMO LIKE * &&显示恢复后的内存变量
CLEAR MEMORY &&释放所有的内存变量
DISP MEMO
4、 定义数组及数组变量的赋值。
在命令窗口输入下面的命令,练习数组的建立与赋值:
DIME A(3) , B(2,3) , B2(3) &&定义两个一维数组A和B2、一个二维数组B DISP MEMO LIKE * &&分页显示初始建立的数组变量的情况,均为 .F.
a(2)=.T. &&给一维数组变量a(2) 赋逻辑值
b(1,1)=”高峻” &&给二维数组变量b(1,1) 赋字符常量值
b(1,2)= {^2003/9/1} &&给二维数组变量b(1,2) 赋日期值
b(2,1)=”张红梅” &&给二维数组变量b(2,1) 赋字符常量值
DISP MEMO LIKE * &&分页显示数组变量赋值后的情况
? a(1) , a(2) , b(1,1)&&用问号命令显示3个数组变量的值
A=100 &&给A数组中所有变量赋相同的值100
B={^2002/7/1} &&给B数组中所有变量赋相同的日期值
DISP MEMO LIKE *
RELEASE ALL LIKE B* &&释放数组名第一个字母是B的数组
DISP MEMO LIKE *
RELEASE A &&释放A数组
DISP MEMO
5、 字符串的比较。
在命令窗口输入以下命令序列,注意主窗口显示的结果信息。
SET EXACT OFF &&设置字符串为不精确比较(系统的默认状态)
? “A”=”a” &&结果为假,字母大小写的ASCII码值不同
? “abed”>”abc”
? “1234”<”131” &&结果为真,第三个字符比大小 &&结果为真,第二个字符比大小
? “abcd”>”abc” &&结果为假,“=”左边的串是右边串左边的一部分为相等 ? “abc ”=”abc” &&结果为真
? “abc ”= =”abc” &&结果为假,“= =”两边要完全相同样
? “abc”=”abc ” &&结果为假,“=”左边的串不是右边串左边的一部分
? “中国”>”中华” &&结果为假,看第二个字符在字典中的顺序(前小后大) SET EXACT ON
? “abcd”=”abc”
? “abc ”=”abc”
? “abc”=”abc ” &&设置字符串为精确比较 &&结果为假,“=”两边的串不完全一样 &&结果为真,“=”两边的串尾部空格忽略不计 &&结果为真
&&结果为假,“= =”两边要完全相同样 ? “abc ”= =”abc”
6、 函数的使用。
首先判断函数结果,然后在命令窗口用问号命令输出函数值验证。
(1)数值函数
①四舍五入函数:ROUND
s1=345.456
? ROUND(s1,1) , ROUND(s1,2), ROUND(s1,-1), ROUND(s1,-2) &&结果:345.5 345.46 350 300
②函数:INT
s2 = 3.56
s3 = -3.56
? INT(s2) , INT(s3) &&返回表达式的整数部分:3 -3
③余函数:MOD
? MOD(10,3) , MOD(-10,-3) , MOD(-10,3) , MOD(10,-3) &&结果:1 -1 2 -2 ④求极值函数:MAX 和MIN
? MAX(“AB”,”WR”,”34”), MAX(12,-34,0.56) , MAX(DATE(),{^2050/09/8})
? MIN(“AB”,”WR”,”34”), MIN(12,-34,0.56) , MIN(DATE(),{^2050/09/8})
? MAX(“AB”,34) &&表达式类型不一致,显示错误信息
(2)字符函数
①求字符串长度函数:LEN
c1=”Visual Foxpro 6.0”
c2=”Len函数” &&汉字和全角字符的占两个字符位置
? LEN(c1) , LEN(c2) &&函数值是数值型
②字符串前后空格函数:TRIM、LTRIM、ALLTRIM
c4=”数据库 ” &&字符串尾部有2个空
c5=” 管理系统” &&字符串前面有2个空格
? c4+c5 &&c4和c5两个字符串连接
? c4-c5 &&c4和c5连接,并将c4后的两格空个移到串尾
? TRIM(c4)+ LTRIM(c5) &&删除c4尾部空格和c5首部空格后进行字符串连接 ? ALLTRIM(c4)+ ALLTRIM(c5)
str1=”Visual FoxPro 6.0”
str2=LEFT(str1,1)
str3=RIGHT(str1,3)
str4= SUBSTR(str1,8,1)+SUBSTR(str1,11,1)
? str2+ str4+ str3 &&输出字符串表达式的值VFP6.0
? SUBSTR(str1,8)&&省略格式中的“长度”参数,从第8个字符开始取到串尾 ④求子串位置函数:AT和ATC
str1=”Visual FoxPro 6.0数据库管理系统”
? AT(“fox”,str1) , AT(“Fox”,str1) , ATC(“fox”,str1) && ATC()函数字母区分大小写 ? AT(“o”, str1,2) , AT(“系统”,str1) && 汉字以两个字符位置计算
以下几个字符函数不常用,同学们也可以练习一下:
⑤求子串出现次数函数:OCCURS
str1=”Database Management System”
str2=” <表达式1,表达式2>”
? OCCURS(“a”, str1) , OCCURS(“A”, str1) , OCCURS(“em”, str1)
? OCCURS(“表达式”, str2)
⑥子串替换函数:STUFF
str1=”VFP 6.0数据库管理系统”
? STUFF(str1,5,3,”7.0”) &&替换:结果为“VFP 7.0数据库管理系统”
? STUFF(str1,5,3,””) &&删除:结果为“VFP 数据库管理系统”
? STUFF(str1,8,0,”关系”) &&插入:结果为“VFP 6.0关系数据库管理系统” ⑦字符替换函数:CHRTRAN
str1=”Database system”
? CHRTRAN(str1, “bS”,”BSM”) &&替换结果为“DataBase system” &&删除c4、c5首尾部空格后进行字符串连接 ③取子串函数:LEFT、RIGHT、SUBSTR
? CHRTRAN(str1, “bsm”,”BSM”) &&替换结果为“DataBaSe SySteM” ? CHRTRAN(str1, “bsa”,”B%”) &&替换结果为“DtB%e %y%tem”
⑧字符串匹配函数:LIKE
str1=”VFP 6.0数据库管理系统”
? LIKE(”VFP” , str1) , LIKE(”VFP*”, str1) , LIKE(”????6.0*”, str1)
(3)日期函数
①求系统日期和时间函数:DATE()、TIME()、DATETIME()
? DATE(), TIME(), DATETIME() &&三个函数的数据类型分别是:D, C, T
? TYPE(?DATE()?) , TYPE(?TIME()?) , TYPE(?DATETIME()?)
②年份、月份和天数函数:YEAR、MONTH、DAY
d1={^2002/3/5 10:30}
? d1, YEAR(d1) , MONTH(d1) , DAY(d1) &&三个函数的函数值都是数值型 ? TYPE (?YEAR(d1)?) , TYPE (?MONTH(d1)?) , TYPE (?DAY(d1)?)
③求时、分、秒函数:HOUR、MINUTE、SEC
d2=DATETIME()
? d2, HOUR(d2), MINUTE(d2), SEC(d2) &&三个函数值都是数值型
? TYPE (?HOUR(d2)?), TYPE (?MINUTE(d2)?), TYPE (?SEC(d2)?)
(4) 数据类型转换函数
①数值转换成字符串:STR
s1=345.678
? STR(s1,6,2) , STR(s1,5,2) , STR(s1,7) ,STR(s1)
? LEN(STR(s1))&&该函数省略“长度”参数,默认转换后的字符串长度为10 ②字符串转换成数值:VAL
? VAL(“-234.34”), VAL(“V26”) , VAL(“66K3”), VAL(“ 35.56”)
③字符串转换成日期或日期时间:CTOD、CTOT
c1=?8/12/98? &&字符格式应与系统当前的日期格式一致
c2=?8/12/98 10:15 p? &&字符格式应与系统当前的日期格式一致
? CTOD(C1) , CTOT(C2)
c3=?98/8/12? &&字符格式应与系统当
前的日期格式不一致? CTOD(C3) &&无日期输出显示
SET DATE TO YMD &&将系统当前的日期格式设置为YMD格式
c1=?98/8/12? &&字符格式与系统当前的日期格式一致
c2=?98/8/12 10:15 p? &&字符格式与系统当前的日期格式一致
? CTOD(c1) , CTOT(c2)
? TYPE(?CTOD(c1)?) , TYPE(?CTOT(c2)?)&&测转换后的数据类型:D、T ④日期或日期时间转换成字符串:DTOC、DTOS、TTOC
d1={^1999/2/1 14:30}
? d1, DTOC(DATE()), DTOC(d1)
? DTOC(DATETIME()) &&DTOC()转换后的字符格式与系统当前的日期格式一致 ? DTOC(DATE(),1) , DTOC(DATETIME(),1) &&转换后的格式为YYYYMMDD ? DTOS(d1)&&DTOS()或用参数“1”转换后的字符格式与系统当前的日期格式无关
SET DATE TO LONG &&将系统当前的日期格式设置为LONG格式
? DTOC(d1), DTOS(d1) , DTOC(d1,1)
? TTOC(DATETIME()), TTOC(DATETIME(),1), TTOC(d1)
⑤宏替换函数:&<字符型变量>[.]
cc1=”66”
cc2=”cc”
s1=&cc1+100
? s1 , &cc2.1 &&在“&str2.1”中的圆点是宏替换函数中的分隔符
? &cc2 &&显示错误提示:“找不到变量‘cc ’”
? “&cc2” &&问号命令输出结果是:cc
⑥字符与ASIIC码转换函数:ASC、CHR
? ASC(?A?) , ASC(?ABC?) , ASC(?a?) , ASC(?1?) &&返回首字符的ASIIC码 ? CHR(65) , CHR(66) , CHR(97), CHR(49) ,CHR(50) , CHR(125)
(5)测试函数
①数据类型测试函数:TYPE
x=”a”>=”b”
? TYPE(“[050061]”) , TYPE(“05/12/03”) , TYPE(“DATE()”) , TYPE(“x”)
? TYPE(“y”)&&测试结果是:U(未知),因为表达式y未定义 ②条件测试函数:IIF(<条件表达式,表达式1,表达式2>
x=5
? IIF(x<=0, x*2 , x*x) , IIF(not .F. , “是” , “非”)
③另外,还有一个函数经常用到,即显示信息对话框函数
格式:MESSAGEBOX(<提示信息[,对话框类型][,对话框标题]>)
在命令窗口输入以下命令:
? MESSAGEBOX(“信息对话框函数使用”)
&&该函数格式使信息对话框无图标,有一个“确定”按钮,对话框标题取系统默认值
? MESSAGEBOX(“信息对话框函数使用”,16+1,” 信息提示”)
? MESSAGEBOX("信息对话框函数使用",32+2+256," 信息提示")
? MESSAGEBOX("信息对话框函数使用",563 ," 信息提示") &&48+3+512=563 = MESSAGEBOX("信息对话框函数使用",563," 信息提示") &&不要函数返回值 ans= MESSAGEBOX("信息对话框函数使用",48+3+512," 信息提示")
? ans &&显示函数返回值,即用户在信息对话框所选择的按钮值
篇二:全国计算机二级vf常量变量函数复习题
篇三:VF数据元素练习题
第二章 数据元素 练习题
一、选择题
1. 在Visual FoxPro中,要使用数组,则 ______。
A) 必须先定义 B) 必须先赋值 C) 赋值前不必先定义D) 以上都不对
2. RELEASE sample1命令的功能是 ______。
A) 清除整个屏幕B) 释放sample1内存变量C) 清除所有内存变量 D) 清除所有变量
3. 在Visual FoxPro中,使用内存变量名的长度最多允许的字符是 ______。
A) 1 B) 5 C) 10 D) 15
4. 下列选项中不能参与数据运算的变量类型是 ______。
A) 屏幕型 B) 字符型 C) 逻辑型 D) 日期型
5. 在下列表达式中,结果为.T.的是 ______。
A) [男]$性别 B) {^2010/09/09}-7<{^2010/09/01)
C} [张小姐]>=[李小姐] D} [112]>=111
6. ?AT(“计算机”,“等级考试”)的答案是 ______。
A) 12 B) 13 C) 16 D) 0
7. 下列选项中可以得到字符型数据的是 ______。
A) DATE() B) TIME()C) CTOD() D) MONTH(DATE())
8. 使用命令DECLARE mm(3,4)定义的数组,包含的数组元素(下标变量)的个数为 ______。
A) 2个 B) 3个C) 7个 D) 12个
9. DIMENSLON a(2,3)命令定义数组a后,再对各元素赋值:a(1,2)=6,a(1,3)=7,a(2,
1)=8, a(2,2)=9,a(2,3)=10,然后再执行命令?a(1),则显示结果是 ______。
A) .F. B) 变量未定义C) 3 D) 5
10. Visual FoxPro的运算符优先级从高到低依次是 ______。
A) 字符串运算符、算术运算符、关系运算符、逻辑运算符
B) 算术运算符、字符串运算符、关系运算符、逻辑运算符
C) 算术运算符、关系运算符、字符串运算符、逻辑运算符
D) 算术运算符、关系运算符、逻辑运算符、字符串运算符
11. 函数VAL(“319.30”)的返回值是 ______。
A) “319.30” B) 319.30C) 319.30000 D) 131930
12. 设R=2,A=“3*R*R*R”,则&A的值是 ______。
A) 0 B) “3*2*2*2” C) 24D) -24
13. 下列各表达式中,结果总是逻辑值的是 ______。
A) 算术运算表达式 B) 字符运算表达式 C) 日期运算表达式D) 关系运算表达式
14. 下列4个表达式中,运算结果为数值的是 ______。
A) “9988”-“1255” B) 200+800=-1000 C) CTOD(11/22/01))-20D)
LEN(SPACE(3))-1
15. 表达式(8+3>36.OR..T..AND.“A”-“B”$“ABC”)的运算顺序是 ______。
A) +->$.AND..OR. B) +->$.OR..AND.C) .AND..OR.+->$ D) >$.AND..OR.+-
16. 下列选项中不能够返回逻辑值的是 ______。
A) EOF() B) BOF() C) RECNO() D) FOUND()
17. Visual FoxPro函数INT(RAND()*10)的值是在 ______ 范围内的整数。
A) (0,1)B) (0,100)C) (1,100) D) (0,10)
18. 执行下列命令后,当前打开的数据库文件名是 ______。
Number="ABC"
File="File"+Number
USE &File
A) FileABC B) &File C) File Number D) File
19. 执行命令STORE 5*6 TO A,B,则 ______。
A) A=5 B=6 B) A=6 B=5 C) A=30 B=30 D) A=11 B=11
20. 执行?“男”$“男同学”的结果为 ______。
A) “男” B) “男同学” C) .T. D) .F.
21. 执行下列命令后显示的结果是 ______。
SJ=“FoxPro数据库”
?SUBSTR(SJ,LEN(SJ)/2,6)
A) FoxPro B) 数据库 C) 数据 D) ro数据
22. 在Visual FoxPro中,设A=“123.45”,B=123.45,则表达式A+STR(B) 的数据类型是 ______。
A) 字符型 B) 数值型 C) 日期型 D) 浮点型
23. 在Visual FoxPro中,执行下列命令序列后,变量X的数据类型为 ______。
STORE 319 TO X
STORE 30+X TO Y
A) 字符型 B) 数值型 C) 日期型 D) 浮点型
24. 在Visual FoxPro中,能够将字符型数据转换成日期型数据的函数是 ______。
A) CTOD B) STR C) VAL D) DTOC
25. 在Visual FoxPro中,能够将数字型数据转换成字符型数据的函数是 ______。
A) CTOD B) STR C) VAL D) DAY
26. 在命令窗口键入命令?LEN(SPACE(3)-SPACE(2)),则在Visual FoxPro显示的值是 ______。
A) 1 B) 2 C) 3 D) 5
27. 设一表中有60条记录,当该表刚被打开时,函数RECNO()返回的值是 ______。
A) 0 B) 60C) 1 D) 61
28. 如果X是一个正实数,对x的第3位小数四舍五入的表达式是 ______。
A) 0.01*INT(X+0.005) B) 0.01*INT(100*(X+0.005))
C) 0.01*INT(100*(X+0.05)) D) 0.01*INT(X+0.05)
29. 下列选项中得不到字符型数据的是 ______。
A) DTOC(DATE()) B) DTOC(DATE(),1)C) STR(123.567) D)
AT("1",STP-1321)
30. 当前工作区中,测试当前记录的函数是 ______。
A) SELECT() B) RECCOUNT() C) RECNO() D) RECSIZE()
31. 函数DELETED()的值为真,则表示 ______。
A) 当前记录已被物理删除 B) 当前记录已被逻辑删除
C) 当前记录不存在被删除的记录 D) 当前记录存在被删除的记录
32. 职工数据库有D型字段“出生日期”,要计算职工的整数实足年龄,应当使用命令 ______。
A) ?DATE()-出生日期/365B) ?(DATE()-出生日期)1365
C) ?INT((DATE()-出生日期)/365) D) ?ROUND((DATE()-出生日期)/365)
33. 在窗口中直接键入?TYPE(“ABC”),则结果为 ______。
A) C B) NC) L D) U
34. 在窗口中直接键入?HOUR({^2003-01-02 04:59:23PM}),则结果为 ______。
A) 04 B) 16C) 59 D) 23
35. 在窗口中直接键入?BETWEEN(28,3*9,4*9),则结果为 ______。
A) .T. B) .F.C) 27 D) 36
36. 顺序执行下列命令后,屏幕最后显示的结果是 ______。
SELECT 1
USE ABC
SELECT2
USE EFD
?SELECT()
A) 0 B) 1 C) 2 D) 错误提示
37. 能够将ASCII码转化为相应的字符的函数是 ______。
A) ASC() B) CHR() C) STR() D) VAL()
38. 条件函数IIF(LEN(SPACE(3)))>3,1,-1)的值为 ______。
A) .T. B) .F. C) 1 D) -1
39. 执行下列命令:
X=200
Y=100
?IIF(X>Y,X-Y,X+Y)
则结果为 ______。
A) 100 B) 300 C) 200 D) 400
40. 按顺序执行下列命令:
B1=5
B2=B1+3
B2=B2+2
则变量B2的值是 ______。
A) 5 B) 8 C) 10 D) 2
二、填空题
1.要显示所有以“p”开头的内存变量的命令为 【1】 。
2.要释放所有以“A”开头的内存变量的命令为 【2】 。
3.两个日期型数据可进行减法运算,结果为 【3】 数据,日期型数据可加或减一个数值型数据,结果为 【4】 数据。
4.?“金苹果“$”金苹果研究室”的结果为 【5】 。
5.逻辑型运算符有三个:.NOT.或!(逻辑非)、.AND.(逻辑与)以及.OR.(逻辑或)。其优先级顺序依次为 【6】 。
6.?8>3.AND.“女”>“女生”.OR..T<.F.的结果为 【7】 。
7.执行命令?SUBSTR("WINDOWS",3,4)的显示结果为 【8】 。
8.执行如下命令:?LEN(TRIM(“计算机□□□”))结果为 【9】 。
9.?LEN(TRIM(“计算机”+“考试 _ _”))
【10】
10.执行下列命令
USE XS
?BOF()
SKIP-1
?BOF()
GO BOTTOM
?EOF()
SKIP1
?EOF()
则在主窗口中显示的结果分别 【11】 、 【12】 、 【13】 和 【14】 。
11.若a=5,b=“a<10”,则?type(B) 输出结果为 【15】 ,而?type(“b”)输出结果为 【16】 。
12.设字段变量sex是字符型,soore是数值型,分别存放“性别”和“成绩”信息,若要表达“性别是女的,并且成绩大于等于85分”这一命题,表达式应是 【17】 。
13.下例命令:
STORE“职工”TO DB
USE & DB
含义为 【18】 。
14.?AT(“+”,“1+2=3”)
【19】
15.?LEN(“计算机”)<LEN(“COMPUTER”)
【20】
16.设变量a=1,c1=“事不过三”,c2=“三”,
表达式a<3.AND.c1$c2结果为 【21】 。
表达式a<3.AND.c2$c1结果为 【22】 。
表达式a<3.OR.c1$c2结果为 【23】 。
表达式a<3.OR.c2$c1结果为 【24】 。
17.?ROUND(123.456,2)
【25】
18.表达式DTOC(00-06-06)+LEFF(“12345”,2)的数据类型应是 【26】 。
19.表达式CTOD(“97-06-06”)-{97-06-01)的结果是 【27】 。
20.表达式“Win”=“Winword”结果为 【28】 。
21.设工资=1200,职称=“教授”,下列逻辑表达式的值是 【29】 。
工资>1000. AND.(职称=“教授”.OR.职称=“副教授”)
22. 写出下列语句的执行结果: 【30】 、 【31】 、 【32】 、 【33】 。 ?STR(141.2,6,2)
?STR(141.2,2,5)
?STR(141.2)
?STR(1221.26,5,2)
答案仅供参考:
一、选择题
1. A2. B3. C4. A 5. C6. D7. B 8. D9. A10. B
11. B 12. C 13. D 14. D15. A 16. C 17. D18. A 19. C20. C
21. B 22. A 23. B 24. A25. B 26. D 27. C28. B 29. D30. C
31. B 32. C 33. D 34. B35. A 36. C 37. B38. D 39. A40. C
二、填空题
1. DISPLAY MEMORY LIKE p*(或LIST MEMORY LIKE sam*)2. RELEASE ALL LIKE A*
3. [3]数值型 [4]日期型 4..T.
5. .NOT.、AND.、OR.6. .F.
7. NDOW8. 6
9. 10 10. [11].F. [12].T. [13].F. [14].T.
11. [15] L [16]C 12. sex=“女”.AND.soore>=85
13. 打开“职工”表14. 2
15. .T. 16. [21].F.[22].T.[23].T.[24].T.
17. 123.46 18. 字符型
19. 数值520. .F.
21. .T. 22. [30]141.20 [31]141 [32]141 [33]1221