第二章VisualFoxpro程序设计基础

上传人:公**** 文档编号:569084512 上传时间:2024-07-27 格式:PPT 页数:102 大小:1.29MB
返回 下载 相关 举报
第二章VisualFoxpro程序设计基础_第1页
第1页 / 共102页
第二章VisualFoxpro程序设计基础_第2页
第2页 / 共102页
第二章VisualFoxpro程序设计基础_第3页
第3页 / 共102页
第二章VisualFoxpro程序设计基础_第4页
第4页 / 共102页
第二章VisualFoxpro程序设计基础_第5页
第5页 / 共102页
点击查看更多>>
资源描述

《第二章VisualFoxpro程序设计基础》由会员分享,可在线阅读,更多相关《第二章VisualFoxpro程序设计基础(102页珍藏版)》请在金锄头文库上搜索。

1、第二章第二章 Visual Foxpro程序设计基础程序设计基础 VF中除了能够对数据表中的数据进行处理,也可以对诸如常量、变量等数据表之外的数据进行单独处理。简单的数据处理可以通过函数、表达式和单条命令完成,复杂的数据处理可能需要编写程序来完成。1v掌握各种常量的表示方法及计算,重点是字符型、日期型常量。v掌握内存变量的有关操作,重点是数组。v掌握各种表达式的运算。v掌握vfp五类函数的使用,重点是字符和日期时间函数。v掌握程序与程序文件的概念,程序文件的建立与执行,基本输入输出命令。v熟练掌握选择、循环和多模块程序设计及变量作用域。2常量与变量常量与变量常量常量v数值型常量即常数,由数字0

2、9、小数点和正负号构成。例:123.45-6.785.878E121.6E-125.878 10121.6 10-123常量与变量常量v货币型常量用来表示货币值,书写格式与数值型常量类似,但要加上一个前置符号($).采用4位小数例:$123.4568如果给定数值小数部分超过四数,将进行四舍五入处理。如果给定数值小数部分超过四数,将进行四舍五入处理。4常量与变量常量字符型常量也称字符串,使用半角单引号、双引号或方括号作为定界符。例:“计算机”Hello“abc”,黄河5常量与变量常量v日期型常量定界符为花括号yyyy-mm-dd书写格式严格遵守以上形式例:2004-01-166常量与变量常量v影

3、响日期格式的设置命令SETMARKTO日期分隔符7常量与变量常量v影响日期格式的设置命令SETDATETOYMD/MDY/DMY8常量与变量常量v影响日期格式的设置命令SETCENTURYON/OFF9常量与变量常量v逻辑型常量逻辑真:.T.t.Y.y.逻辑假:.F.f.N.n.提示:提示:前后两个句点不可以省略。前后两个句点不可以省略。10常量与变量变量v变量:v在整个程序运行当中,值可以发生改变的量。v思考:I=5?II=6?II=7?I567I=5?II=I+1?I?I+1?I567611常量与变量变量v内存变量的赋值形式=STORETO补充:内存变量数据类型包括:字符型(C)、数值型(

4、N)、逻辑型(L)、日期型(D)货币型(Y)、12常量与变量变量v数组创建数组命令:DIMENSION(,)例:例:DIMENSIONX(4),Y(2,2)提示:提示:可用一维数组方式访问二维数组,上例中可用一维数组方式访问二维数组,上例中Y(4)=Y(2,2). 数组元素在赋值以前为逻辑假值数组元素在赋值以前为逻辑假值.数组X(4)中的元素分别是:x(1)、x(2)、x(3)、x(4)数组X(2,2)中的元素分别是:x(1,1)、x(1,2)、x(2,1)、x(2,2)13常量与变量变量v内存变量的显示LISTMEMORYLIKEDISPLAYMEMORYLIKE通配符:*任意多个字符?任意

5、单个字符提示:提示:LIST一次显示所有内容,会向上滚屏DISPLAY显示一屏后暂停,按任意键继续下一屏14常量与变量变量v内存变量的清除CLEARMEMORY清除所有内存变量15表达式表达式v数值表达式优先级运算符说明1()2*或乘方3*、/、%乘、除、求余4+、-加、减例:14%3+(2*3)/2616表达式v字符表达式+:首尾联接两个字符串-:联接两个字符串,将第一个字符串尾部空格移到合并后的新字符串尾部例:a=“Hello”b=“everyone!”a+b=“Helloeveryone!”a-b=“Helloeveryone!”17表达式v日期时间表达式格式结果及类型+日期型,指定日期

