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