1、国家二级 VF 机试(VISUAL+FOXPRO 数据库及其操作)-试卷 1 及答案解析(总分:50.00,做题时间:90 分钟)一、选择题(总题数:25,分数:50.00)1.在 SQL 语句中,与表达式“序号 NOT IN(“r1“,“r2“)”功能相同的表达式是(分数:2.00)A.序号=“r1“AND 序号=“r2“B.序号!=“r1“OR 序号#“r2“C.序号b,a,b) e=IIF(cd,c,d)(分数:2.00)A.10B.20C.30D.55015.在 Visual FoxPro 中,有如下程序,函数 IIF()返回值是( )。 *程序 PRIVATE X,Y STORE“男
2、“TO X Y=LEN(X)+2 ? IIF(YA.女B.男C.TD.F16.打开数据库 abc 的正确命令是(分数:2.00)A.OPEN DATABASE abcB.USE abcC.USE DATABASE abeD.OPEN abc17.在 Visual FoxPro 中,定义数据的有效性规则时,在规财框输入的表达式的类型是(分数:2.00)A.数值型B.字符型C.逻辑型D.日期型18.SQL 命令:ALTER TABLE S ADD 年龄 I CHECK 年龄15 AND 年龄“r1“OR 序号!=“12“D.序号!=“r1“AND 序号!=“r2“ 解析:解析:逻辑运算符有 3 个
3、:NOT或!(逻辑非)、AND(逻辑与)及OR(逻辑或),运算符“!=”表示“不等于”,因此与本题表达式“序号 NOT IN(“r1“,“r2“)”等价的只有 D 选项“序号!=“r1“AND 序号!=“r2“”。2.运算结果不是 2015 的表达式是(分数:2.00)A.int(20159)B.round(20151,0)C.ceiling(20151) D.floor(20159)解析:解析:INT()、CEILING()和 FLOOR()均为求整数函数,INT()返回指定数值表达式的整数部分,CEILING()返回不小于指定数值表达式的最小整数,FLOOR()返回不大于指定表达式的最大整
4、数。ROUND(,)为四舍五入函数,返回指定表达式在指定位置四舍五入后的结果:如果“表达式 2”0,表示要保留的小数位数;如果“表达式 2”3.假设变量 a 的内容是“计算机软件工程师”,变量 b 的内容是“数据库管理员”,表达式的结果为“数据库工程师”的是(分数:2.00)A.left(b,6)一 right(a,6) B.substr(b,1,3)一 substr(a,6,3)C.left(b,6)一 substr(a,6,3)D.substr(b,1,3)一 right(a,6)解析:解析:本题考查取子串函数,其中 LEFT()从指定表达式值的左端取一个指定长度的子串作为函数值,BIGH
5、T()从指定表达式值的右端取一个指定长度的子串作为函数值,SUBSTR()从指定表达式值的指定起始位置取指定长度的子串作为函数值。“一”是常用的字符预算符,用于连接前后两个字符串,并将前字符串尾部的空格移到合并后的字符串尾部。本题仅 A 选项的运算结果是“数据库工程师”。4.下列表达式中,表达式返回结果为F的是(分数:2.00)A.AT(“A“,“BCD“)B.信息$“管理信息系统“ C.ISNULL(NULL)D.SUBSTB(“计算机技术“,3,2)解析:解析:AT()为求子串位置函数,AT()的函数值为数值型。如果是的子串。则返回的首字符在中的位置;若不是子串,则返回 0。“$”为子串包
6、含测试运算符,表达式“$”的规则是为,前者是后者的一个子串,结果为真,否则为假。IS-NULL()为空值测试函数,用于判断一个表达式的运算结果是否为 NULL 值,若是 NULL 值则返回逻辑真(T),否则返回逻辑假(F)。SUBSTR()为取子串函数,SUBSTR()从指定表达式值的指定起始位置取指定长度的子串作为函数值。本题只有 B 返回结果为 F。5.下列程序段执行后,内存变量 sl 的值是 s1=“奥运会游泳比赛“ s1=right(s1,4)+substr(s1,7,4)+left(s1,4) ?s1(分数:2.00)A.奥运比赛游泳B.游泳比赛奥运C.比赛游泳奥运 D.奥运游泳比赛
7、解析:解析:RIGHT()从指定表达式值的右端取一个指定长度的子串作为函数值,SUBSTR()从指定表达式值的指定起始位置取指定长度的子串作为函数值。LEFT()从指定表达式值的左端取一个指定长度的子串作为函数值。本题 s1=“奥运会游泳比赛“,right(s1,4)=比赛,substr(s1,7,4)=游泳,left(s1,4)=奥运,即 C 选项正确。6.假设 s 的值是“浙江电视台中国好声音”,如下函数结果返回“中国好声音”的是(分数:2.00)A.left(8,5)B.left(8,10)C.right(s,5)D.right(s,10) 解析:解析:LEFT(,)和 RIGHT(,)
8、均为取子串函数,其中 LEFT()从指定表达式值的左端取一个指定长度的子串作为函数值,RIGHT()从指定表达式值的右端取一个指定长度的子串作为函数值。根据题目要求,right(s,10)的返回值为”中国好声音”。故本题 D 为正确选项。7.有如下赋值语句,结果为“大家好”的表达式是 a=“你好“ b=“大家“(分数:2.00)A.b+AT(a,1)B.b+RIGHT(a,1)C.b+LEFT(a,3,4)D.b+RIGHT(a,2) 解析:解析:AT()为求子串位置函数,AT()的函数值为数值型。如果是的子串,则返回的首字符在中的位置;若不是子串,则返回 0。RIGHT()和 LEFT()均
9、为取子串函数,其中 LEFT()从指定表达式值的左端取一个指定长度的子串作为函数值,RIGHT()从指定表达式值的右端取一个指定长度的子串作为函数值。在Visual FoxPro 中,汉字的长度为 2。本题仅 D 选项的运算结果为“大家好”。8.下列程序段执行后,内存变量 s1 的值是 s1=“奥运会游泳比赛“ s1=stuff(s1,7,4,“田径“) ?s1(分数:2.00)A.奥运会游泳比赛B.奥运会田径比赛 C.奥运会田径D.奥运会游泳解析:解析:STUFF(,)为子串替换函数,用值替换中由和指定的一个子串。替换和被替换的字符个数不一定相等。如果值是 0,则插在由指定的字符前面。如果值
10、是空串,那么中由和指定的子串被删去。本题正确答案为 B。9.执行下列命令后,输出的结果是 A=“+“ ?“5&A7=“+SIR(5&A7,2)(分数:2.00)A.5+7=12 B.5+7=57C.5&A7=12D.5&A7=57解析:解析:STR(,)将指定的数值表达式转换为字符串,是转换后的字符串长度,默认值为 10,是保留的小数位数,并进行四舍五入,默认值为 0。宏替换字符”,&替换出字符变量的内容,也就是说的值是变量中的字符串。则&A为“=”,5&A7 为 5+7,“5&A7=”=“5+7=”;STR(5&A7,2)=STR(5+7,2)=STR(12,2)=“12”;故 A 选项正确
11、。10.设有借阅表,查询 2009 年被借阅过的图书编号和借书日期(日期型字段),正确的 SQL 语句是(分数:2.00)A.SELECT 图书编号,借书日期 FROM 借阅 WHERE 借书日期=2009B.SELECT 图书编号,借书日期 FROM 借阅 WHERE year(借书日期)=2009 C.SELECT 图书编号,借书日期 FROM 借阅 WHERE 借书日期=year(2009)D.SELECT 图书编号,借书日期 FROM 借阅 WHERE year(借书日期)=year(2009)解析:解析:本题考察表达式的书写,“year(借书日期)=2009”表示借书日期的年份为 2
12、009。11.设 d=len(time(),命令?VARTYPE(D)的输出值是(分数:2.00)A.LB.CC.N D.D解析:解析:LEN()为求字符串长度函数返回指定字符表达式的长度,即所包含的字符个数,函数值为数值型。VARTYPE(,)为数据类型测试函数,测试的类型,返回一个大写字母。字母的含义如下表:12.下面表达式中,运算结果为 12 的是:(分数:2.00)A.INT(116)B.ROUND(114,O)C.FLOOR(116)D.CEILING(114) 解析:解析:INT、FLOOR 和 CEILING 为求整数函数,其中 INT()返回指定数值表达式的整数部分,FLOOR
13、()返回不大于指定表达式的最大整数,CEKJNG()返回不小于指定数值表达式的最小整数。ROUND 为四舍五入函数,ROUND(,)返回指定表达式在指定位置四舍五入后的结果如果“表达式 2”0,表示要保留的小数位数;如果“表达式 2”13.表达式 IIF(“123“=“12“,12,“ab“)的值是(分数:2.00)A.数值 12B.字符串 12C.字符串 ab D.出错解析:解析:IIF(,)为条件测试函数,测试的值。若为逻辑真T,函效返回的值;若为逻辑假F,函数返回的值。和的类型不要求相同。“=”用来进行精确比较,只有当两个字符串完全相同(包括空格及位置),才会为逻辑真T。因此本题的运算结
14、果为字符串曲。14.下列程序段执行后,内存变量 e 的值是 a=10 b=20 c=30 d=IIF(ab,a,b) e=IIF(cd,c,d)(分数:2.00)A.10B.20C.30 D.550解析:解析:IIF(,)为条件测试函数。测试的值。若为逻辑真T函数返回的值;若为逻辑假F,函数返回的值。和的类型不要求相同。因此本题选 C。15.在 Visual FoxPro 中,有如下程序,函数 IIF()返回值是( )。 *程序 PRIVATE X,Y STORE“男“TO X Y=LEN(X)+2 ? IIF(YA.女 B.男C.TD.F解析:解析:IIf 函数测试逻辑表达式的值,若为逻辑真
15、,函数返回前表达式的值,否则返回后表达式的值;Len 函数中一个中文字符占两个字符,所以 Y 的值为 4,Y15 AND 年龄30,该命令的含义是(分数:2.00)A.给数据库表 S 增加一个“年龄”字段 B.将数据库表 s 中“年龄”字段取值范围修改为 15 至 30 岁之间C.给数据库表 S 中“年龄”字段增加一个取值范围约束D.删除数据库表 s 中的“年龄”字段,字段取值范围为 5 至 30 岁之间解析:解析:修改表结构的命令是 ALTER TABLE,该命令三种格式。本题中的 SWQL 命令用于向表中添加新的字段和新的索引,其语句说明如下: ALTER TABLE 修改指定的表; AD
16、DCOLUMN向表中添加新的字段; ADD PRIMARY KEYTAG 向表中添加主索引; ADD UNIQUETAG 向表中添加候选索引; NULLI NOT NULL 指定字段可以为空或不能为空。 本题 SQL 命令是给数据库表 S 增加一个“年龄”字段。19.假设表文件 TESTDBF 已经在当前工作区打开,要修改其结构,可使用的命令(分数:2.00)A.MODI STRU B.MODI COMM TESTC.MODI DBFD.MODI TYPE TEST解析:解析:“MODIFY COMMAND”用来建立和编辑程序,MODIFY STRU 命令可修改表的结构,所以答案为A。20.向
17、 student 表插入一条新记录的正确 sQL 语句是(分数:2.00)A.APPEND INTO student VALUES(0401,王芳,女,18)B.APPEND student VALUES(0401,王芳,女,18):C.INSERT INTO student VALUES(0401,王芳,女,18) D.INSERT student VALUES(0401,王芳,女,18)解析:解析:INSERT INTO(字段名 1,字段名 2,)VALUES(字段值 1,字段值 2,)命令用于插入数据,只有 C 选项的 SQL 命令格式正确。21.在 SQL 中,修改表结构的语句是(分数
18、:2.00)A.MODIFY TABLEB.ALTER STRUCTUREC.ALTER TABLE D.ALTER DATABASE解析:解析:修改表结构的命令是 ALTER TABLE。其基本命令格式为:ALTER TABLE。主要有三种作用:向表中添加新的字段和新的索引;修改表的结构和字段名;删除表中的字段、索引及有效性规则、错误提示信息及默认值。22.有如下职员数据库表: 职员(职员号(C,3),姓名(C,6),性别(C,2),职务(C,10) 为职员表的“性别”字段设置有效性规则(只能取“男”或“女”),正确的 sQL 语句是(分数:2.00)A.ALTER TABLE 职员 ALT
19、ER 性别 CHECK 性别$“男女“B.ALTER TABLE 职员 ADD 性别 CHECK 性别$“男女“C.ALTER TABLE 职员 ALTER 性别 SET CHECK 性别$“男女“ D.ALTER TABLE 职员 ALTER 性别 ADD CHECK 性别$“男女“解析:解析:使用 ALTER TABLE 命令可以向表中添加新的字段和新的索引或者修改表的结构和字段名,其中修改表结构的标准格式为:ALTERTABLEALTER COLUMNNULLNOT NULLSET DEFAULTSETCHECKERRORRENAME COLUMNTO,根据其标准格式可以知道 C 选项正
20、确。23.在 SQL 中,数据操纵语句不包括(分数:2.00)A.APPEND B.DELETEC.UPDATED.INSERT解析:解析:SQL 的操作功能是指对数据库中数据的操作功能,主要包括插入(INSERT)、更新(IJPDATE)和删除(DELETE)。APPEND 命令用于增加表中的记录,不属于 SQL 语句。24.将当前表中有删除标记的记录物理删除的命令是(分数:2.00)A.DELETEB.ERASEC.ZAPD.PACK 解析:解析:物理删除有删除标记的记录的命令为 PACK,执行该命令后所有有删除标记的记录将从表中被物理地删除,并且不可能再恢复。逻辑删除或置删除标记的命令是
21、 DELETE。25.在当前打开的表中,显示“书名”以“计算机”打头的所有图书,正确的命令是(分数:2.00)A.list for 书名=“计算*“B.list for 书名=“计算机“ C.list for 书名=“计算“D.list WHERE 书名=“计算机“解析:解析:List 命令中“FOR”条件用于在指定的范围内进行选择操作,仅显示满足条件的记录。通配符“*”号用来模糊搜索文件。当查找文件夹时。可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符。要显示“书名”以。计算机”打头的所有图书,应用语句“list for 书名=“计算机“”,选项 B 正确。