6、若干天后的日期-日期型,指定日期若干天前的日期-数值型,两日期相差天数18日期表达式的计算v2009-06-15-2009-06-087v2009-06-15-3652008-06-15v2009-06-15+3652010-06-15v2009-06-15+2009-06-08错误错误19表达式v关系表达式运算符说明运算符说明小于大于=大于等于=等于=字符串精确比较、#、!=不等于$子串包含测试例1: X=“11”,Y=“21122”? x$y例2:X=“11 ”,Y=“1122”? X=Y? Y=X.T.F.T.20表达式v逻辑表达式.NOT.或!逻辑非取反.AND.逻辑与全真为真.OR.

7、逻辑或全假为假优先级:.NOT.AND.OR.高低21各种运算符的优先级各种运算符的优先级算术运算符字符运算符关系运算符逻辑运算符优先级高高低低日期运算符22v例:v?(10%3=1)and(15%2=0)or“电脑”!=“计算机”.T.F.T.F.T.23常用函数1、数值函数 (1)求绝对值函数ABS格式:ABS () 功能:返回指定表达式的绝对值 n n例如:例如:?ABSABS(-3-3)3符号函数SIGN格式:SIGN()功能:返回指定表达式的符号,当表达式的运算结果分别为正、负、零时分别返回1、-1和0。例如:?Sign(10-5)sign(10-15)sign(10-10)1-10

8、24(2)求平方根函数 格式:SQRT() 功能:返回指定表达式的平方根 例如:?SQRT(5-3),SQRT(100) (3 3)取整函数 格式:INT () 功能:返回指定数值表达式的整数部分 例如:例如:?INTINT(12.12312.123) INT(12.789)INT(12.789)1.41 10121225(4 4)四舍五入函数)四舍五入函数 格式:格式: ROUND ROUND ( , ) 功能:返回指定表达式在指定位置四舍五入后的结果。功能:返回指定表达式在指定位置四舍五入后的结果。 例如例如:?:?ROUNDROUND(12.512.5,0 0),),ROUNDROUND

9、(1.31.3,2 2),),ROUNDROUND(345.2,-1345.2,-1) 13131.301.3035035026(5)(5) 求最大值求最大值MAXMAX、最小值最小值MINMIN函数函数格式:格式:MAX| MIN (MAX| MIN ( 1 , 2) ) 功能:求功能:求出最大的数值表达式的值。出最大的数值表达式的值。 ?MAXMAX(4545,1212,8787),),MINMIN(”CADCAD”, ,”CAECAE”, ,”CAMCAM”) ) 87CAD27有关数值函数的几个测试题有关数值函数的几个测试题1、x=5,SIGN(x2-289)为:2、ROUND(337

10、.2007,-2)等于3、MAX(2005-11-21,2005-11-22)等于 -13002005-11-22282 2、字符函数、字符函数 字符函数是处理字符型数据的函数,其自变量或函数值中至少有一个是字符型数据。函数中涉及的字符型数据项,均以字符表达式表示。29 (1 1)求字符串长度函数)求字符串长度函数 语法:语法:LEN(LEN()功能:返回字符表达式中字符的数目,计算结果是以 字节为单位的,函数值为数值型。例如:例如:? ?LEN(LEN(“GoodGoodMorningMorning”) ) ? ?LEN(LEN(中国中国)12430(2 2)删除字符串首尾空格函数)删除字符

11、串首尾空格函数 语法:语法:ALLTRIM(ALLTRIM(字符表达式字符表达式) ) 功能:删除指定字符表达式最前面和最后面的空格功能:删除指定字符表达式最前面和最后面的空格 字符,并且返回删除空格符后的字符串,函字符,并且返回删除空格符后的字符串,函 数值为字符型。数值为字符型。例如例如: :? ?ALLTRIM(ALLTRIM(“VisualVisualFoxProFoxPro”) ) ? ?ALLTRIM(ALLTRIM(“中中华华民民族族”) )VisualFoxPro中华民族注:TRIM删除右边空格函数LTRIM删除左边空格函数31(3 3)从字符串左端取字符串函数)从字符串左端取

