1、国家二级 VF机试(程序设计基础)模拟试卷 6及答案与解析 一、选择题 1 如果内存变量和字段变量均有变量名 “姓名 ”,那么引用内存变量的正确方法是 ( A) M姓名 ( B) M姓名 ( C)姓名 ( D) A)和 B)都可以 2 在 Visual FoxPro中,要想将日期型或日期时间型数据中的年份用 4位数字显示,应当使用设置命令 ( A) SET CENTURY ON ( B) SET CENTURY TO 4 ( C) SETYEARTO 4 ( D) SETYAERTO yyyy 3 说明数组后,数组 元素的初值是 ( A)整数 0 ( B)不定值 ( C)逻辑真 ( D)逻辑假
2、 4 在 Visual FoxPro中,如果希望内存变量只能在本模块 (过程 )中使用,不能在上层或下层模块中使用,说明该种内存变量的命令是 ( A) PRIVATE ( B) LOCAL ( C) PUBLIC ( D)不用说明,在程序中直接使用 5 从内存中清除内存变量的命令是 ( A) Release ( B) Delete ( C) Erase ( D) Destroy 6 如果有定义 LOCAL data, data的初值是 ( A) 整数 0 ( B)不定值 ( C)逻辑真 ( D)逻辑假 7 执行下列命令序列后,最后一条命令的显示结果是 DIMENSION M(2, 2) M(1
3、, 1)=10 M(1, 2)=20 M(2, 1)=30 M(2, 2)=40 7M(2) ( A)变量未定义的提示 ( B) 10 ( C) 20 ( D) F 8 在 Visual FoxPro中,宏替换可以从变量中替换出 ( A)字符串 ( B)数值 ( C)命令 ( D)以上三种都可能 9 在 Visual FoxPro中,程序中不需要用 PUBLIC等命令 明确声明和建立,可直接使用的内存变量是 ( A)局部变量 ( B)私有变量 ( C)公共变量 ( D)全局变量 10 语句 LIST MEMORY LIKE a*能够显示的变量不包括 ( A) a ( B) a1 ( C) ab
4、2 ( D) ba3 11 用 DIMENSION命令定义数组后,数组各元素的值是 ( A)无定义 ( B) 0 ( C) T ( D) F 12 要将显示日期值时所用的分隔符设置为竖杠 “ ”,错误的设置命令是 ( A) SETMARKTO“ “ ( B) SETMARKTO ( C) SET MARK TO ( D) SET MARK TO 13 下面命令的输出结果是: DECLARE a(10)?a(0) ( A) E ( B) T ( C) 0 ( D)出错 14 设 d=len(time(),命令 ?VARTYPE(d)的输出值是 ( A) L ( B) C ( C) N ( D)
5、D 15 在设置日期格式时,不能使用的设置命令是 ( A) SET DATE DMY ( B) SET DATE MDY ( C) SET DATE MYD ( D) SET DATE YMD 16 下面命令的输出结果是: DIMENSION a(10)?a(1) ( A) F ( B) T ( C) 0 ( D)未定义 17 设 d=time(),命令 ?VARTYPE(d)的输出值是 ( A) L ( B) C ( C) N ( D) D 18 表示 2012年 9月 10日的日期常量是 ( A) 2012-09-10) ( B) -2012-09-10 ( C) 2012-09-10 (
6、 D) 2012-09-10 19 在 Visual FoxPro中,表示 2012年 9月 10日 10点整的日 期时间常量是 ( A) 2012-09-10 10: 00: 00) ( B) -2012-09-10-10: 00: 00 ( C) 2012 09 10 10: 00: 00 ( D) 2012-09-10-10: 00: 00) 20 有如下赋值语句: a: “计算机 “”, b=“微型 “,结果为 “微型机 “的表达式是 ( A) b+LEFT(a, 3) ( B) b+RIGHT(a, 1) ( C) b+LEFT(a, 5, 3) ( D) b+RIGHT(a, 2)
7、 21 在 Visual FoxPro中,有如下内存变量赋 值语句: X=2001-07-28 10: 15: 20 PM) Y=F M= 123 45 N=123 45 Z=“123 24“ 执行上述赋值语句之后,内存变量 X、 Y、 M、 N和 Z的数据类型分别是 ( A) D、 L、 Y、 N、 C ( B) T、 L、 Y、 N、 C ( C) T、 L、 M、 N、 C ( D) T、 L、 Y、 N、 S 22 设 a=“计算机等级考试 “,结果为 “考试 “的表达式是 ( A) Left(a, 4) ( B) Right(a, 4) ( C) Left(a, 2) ( D) Ri
8、ght(a, 2) 23 下列程序段 执行后,内存变量 s1的值是 s1=“network“ s1=stuff(s1, 4, 4, “BIOS“) ?s1 ( A) network ( B) netBIOS ( C) net ( D) BIOS 24 命令 ?VARTYPE(TIME()的结果是 ( A) C ( B) D ( C) T ( D)出错 25 命令 ?LEN(SPACE(3)-SPACE(2)的结果是 ( A) 1 ( B) 2 ( C) 3 ( D) 5 26 要想将日期型或日期时间型数据中的年份用 4位数字显示,应当使用设置命令 ( A) SET CENTURY ON ( B
9、) SET CENTURY OFF ( C) SET CENTURY TO 4 ( D) SET CENTURY OF 4 27 设 X=6=6 5,命令 ?VARTYPE(X)的输出是 ( A) N ( B) C ( C) L ( D)出错 28 设 X=“11“, Y=“1122“,下列表达式结果为假的是 ( A) NOT(X=Y)AND(X Y) ( B) NOT(X Y)OR( Y) ( C) NOT(X =Y) ( D) NOT(X Y) 29 在下列的 Visual FoxPro表 达式中,运算结果不为逻辑真的是 ( A) EMPTY(SPACE(0) ( B) LIKE(xy*,
10、 xyz) ( C) AT(xy, abcxyz) ( D) ISNULL( NULL ) 30 计算结果不是字符串 “Teacher”的语句是 ( A) at(“MyTeacher“, 3, 7) ( B) substr(“MyTeacher“, 3, 7) ( C) right(“MyTeacher“, 7) ( D) left(“Teacher“, 7) 31 有如下赋值语句,结果为 “大家好 ”的表达式是 a=“你好 “ b=“大家 “ ( A) b+AT(a, 1) ( B) b+RIGHT(a, 1) ( C) b+LEFT(a, 3, 4) ( D) b+RIGHT(a, 2)
11、32 在下面的 Visual FoxPro表达式中,运算结果为逻辑真的是 ( A) EMPTY( NULL ) ( B) LIKE(xy?, xyz) ( C) AT(xy, abcxyz) ( D) ISNULL(SPACE(0) 33 设 A: 6*8 2、 B=6*8 2、 C=“6*8 2“,属于合法表达式的是 ( A) A+B ( B) B+C ( C) A C ( D) C B 34 设 x=“123“, y=123, k=“y“,表达式 x+&k的值是 ( A) 123123 ( B) 246 ( C) 123y ( D)数据类型不匹配 35 运算结果不是 2010的表达式是 (
12、 A) int(2010 9) ( B) round(2010 1, 0) ( C) ceiling(2010 1) ( D) floor(2010 9) 36 表达式 LEN(TRIM(SPACE(2)+abc SPACE(3)的计算结果是: ( A) 3 ( B) 5 ( C) 6 ( D) 8 国家二级 VF机试(程序设计基础)模拟试卷 6答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 当出现内存变量和字段变量同名时,如果要访问内存变量,则必须在变量名前加上前缀 M (或 M )。 【知识模块】 程序设计基础 2 【正确答案】 A 【试题解析】 用于决定如何显示或解释一个日期
13、数据年份。格式为: SET CENTLJRY ON OFFITO世纪值 ROLLOVER年份参照值 说明: ON显示世纪,即用 4位数字表示年份。 OFF不显示数 字,即用 2位数字表示年份。它是系统默认的设置。 TO决定如何解释一个用 2位数字表示年份的日期所处的世纪。具体地说,如果该日期的 2位数字年份大于等于年份参照值,则它所处的世纪即为世纪值;否则为世纪值 +1。 【知识模块】 程序设计基础 3 【正确答案】 D 【试题解析】 数组在使用之前一般要用 dimension或 declare命令显式创建,创建后,系统自动给每个数组元素赋以逻辑假 F。 【知识模块】 程序设计基础 4 【正确
14、答案】 B 【试题解析】 Visual FoxPro中的内存变量分为公共变量、私有变量和局部变量。其中,局部变量只能在建立它的模块中使用,不能在上层和下层模块中使用, LOCAL命令定义局部变量,格式是: LOCAL内存变量表。 【知识模块】 程序设计基础 5 【正确答案】 A 【试题解析】 内存变量的清除有四种格式: CLEAR MEMORY; RELEASE内存变量名表; RELEASE ALL EXTENDED; RELEASEALLLINK通配符 EXCEPT通配符 。 【知识模块】 程序设计基础 6 【正确答案】 D 【试题解析】 LOCAL命令定义局部变量,其格式是: LOCAL内
15、存变量表, LOCAL命令建立指定的局部变量,并为它们赋初始值逻辑假 ( F )。 【知识模块】 程序设计基础 7 【正确答案】 C 【试题解析】 DIMENSION命令是创建数组命令,其格式是: DIMENSION数组名 (下标上限 1 ,下标上限 2 ), 。本题定义的是一个二维数组,可以用一维数组的形式访问二维数组。例如 M(1, 1)=M(1), M(1, 2)=M(2)。 【知识模 块】 程序设计基础 8 【正确答案】 D 【试题解析】 宏替换函数是替换出字符型变量的内容,格式为: &字符变量 。宏替换的内容可以是字符串,也可以是数值变量的值,或者执行的某条命令。如果该函数与其后面的
16、字符没有明显的分界,则要用 “ ”作为函数结束的标志。宏替换可以嵌套使用。 【知识模块】 程序设计基础 9 【正确答案】 B 【试题解析】 在 Visual FoxPro中,根据变量的作用域来分,内存变量可分为私有变量、局部变量和全局变量。全局变量是指在任何模块中都可使用的变量, 要用 public命令建立;私有变量是在程序中直接使用 (没有通过 public和 local命令事先声明 )而由系统自动隐含建立的变量,其作用域是建立变量的模块及其下属的各层模块;局部变量只能在建立它的模块中使用,不能在上层或下层模块中使用,用 local命令建立。 【知识模块】 程序设计基础 10 【正确答案】
17、D 【试题解析】 内存变量显示有两种格式 格式 1: LIST MEMORYLIKE通配符 TOPRINTERITO FILE文件名 格式 2: DISPLAY MEMORY LIKE 通配符 TO PRINTER TO FILE文件名 格式 1表示一次性显示所有与通配符匹配的内存变量,在显示内存变量时不暂停,直到所有变量显示结束。 格式 2和格式 1的区别是格式 2分屏显示变量,每显示一屏就暂停,等待用户按任意键继续显示。 LIKE短语只显示与和通配符相匹配的内存变量。 Visual FoxPro命令中的通配符包括 “*”和 “?”,其中, “*”表示多个字符, “?”表示一个字符。 例如:
18、a*可以表示 ab、 ac、 abc等所有以字母 a开头的变量。 【知识模块】 程序设计基础 11 【 正确答案】 D 【试题解析】 本题考查通过 DIMENSION命令定义数组。数组是内存中连续的一片内存区域,它由一系列元素组成,每个数组元素可通过数组名及相应的下标来访问。每个数组元素相当于一个简单变量,可以给各元素分别赋值。数组在使用前要使用 DIMENSION或 DECLARE命令定义,指定数组是一维数组还是二维数组、数组名和数组大小。数组大小由下标值的上、下限决定,下限规定为 1。数组的定义格式说明如下: DIMENSION数组名 (下标上限 1 ,下标上限 2 ), DECARE数组
19、名 (下标上限 1 ,下标上限 2 ), 以上两种格式的功能完全相同。数组创建后,系统自动给每个数组元素赋以逻辑假 ( F )。 【知识模块】 程序设计基础 12 【正确答案】 D 【试题解析】 在 VFP中,设置显示日期值时所用的分隔符的命令为: SET MARK TO日期分隔符 ,指定日期分隔符为 “-”、 “ ”等。如果仅执行 SET MARK TO命令,没有指定任何分隔符,表示恢复系统默认的斜杠分隔符。 【知识模块】 程序设计基础 13 【正确答案】 D 【试题解析】 在 VFP中, DECLARE a(10)语句定义了一维数组 a(10),并且其每个数组元素的值被默认地赋予 f逻辑值
20、。数组元素的下标变量起始值为 1。 【知识模块】 程序设计基础 14 【正确答案】 C 【试题解析】 在 VFP中, LENf(字符表达式 )函数的返回指定字符表达式的长度,即所包含的字节数,需要注意的是一个汉字占两个字节,而其他的字符只占一个字节,返回值为数值型。 【知识模块】 程序设计基础 15 【正确答案】 C 【试题解析】 本题考查设置日 期格式 SET DATE命令的使用。格式为: SET DATETOAMERICAN ANSI BRITISH FRENCH GERMANITALIAN JAPAN TAIWAN USA MDY DMY YMD SHORT LONG说明:下表列出了有效
21、的设置值及其对应的日期格式【知识模块】 程序设计基础 16 【正确答案】 A 【试题解析】 本题考查用 DIMENSION定义一维数组。在 VFP中,DIMENSIONa(10)语句定义了一维数组 a(10),并且其每个数组元素的值被默认地赋予逻 辑假 ( F )。 【知识模块】 程序设计基础 17 【正确答案】 B 【试题解析】 本题考查 time()函数。 TIME()返回系统当前时间,时间为 24小时制,格式为: hh: mm: ss,函数值为字符型。 【知识模块】 程序设计基础 18 【正确答案】 A 【试题解析】 本题考查日期常量的合法格式。在 vfp中,日期型常量其界定符都是一对花
22、括号。花括号中包括年、月、日 3部分,各部分之间用分隔符分隔。常用的分隔符有斜杠 ( )、连字符 (-)、句点 ( )和空格等。日期型数据用 8个字节表示 。日期型常量关键是要有定界符 和托字符 。 【知识模块】 程序设计基础 19 【正确答案】 C 【试题解析】 本题考查日期时间常量的合法格式。在 VFP中,日期时间型常量包括日期和时间两部分内容: 日期,时间 。日期部分与日期型常量相似;时间部分的格式为: hh: mm: ssAM PM。其中 hh、 mm和 ss分别代表时、分和秒,默认值分别为 12、 0和 0, AM(或 A)和 PM(或 P)分别代表上午和下午,默认值为 AM,如果指
23、定的时间大于等于 12,则系统自动转为下午时间。日 期时间型数据用 8个字节存储。日期部分的取值范围与日期型数据相同,时间部分的取值范围是: 00: 00: 00 AM 11: 59: 59 PM。 【知识模块】 程序设计基础 20 【正确答案】 D 【试题解析】 本题主要考查的是取子串函数的使用,其中 LEFT()表示从给定字符串的左端取制定长度的子串,而 RIGHT()函数是从给定字符串的右侧取指定长度的子串,另外,一个汉字在计算机中占两个字符,因此,要取得一个完整的汉字字符,必须指定字符长度为 2。 从字符串 “计算机 ”中,利用 RlGHT()函数,从右侧取 得 “机 ”字符,注意,
24、LEFT和 RIGHT函数只能从左边或右边第一个字符开始截取指定长度的字符串,而不能从指定位置开始截取指定长度的字符串。 【知识模块】 程序设计基础 21 【正确答案】 B 【试题解析】 题主要考查的是 VF的数据类型。在 VF中,变量的类型可以改变,它随变量值类型的不同而不同。另外, VF中常量的类型可以根据其定界符进行判断。 本题中,变量 X的值是一个日期时间型数据,用大写字母 T表示;变量 Y的值是一个逻辑型数据,用大写字母 L表示;变量 M的值是一个货币型数据,用大写字母 Y表示:变 量 N的值是一个数值型数据,用大写字母 N表示;变量 z的值是一个字符型数据,用大写字母 C表示。 【
25、知识模块】 程序设计基础 22 【正确答案】 B 【试题解析】 left()函数从指定字符串的左端取一个指定长度的子串作为函数值,right()函数从指定字符串的右端取一个指定长度的子串做函数值。一个汉字占两个单位的长度,故 “考试 ”两个字应该从 “计算机等级考试 ”字符串的右边取四个单位长度。 【知识模块】 程序设计基础 23 【正确答案】 B 【试题解析】 本题考查的是一个子串替换函数 ,该函数的功能是在第一个字符串中,从指定位置开始,用第 2个字符串替换指定长度的字符。不难看出本题的答案选 B),即用 BIOS字符串替换 network字符串中,从第 4个字符开始的后面 4个字符。 【
26、知识模块】 程序设计基础 24 【正确答案】 A 【试题解析】 VARTYPE(表达式 )函数用于测试表达式的类型,返回一个大写字母; TIME()函数是一个时间函数,以 24小时制的 hh: mm: ss格式返回当前系统时间,函数值为字符型。在 VisuaI FoxPro中,字母 C表示字符型数据。 【 知识模块】 程序设计基础 25 【正确答案】 D 【试题解析】 LEN()函数返回指定字符表达式的长度,即所包含的字节数;SPACE()函数返回指定个数的空格字符组成的字符串。而字符表达式中的 “-”表示空格移位连接,其含义是连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部
27、。因此 SPACE(2)-SPACE(3)运算后的长度是 5。 【知识模块】 程序设计基础 26 【正确答案】 A 【试题解析】 Visual FoxPro通过 SET CENTURY命令设置显示日期型 数据时是否显示世纪。其命令格式是: SET CENTURY ON OFF (TO世纪值 ROLLOVER年份参照值 )。其中, ON为 4位数年份; OFF为 2位数年份; TO选项确定用 2位数字表示年份所处的世纪。具体地说,如果该日期的 2位数字年份大于等于 年份参照值 ,则它所处的世纪即为 世纪值 ,否则为 世纪值 +1。 【知识模块】 程序设计基础 27 【正确答案】 C 【试题解析】
28、 本题表达式 “X=6 5”中,先计算 6 5的关系运算,结果为逻辑假( F );然后将逻辑假的值赋给 X,所 以 X为逻辑型, ?VARTYPE(X)的输出值为 L(L表示逻辑型 )。 【知识模块】 程序设计基础 28 【正确答案】 D 【试题解析】 =是字符串精确比较关系运算符,是子串包含测试关系运算符,表示不等于, =表示大于等于。选项 D)中 X Y求的是字符串 “11“是否包含在 “1122“中,结果为 T, NOT是逻辑非运算符,所以 NOT(X Y)的值为 F。 【知识模块】 程序设计基础 29 【正确答案】 C 【试题解析】 选项 A)中的 EMPTY()函数是判断表达式结果是
29、否为 “空 ”值;选项B)中的 LIKE()函数是比较两个字符串对应位置上的字符是否匹配,选项 B)中的两个表达式对应的字符都匹配,函数返回 T;选项 C)中的 AT()函数是求子串位置的函数,其函数值为数值型;选项 D)中的 ISNULL()函数是空值 (NULL值 )测试函数,判断一个表达式的运算结果是否为 NULL值。 【知识模块】 程序设计基础 30 【正确答案】 A 【试题解析】 T()函数的格式为: AT(字符表达式 1,字符表达式 2 ,数值表达式 ) 它的函数值为数值型。如果字符表达式 1 是字符表达式 2的子串,则返回字符表达式 1值的首字符在字符表达式 2值中位置;若不是子
30、串,则返回0。 【知识模块】 程序设计基础 31 【正确答案】 D 【试题解析】 本题中, a和 b是字符型变量, “+”为字符串连接运算符,用来将前后两个字符串首尾相接。 LEFT (字符表达式,长度 )从指定表达式值的左端取一个指定长度的子串作为函数值。 RIGHT(字符表达式,长度 )从指定表达式值的右端取一个指定长度的子串作为函数值。 函数 AT()的格式是: AT(字符表达式 1, 字符表达式 2 ,数值表达式 ),功能是:如果字符表达式 1是字符表达式 2的子串,则返回字符表达式 1值的首字符在字符表达式 2中的位置;若不是子串,则返回 0。函数值为数值型。 一个汉字的长度为 2。
31、 【知识模块】 程序设计基础 32 【正确答案】 B 【试题解析】 EMPTY(表达式,返回值:逻辑型。 功能:根据指定表达式的运算结果是否为 “空 ”值,返回逻辑真 ( T )或返回逻辑假 ( F )。 LIKE(字符表达式 1,字符表达式 2 ),返回值:逻辑型。 功能:比较 两个字符串对应位置上的字符,若所有对应字符都相匹配,函数返回逻辑真 ( T ),否则返回逻辑假 ( F )。字符表达式 1中可以包含通配符 *和 ?,其中, *可以与任何数目的字符相匹配, ?可以与任何单个字符相匹配。 AT(字符表达式 1,字符表达式 2 ,数值表达式 1 ),返回值:数值型。 功能:如果字符表达式
32、 1是字符表达式 2的子串,则返回字符表达式 1值的首字符在字符表达式 2值中的位置;若不是子串,则返回 0。 ISNULL(表达式 ),返回值:逻辑型。 功能:判断一个表达式的运算结果 是否是 NULL值,若是 NULL值则返回逻辑真( T ),否则返回逻辑假 ( F )。 【知识模块】 程序设计基础 33 【正确答案】 C 【试题解析】 在 VFP中,字符型常量应使用定界符,定界符包括单引号、双引号和方括号。字符串运算符有两个: “+”和 “ ”。 “+”将前后两个字符串首尾连接形成一个新的字符串; “ ”连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部。 题中 6*8
33、2和 “6*8 2“都属于字符型常量,故变量 A和变量 C都是字符型变量,二者可以做连接运算,而变量 B是数值型变量,故不能和 A或 B进行运算。 【知识模块】 程序设计基础 34 【正确答案】 D 【试题解析】 &字符型变量为宏替换函数,用来替换字符型变量的内容,即函数值是变量中的字符串。由此可知,题中 &k=&“123“=123,也就是说 k的值为数值型,而 x=“123“,为字符型数据,故 x和 &k数据类型不匹配,不能做运算。 【知识模块】 程序设计基础 35 【正确答案】 C 【试题解析】 INT(数值表达式 ):返回指定数值表达式的整数部分。 CEILING(数值表达 式 ):返回
34、大于等于指定数值表达式的最小整数。 FLOOR(数值表达式 ):返回小于等于指定数值表达式的最大整数。 ROuND(数值表达式 1,数值表达式 2 ):返回指定表达式在指定位置四舍五入后的结果。 本题中, Int(2010 9)=2010, Round2010 1, 0)=2010, Ceiling(2010 1)=2011,Floor(2010 9)=2010。 【知识模块】 程序设计基础 36 【正确答案】 B 【试题解析】 本题考查 VFP中函数的运用和字符串连接符 “+”、 “ ”。在本题的表达式中, SPACE(2)+abc-SPACE(3)的运算结果为字符串 abc前连 2个空格,再连接 3个空格。 TRIM(字符串表达式 )删除字符串的右侧空格表达式。再用函数LEN()求字符串的长度。 【知识模块】 程序设计基础