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