12、字符串函数 语法:语法:LEFT(LEFT(,) ) 功能:从字符表达式最左边第一个字符开始返回由功能:从字符表达式最左边第一个字符开始返回由 指定数目的字符指定数目的字符, ,函数值为字符型。函数值为字符型。 例如:例如:? ?LEFT(GoodLEFT(GoodMorning,3)Morning,3)? ?LEFT(LEFT(中国人民中国人民,2),2)? ?LEFT(LEFT(中国人民中国人民,3),3)中Goo乱码原因:一个汉字占据原因:一个汉字占据2 2个字节大小。个字节大小。32 (4) (4) 取子字符串函数取子字符串函数 语法:语法:SUBSTR(SUBSTR(,) ) 功能:

13、子串在字符串中的起始位置由数值表达式功能:子串在字符串中的起始位置由数值表达式1 1决定,决定,长度由数值表达式长度由数值表达式2 2决定,函数值为字符型。决定,函数值为字符型。 例如:例如:? ?SUBSTR(“GoodSUBSTR(“GoodMorning”,3,5)Morning”,3,5) ? ?SUBSTR(SUBSTR(中国人民中国人民,3,4),3,4)? ?SUBSTR(SUBSTR(中国人民中国人民,2,3),2,3)OdMo国人乱码333、日期时间函数 (1)、系统日期函数 语法:语法: DATE()DATE()功能:给出系统的当前日期。例如:假设今天是1999年10月18

14、日,则: ?DATE()10/18/9934(2)日期函数 语法:DAY(|) 功能:以数值型返回给定日期表达式中的天数, 参数必须是正确的日期格式。函数值为数值型。 例如: ?DAY(1999/12/18) 假设今天是1999年10月25日: ?DAY(DATE() 182535(3)月份函数 语法:MONTH(|) 功能:返回给定日期的月份值。参数必须是正确的 日期格式。函数值为数值型。 例如: ?MONTH(1999/12/18) 假设今天是1999年10月25日,则: ?MONTH(DATE()121036(4)年份函数 语法:YEAR(|)功能:返回给定日期的年份值。参数必须是正确

15、的日期格式。函数值为数值型。例如:?YEAR(1999/12/18)假设今天是1999年10月25日,则:?YEAR(DATE() 19991999374 4、类型转换函数、类型转换函数 v(1)将数值转换为字符串函数v语法:STR(,)功能:将第一个数值表达式转换为字符串,所得到字符串的总长度由第二个数值表达式决定,所得到字符串的数据是否带小数点以及小数位数格式由第三个数值表达式决定,函数值为字符型。38(2) (2) 字符串转换为数值函数字符串转换为数值函数 语法:语法: VAL(VAL() 功能:把一个由09数字组成的字符表达式 转换为数值型数值。函数值为数值型。 例如: ?VAL(12

16、34.5678) (结果为:1234.57) ?VAL(s100) (结果为:0) 对于不能转换的数据,VAL()函数将得到0的结果39v(3)宏替换函数语法: &(字符型变量) 功能:替换出字符型变量变量的内容。 例如:姓名=“罗纳尔多”Xm=“姓名”?&xm 相当于 ?姓名设N=8,M=34,K=“M+N”表达式1+&K的值为是A、43B、数据类型不匹配C、1+M+ND、346罗纳尔多A40 1.1.单命令方式单命令方式 Visual FoxPro单命令方式是利用Command 窗口来实现的。用户通过Command 窗口输入命令,并执行操作。在Command 窗口中,可以输入单个的操作命令

17、和系统命令,完成对数据库的操作管理和系统环境的设置;也可以建立命令文件及运行命令文件。 Command 窗口不仅是Visual FoxPro 命令的执行窗口,也是Visual FoxPro命 令文件的编辑窗口。 所谓单命令方式,即输入一条命令, 完成一个操作的工作方式。 2.4 2.4 程序与程序文件程序与程序文件命令方式、菜单方式及程序文件方式41 2.2.菜单方式菜单方式 在Visual FoxPro 环境下,也可以通过系统提供的菜单选项,对数据库资源进行操作管理和对系统环境进行设置;并通过菜单建立命令文件及运行命令文件。所谓菜单方式,即通过打开不同的菜单选择并完成不同的操作。我们在以前各

18、章所讲的内容其实都可说是菜单方式。 3.3.程序文件方式程序文件方式 命令和菜单方式是VF的交互工作方式,这种方式适合解决一些比较简单的问题,如果问题较为复杂或任务较大,那么就可能执行很多命令,而且这些命令不见得是以顺序方式逐个执行的,此时交互方式就会显得力不从心,程序方式是必然的选择。 程序是完成一定任务的命令的有序集合。这些命令存放在称为命令文件或程序文件的文本文件中。42程序文件的建立与编辑 Visual FoxPro程序是能够完成一定任务的命令的有序集合。VFP文件,是一个以(.PRG)为扩展名的文本文件。任何可以建立、编辑文本文件的工具,都可以创建和编辑Visual FoxPro程序

19、文件。 建立、编辑程序文件有两种方式: 1. 1.命令方式命令方式 MODIFY COMMAND程序文件名 2.2.菜单方式菜单方式 打开“文件”菜单,选择“新建”;在“新建”窗口,选择“程序”,再选择“新建文件”;在“程序文件”编辑窗口,输入程序文件,并保存,此时建立程序文件的操作结束。43程序文件的运行(调用 ) 调用程序文件,即运行程序文件,是程序文件建立的最终目的。在Visual FoxPro系统中,调用程序文件有很多方法,在这里仅介绍其中两种方法。 1.1.命令方式命令方式 在Command 窗口中,输入如下命令,则程序文件被调用。 DO 程序文件名 2.2.菜单方式菜单方式 以菜单

20、方式调用程序文件,操作方法如下: (1)在Visual FoxPro系统主菜单下,打开“程序”菜单,选择“运行”。 (2)在“运行”窗口,输入被调用的程序文件名即可。44两点重要说明1、以*(星号)或note开头的代码行为注释,命令行后的注释以&开头。2、程序中每条命令以回车键结尾,一行只能写一条命令45三个简单的输入命令vINPUT命令1、INPUT命令格式命令格式INPUT 字符表达式字符表达式 to 内存变量内存变量该命令等待用户从键盘上输入任意合法数据,但不能不输数据回车,数据可以是常量、变量与任何合法的表达式,输入数据时注意定界符的使用,如数据字符型数据时加“”(如:“张三”等),输

21、入逻辑型常量或运算符时用圆点定界(如.and.,.t.等),日期型数据要用大括号(如:2004-11-24)。字符表达式通常起注释作用,可有可无。vACCEPT命令vWAIT命令46三个简单的输入输入命令2、WAIT命令格式命令格式WAIT 字符表达式字符表达式 to 内存变量内存变量说明:1、若没有字符表达式,提示“按任意键继续”2、内存变量用来存放输入的字符型字符型数据,且只能输入一位字符;47三个简单的输入输入命令3、ACCEPT命令格式命令格式ACCEPT字符表达式to内存变量该命令等待用户从键盘上输入字符串字符串,而且字符串不加定界符“”(双引号),否则系统会把双引号作为字符串的一部

22、分,如果用户不输任何内容回车,系统把空串赋给指定的内存变量。48程序的基本结构 Visual FoxPro系统提供的命令丰富,且功能强大,把这些命令和程序设计语句有效地组织在一起,就形成了实现某一特定功能的程序。 Visual FoxPro系统的程序有两个特点:一是程序控制流模式,由顺序、分支、循环三种基本结构构成。二是面向对象可视化的结构程序模块,在每个模块的内部也是由程序控制流组成。 常见的控制结构如下: 1 1顺序结构顺序结构 顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。Visual FoxPro系统中的大多数命令都可以作为顺序结构中的语句。 2 2分支结构分支结

23、构 分支结构是在程序执行时,根据不同的条件,选择执行不同的程序语句,用来解决有选择、有转移的诸多问题。49 3 3循环结构循环结构 循环结构则能够使某些语句或程序段重复执行若干次。如果某些语句或程序段需要在一个固定的位置上重复操作,使用循环是最好的选择。 4 4过程结构过程结构( (多模块程序设计多模块程序设计) ) 在许多应用程序中,有一些程序段需要反复执行多次,这些程序段不在一个固定的位置上,而是分散在程序的许多位置上重复执行,可将其与嵌入它的程序分开,形成独立的程序序列,待使用时再调入程序中,以实现不同位置上的重复操作。这样做增强了程序的可读性和模块化。我们称这种具有独立功能而且可以被其

24、它程序调用的程序序列为过程。50分支结构 分支结构形式有如下三种: 1 1单向分支单向分支 单向分支语句,即根据用户设置的条件表达式的值,决定某一操作是否执行。 (1)语句格式: IFIF条件表达式条件表达式 命令行序列命令行序列 ENDIF ENDIF (2)语句功能: 该语句首先计算条件表达式的值,当条件表达式的值为真时,执行命令行序列;否则,执行ENDIF后面的第一条命令。表达式值为真?命令行序列ENDIF后面语句真假51例:例:下列程序段的输出结果是ACCEPT TO A IF A=“123456” S=0ENDIF S=1? SA)0 B B)1 1 C)由A的值决定 D)程序出错B

25、52 2 2双向分支双向分支双向分支语句,即根据用户设置的条件表达式的值,选择两个操作中的一个来执行。 (1)语句格式: IFIF条件表达式条件表达式 命令行序列命令行序列1 1 ELSE ELSE 命令行序列命令行序列2 2 ENDIF ENDIF (2)语句功能: 该语句首先计算条件表达式的值,当条件表达式的值为真时,执行命令行序列1中的命令;否则,执行命令行序列2中的命令;执行完命令行序列1或命令行序列2后都将执行ENDIF后面的第一条命令。53条件表达式为真条件表达式为真?语句序列语句序列1语句序列语句序列2ENDIF后面的语句后面的语句真真假假54例:例:有下程序,请选择最后在屏幕显

26、示的结果:Input“请输入成绩:”tocjIFcj=90?“优秀”ELSE?“良好”ENDIF当输入的成绩为:85时,屏幕的输出为:良好55 3 3多向分支多向分支多向分支语句,即根据多个条件表达式的值,选择执行多个操作中的一个对应执行 。 (1)语句格式: DO CASEDO CASE CASE CASE条件表达式条件表达式1 1 命令行序列命令行序列1 1 CASECASE条件表达式条件表达式2 2 命令行序列命令行序列2 2 CASE CASE条件表达式条件表达式N N 命令行序列命令行序列N N OTHERWISEOTHERWISE 命令行序列命令行序列N+1N+1 ENDCASEE

27、NDCASE条件表达式1条件表达式2条件表达式nOTHERWISE命令行序列1命令行序列2命令行序列n语句行序列n+1ENDCASE后面的语句56 该语句根据给出的N个条件表达式的值,选择N+1个命令行序列中的一个执行。当所有CASE中条件表达式的值都是假时,如果有OTHERWISE项,则执行命令行序列N+1,再执行ENDCASE后面的第一条命令;否则,直接执行ENDCASE后面的第一条命令。例:编写程序,计算分段函数值f(x)=(2)语句功能:2x-1(x0)3x+5(0=x3)X+1(3=x5)5x-3(5=x=10)57 (1)IF ENDIF和DO CASE ENDCASE 必须配对使

28、用,DO CASE与第一个CASE条件表达式之间不应有任何命令。 (2)条件表达式可以是各种表达式或函数的组合,其值必须是逻辑值。 (3)命令行序列可以由一个或多个命令组成,可以是条件控制语句组成的嵌套结构。 (4)DO CASE ENDCASE 命令,每次最多只能执行一个命令行序列。在多个CASE项的条件表达式值为真时,只执行第一个条件表达式值为真的命令行序列,然后执行ENDCASE的后面的第一条命令。使用分支语句应注意的几点使用分支语句应注意的几点582.5 循环结构 常用的循环语句有以下三种形式: 1.1.“当当”型循环控制语句型循环控制语句 “当”型循环控制语句,即根据条件表达式的值,

29、决定循环体内语句的执行次数。 (1)语句格式: DO WHILE DO WHILE 条件表达式条件表达式 LOOP LOOP EXIT EXIT 命令行序列命令行序列 ENDDO ENDDO (2)语句功能: 该语句通过条件表达式的值来控制循环。执行语句时,反复判断条件表达式的值,当条件表达式的值为“真”时,执行命令行序列;否则,结束循环,并执行ENDDO 后面的第一条命令。条件表达式循环体ENDDO后面的语句真假59例:下列程序段执行以后,内存变量y的值是x=76543y=0DOWHILEx0y=x%10+y*10x=int(x/10)ENDDOA)3456B)34567C)7654D)76

30、543第一次第一次X=76543Y=0Y=3X=7654第二次第二次X=7654Y=3Y=34X=765第三次第三次X=765Y=34Y=345X=76第四次第四次X=76Y=345Y=3456X=7第五次第五次X=7Y=3456Y=34567X=0B60循环结构 DO DO WHILE WHILE 条条件件表表达达式式 LOOP LOOP EXIT EXIT 命令行序列命令行序列 ENDDO ENDDO条件表达式循环体ENDDO后面的语句真假LOOPEXIT61 4 4使用循环语句时应注意的几点使用循环语句时应注意的几点 (1)DO WHILE和ENDDO必须配对使用配对使用。 (2)命令行

31、序列可以是任何FoxPro命令或语句,也可以是循环语句,即可以为多重循环。 (3)循环变量应是数值型的内存变量。 (4)EXIT和LOOP命令嵌入在循环体内,可以改变循环次数,但是不能单独使用。EXITEXIT的功能是跳出循环的功能是跳出循环,转去执行ENDDO后面的第一条命令;LOOPLOOP的功能是转回的功能是转回到循环的开始处,重新对到循环的开始处,重新对“条件条件”进行判断进行判断,相当于执行了一次ENDDO命令,它可以改变命令行序列中部分命令的执行次数。622.6 2.6 多模块程序多模块程序模块:应用程序一般都是多模块程序,包含多个程序模块。模块是一个相对独立的程序段,它可以被其他

32、程序所调用,也可以调用其他的模块,通常把被其他模块调用的模块称为子程序子程序,而调用其它模块且没被调用的模块称为主程序主程序。 1、模块可以是命令文件(.PRG)文件,也可以是过程。 2、过程可以独立存放在扩展名为.PRG的命令文件中,此时称该文件为过程文件,一个过程文件中可以包括多个过程,过程也可以放在主程序后和主程序保存在一起。63模块分类模块分类主程序(.PRG)子程序(.PRG)64*AA.PRG调用sub_1.prg*sub_1.PRGM=3S=1N=5P=1S=M+NDOsub_1P=S*N?”S=”,SRETURN?”P=”,PRETURN65模块分类模块分类主程序(.PRG)过

33、程文件(.PRG)过程1过程n66主程序主程序 过程文件:过程文件:*MAIN_1.PRG *SUB.PRGSET PROCEDURE TO SUBPROCEDURE SUB_1SET TALK OFF T=1 T=0 FOR I=1 TO NINPUT “X=” TO X T=T*IINPUT “Y=” TO Y ENDFORNPUT “Z=” TO Z RETURNN=X ENDPROC DO SUB_1A=TN=YDO SUB_1B=TN=ZDO U SUB_1W=T+A+B?“W=”+STR(W,7) SET TALK ON67变量作用域变量作用域作用域:内存变量的作用范围。1、公共(

34、全局)变量1)全局变量:指在任何模块中均可使用的变量。2) 格式:PUBLIC 主程序 子程序 *MAIN_3.PRG *SUB_3.PRG SET TALK OFF public B,C CLEAR B=2 PUBLIC A,D D=3 A=1 ?“在过程中:A,B,C,D?A,B,C,D DO SUB_3 RETURN ?“返回主程序:A,B,C,D=”,A,B,C,DSET TALK ON 682、私有变量、私有变量1)私有变量:未经PUBLIC命令定义且只在建立它的过程及其下级过程中有效的内存变量。2)私有变量的定义:隐含定义方式:过程中未经特殊说明的内存变量。显示定义方式:PRIVA

35、TE 主程序*MAIN_4.PRGSETTALKOFFA=1B=2?“主程序中:A=”,A,“B=”,BDOSUB_4?“返主程序后:A=”,A,“B=”,B,“C=”,C,“D=”,DSETTALKON过程 *SUB_4.PRG PRIVATE BPUBLIC CA=10B=11C=12D=13?A,B,C,DRETURN692 2、局部变量、局部变量1)局部变量:只有在建立它的模块中使用,不能在上层或下层模块中使用。2)局部变量的定义:定义方式:LOCAL LOCAL PROCEDUREsub_1X=50LocalyY=10?X,Yreturn例、主程序PUBLICx,yX=10Y=100

36、Dosub_1?X,Y702.7参数传递v接收参数的命令有vParameters,,形参私有变量vLParameters,,形参是局部变量712.7参数传递v调用格式有v格式1:vDo文件名With,v实参是常量,按值传递v实参是变量,按地址传,实参形参指同一个变量v格式2:文件名(,)v默认情况下都是按值传,如果实能是变量,可以通过命令重新设置参数传递方式vSetudfparmstovalue:按值传vSetudfparmstoreference:按引用传,形参改变时,实能也变72(12)下列函数中函数值为字符型的是A)DATE()B)TIME()C)YEAR()D)DATETIME()(5

37、)LEFT(“123456789”,6)的计算结果是_.(21)(21)在在Visual FoxProVisual FoxPro中,下面中,下面4 4个关于日期或日期时间的表达式中,错误的是个关于日期或日期时间的表达式中,错误的是A)2002.09.01 11:10:10:AM-2001.09.01 11:10:10AMA)2002.09.01 11:10:10:AM-2001.09.01 11:10:10AMB)01/01/2002+20B)01/01/2002+20C)2002.02.01+2001.02.01C)2002.02.01+2001.02.01D)2002/02/01-2001

38、/02/01 D)2002/02/01-2001/02/01 (2 2) 在在Visual FoxPro Visual FoxPro 中说明数组后,数组的每个元素在未赋值之前的默认值是中说明数组后,数组的每个元素在未赋值之前的默认值是【2 2】。 2002年年9月月20032003年年年年4 4月月月月123456.F.73(5)将内存变量定义为全局变量的VisualFoxPro命令A)LOCALB)PRIVATEC)PUBLICD)GLOBAL(24)在VisualFoxPro中,如果希望一个内存变量只限于在本过程中使用,说明这种内存变量的命令是:A)PRIVATEB)PUBLICC)LOC

39、ALD)在程序中直接使用的内存变量(不通过A、B、C说明)(25)在DOWHILEENDDO循环结构中,LOOP命令的作用是:A)退出过程,返回程序开始处B)转移到DOWHILE语句行,开始下一个判断和循环C)终止循环,将控制转移到本循环结构ENDDO后面的第一条语句继续执行D)终止程序执行74(7 7)Visual FoxProVisual FoxPro内存变量的数据类型不包括内存变量的数据类型不包括A A)数值型数值型 B B)货币型货币型 C C)备注型备注型 D D)逻辑型逻辑型20032003年年年年9 9月月月月75(30)在DOWHILEENDDO循环结构中,EXIT命令的作用是

40、A)退出过程,返回程序开始处B)转移到DOWHILE语句行,开始下一个判断和循环C)终止循环,将控制转移到本循环结构ENDDO后面的第一条语句继续执行D)终止程序执行(14)说明公共变量的命令关键字是(关键字必须拼写完整)。PUBLIC76(14)有如下赋值语句,结果为“大家好”的表达式是a=“你好”b=“大家”A)b+AT(a,1)B)b+RIGHT(a,1)C)b+LEFT(a,3,4)D)b+RIGHT(a,2)(5)如下程序段的输出结果是_。I=1DOWHILEI10I=I+2ENDO?IFir:sec:thii=3i=5i=9i=112004年年4月月1177(8)如下程序显示的结果

41、是【13】。s=1i=0dowhilei=1twotwoSUBSTR(one,i,1)ii1ENDDO?twofri:SEC:i=4I=3Two=”K”TWO=“KROW”I=3I=2“KROW”832007年年9月月12)命令?VARTYPE(TIME()结果是ACBDCTD出错13)命令?LEN(SPACE(3)-SPACE(2)的结果是A1B2C3D5(15)想要将日期型或日期时间型数据中的年份用4位数字显示,应当使用设置命令ASETCENTURYONBSETCENTURYOFFCSETCENTURYTO4DSETCENTURYOF4842008年年4月月(14)有下程序,请选择最后在屏

42、幕显示的结果:SETEXACTONs=niIFs=niIFs=ni?oneELSE?twoENDIFELSEIFs=ni?threeELSE?fourENDIFENDIFRETURNA)oneB)twoC)threeD)four85(14)在VisualFoxPro中,如果要在子程序中创建一个只在本程序中使用的变量XL(不影响上级或下级的程序),应该使用_说明变量。LOCAL862008年年9月月(14)ModifyCommand命令建立的文件的默认扩展名是A)prgB)appC)cmdD)exe(15)说明数组后,数组元素的初值是A)整数0B)不定值C)逻辑真D)逻辑假(17)下列程序段执行

43、以后,内存变量y的值是x=76543y=0DOWHILEx0y=x%10+y*10x=int(x/10)ENDDOA)3456B)34567C)7654D)7654387(19)设a=”计算机等级考试”,结果为”考试”的表达式是A)Left(a,4)B)Right(a,4)C)Left(a,2)D)Right(a,2)(23)欲执行程序temp.prg,应该执行的命令是A)DOPRGtemp.prgB)DOtemp.prgC)DOCMDtemp.prgD)DOFORMtemp.prg(7)LEFT(12345.6789,LEN(子串)的计算结果是【7】。1234882009年年3月月18.在V

44、isualFoxPro中,用于建立或修改程序文件的命令是A)MODIFYB)MODIFYCOMMANDC)MODIFYPROCEDURED)上面B和C都对19.在VisualFoxPro中,程序中不需要用PUBLIC等命令明确声明和建立,可直接使用的内存变量是A)局部变量B)私有变量C)公共变量D)全局变量9.在VisualFoxPro中,程序文件的扩展名是。.prg8913.在VisaulFoxPro中,有如下程序:*程序名:TEST.PRGSETTALKOFFPRIVATEX,YX=“数据库”Y=“管理系统”DOsub1?X+YRETURN*子程序:sub1PROCEDUsub1LOCAL

45、XX=“应用”Y=“系统”X=X+YRETURN执行命令DOTEST后,屏幕显示的结果应是。数据库系统数据库系统902009年9月v(13)计算结果不是字符串)计算结果不是字符串“Teacher”的语句是的语句是A)at(myTeacher,3,7)vB)substr(MyTeacher,3,7)C)right(MyTeacher,7)vD)left(Teacher,7)91(19)下列程序段执行时在屏幕上显示的结果是x1=20x2=30DOtestWITHx1,x2?x1,x2PROCEDUREtestPARAMETERSa,bx=aa=bb=xENDPROA)3030B)3020C)202

46、0D)2030922010年3月11、在VisualFoxpro中,编译后的程序文件的扩展名为A.PRGB.EXEC.DBCD.FXP9315、有如下赋值语句,结果为“大家好”的表达式是a=”你好”b=”大家”A.b+AT(a,1)B.b+RIGHT(a,1)C.b+LEFT(a,3,4)D.b+RIGHT(a,2)解析:一个汉字占两个字符,从解析:一个汉字占两个字符,从a的右边取一个字符要用函数的右边取一个字符要用函数RIGHT(a,2)9429、下列程序段的输出结果是ACCEPTTOAIFA=123S=0ENDIFS=1?SA.0B.1C.123D.由A的值决定答案:答案:B解析:不论解析

47、:不论A为多少,都要执行为多少,都要执行S=1952010年9月(12)设A=6*8-2、B=6*8-2,C=6*8-2,属于合法表达式的是A)A+BB)B+CC)A-CD)C-B(15)连续执行以下命令,最后一条命令的输出结果是SETEXACTOFFa=北京”b=(a=“北京交通”)?bA)北京B)北京交通C).F.D)出错96(16)设x=123,y=123,k=y,表达式x+&k的值是A)123123B)246C)123yD)数据类型不匹配(17)运算结果不是2010的表达式是A)int(2010.9)B)round(2010.1,0)C)ceiling(2010.1)D)floor(2

48、010.9)97(7)表达式score=0的数据类型是_【7】_。(8)A=10B=20?IF(AB,A大于B,A不大于B)执行上述程序段,显示的结果是_【8】_逻辑型逻辑型A不大于不大于B98(12)执行如下命令的输出结果是?15%4,15%-4A)3-1B)33C)11D)1-12011年3月(23)在VisualFoxPro中,假设student表中有40条记录,执行下面的命令后,屏幕显示的结果是?RECCOUNT()A)0B)1C)40D)出错99(6)表达式EMPTY(.NULL.)的值是【6】。逻辑假逻辑假EMPTY(参数):当参数为(参数):当参数为0,.f.,“”等值时为真。等

49、值时为真。ISNULL(参数):当参数为(参数):当参数为.NULL.时结果为真,其余任何值时结果为真,其余任何值结果均为假。结果均为假。1002011年9月v(14)假设变量a的内容是“计算机软件工程师”,变量b的内容是“数据库管理员”,表达式的结果为“数据库工程师”的是A)left(b,6)-right(a,6)B)substr(b,1,3)-substr(a,6,3)C)A和B都是D)A和B都不是v(20)在VisualFoxPro中,如果希望跳出SCANENDSCAN循环体外执行ENDSCAN后面的语句,应使用A)LOOP语句B)EXIT语句C)BREAK语句D)RETURN语句101

50、2011年9月v(6)为了使日期的年份显示4位数字应该使用SET CENTURY 【6】 命令进行设置。vONv(7)在Visual FoxPro中可以使用命令DIMENSION 或 【7】 说明数组变量。vDECLAREv(8)在Visual FoxPro中表达式(1+2(1+2)/(2+2)的运算结果是 【8】 。v2.25v(9)如下程序的运行结果是 【9】 。 CLEARSTORE 100 TO x1,x2SET UDFPARMS TO VALUEDO p4 WITH x1,(x2)? x1, x2* 过程p4PROCEDURE P4PARAMETERS x1,x2STORE x1+1 to x1STORE x2+1 to x2ENDPROC101 100102

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号